软件复用技术

合集下载

河海大学研究生课程【软件复用技术】06软件构件技术概述(二)

河海大学研究生课程【软件复用技术】06软件构件技术概述(二)

软件复用硕士研究生课程软件构件技术计算机与信息学院软件复用硕士研究生课程声明软件复用硕士研究生课程主要内容一、软件构件二、软件构件模型三、应用框架四、基于构件的软件开发方法三、应用框架技术软件复用硕士研究生课程软件复用硕士研究生课程1. 应用框架(1) 定义1:应用框架是一种可以复用的应用软件的半成品,它可以被用来建造一族应用程序;定义2:应用框架是一组相关组件的集合,这些组件的相互作用关系形成了一个可以复用的体系结构。

该结构可以被用来建造一族应用程序;定义3:应用框架是一种软件复用技术。

它是一个应用软件系统的部分或整体的可复用设计。

一般来说,框架定义了一个应用程序的骨架并提供可以放置于该骨架中的标准用户界面实现(2) 开放式体系结构:软件系统的开放性包括数据的开放性、功能的开放性和系统的可扩充性。

软件复用硕士研究生课程典型成果:软件复用硕士研究生课程2、框架的特点软件复用硕士研究生课程•框架的优点:•存在困难:3、框架的特征软件复用硕士研究生课程软件复用硕士研究生课程软件复用硕士研究生课程软件复用硕士研究生课程4、框架分类软件复用硕士研究生课程5、通用框架开发过程模型6、框架开发过程软件复用硕士研究生课程软件复用硕士研究生课程软件复用硕士研究生课程(3)设计阶段软件复用硕士研究生课程软件复用硕士研究生课程四、基于构件的软件开发软件复用硕士研究生课程软件构件技术是一种系统化的技术,包括构件模型、构件构架(Architecture)及实现技术、构件分析和设计技术、基于构件的应用系统构造及实现技术等内容。

当构件技术运用于特定的应用系统开发,通常称之为基于构件的软件开发(Component-Based software Development ,CBD). CBD是指利用已开发完成的商业构件(Commercial Off-The-Shelf,COTS)(或可复用的构件)来按应用需求组装形成软件应用系统的软件开发方法研究构件软件的两个核心是:如何提取可复用构件以及如何组装成系统并能实现互操作。

浅议软件复用技术

浅议软件复用技术
护 、演 化 等 活 动 。
大部分编程语言的运行支持系统都提供 了连接 ( L i n k ) 、 绑 定 ( B i n d i n g ) 等功能来支持 目标代码 的复用 。 源代码的复用 级 别略高于 目标代码的复用 ,程序员在编程时把一些想复用 的
代 码 段 复 制 到 自己 的 程序 中 ,但 这 样 往 往 会 产 生 一 新 旧 代 码 不 匹 配 的 错 误 。 大 规模 的 实现 源 代 码 的复 用 只 有 依 靠含 有
的过程 , 是利用现有的软件成分来构造新 的软件系统的过程。
近 十年来软件复用被认为是解决软件危机、提 高软件生产率
和 质 量 的最 有 效 和 最 具 潜 力 的 手 段 。
现 条件 的影 响很少 ,所 以可复用的机会更大 。复用 的途径也
有 三 种 :从 现 有 系统 的分 析 结 果 中提 取 可复 用 构 件 用 于 新 系
s o f wa t r e r e u s e , t h e a r t i c l e d i s c u s s e d s o me k e y t e c h n o l o g i e s t o r e a l i z e s o f wa t r e r e u s e . Ke y wo r d s : S o f t wa r e Re u s e ; Do ma i n En g i n e e i r n g ; S o f t wa r e Co mp o n e n t
1 引言
随着软件需求的激增 、软件规模和 复杂度 的不断增大 , 大量 资源被浪 费在重复开发上 ,传 统的开发方法无法适应用 户在质量 、效率等方面对软件的需求。软件 复用又称软件重 用或软件再用 , 是指重复使用 “ 为了复用 目的而设计的软件”

面向对象技术与软件复用技术的关系

面向对象技术与软件复用技术的关系

