当前位置:文档之家› 软件复用

软件复用

火龙果整理
复用技术对oo方法的支持
面向对象的软件开发和软件复用之间的关系是相辅 相成的。一方面,00方法的基本概念、原则与技 术提供了实现软件复用的有利条件;另一方面,软 件复用技术也对面向对象的软件开发提供了有力的 支持。
面向对象技术通过方法、消息、类、继承、封装和
实例等机制构造软件系统,并为软件复用提供强有 力的支持。很多面面向对象语言为应用程序开发着
火龙果整理
(3)分析的复用
这是比设计结果更高级别的复用,可复用的分析 构件是针对问题域的某些事物或某些问题的抽象程 度更高的解法,受设计技术及实现条件的影响很少, 所以可复用的机会更大。复用的途径也有三种,即 从现有系统的分析结果中提取可复用构件用于新系 统的分析;用一份完整的分析文档作输入,产生针 对不同软硬件平台和其它实现条件的多项设计;独 立于具体应用,专门开发一些可复用的分析构件。
火龙果整理
小例子:
一位程序员编写了一些排序程序,通过 不同的参数传递来实现多次调用; C程序员编写了解三角方程的程序,整 个程序共调用了12次正弦函数; 一位Ada程序员编写了一个一段模拟程 序,涉及处理队列和一个处理器数组, 为此查找通用Ada队列和数组程序包, 并将其插入运行Ada环境中,并实例化 队列两次(就绪队列和阻塞队列),实 例化数组一次(处理器数组)。
火龙果整理
按照重用活动所跨越的应用领域类型可以分为横 向复用和纵向复用两种类型。
•横向复用:也成为水平重用,是指复 用活动范围跨越了几个不同应用领域, 如数据结构、算法、人机界面构件等。 •纵向复用:也称为垂直重用,是指重 用活动的范围限制在同一个应用领域或 者是一类具有较多共性的应用领域内。
确定同义词
复审
计算机及信息工程学院Copyright10
(2)领域设计:这个阶段的目标是获得领域构架
(DomainSpecificSoftwareArchitecture)。 DSSA描述在领域模型中表示的需求的解决方案,它不 是单个系统的表示,而是能够适应领域中多个系统的需求 的一个高层次的设计。 建立了领域模型之后,就可以派生出满足这些被建模 的领域需求的DSSA。由于领域模型中的领域需求具有一 定的变化性,DSSA也要相应地具有变化性。
火龙果整理
依据对可复用信息进行复用的方式 ,可以将软件复 用区分为黑盒 (Black Box)复用和白盒 (White Box)复用。
•黑盒复用:指对已有构件不需作任何修改 , 直接进行复用 .这是理想的复用方式 .
•白盒复用:指已有构件并不能完全符合用 户需求 ,需要根据用户需求进行适应性修 改后才可使用 .
火龙果整理
选择技术 选择技术完成存放、
比较和检索可复用软件对象的功能. 选择是根据问题需求,在复用成分库 中进行检索和匹配,以期得到可复用 的对象.其主要涉及分类、检索和说 明3个方面的问题.
火龙果整理
例化技术:例化技术是对类属对象
进行参数设置、转换、约束或某种形 式化的技术,它是选择技术的继续.通
构件组装
非 技 术 因 素
CASE技术
火龙果整理
软件构件
1.构件的概念 构建是被标准化的可重用的软件资源。 随着对软件复用理解的深入 ,构件的概念已不 再局限于源代码构件 ,而是延伸到需求、系统 和软件的需求规则约、系统和软件的构架、文 档、测试计划、测试案例和数据以及其他对开 发活动有用的信息 .这些信息都可以称为可复 用软件构件。
火龙果整理
硕士研究生课 程
领域设计过程:
进行初步的领域设计
软件复用
问题域 部分
人机交互 部分
控制接口 部分
数据接口 部分
结合设计模式,实现变化性
建立与领域分析模型的可追踪性
复审
计算机及信息工程学院Copyright10
火龙果整理
(3)领域实现
该阶段的主要目标是 依据领域分析模型和DSSA开发领域特定的构件 与构架(可复用信息) 它们 可以从现有系统中提取得到,也可以通过重 新开发而得到 在可复用构件与DSSA之间需要建立可追踪性 以将可复用构件与其规约联系起来,从方便使用角 度应尽量提供黑盒式复用方式
火龙果整理
依据复用的对象 ,可以将软件复用分为产品复 用和过程复用 .
•产品复用:指复用已有的软件构件 ,通过构件集成 (组 装 )得到新系统 ; •过程复用:指复用已有的软件开发过程 ,使用可复用的 应用生成器来自动或半自动地生成所需系统 . 过程复用依赖于软件自动化技术的发展 ,目前只适 用于一些特殊的应用领域 .产品复用是目前现实的、主 流的途径 .
软件复用与重构
软件复用 组员:曲娇 徐荣存 王巧玲
火龙果整理
1.软件复用的背景
2.软件复用的基本概念
3.实现软件复用的关键技术 4.基于构件的软件复用技术 5.基于对象的软件复用技术
火龙果整理
应用软件系统的一般开发模型
需求分析 设计 实现 测试 运行
火龙果整理
领域工程
什么是领域
一组具有相似和相近软件需求的应用系统所 覆盖的功能区域 领域中通常具有一组对应的具有相似和相近
软件需求的应用系统
领域工程
为一组相似或相近的软件系统建立基本能力和
必备基础的过程,它覆盖了建立可复用软件构件
的所有活动。
火龙果整理
过例化,将选定的满足问题规范的复
用对象的实现部分转换成可执行的程 序代码.
火龙果整理
集成技术:集成技术是根据复用技术 所提供的框架,将选定的已实例化的复
用对象组合成完整的软件系统的过程,
也就是实现由软件部件构造软件系统 的过程.
火龙果整理
四、基于面向对象的软件复用技术
火龙果整理
二. 软件复用的基本概念
软件复用是指重复使用“为了复用目的而设计的软 件”的过程。 与软件复用的概念相关 ,重复使用软件 的行为还可能是重复使用“并非为了复用目的而设计 的软件”的过程 ,或在一个应用系统的不同版本间重复 使用代码的过程 ,这两类行为都不属于严格意义上的软 件复用。但是现在也基本上没有区别。 软件复用是在软件开发中避免重复劳动的解决方案。 其出发点是应用系统(Application)的开发不再采用一 切“从零开始”的模式 ,而是以已有的工作为基础 ,充 分利用过去应用系统开发中积累的知识和经验 。如 : 需求分析结果、设计方案、源代码、测试计划及测试 案例等,从而将开发的重点集中于应用的特有构成成 分
火龙果整理
硕士研究生课 程
领域分析过程:
建立领域需求定义
确定领域中共同的需求
确定领域中需求的变化性
软件复用
建立领域术语字典 确定术语
确定具有变化性的需求间的关系
确定解释 建立领域面向对象分析模型
建立 面向对象 分析模型
火龙果整理
建立与 领域需求定义间的 可追踪性
火龙果整理
三、实现软件复用的关键技术
软件复用技术分为组装技术和生成技术。 组装技术(harvesting reuse)是利用组装方式 来复用软件构件,即对已有的软件构件不做修 改或少做修改,直接将其插装在一起,从而构造 出新的目标系统。 生成技术由程序生成器来获得复用.它是对 模式的复用.生成器导出模式的专有的或定 制的版本,来实现模式的复用.模式相当于 “种子”,从中可以生长出新的专有的软 件构件.
火龙果整理
从软件复用的实质性质和过程, 软件复用技术又分为: 抽象技术 抽象是软件复用的关键,抽象
是指对复用对象的概括与提炼,即将基本操 作和处理对象从语言、环境和其他细节中Leabharlann 提炼出来.每一个抽象可描述相关的可复用
对象集,每一个相关的可复用对象决定了一 个抽象.抽象的结果为软构架,抽象可分为规 范抽象和实现抽象两个层次.
提供了易于使用的类库,如VC++中的MFC、java
的JDK。
火龙果整理
五、基于构件的软件复用技术
基于构件的软件复用支持技术
应用系统 领域
领域工程
遗产软件 系统 软件再工程
软件构架技术
开放系统技术
软 件 过 程
构件库系统
构件、构架 获取
构件标准 化与描述
构件分类、 存储与检索
oo方法中软件复用的可行性
面向对象的软件复用方法以其独特的特点一将复用构 件的构造技术、复用技术、修改技术和合成技术有机 地揉合在一起,日益引起人们的注意。 (1)面向对象方法中的对象(类)是复用构件的一种 雏形; (2)类和类继承是强有力的复用机制; (3)继承和重载是复用构件的修改技术; (4)继承和消息传递是复用构件合成新构件的构件 合成机制。
火龙果整理
(4)测试信息的复用 主要包括测试用例的复用和测试过程信息的复用。前 者是把一个软件的测试用例在新的软件测试中使用,或者 在软件作出修改时在新的一轮测试中使用。后者是在测试 过程中通过软件工具自动地记录测试的过程信息,包括测 试员的每一个操作、输入参数、测试用例及运行环境等一 切信息。这种复用的级别,不便和分析、设计、编程的复 用级别作准确的比较,因为被复用的不是同一事物的不同 抽象层次,而是另一种信息,但从这些信息的形态看,大 体处于与程序代码相当的级别。
每个应用系统的开发均涉及大量的重复劳动 用户需求获取的重复
需求分析、设计的重复
编码实现的重复,测试工作的 重复,文档工作的重复
火龙果整理
火龙果整理
1.软件复用思想的提出 60年代开始出现的软件危机导致了软件 复用技术的诞生 。 1968年 ,Dough Mcllory在德国提出 2.软件复用技术的发展 1968-1978年:萌芽、潜伏期 1979-1983年:再发现期 1983-1994年:发展期 1994年至今:成熟期
领域工程包括三个主要的阶段:
(1)领域分析:这个阶段的主要目标是获得领域模型
相关主题