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