尽管这样 , 软件 复用技术在整 体上对软件产业 的影响并
不 尽 人 意 。 这 是 因 为 由于 技 术 方 面 和 非 技 术 方 面 的种 种 因 素 造 成 的 , 中技 术 上 的不 成 熟 是 一 个 主 要 原 因 。许 多 工 作 其
不同 。它着重通 过比较发现对象 间的相似性 , 即对象 间 的共 同属 性 , 并 以此为 基 础 构造 对 象 类型 。这 些对 象 类 型 按 “ ”“ 类 ,子类 ” 父类 ” 和“ 的Leabharlann 念构成层 次关系 。下一层对 象类
渐 成 为 主 流 技 术 , 软件 复 用 技 术 提 供 了 新 的技 术 支 持 。不 为
合起 来 。软件 复用 是指 在两 次或 多次不 同的软件 开发过 程
中重 复 使 用 相 同 或 相 近 软 件 元 素 的过 程 。 软 件 复 用 是 在 软
件 开发 中避 免重 复劳动 的解 决方案 ,其 出发点是 应用系 统 的开发 不再采 用 一切“ 从零 开始 ” 的模 式 , 是采 用 过去 应 而 用 系统 开发中积 累 的知 识和 经验 ,从而将 开发 的重点集 中
口清晰 、 明、 简 可靠 等特 点 , 此外类 构件提 供 了实例重 用、 继
承重用和 多态重 用三种 方式 。面 向对 象方 法逐 步形成 从面
向对 象 分 析 、 向对 象 设 计 、 向 对 象 编 程 语 言 、 向 对 象 面 面 面
于 应 用 的特 有 构 成 部 分 【 2 ] 。
目前 实现软件复用 的关键技术包 括:软件构件技术 、 领 域 工程 、 软件 构 架 、 软件 再 工程 、 开放 系统 技术 、 软件 过程 、 C S A E技 术和 非技术 因素 。 实现软件复用 的各种技术 因素和 非技术 因素是互相联 系、 相影响 的。其 中软件构件技术 是 互

软件复用与面向对象技术在软构件技术中的应用

软件复用与面向对象技术在软构件技术中的应用

目前 , 成熟 、 最 最系统 化和工程 化的软件 复用 是基 于复用 库
复 膦 庠 ~
的软件复用 。通 常, 复用过程可归纳 为以下几步 : a认知到有可复用的机会 ; 、 b分解抽象 ; 、 C分类并建立复用构件库 ; 、 d检 索与选择复用构件 ; 、 e对复用构件具体化 ; 、
维普资讯
雪 信 息技 术 与售 量佗 ■
软 件 复 用 与面 向对 象技 术 在 软 构 件 技术 中 的应 用
S f aeR uea d A pi t no bet— r ne e h ooyi S f C mp n n eh o ge ot r e s n p l ai f jc —oi t T c n l ot o o e t c n l i w c o O e d g n T o s
C0M C0R A B
引 言
于2 0世纪 6 代 出现的软件 危机导 致 了有 关 软件复用 的 O年 研究 。通过软件复用 , 在应用 系统 开发 中可以充分利 用已有 的开
发成 果 , 除 了 包 括 分 析 、 计 、 码 、 试 等 在 内 的许 多 重 复 劳 消 设 编 测

t s ehi l n o o oet o etocm oet o emoe oua asm l t h o g nteoj t o ,t n a adsfcmpnns fh o pn ns fh r p lr e by e nl yo b c r c c t t w t p s c o h e
张文辉 袁 杰
Z ⅣG n—h Y AN .e u U 1 i
Ab ta t T e a t l i u s d t e b sc sfw r s d t r c s , h ot a e u e op o e st ek y fc s r c h r c ed s se h a i ot a eu e p o e s t es f r s d t rc s e — i c o w h a

运动会管理系统中的软件复用技术应用分析

运动会管理系统中的软件复用技术应用分析

