基于构件的软件工程
二、基于软件重用的软件开发过程的角度分 1.生产者重用(product reuse) 指建立、获取或者重新设计可重用构件的活动。涉 及到的活动包括:重用的规划、领域分析、构件的开发、 构件库的组织和管理。 2.消费者重用(consumer reuse) 指使用可重用的构件建立新的系统的活动。涉及到 的活动包括:应用系统的规划、构件的检索和选择、应 用系统中非重用部分的开发、应用系统的组装。
10.1.1 软件重用的级别 三种方式重用:
高
测试信息的重用 抽
从现有系统的分析结果中提取可重 用构件用于新系统的分析; 主要包括测试用例( test case ) 用一份完整的分析文档作为输入, 的重用和测试过程信息的重用。 成生针对不通软硬件平台和其它实现条 件的多项设计; 独立于具体应用,专门开发一些 可被重用的分析结果是针对问题域 可重用的分析构件。
10.2 软件构件与构件工程
基于软件构件的软件工程也称为构件工程,是 以面向对象的方法为基础,实现软件重用,构造新 系统的过程。 为了实现软件重用,基于软件构件的软件工程 强调领域工程与软件工程同时进行。 领域工程创建应用领域的模型,标识、构造、 分类和传播一组可重用的软件。
图2
典型的重用的过程模型,描述了领域工程与软件工程的关系。
10.2.1 可重用构件 一个软件只有在多个系统中被使用才可称为“可重 用构件”,必须具备的条件: (4)通用性 构件解决的问题,应在同类应用中具有一般性; (5)适应性 应用场合有某些变化时,构件仍是可用的,使构 件的某些数据参数化和数据类型参数化; (6)可靠性 要求构件对预计将要使用它的系统时可靠的; (7)标准化 可重用构件的标准化对于软件重用是至关重要的。
领域分析的输入和输出
领域分析不是针对某个特定的软件系统,而是针 对一类软件系统的共同的特征、知识和需求。比需求 分析更一般、更抽象、更广泛的特征。 领域分析(Domain Analysis)是对一类应用系统的 共同应用领域进行系统化分析,以发现该领域的共同知 识、需求及其应用系统的共同特征。 领域分析又称领域工程(Domain Engineering), 是软件工程的发展与延伸。 领域分析是一项比系统分析更难的工作。领域分 析方法可采用结构化方法和面向对象方法,而后者将 成为主流。
软件重用的优点: (1)提高软件生产率,降低软件生产代价; (2)提高软件质量; (3)互操作性好; (4)推动标准化; (5)支持原型开发。
10.1.2软件重用的形式 一、按照重用活动所跨越的应用领域的类型分 1. 横向重用( horizontal reuse ) 也称为水平 重用,是指重用活动的范围跨越了几个不同的应 用领域,重用的软件产品主要包括数据结构、通 用算法、人机界面等软件元素。 2. 纵向重用( vertical reuse ) 也称为垂直重 用,是指重用活动的范围限制在同一个应用领域 或者是一类具有较多共性的应用领域内。
领域工程
领域分析 设计软件 体系结构 开发可重用 的软件成分ห้องสมุดไป่ตู้
领域 模型
结构 模型
中心库
可重用软件 成分/构件
软件工程
系统分析 用户 需求
规格说明 与设计
建造
系统规 格说明
分析与 设计模型
应用 软件
重用的过程模型
6.2.1 可重用构件 一个软件只有在多个系统中被使用才可称为“可重 用构件”,必须具备的条件: (1)独立性 解决一个相对独立的问题,或大问题中某个相对 独立的部分; (2)完整性 提供较完整的解决,不要遗留很多缺口,让重用 者做大量补充; (3)可标识性 构件所解决的问题应该是可标识的,可命名,有 简要介绍,便于理解和使用。
(2)人的因素 喜欢自己创造而不喜欢使用别人的东西。
10.1.3 软件重用的困难 重用具有许多明显的优点,目前应用不广泛的主要 原因是:
(3)管理因素 把重用构件和一般软件构件同等看待,把重用看 作可有可无的事。
(4)教育因素 软件科学技术的教育与培训中,缺乏关于软件重用 的内容,缺少专门教材和课程。
生产者重用 (为重用开发构件)
建立构件
消费者重用 (使用构件开发应用)
组装应用
生产者重用与消费者重用
10.1.3 软件重用的困难 重用具有许多明显的优点,目前应用不广泛的主 要原因是:
(1)技术因素
构件与应用系统之间的差异;
构件要达到一定的规模,才能支持有效的重用;
发现合用构件的困难; 基于重用的软件开发方法和软件过程需要一些新 的理论、技术及支持环境。
象
程 度
分析结果的重用
的某些事物或某些问题的抽象程度 更高的解法。 受实际环境影响小,可重用机会多, 所需修改少。 包括目标代码,也包括文本形式的 源代码。
设计结果的重用
低
代码的重用
软件生产过程主要是正向过程 ,即软件产品从抽象 级别较高的形态向抽象级别较低的形态演化 ,所以较高 级别的重用容易带动较低级别的重用,反之则不然。 重用级别越高,可得到的回报也越大,因此分析 软件(Analysis Ware)和设计软件(Design Ware)的重用 备受重视。
10.2.3 领域分析 领域分析是对特定应用领域中共同的特征、知 识、需求的标识、分析和规约。领域分析是特定领 域内软件重用的基础,它的目标就是:发现和挖掘 在特定领域内可以被重用的构件。领域分析活动中 输入和输出如图所示:
输入信息
技术文献 已有应用 专家经验/建议 当前与未来的需求
输出信息
领域分析 领域语言 重用标准 分类方法 功能/行为模型
6.2.2 基于构件的软件工程
基于构件的软件工程与传统的或面向对象的软 件工程相比,有显著的差异。 它不是针对某个特定的软件系统,而是针对一 类软件系统的共同的特征、知识和需求。 基于构件的软件的开发过程包括两个并发的子 过程,一个是领域工程,另一个是基于构件的开 发。领域工程完成一组可重用构件的标示、构造、 分类和传播;基于构件的开发完成使用可重用构件 构造新的软件系统。
第十章软件重用和构件技术
10
第十章
软件重用技术
10.1 软件重用概述
软件重用就是将已有的软件成分用于构造新的软 件系统,以达到提高软件系统的开发质量与效率,降 低开发成本的目的。 可重用的软件成分,也称为可重用构件(Reusable Component) 可从旧软件中提取,也可以专门为重用 而开发。 软件重用不仅是对程序的重用,它包括对软件生 产过程中任何活动所产生的制成品的重用。如:项目 计划、可行性报告、需求定义、分析模型、详细说明、 源程序和测试用例等等。