`

软件的可维护性和可复用性

阅读更多

  面向对象的软件设计的两个核心要素就是软件的可维护性和可复用性。在支持可维护性的同时,提高系统的复用性。

 

一、软件系统的可维护性

  软件系统的可维护性具体体现在三个目标上:

  • 可扩展性     新的功能可很容易地加入到系统中
  • 灵活性        允许代码的修改平稳发生
  • 可插入性     可很容易地将一个模块抽出去,然后用另一个实现了同样接口的模块代替。

 

二、软件系统的可复用性

1.软件复用的好处

  软件复用有三大好处:

  • 提高生产效率
  • 提高软件质量
  • 改善系统的可维护性

2.传统的复用

  传统的复用主要有:

  • 代码的粘贴复用
  • 算法的复用
  • 数据结构的复用

  传统的复用方的一个缺陷就是复用常常以破坏可维护性为代价。比如两个模块A和B,他们都使用了C模块。那么当A需要增加一个新的行为时,B有可能不需要,甚至不允许C添加新行为。这时,如果坚持复用,就要牺牲可维护性;如果坚持可维护性,就只有放弃复用。

 

 

3.面向对象的复用

  面向对象的复用的焦点不是集中在函数和具体的算法等实现细节上,而是集中在最重要的含有宏观商业逻辑的抽象层次上。也就是说复用的焦点发生“倒转”。复用的倒转不是因为实现细节不重要,而是因为这些复用通常做得很好了,而且抽象层次的复用更值得强调,因为它是在提高复用性的同时保证可维护性的关键。


  抽象层次通常是较稳定的,如果抽象层次相对独立于具体层次的话,那么具体层次内部的变化就不会影响到抽象层次,所以抽象层次的复用会比较容易。


分享到:
评论

相关推荐

    软件的可维护性与可复用性.doc

    在软件开发领域,可维护性和可复用性是衡量软件质量的重要指标,它们直接关系到软件的生命周期成本和效率。本文将深入探讨这两个概念以及如何通过设计模式、框架和架构来提升它们。 首先,让我们来看看可维护性。可...

    关于面向对象的哲学体系及科学体系的探讨.pdf

    开闭原则是软件可维护性和可复用性的基础。 综上所述,面向对象的哲学和科学体系提供了一系列概念和原则来构建稳定、可维护和可扩展的软件系统。理解这些概念,并在实践中妥善应用,对于成为一位高效的软件开发者至...

    面向对象系统设计--------良好的可复用性。易维护。良好的可扩充性。最好的一本设计图书

    1、 良好的可复用性。开发同类项目的次数与开发新项目的时间成反比,谁也不愿做重复劳动吧 。 2、 易维护。基本上不用花太大的精力跟维护人员讲解,他们可以自己读懂源程序并修改了,要不然开发的系统越多,你的...

    计算机软件可靠性和可维性管理

    它涉及软件的可理解性、可修改性、可测试性、可移植性和可复用性。良好的可维性可以降低维护成本,延长软件的使用寿命。 1. **可理解性**:通过清晰的文档、结构化的代码和注释,使得软件易于理解,便于后续的维护...

    编程规范(统一软件编程风格,提高软件源程序的可读性、可靠性和可重用性,提高软件源程序的质量和可维护性)_C#

    编程规范是软件开发过程中的重要组成部分,它旨在提升代码质量,增强代码的可读性、可维护性和可重用性。本规范针对C#编程语言,旨在为开发者提供一套统一的标准,以降低软件维护成本,提高开发效率。 范围 本规范...

    工学软件开发平台技术.pptx

    MVC设计模式是一种架构模式,通过将应用程序分成三个独立的模块:模型、视图和控制器,以提高系统的可维护性和可复用性。 MVC设计模式的主要特点是低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、...

    Java与模式(清晰书签版) 设计模式 part3

    第3章 软件的可维护性和可复用性 第4章 开闭原则 第5章 专题 JAVA语言的接口 第6章 专题 抽象类 第7章 里氏代换原则 第8章 依赖倒转原则 第9章 接口隔离原则 第10章 合成、聚合复用原则 第11章 迪米特法则 第12章 ...

    基于Java EE多层架构的进销存管理系统.pdf

    * 多层架构的优点是提高了系统的可维护性、可扩展性和可复用性。 知识点二:S2SH框架 * S2SH框架是指使用Struts2、Hibernate和Spring三个框架组合的开发框架。 * Struts2是一个基于MVC模式的Web应用程序框架,用于...

    MVC_UGUI.rar

    UGUI基于MVC模式的技能装备系统。MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用...说白了就是把模型、视图、控制分开,得到较高的可维护性和可复用性。

    软件工程与软件系统可维护性评估2.pptx

    - **1990年代**:面向对象编程(OOP)成为主流,进一步提高了软件的可复用性和可维护性。同时,敏捷开发思想也开始萌芽。 - **2000年代**:敏捷开发方法被广泛接受并应用于实际开发中,强调个体和交互的价值高于过程...

    设计模式可复用面向对象软件的基础

    设计模式是软件开发中的宝贵经验总结,它们是解决常见问题的最佳实践,被广泛应用于面向对象编程中,以提高代码的可读性、可维护性和可复用性。本主题主要探讨设计模式在创建可复用面向对象软件中的基础角色。 一、...

    Java中的模板方法模式:设计灵活且可复用的算法框架

    模板方法模式是一种强大的设计模式,它通过定义算法的骨架和允许子类扩展特定步骤,提供了算法的灵活性和可复用性。在Java中实现模板方法模式时,需要合理设计抽象类和具体子类,以确保代码的清晰和可维护性。通过...

    软件工程与软件系统可维护性评估.pptx

    ### 软件工程与软件系统可维护性评估 #### 第1章 软件工程概述 **软件工程定义与历史** - **定义**: 软件工程是一门集成了系统化、规范化、可度量化的方法和技术来支持软件产品的开发、运行及维护的学科。 - **...

    软件复用及相关技术.pptx

    软件复用及相关技术 ...软件复用技术是一种重要的软件开发技术,它可以提高软件的可维护性和可扩展性,降低软件开发的风险和成本。通过对软件复用技术的研究和应用,可以提高软件开发的效率和质量。

    软件工程中的软件复用与组件化.pptx

    - **软件组件化的好处**包括提高软件的可维护性和可测试性、促进团队协作和开发效率、降低系统的复杂度和耦合度等。 - **软件组件化的实践**建议选择合适的组件化框架,明确组件间的接口和协议,持续优化和改进组件...

    软件工程与软件系统可复用性评估.pptx

    **软件系统可维护性** - **可读性**:代码易于理解和修改。 - **可测试性**:软件容易进行测试,以便发现和修复错误。 - **可重用性**:软件组件可以在多个项目中重复使用。 - **可扩展性**:系统可以轻松地添加新...

    设计模式:可复用面向对象软件的基础.zip

    这些模式经过时间的考验,被广泛应用于各种面向对象的软件开发中,以提高代码的可读性、可维护性和可复用性。本教程旨在深入讲解设计模式的基本原理和应用方法,帮助开发者构建更加健壮和灵活的软件系统。 首先,...

    和 lvgo 一起学习设计模式.pdf

    通过学习设计模式,我们可以提高软件开发效率、节约软件开发成本和维护成本,同时也可以提高软件系统的可维护性和可复用性。 资源链接: * https://bugstack.cn/itstack/itstack-demo-design.html * ...

    软件复用与软件构件技术.docx

    通过软件构件技术,可以提高代码的可重用性、可维护性和可扩展性。 在未来,软件复用和软件构件技术将迎来新的发展机遇。云计算、人工智能等技术的不断发展,将为软件复用和软件构件技术提供更多的可能性。例如,...

    软件开发过程与质量保证面向对象实用教案.pptx

    这种方法论在软件工程中具有重要的地位,因为它更贴近人类的思维方式,并且提高了软件的可维护性和可复用性。 面向对象方法论与传统的结构化分析和设计方法论有显著的区别。结构化方法论主要依赖数据流建模,将现实...

Global site tag (gtag.js) - Google Analytics