() 2构件模型, 研究构件的本质特征和 内部组织结构及构
件间的关 系, 指导构件及构件系统的实现, 3 如 C模型; () 3 构件描述语言, 以构件模型 为基础 , 解决构件的精确
属于严格意义上 的软件复用 。
23 软 件 复 用 的 原 因 _
通常应用软件系统 的开发过程包含以下几个阶段 : 需求分 描述、 理解及组装问题 , 如构件描述语言、 构件 组装描述符等 ;
在信息技术飞速 发展 的今天 , 软件 的应用越来越广泛 , 越 () 1通用基本构件 : 是特定于计算机 系统 的构成成分。() 2 领域 来越受到重视,软件 的需求量也节节攀升。在一些普通学校 共性构件: 是应用系统所属领域 的共性构成成分。() 3 应用专
信息管理系统这块 , 比较常用的还 只局 限于教学管理 、 物资设 用构件:是每个应用系统的特有构成成分 。应用系统开发中 备 管理 、 财务管理、 图书管理等子系统。在运动会管理系统方 的重复劳动主要在于前两类 构成成分重复开发。软件 复用是
运动会 管理系统 中的软件复用技术应 用分析
口 周 莹
260 ) 2 0 1 ( 江苏教育学院南通分院南通 高等师范学校数理 系 江苏 ・ 南通
摘 要:软件复用是软件开发 中避免重复劳动 的一种行之有效的解决方案, 文在分析 了软件复用和软件构件 本 技术的基础上 , 出 了具体的在 高校 中运动会 管理 系统的分析和设计过程 , 提 最终实现运动会管理 的科学化、 范 规
过程 。 应 地 , 复 用 软件 是指 为 了 复用 目的 而 设计 的 软 件 。 相 可
32 软 件 构件 主要 研 究 内容 .
与软件复用 的概念相关 ,重复使用软件的行为还可能是重复

基于SOAi的软件复用与构件技术探析

基于SOAi的软件复用与构件技术探析
电子 工 业 出版 社00 7 o

3 4一
中国新技术新产品
参 考 文 献
ห้องสมุดไป่ตู้
『 王满红, 1 1 ] 陈荣华5 A 概念 、技术 与设计阿 O
北京: 机械工业 出版社, O 7 2 o
王至 坚, 费玉奎, 娄洲清. 构t6 术及其应 软件  ̄ ̄ - 用帆 北赢 科 学出N:2 0  ̄ 05  ̄ 『 毛新 生, 戈. A 原理 ・ 3 ] 金 S O 方法 ・ 实践【 ] M. 北京:
lO A的基本体系架构 S
S OA 即 S rie O ine rhtcue 意 evc - r td A c i tr, e e
思为面 向服务 的架构 , 是一种 以通用 为 目的 、 可 扩展 、 具有联合协作性的架构 , 所有流程都被定 义 为服务 ,服务通过基于类封装的服务接 口 委 托给服务提供者 , 服务接 口根据可扩展标 识符 、 格式和协议单独 描述 。 S A 的基本体 系架构如下 图 l O 所示 , 主 为产品复用和过程复用 。产品复用指复用 已有 它 要 由以下三部分组成 : 的软 件构件 , 通过构 件集成 ( 装 ) 到新的 系 组 得 统。 品复用是 目 产 前现实的 、 主流的 实现软件复用 的有效途径 。过程复 用指复用 已有的软件 开发过程 。 使 用 可复用 的应 用生 成器 来 自动或 半 自动地 生成所需 系统 。过程复用 依赖于软件 自动化技 术的发展 , 目 前只适用 于一些特殊 的应用领 域。 同时 , 将软件 复用按 复用 粒度大小 和抽象层 次的不 同, 可以分为小粒 图 1S A 的基 本体 系架构模 型 O 度、 中粒度和大粒度复用三类 : 小 ① 1 . 1服务提供者 粒度 复用 ,即小规模复用 ,例如程序代码 的复 服务 提供 者是 一个 可通 过 网络寻址 的实 用 。② 中粒度复用 , 中等规模复用 , 即 例如软件 体, 它接受 和执 来 自 亍 消费者的请求 。 它将 自己 设计结果 的复用 。③大粒度复用 ,即大规模 复 的服务和接 口契 约发布到服 务注册 中心 ,以便 用 , 例如应用子系统 的复用 。到 目 为上 , 们 前 人 服务使用者可 以发现 和访 问该 服务 。它主要实 对小粒度复用进行 了长期 的研究 和实践 , 现 发 现 以下功能 : 这类复用方式有许 多局 限性 。 近年来 , 人们又开 a 1 定义系统 中可提供 的服务功能 ; ̄i 始转 向中 、 bt ) t 大粒度 的复用研 究 , 并且 发现 , 通过 实现 系 统 中 已定 义 的 这些 功 能 ; 用 WS L 中粒度复用 ,软件设计者 们在开发—个新 的软 c 1 D ( bS r c e nt n L n ug ) We e ieD f i a g ae描述这些 服 件 系统时 , 以利用 己有的需求分析 、 v i i o 可 系统设 计 务, 并用 U D( n e a D sr tnDsoe 的思想和结果。 D I i r l ec po i vr U v s ii c y 通过大粒度复用 , 软件设计者们 adIt r i )在服务注册表项 中发布 WS L 又可以利用 己有的系统来组 建新 的应用 系统 。 n e ao n g tn D 描述文档 即在设计新 的应用 系统 时,只需考虑各 子系统 1 . 2服务注册 中心 之 间相互作用 的框架结 构 , 而不必 设计 和 服务注册 中心是—个包含可用服务的网络 实现 的细节 , 从而缩短 了开发 时间 , 降低了 因而 可寻址的 目录中心 ,它是接 收并存 储服务契约 开发成本 。 的实体 , 供服务消费者定位服务之用。 它主要实 3构件技术 现以下 功能 : 增加 、 a 】 删除或修改已发布服务提 3 . 1构件 的基本概念 供的服务数据 ; 按用户 的请 求从 系统 的注册 b 1 构件 ( m oe O C pnn是被用于多层企业应用 的 o 表中查询服务数据 种复用技术 , 是应用 系统中可以被 明确辨识 1 服务消费者 3 的构成成分 , 是实现在软件 系统 中的 、 特定的一 服务消费者可以是一个请求服务的应用或 个 或一组 服务的—个被 封装的部分。构件具有 者其它类型的软件模块 ,它从服务注册 中心 中 个或多个接 口, 通过其提 供对服务 的访问 。 构 定位其需要的服务 , 通过相关的传输机制来 件充 当了应用 结构 中的“ 并 积木 ” 而且我们 只需 , 绑定该服务 , 后通 过传递 契约规定的格式 的 了解其接 口协议就可对其进行复用。而可复用 然 请求来执行 这些服务功能 。该模块主要完成 以 构件又是指具有相对独立的功能和可复用价值 下功能 : 的构件。 a 1 发现提供所需服 务的 WS L描述文档 , D 可复用构件具备 了以下几点 属性 : 有用 a 】 这通常通 过访 问服务注册表项来实现 性: 构件必须能够提供有用的功能 ;可用性 : b ) 构 b WS L 的基础上 , 过 S A (i pe 件必须易于被开 发人员 理解 和使用 ; 质量 : ) 在 D 通 O PS l m c 1 构 O j t ces mt 0) be cs P o 1 cA c 协议来与要访问 的服务 件必须能够 正确 的工作并完成既定的功能 ;疽 d吞 进行通信服务的提供者与服务的消费者通常是 应 性: 件应该 易于在不同的语 境中进行相关 构 彼此分开的 ,服务注册中心中的服务信息位于 的配置 ;可 移植性 : e 1 构件 应能在不 同的硬软件 两者之间 ,它将服务 提供者所提供的服务按一 平台下工作 。 随着对 软件复用理解的深人 , 构件 定的标准进行组织和分类 ,并向服务的消费者 的概念已不再局限于早期的源代码构件 ,而是 发布服务接 口,服务的消费者就使用查询功能 延伸到需求 、 系统和软件的需 求规则约 、 系统和 发现服务的提供者 。服务提供者与服务消 费者 软件 的构 架 、 、 计划 、 试案例 以及其 文档 测试 测 通过事先已经定 义好 的契约进行彼此的交互 。 他对开发活动有用的相关信 息。这些信息广义

