1、 软件工程 (第二版)齐治昌、谭庆平、宁洪 编著高等教育出版社 主讲:陈明锐 教授省级精品课程省级精品课程第十章 软件复用 软件复用的基本概念 领域工程 基于构件的软件开发 面向对象与软件复用软件复用的基本概念引言:做事习惯性地沿用已有的经验和方法 .简单的说,软件复用就是将已有的软件成分用于构造新的软件系统软件共享: 在一个系统中多次使用一个相同的软件成分软件移植: 对一个软件进行修改,使它能运行于新的软、硬件平台软件复用的定义 在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。制造软件构件的技术 :独立于单个软件系统开发的,可服务于整个应用领域的构件生产技术使用软件构件的技术
2、:在软件系统开发中使用已有软件构件的技术,也称为 “基于构件的软件开发 ”CBSE的一种过程模型制造软件构件的技术制造软件构件的技术 领域工程领域工程使用软件构件的技术使用软件构件的技术 基于构件的开发基于构件的开发 基于构件的软件工程 CBSE软件复用的重要性 软件复用的目的是能更快、更好、成本更低地生产软件制品。 一般地说,在软件开发中采用复用构件可以比从头开发这个软件更加容易。 企业需要解决的问题 充分认识软件复用的重要性,尽快建立支持软件复用的基础设施 建立相应的培训计划 采用更先进的,可以促进软件复用的软件开发方法 采用相应的激励措施软件复用的粒度 源代码复用 优点: 构件具有较高的
3、可靠性,使用者只需设置参数而无需介入构件内部,降低复用的难度 缺点: 构件的通用性、抽象性成为在具体使用时必须面对的问题 软件体系结构复用 优点: 可复用较大粒度的软件制品,其修改具有局部性 缺点: 难以抽象出简明的描述,存放体系结构的库往往不易管理软件复用的粒度 应用程序生成器 优点: 自动化程度高,能获取某个特定领域的标准和以黑盒形式输出结果(应用程序)。 缺点: 特定的应用程序生成器不易构造 领域特定的软件体系结构的复用 优点: 复用的程度高,对可复用构件的组合提供了一个通用框架 缺点: 前期投资很大软件复用的形式 横向复用: 也称为水平复用,是指复用活动的范围跨越了几个不同的应用领域,复用的软件产品主要包括数据结构、通用算法、人机界面等软件元素。 纵 向复用 也称为垂直复用,是指复用活动的范围限制在同一个应用领域或者是一类具有较多共性的应用领域内。 生产者复用: 指建立、获取或者重新设计可复用构件的活动。涉及到的活动包括复用的规划、领域分析、构件的开发、构件库的组织和管理。 消费者复用: 指使用可复用的构件建立新的系统的活动。涉及到的活动包括应用系统的规划、构件的检索和选择、应用系统中非复用部分的开发、应用系统的组装。