论使用复用设计 1 、引言 复用是活动,而不是对象
在创建软件相关的系统的语境中,复用仅仅是非常简单的任何过程,该过程通过复用来自以前开发工作的某些东西来生产(或帮助生产)一个系统
那么,唯一的问题是:复用什么、什么是导致成功复用的过程
在软件工程的范围内,复用既是旧概念,也是新概念
程序员从最早的计算时代已开始复用概念、对象、论据、抽象和过程,但是我们复用的途径是特定的
本文对软件复用的讨论,将从以下四个方面进行: 1)软件工程师可以获得一系列可复用的软件制品,这些包括软件的技术表示(例如,规约、体系结构模型、设计和代码)、文档、测试数据,甚至包括过程相关的任务(如,检查技术)
2)复用过程包括两个并发的子过程:领域工程和软件工程
领域工程的目的是在特定应用领域中标识、构造、分类和传播一组软件制品
然后,软件工程可在新系统开发中选取这些软件制品作为复用
3)构件复用为软件质量、开发者生产率、以及整个系统成本带来了固有的收益,然而,在复用过程模型被广泛地用于软件产业前,必须克服很多障碍
4)对可复用构件的分析、设计技术采用和在良好的软件工程实践中使用的相同原则和概念
可复用构件应该在一个环境中设计,该环境为每个应用领域建立标准数据结构、接口协议和程序体系结构
2 、可复用的软件制品 软件复用不仅仅涉及源代码,但是,还涉及多少东西呢
CaperJones定义了可作为复用候选的十种软件制品: 项目计划
软件项目计划的基本结构和许多内容(例如,SQA 计划)均是可以跨项目复用的
这样减少了用于制定计划的时间,也减低了和建立进度表、风险分析和其他特征相关的不确定性
因为经常不同项目中含有类似的功能,所以有可能在极少修改或不修改的情况下,复用对该功能的成本估计
即使当考虑不同的应用领域时,也很少有截然不同的程序和数据体系结构
因此,有可能创建一组类