关于计算机软件复用技术的若干思考

关于计算机软件复用技术的若干思考
A s a t ot r u ei a ot t u jc o ot ae e g e r gw i a b e r p sd t o ete sf ae b t c: f e r s s n i r n bet fsf r n i ei , h h h s en po oe o sl h ot r r S wa e mp a s w n n c v w
计 算机光 盘软 件 与应 用
2 1 年第 7 00 期
C m u e DS f w r n p l c t o s o p t rC o t a ea dA p ia in 软 件 设 计 开 发
关于算机软件复用技术的若干思考
谢建国 ( 州三汇数 字信息技 术有限公 司,杭 州 3 0 1 杭 10 2) 摘 要 :软件 复 用是软 件 工程 的一 个重要 课题 ,它的提 出解 决 了软件 的开发 效 率和软 件 的可 靠性 等 问题 ,并给上 述 问 题 的解 决提 供 了切 实可行的 方 法。本 文就 计算机 软件 复 用技 术的研 究 意义 ,它 的分 类及其 应 用 , ̄.对 该技 术的展 望进 行 Xz L
Xi Ja g o e in u
(a g h uS n yDg a I omai e h oo yC .Ld,a g h u 3 0 ,hn ) H n z o y wa iiln r t nT c n lg o, t. n zo 1 1 C i t f o H 0 2 a

