软件复用的好处有很多
一、提高工作效率
这条自不必说,比如在项目A中你写一个Ajax模块,A完工后启动了项目B,在B中就可以直接复用项目A的模块了。一个可复用的软件可以为将来节省费用,被服用的频率越高,组件的初始开发成本就越低。
二、提高软件质量
可复用的软件总比不能复用的有更多的质量保障。因为可复用的软件在不断的复用过程中把一些bug,缺陷都很快的排除了。因此可复用的软件一定是利于系统的可维护性的。
按抽象程度的高低,可以划分为如下的复用级别:
代码的剪贴复制
利用编辑器(IDE)可以很方便的做到减少抄写代码的人力成本。这可能是入门级程序员习惯的,自发的复用软件的形式。把一个写好的工具函数自发的拷贝到另一个功能或项目中。这种方式有着明显的缺点就是他造成很多重复冗余的代码。尤其在Web前端开发中,JavaScript资源的量大小影响着客户端下载速度。好一点的复用方式可以采用继承。
算法的复用
各种算法比如排序都已经得到了大量的研究。几乎不需要你重新去写自己的算法,各种语言通常也实现了这些常用算法。因此你只需要直接复用。
数据结构的复用
与算法一样,类似数组、队列、栈、列表等得到了透彻的研究,只需要直接复用。
以上是传统的复用种类,下面是更高级的复用方式
设计的复用
设计结果比源程序的抽象级别更高,因此它的复用受实现环境的影响较少,从而使可复用构件被复用的机会更多,并且所需的修改更少。
这种复用有三种途径,第一种途径是从现有系统的设计结果中提取一些可复用的设计构件,并把这些构件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有计划地开发一些可复用的设计构件。
分析的复用
这是比设计结果更高级别的复用,可复用的分析构件是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现条件的影响很少,所以可复用的机会更大。复用的途径也有三种,即从现有系统的分析结果中提取可复用构件用于新系统的分析;用一份完整的分析文档作输入产生针对不同软硬件平台和其它实现条件的多项设计;独立于具体应用,专门开发一些可复用的分析构件。
相关推荐
我们在软件开发中,经常会碰到多处代码相同或相似的地方,如何处理这种情况,不仅对个人,而且对于一...本文只讨论在一个只使用delphi作为开发工具的团队如何有效的进行代码复用,如何在开发进度、软件维护之间取得平衡
在对构件技术的相关概念、三大主流构件技术进行分析之后,总结了几种较为经典的构件描述模型和构件检索方法。随后介绍运用软件体系结构进行构件组装的方法。第三篇分为5章,在对FPA方法以及其他的软件规模度量方法...
用专门的项目说明掌握python的 ...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
112几种典型的对象设计模式及应用 1121行为型模式中的职责键模式及应用 1122结构型模式中的外观模式及应用 1123创建型模式中的抽象工厂模式及应用 113对象类的高级概念 1131抽象类、 参数对象类、型与...
提高了软件开发效率及软件复用程度。但也应该看到,在软件开发的过程中,多次的需求变更以及项目完成之后的软件维护,特别是新业务逻辑的增加对软件项目形成越来越大的威胁,如何提高软件开发期质量属性及运行期质量属性...
组件复用方法是最近几年发展起来的先进的软件复用技术,在基于组件复用的软件开发中,软件由组件装配而成,这就如同用标准零件装配汽车一样。因此,组件复用模型能够有效地提高软件生产率。 三、项目分析与规划 ...
软件是一种逻辑实体,具有抽象性,不是一般的物理实体; 2. 软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的 高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人 员...
熟悉面向对象的都知道,软件开发中常用的代码复用有继承和多态两种方式。在PHP中,只能实现单继承。而Trait则避免了这点。下面通过简单的额例子来进行对比说明。 1. 继承 VS 多态 VS Trait 现在有Publish.php和Answer....
几种网络仿真软件介绍,opnet、NS-2、MATLAB等。网络仿真技术是一种通过建立网络设备和网络链路的统计模型, 并模拟网络流量的传输, 从而获取网络设计或优化所需要的网络性能数据的仿真技术。由于仿真不是基于数学...
优秀论文--总线型软件体系结构的研究 一个好的软件体系结构应该具有好的可复用性, 总线型软件体系结构以面向对象技术为基础, 借鉴了计算机硬件系统的设计...比较几种软件体系结构, 介绍总线型软件体系结构的特点。
LabVIEW 虚拟仪器软件广泛应用于测控系统的开发。 在阐述了菜单形式用户界面基本设计思想和几个主要函数 的基础上, 详述了两种不同的菜单式友好用户界面实现方 法。文章所述方法在实际课题中的运用取得了良好的效 果...
各个厂家的软件对控制系统硬件操作的设备驱动程序接口也各不相同,这样为了对市场上不同厂家的设备都能管理,控制软件厂家必须针对市场上的几百种常用的设备都开发设备驱动程序,而且当硬件设备升级、修改时,驱动...
软件发展有几个阶段?各有何特征? 答: ① 程序设计阶段。 硬件特征:价格贵、存储容量小、运行可靠性差。 软件特征:只有程序、程序设计概念,不重视程序设计方法。 ② 程序系统阶段。 硬件特征:速度、...
MIMO技术、多载波技术与链路自适应技术是未来移动通信系统最值得关注的几种物理层技术。MIMO技术在提高系统频谱利用率方面性能卓越,多载波CDMA技术则能有效地对抗频率选择性衰落,将MIMO技术与MC-CDMA方案相结合,...
为了支持互操作GIS软件的实现,该文提出了数据适配器、外观和桥接3种设计模式,为空间数据互操作和GIS功能互操作的软件开发提供了一种可复用的实现方案。旨在软件实现层面增强GIS的互操作性,提高软件质量和开发效率...
设计模式是在软件设计中常见的解决问题的可复用方案。它们提供了一种经过验证的方法,用于解决面临的各种设计问题,并促进了代码的...在本文中,我们将介绍几种常见的设计模式,包括创建型模式、结构型模式和行为型模式
介绍了几种常用的面向对象软件工程方法,重点分析了UML,给出UML方法的图形表示方法
ROS的设计目标是提高机器人研发中的软件复用率,所以它被设计成为一种分布式结构,使得框架中的每个功能模块都能被单独设计、编译,并且在运行时以松散耦合的方式结合在一起。而且ROS中的功能模块都封装于独立的...
然而学习设计模式的过程却是痛苦的,从 阅读设计模式的圣经——GoF 的《设计模式:可复用面向对象软件的基础》时的枯燥、苦闷、 茫无头绪,到有一天突然有一种顿悟;自己去实现 GoF 的 23 中模式时候的知其然不知其所 ...