近年 来人 们认 识到 ,要 真正解 决 软件危 机 ,只有 软件 的工 业 化 生产才 是惟 一可 行 的途径 。在 软件 的工业 化生 产 中,构 件是 核 心和 基础 , “ 复用 ”是必 需 的手段 。软 件复 用就 是将 已有 的软件 及其 有效 成分用 于构 造新 的软件 系 统 。通过 软件 构件技 术 、领 域 工程 、软件 构架 、软 件再 工程 、开放 系统 、软 件过 程 、CS 技术 AE 等诸 多因素 ,可 实现 软件 复用 。基 于 “ 软件 复用 ”的思 想 ,产生 了新 的软件 技术— — 软件 复用技 术 ,该技 术对 于新 时代 的软 件工 程具有 现实 意义 , 本文着 重研 究 该技术 在 实际生 产领 域 中的应 用 , 展望 了软件 复用 技术 的发展 趋势 。 计 算机 软件 复用技 术 的研 究意义 计 算机 利用 率是指 在 正常工 作 时 间 内计算 机 的使用 率 ,计 算 机 资源 利用 率指 计算机 在 正常运 行 中所 需求 的硬件 资源 使 用率 , 如 CU 内存 、 显卡 、硬盘 等硬 件 的使 用率 。计算 机机 房 是高 校 P、 计 算机 及若 干科 目教 学质量 的保 证 。随着 信 息时代 的飞速 发展 , 计 算机 已经 渗透 到各个 领域 ,高 校 为 了满 足 教学 需要 都在 不断 地 扩建 计算 机机房 , 随着 计算 机机房 数 量 的增加 , 模不 断地 扩大 。 规 与此 同时,计 算机 硬件 性能 的提 升发 展更 是迅 猛 ,从而 导致 现在 的 电脑 CU资源 严重 浪 费,利 用率 不到 1% P 5 ,每年 全球 电脑 浪 费 掉 的 电费就达 5% 5 。怎 样加 强对现 有 计算机 的科学 管理 ,积 极推 广应 用 ,提高 使用 效率 ,是 迫切 要求 解决 的 问题 。本文 结合 教 学 实践 经验 及在 计算 机机 房长 期工 作 中所积 累 的经验 ,就 机房 及 教 学管 理 、机房建 设 两方 面谈 谈如 何提 高高校 计 算机 及硬 件资 源利

软件复用技术浅析

软件复用技术浅析

科技资讯科技资讯S I N &T NOLOGY I NFO RM TI ON 2008N O .15SCI ENC E &TECH NOLOG Y I N FOR M A TI ON 信息技术首先让我们先回顾一下软件的发展史,软件开发的发展实际上就是我们思维不断抽象的过程,这种抽象概念非常类似于建模的思考方式:准确地描述事物,忽视次要的细节。

抽象体现在软件开发上就是每个具体项目需要的开发周期越来越短。

20世纪70到80年代,软件开发从机器语言到汇编语言,进而发展到高级语言。

由面向功能编程发展到面向对象编程,使得功能模块的重用演化为类的重用。

进入90年代中期,诞生了基于组件的开发模式(C B D:com pone nt based devel opm e nt ),C BD 将抽象概念带往了一个新的方向,与减少代码数量相反,CB D 将功能各个方面细化分离到不同的、相互隔离层中,如表现层、业务逻辑层、持久层、安全层以及核心层等,并且可以管理这些组件之间的依赖关系,通过这种分离,我们可以提纯细化组件功能,进而产生可以重用的框架,如St r ut s 框架可以重用在大部分应用系统的表现层中,St r ut s +JdonFr am e w or k+Hi be r na t e 是一个框架组合,代表一种架构设计,这种架构设计其实可以重用在大部分应用系统,这种重用我称之为架构级别重用。

时下,在现代商业社会,随着软件工程思想的深入人心,软件开发早已经不再是软件发展早期许多人所追求的那种艺术创作般的开发过程,即软件从头至尾都要经过设计师精心策划,在那时,软件是设计师突显才华,张扬的个性的场所。

如今软件产业正尽可能地朝着工业化、标准化的方向发展。

而软件复用恰是人们朝着这一方向发展的伟大发明。

现在,几乎所有的软件工程师都希望能像硬件工程师那样,自从函数诞生之日起,程序员就花费了大量时间和金钱,试图涉及这样一个系统,它不过是一些组合模型的集合体,由来自世界各地创造的部件构成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

论使用复用设计 1、引言 复用是活动,而不是对象.在创建软件相关的系统的语境中,复用仅仅是非常简单的任何过程,该过程通过复用来自以前开发工作的某些东西来生产(或帮助生产)一个系统。那么,唯一的问题是:复用什么、什么是导致成功复用的过程。 在软件工程的范围内,复用既是旧概念,也是新概念。程序员从最早的计算时代已开始复用概念、对象、论据、抽象和过程,但是我们复用的途径是特定的. 本文对软件复用的讨论,将从以下四个方面进行: 1)软件工程师可以获得一系列可复用的软件制品,这些包括软件的技术表示(例如,规约、体系结构模型、设计和代码)、文档、测试数据,甚至包括过程相关的任务(如,检查技术)。 2)复用过程包括两个并发的子过程:领域工程和软件工程。领域工程的目的是在特定应用领域中标识、构造、分类和传播一组软件制品。然后,软件工程可在新系统开发中选取这些软件制品作为复用。 3)构件复用为软件质量、开发者生产率、以及整个系统成本带来了固有的收益,然而,在复用过程模型被广泛地用于软件产业前,必须克服很多障碍。 4)对可复用构件的分析、设计技术采用和在良好的软件工程实践中使用的相同原则和概念.可复用构件应该在一个环境中设计,该环境为每个应用领域建立标准数据结构、接口协议和程序体系结构。 2、可复用的软件制品 软件复用不仅仅涉及源代码,但是,还涉及多少东西呢?CaperJones定义了可作为复用候选的十种软件制品: 项目计划。软件项目计划的基本结构和许多内容(例如,SQA 计划)均是可以跨项目复用的。这样减少了用于制定计划的时间,也减低了和建立进度表、风险分析和其他特征相关的不确定性。 成本估计。因为经常不同项目中含有类似的功能,所以有可能在极少修改或不修改的情况下,复用对该功能的成本估计。 体系结构。即使当考虑不同的应用领域时,也很少有截然不同的程序和数据体系结构。因此,有可能创建一组类属的体系结构模板(例如,事务处理体系结构),并将那些模板作为可复用的设计框架. 需求模型和规约。类和对象的模型和规约是明显的复用的候选者,此外,用传统软件工程方法开发的分析模型(例如,数据流图)也是可复用的。 设计。用传统方法开发的体系结构、数据、接口和过程化设计是复用的候选者,更常见的是,系统和对象设计是可复用的。 源代码。验证过的程序构件(用兼容的程序设计语言书写的)是复用的候选者。 用户和技术文档。即使特定的应用是不同的,也经常有可能复用用户和技术文档的大部分。 用户界面。可能是最广泛被复用的软件制品,GUI 软件经常被复用.因为它可占到一个应用的60%的代码量,因此,复用的效果非常显著. 数据。在大多数经常被复用的软件制品中,数据包括:内部表、列表和记录结构,以及文件和完整的数据库. 测试用例。一旦设计或代码构件将被复用,相关的测试用例应该“附属于”它们。 应该注意,复用可以扩展到上面所讨论的可交付的软件制品之外,它也包含了软件工程过程中的元素。特定的分析建模方法、检查技术、测试用例设计技术、质量保证过程、以及很多其他软件工程实践可以被“复用”,例如,如果某软件项目组有效地应用净室软件工程方法,该方法可能适用于另一个项目。为了作出决定,有必要定义一组描述功能,它们使得潜在的净室用户能够对其应用作出适当的决策。 3、复用过程 复用过程包括两个并发的子过程:领域工程和软件工程。 3.1、领域工程 领域工程的目的是标识、构造、分类和传播一组软件制品,它们对某特定应用领域中对现存的和未来的软件系统具有很好适用性.其整体目标是建立相应的机制,以使得软件工程师在工作于新的或现存的系统时可以分享这些软件制品—-复用它们。 领域工程包括三个主要的活动——分析、构造和传播。在第20 章中已给出领域分析的概述,然而,本节中将再讨论这个话题。领域构造和传播将在本章以后几节中讨论。 有人争辩说“复用将消失,不是被消除,而是被集成"进软件工程实践之中,随着复用被更多的强调,人们相信在下个十年领域工程将变得和软件工程一样重要。 3。1.1、领域分析过程 在面向对象软件工程范围内领域分析的方法,过程中的步骤定义如下: 1).定义将被研究的领域。 2)。分类从领域中抽出的物项. 3).收集领域中有代表性的应用样本。 4).分析样本中的每个应用。 5)。开发对象的分析模型。 必须注意,领域分析适用于任意软件工程范型,并且可以用于传统的以及面向对象的软件开发。 Prieto-Diaz扩展了上面给出的领域分析的第二个步骤,建议了一个8 步骤的标识和分类可复用软件制品的方法: 1)。选择特定的功能/对象. 2)。抽象功能/对象. 3).定义分类法。 4).标识公共特征。 5)。标识特定的关系. 6)。抽象关系。 7).导出功能模型。 8).定义领域语言。 领域语言使得在领域中进行应用的规约及构造成为可能. 虽然上面的步骤提供了一个有用的领域分析模型,但是它没有提供帮助决定哪些软件制品是复用候选的有用的指南。Hutchinson 和Hindley提出了下面一组实际的问题,它们可以用作标识可复用软件构件的指南: *构件功能对未来的实现工作是需要的吗? *在领域中构件功能的公共性怎样? *在领域中存在构件功能的重复吗? *构件是否依赖于硬件? *在不同实现之间硬件是否保持不变? *硬件细节可被移动到另一个构件吗? *设计为下面的实现进行过足够的优化吗? *我们能够将一个不可复用的构件参数化以使其变成可复用的吗? *构件是否可以仅仅经过少许修改就能够在很多实现中复用吗? *通过修改进行复用是可行的吗? *某不可复用的构件能够通过被分解以产生一组可复用构件吗? *针对复用的构件分解是有效的吗? 关于领域分析的深入讨论不在本书范围之内,更多的信息可见. 3.1。2、结构建模和结构点 当使用领域分析时,分析员寻找在某领域中应用间的重复模式.结构化建模 (Structuralmodeling)是一种基于模式的领域工程方法,应用该方法的前提假设是:每个应用领域有重复的模式(功能的、数据的和行为的),它们具有可复用的潜在可能。 Pollak 和Rissman描述结构建模如下: 结构模型由少量的用于表明清晰的交互模式的结构元素组成。使用结构模型的系统的体系结构通过多个由这些模型元素组成的东西来刻划,这样,在系统的体系结构单元间的复杂交互可以用在这些少量元素间的简单交互模式来描述。 每个应用领域可用一个结构模型来刻划(例如,飞行器电子设备在细节上差异很大,但是在该领域的所有现代软件具有相同的结构模型),因此,结构模型是一种体系结构制品,它可以也应该在领域内所有应用中被复用. McMahon描述结构点(structure Point)为:“在结构模型中的一个独特构成物”,结构点有三个显著的特征: 1).一个结构点是一个抽象,它应该有有限数量的实例。用面向对象的行话来陈述,类层次的规模应是小的。此外,该抽象应该在领域中所有应用中不断重现,否则,用于验证、文档化和传播结构点所需的努力不可能是成本合算的。 2).管理结构点的使用的规则应该是容易理解的。此外,结构点的接口应该相当简单。 3)。结构点应该通过隐藏所有包含在结构点内部的复杂性而实现信息隐蔽,这会减少整个系统可被感知的复杂性。 作为把结构点当作系统的体系结构模式的一个例子,考虑警报系统的软件领域,该领域可能包含如SafeHome①这样简单的系统,或如工业过程警报系统这样复杂的系统,然而,在每种情形,均可以遇到一组可以预测的结构模式: *界面,使用户能够和系统交互。 *范围设置机制,允许用户设置将被测度的参数的范围. *传感器管理机制,和所有的监控传感器通讯。 *反应机制,对传感器管理系统提供的输入作出反应。 *控制机制,使用户能够可以控制监控执行的方式。 这些结构点中的每一个被集成到一个领域体系结构中。 定义跨越一组不同的应用领域的类属的结构点是可能的: *应用前端.GUI,包括所有菜单、面板、输入和命令编辑设施。 *数据库。所有和应用领域相关的对象的仓库。 *计算引擎。操作数据的数值和非数值模型. *报告设施。产生所有种类的输出的功能。 *应用编辑器。根据用户特定需要定制应用的机制. 结构点已被建议作为在软件成本估计中代码行和功能点的替代物。 4、构件复用 关于创建可复用的软件并没有任何神奇之处。抽象、隐蔽、功能独立性、求精、以及结构化程序设计等设计概念,连同面向对象方法、测试、SQA、以及正确性验证方法——所有均对可复用软件构件的创建有贡献。本节中,我们将不重复讨论这些话题,而是考虑特定于复用的问题,它们是对完整的软件工程实践的补充。 4.1、为了复用的分析和设计 数据、功能和行为模型(用一系列不同符号表示)可以被创建以描述特定应用必须完成的任务,书面的规约被用于描述这些模型并生成完整的需求描述。 理想地,分析分析模型以确定模型中的那些指向现存的可复用软件制品的元素.问题是以能够导致“规约匹配”的形式从需求模型中抽取信息。Bellinzoni 及其同事描述了一种针对面向对象系统的方法: 构件被在不同的抽象层次定义和存储为规约、设计和实现类--每个类是来自以前应用的某产品的工程化描述。规约知识——开发知识—-被以复用建议(reuse-suggestion)类的形式存储,它们包括对以构件的描述为基础检索可复用构件及检索后组装和剪裁构件的指导。 使用自动化工具浏览构件库,以试图匹配当前规约中所标记的需求和那些为现存可复用构件(类)描述的需求。领域特征和关键词被用于发现潜在的可复用构件。 如果规约匹配生成符合当前应用需要的构件,设计者可从可复用构件库中提取这些构件并将它们用于新系统的设计中。如果没能找到设计构件,软件工程师必须应用传统的或面向对象的设计方法去创建它们.正是在这点——当设计者开始创建新的构件时——应该考虑为了复用的设计(DFR)。 我们已经提到过,为了复用的设计需要软件工程师应用已有的设计概念和原则,但是,也必须考虑应用领域的特征。Binder建议了作为为了复用的设计的基础而应该考虑的一系列关键问题: 标准数据。应该研究应用领域,并标识出标准的全局数据结构(例如,文件结构或完整的数据库),那么所有设计构件可以使用这些标准数据结构来刻划. 标准接口协议。应该建立三个层次的接口协议:模块内接口的本质、外部的技术(非人)接口的设计、以及人机界面. 程序模板。结构模型可以作为新程序的体系结构设计的模板。一旦已经建立了标准数据、接口和程序模板,则设计者有了一个可在其中创建设计的框架. 符合这个框架的新的构件对以后的复用有更高的概率. 4。2、构造方法 和设计一样,可复用软件制品的构造依赖于本书中其他地方已经讨论过的软件工程方法,构造可以使用传统的第三代语言、第四代语言和代码生成器、可视化程序设计技术、或更高级的工具来完成. 更高级的构造技术的一个有代表性例子是Netron公司开发Frame技术Netron方法定义了一组自适应的、称作Frame 的类属构件。和对象一样,Frame 封装数

相关文档
最新文档