软件复用

合集下载

清华大学软件工程课程讲义软件复用

清华大学软件工程课程讲义软件复用
? 为此,首先要界定可复用的“资产” , 然后创建这些资产,对它们打包,编制 相关文档;其次,开发组织必须 建立新 的系统工程过程 ,使开发者有机会确定 复用方案,有机会挑选可复用的构件。
16
1) 创建过程 界定和提供可复用资产, 以满足复用者的需要。可复用资产的 来源可以是新开发的、再工程的、购 置的。
第八章 软件复用
8.1 软件复用概念与复用分类 8.2 软件复用的过程 8.3 领域工程与应用工程 8.4 可复用构件的构造原则和质量标准 8.5 软件构件与可复用构件库
8.6 软件构件的复用
8.7 面向对象的软件复用技术
1
8.1 软件复用概念与复用分类
? 对建立软件目标系统而言,所谓复用, 就是 利用某些早先开发的对建立新软 件系统有用的软件元素来生产新系统 。
4
?这些可复用的软件元素作为软件构件创 建,并以软件构件的方式集成到新应用 系统中。
?所谓构件,是在一个系统中有价值的, 近似独立的,可替换的系统成分。它可 在仔细定义的体系结构环境中履行一个 显式定义的功能。
?所谓软件构件则是一个具有按契约定义 的、依赖上下文环境的组装单元。
5
软件复用需要解决的问题
? 可以从不同角度,对软件复用的形式进 行分类: ? 根据复用活动所跨越的领域,可以分 为横向复用和纵向复用。 ? 根据实现复用的途径,可以分为组装 式复用和生成式复用。 ? 根据复用的方式,可以分为黑盒复用 和白盒复用。
12
? 横向复用和纵向复用: ? 横向复用是复用不同应用领域中的软 件元素,如数据结构、排序算法、人 机界面构件等。为此建立标准函数库。 ? 纵向复用是在一类具有较多公共性的 应用领域之间复用软件构件。
产品需求与现有软件

河海大学研究生课程【软件复用技术】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)(或可复用的构件)来按应用需求组装形成软件应用系统的软件开发方法研究构件软件的两个核心是:如何提取可复用构件以及如何组装成系统并能实现互操作。

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

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

尽管这样 , 软件 复用技术在整 体上对软件产业 的影响并
不 尽 人 意 。 这 是 因 为 由于 技 术 方 面 和 非 技 术 方 面 的种 种 因 素 造 成 的 , 中技 术 上 的不 成 熟 是 一 个 主 要 原 因 。许 多 工 作 其
不同 。它着重通 过比较发现对象 间的相似性 , 即对象 间 的共 同属 性 , 并 以此为 基 础 构造 对 象 类型 。这 些对 象 类 型 按 “ ”“ 类 ,子类 ” 父类 ” 和“ 的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

浅谈软件复用

浅谈软件复用
应用科技
浅谈软件复用
刘捷 ( 中电 科技 集团 公司 第 28 研究 所, 江苏 南京 210007)
[ 摘 要] 系统。 [ 关键词]
真正意义上的软件复用是为了支持软件在应用方向上的演化, 使用“为复用而开发的软件 ( 构件) ”来更快、更好地开发新的应用 软件复用; 软件构件技术; 领域工程; CASE
1 问题的提出 传统的大型应用软件的主要特点有: 重复编码式开发方式和一次开 发持续运行的应用软件。重复编码式开发方式, 使快速开发企业级应用 软件难以实现。一次开发持续运行的方式, 导致了软件的僵化和濒危。 我们不妨参考 PC 电脑硬件设计: 它由一块主板和一系列的设备部 件组成。无论是 CPU、内存条、显卡、声卡、U 盘, 只要符合一定的标 准就可直接在主板上进行插拔和替换。如果软件框架可以做得像主板, 软件组件做得像设备部件, 那么软件就可以像硬件一样实现快速组装和 大规模生产。这实际上就是软件复用所追求的终极目标。 2 软件复用基本概念介绍 2.1 真正的软件复用 在软件演化的过程中, 重复使用的行为可能发生在三个方向上: 时 间上, 使用以前的软件版本作为新版本的基础, 加入新功能, 适应新需 求; 平台上, 以某平台上的软件为基础, 修改其和运行平台相 关的部 分, 使其运行于新平台; 应用上, 将某软件 ( 或其中构件) 用于其他应 用系统中, 新系统具有不同功能和用途。 这三种行为中都重复使用了现有软件。但是第一种复用实际上是软 件维护, 第二种实际上是软件移植, 都不能算真正的软件复用。第三种 复用是为了支持软件在应用方向上的演化, 使用“为复用而开发的软件 ( 构件) ”来更快、更好地开发新的应用系统, 这才是真正的软件复用。 2.2 软件复用的发展 复用概念的第一次引入早在 19 68 年, McIlro y 在其论文 《大量生 产的软件构件》中提出。在此以前, 子程序的概念也体现了复用的思想, 但目的是为了节省当时昂贵的机器内存资源, 并不是为了节省开发软件 所需的人力资源。然而子程序的概念可以用于节省人力资源的目的, 从 而出现了通用子程序库, 供程序员在编程时使用。 2.3 软件复用的关键 分析传统产业的发展, 其基本模式均是符合标准的零部件 ( 构件) 生产以及基于标准构件的产品生产 ( 组装) , 其中, 构件是核心和基础, “复用”是必需的手段。标准零部件生产业的独立存在和发展是产业形 成规模的前提, 软件产业发展完全可以借鉴这种模式。软件产业要发展 并形成规模, 标准构件的生产和构件的复用是关键因素。这正是软件复 用受到高度重视的根本原因。 3 软件复用的实现方法 3.1 与软件复用相关的技术 软件复用技术是一系列的相关技术的综合运用, 包括软件构件技 术; 领域工程、软件构架技术; 软件再工程、开放系统技 术; 软件过 程、CASE 技术以及一些非技术因素。实现软件复用的各种技术因素和 非技术因素是互相联系的, 它们互相结合共同影响软件复用的实现。 3.2 软件构件技术 构件是指应用系统中可以明确辨识的构成成分, 具有相对独立的功 能和可复用的价值。可复用构件应该具有如下特点: 独立性: 构件可独立开发、部署和发布, 软件构件是一个软件组装 单元; 有一组定义良好的接口: 构件通过一组接口对外完成其功能, 接口 可分为对外服务接口和服务请求接口; 封装性: 构件是一个高内聚的软件包, 通过接口对外交互, 屏蔽了 内部实现细节, 构件可通过独立开发封装为符合业界认可的模型标准的

软件复用在软件开发中的应用

软件复用在软件开发中的应用


软 件 复 用 的 概 念
作 性 。 例 如 , 多 个 通 讯 系统 都 采 用 同 一个 软 件 包 若
来 实 现 x. 5协 议 , 那 么 " f : 间 的 交 互 将 更 为 方 2 E 3 ̄ 便 。第 四 , 件 复 用 能 够 支 持 快 速 原 型 设 计 , 用 可 软 利 复 用 构 件 和 构 架 可 以 快 速 有 效 地 构 造 出 应 用 程 序 的 原 型 , 获 得 用 户 对 系 统 功 能 的 反 馈 。第 五 , 件 以 软 复 用 还 能 够 减 少 培 训 开 销 。如 同 硬 件 工 程 师 使 用 相 同 的集 成 电路 块设 计 不 同类 型 的 系 统 一 样 , 件 工 软 程 师 也 将 使 用 一个 可 复 用 构 件库 来 构 造 系 统 , 其 而
工 作 在 可 复 用 资 产 创 建 过 程 中 的 人 们 称 为 创
建 者 , 作 在 应 用 项 目 开 发 过 程 中 的 人 们 称 为 复 用 工
SEP .10 , 2002 N O .9
维普资讯
软 件 技 术
20 0 2年 9月 1 日 0 第 9期
软 件 复 用 的 意 义 , 体 来 说 主 要 体 现 在 5个 方 具
面 。首 先 , 件 复 用 能 够 提 高 软 件 生 产 率 , 而 减 少 软 从 开 发 代 价 。用 可 复 用 的 构 件 构 造 系 统 还 可 以 提 高 系 统 的 性 能 和 可 靠 性 ,因 为 可 复 用 构 件 经 过 了 高 度 的
二 、 件 复 用 的 意 义 软
中 的构 件 都 是 他们 所 熟 悉 和精 通 的 。
三 、 件 复 用 的 方 式 软

软件复用技术在管理软件中的应用

软件复用技术在管理软件中的应用
过 程 。 当 前 讨 论 的 重 点 主 要 局 限 于 基 于
各 企 、 事 业 单 位 为 了 提 高 工 作 效 率
构件模 型通常还提供创建和实现构件的指
导原则。 12 件 构 件 优 越性 .软
和 管 理 水 平 , 纷 纷 投 入 大 量 的 人 力 物
力 ,开 发适合 本单 位需 求 的管理 系统 软 件 。但在 管理 系统软 件 开 发过程 中 普遍
试 案例 和数据 等可 以 作为 软件 构件 。 软 件 构 件应 具备 以 下 几 个特 征 : 自描 述 、
可 定制 、可 集成 ,具有连 接机 制 。构 件 模 型是关于开发可重用软件构件和构件 之 间相互 通信 的一组 标 准描 述 , 它定义 了 构 件 的本 质属性 ,规定 了构 件接 口的 结 构 以及构件和软 件构架之 间的交互机制 。
1 1软件构件 .

软件构件是指软件系统 中具有独立功 能 和可 复用价 值 、 可以 明确辨 识 的构 成
部 分 。3系 统 的 源 代 码 、 需 求 、 需 求 规
e e hd o a p i o t & e U 8 t c nlg t m t o f p l n s f w r S e h o y O y g o
着 开 发 的 效 率 和 质 量 。 据 分 析 , 开 发 在 可 靠 性 、灵活性 和标 准 化方面 得到 很 大的 改
善。
个新的应用 系统 ,有 4 %~6 %的 代码 0 0 是重复以前 的成分 ,有 的甚至高达 8 %。 0
n g g o t a e e e ̄ m n a m s f w r d v l e
约 、软 件 构 架 、文 档 、 测 试 计 划 、 测 l

软件复用技术浅析

软件复用技术浅析

科技资讯科技资讯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)。

第十章 软件复用

10.1软件复用概述 10.1.1 软件复用目的 软件复用使得应用系统的开发不再采用一切从“零”开始的模式,可以充分利用过去应用系统开发中积累的知识和经验,从而可以高效、高质地开发和维护软件系统,主要表现在以下几个方面: 1、缩短软件开发和维护的时间; 2、降低软件开发和维护的成本; 3、保证软件的可靠性; 4、保证软件的一致性; 5、保护投资者的利益。 10.1.2 软件复用的类型 软件复用可以分为横向复用和纵向复用两种类型。横向复用是指复用不同应用领域中的软件成份,如数据结构、算法、人机界面构件等。纵向复用活动的关键在于领域分析:根据应用领域的特征和相似性,预测软件成份的可复用性。一旦确认了软件成份的可复用价值,便进行开发,然后将开发得到的软件制品存入可复用构件库,供未来开发项目使用。 10.1.3 软件复用的内容 软件复用的内容,除了源程序代码外,还有许多其它软件制品,甚至特定的分析建模方法、检查技术、质量保证过程等,均可以被复用。C.Jones定义了10种可能复用的软件制品: (1)项目计划:软件项目计划的基本结构和许多内容,如SQA计划,均可以跨项目复用。 (2)成本估计:由于不同项目中常包含类似的功能,所以有可能在极少修改或不修改的情况下,复用对该功能的成本估计。 (3)体系结构:即使应用论域千差万别,但程序和数据的体系结构很少有截然不同的情形。因此,有可能创建一组类属的体系结构模板,如事务处理结构,将这些模板作为可复用涉及的框架。 (4)需求模型和规格说明:数据流图、类模型等均可以复用。 (5)设计:系统和对象设计等是常见的复用成份。 (6)源代码 (7)用户文档和技术文档:即使特定的应用不同,也有可能复用用户文档和技术文档中的大部分内容。 (8)用户界面:用户界面可能是最广泛地被复用的软件制品。由于它可能占一个应用软件的60%的代码量,所以复用的效果最明显。 (9)数据:在大多数经常被复用的软件制品中,数据包括:内部表、列表和记录结构,以及文件和完整的数据库。 相关的测试用例应该“附属于”它们。一旦设计或代码被复用,测试用例:)10(. 10.1.4 针对复用的过程模型 针对复用的过程模型强调并行的工作方式。领域工程执行一系列工作,以建立一组可以被软件工程师复用的软件制品。 领域工程创建应用领域的模型,以用作在软件应用工程流中分析用户需求的基础。软件体系结构为应用软件的设计提供基础。最后,在可复用软件制品被构造好后(作为领域工程的一部分),它们可以在软件建造活动中被软件工程师所用。领域工程和应用工程是并行的 10.1.5 软件复用成功实施的关键 软件复用的实施除了建立和使用可复用制品库外,还需要在软件开发方法、工具、度量等方面为复用提供支持。除非一个组织明确地和正式地实施复用,否则它不可能重复地利用在多个软件项目中的复用机会。实施复用是困难的,有大量的工作要做,但如果成功地实施复用,那么复用带来的回报是巨大的,下面是成功实施复用的关键。 1. 管理者的支持 获得管理者的支持对于保证成功实施复用是非常重要的。向公司引入复用必须得到各级管理者的积极配合,因为它影响了企业的组织结构、文化和软件技术等方面。 2. 复用组织的支持 要成功地实施复用,必须建立一个正式的复用支持组,以承担可复用软件制品的建立、获取、验证、分类和管理。 3. 复用库的支持 可复用软件制品除了应有较高的质量外,还应容易被快速找到、易于理解,并且能被安全地修改等。复用库就是用来对可复用软件制品进行分类、组织、存储和管理。 4. 复用驱动的方法支持 与复用有关的活动和技术必须加入到有关开发方法中,一方面指导可复用制品的建立人员识别复用机会和侯选的可复用制品,并建立一个可复用制品,另一方面指导应用软件开发人员寻找可复用制品,并利用它们组装成新的应用。 10.1.6 复用成熟度模型 在IBM的RMM(Reuse Maturity Model,缩写为RMM)中,将软件复用水平分为五级。

复用比例 过程 复用制品 范围 工具 成熟度等级 子程序没有复用没有库 个人初始级 特定的过程 宏-20%至20% 非正式的数据原始的复用 模块 小组项目级的过程监控级 库 50% 至包 10% 子系统有配置管理功计划的复用 部门 协调级标准的过程模型能的数据库40% 至30% 框架 复用库 现场应用程序生 大规模的复用 正式的复用 计划级. 牢固级 50%至70% 领域分析 软件组装过程 成器 特定领域体 公司 一组特定领域 至80%90% 系结构 复用库的集合

10.1.7 针对复用的软件项目组织 针对复用的软件项目组织必须有两个职能,并由两个部门分别承担。一个职能是 创建可复用制品,相应的部门是创建者或领域工程部门。另一个职能是利用可复用制品来建立系统,相应的部门是复用者或应用工程部门。 10.2 领域工程 10.2.1 领域工程与应用工程 在单个应用系统工程(简称应用工程)的开发过程中,软件开发人员的任务是在特定的条件下,针对一组特定的需求产生一组特定的设计和实现。 与应用工程相比,领域工程处于一个较高的抽象级别上,对领域中相似系统的共同特征进行抽象,并通过领域模型和领域构架DSSA表示了这些共同特征之间的关系。 领域工程和应用工程是相互联系的。一方面,领域工程的主要信息来源是通过应用工程得到的现有系统,包括需求规格说明、设计、实现等。另一方面,领域工程和应用工程需要解决一些相类似的问题。不过,领域工程要适用于一族系统,而不只是一个系统。因此,领域工程比应用工程要复杂,往往不能事先设计划好,也很难实施管理。 10.2.2 领域工程过程 有关领域工程的基本活动和任务如下: 1)领域分析 领域分析的目标主要是获得领域模型。领域模型描述了领域中应用系统之间的共同需求。 2)领域设计 领域设计的目标是获得领域构架DSSA。领域构架DSSA描述了在领域中表示的需求的解决方案,它不是单个应用系统的设计,而是能够适应领域中多个系统需求的一个高层次的设计。 3)领域实现 领域实现的主要目标是定义将需求翻译到由可复制品创建的系统的机制。 领域工程是一个反复的、逐渐精化的过程,在实施过程中都可能返回到以前的步骤,对以前的步骤得到的结果进行修改和完善后,再回到当前步骤。 10.2.3 领域工程参与人员 领域工程的人员可以划分四种角色:领域专家、领域分析员、领域设计员和领域实现员。 1)领域专家 在领域工程中,领域专家可能包括该领域中应用系统有经验的用户。 2)领域分析员 领域分析员由应具有知识工程背景的有经验的系统分析员来担任。. 3)领域设计人员 领域设计人员应由有经验的软件设计人员来担任。 4)领域实现员 领域实现员应由有经验的程序设计人员来担任。 10.2.4 领域模型 领域模型描述了领域中一些基本的概念,如功能、特性、数据、对象类和需求,以及这些概念间的相互关系,是领域内系统的通用和差异属性、属性和领域概念的意义以及差异属性之间的依赖性的明确表示。一般情况下,领域模型包括以下成分: 1. 领域定义 2. 领域字典 3. 概念模型 4. 特征模型 10.2.5 领域架构 领域构架是使用可复用制品来构造领域中应用系统的高层设计模型。它可以采用过程交互模型,模块结构图等形式,这取决于选择何种类型的模型来表示系统设计。 软件构架描述了构建系统的元素、元素间的交互、指导元素组合的模式以及对这些模式的限制。管道/过滤器模式和层次体系结构模式是两种典型的软件构架模式。 在管道/过滤器模式的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。 在层次体系结构模式中,每一层为上层服务,并作为下层客户。 许多现有的软件系统是两层的体系结构,也称为客户机/服务器体系结构。 三层模型则可以明显地改善系统的可扩展性和可复用能力。 10.2.6 FODA方法 FODA(Feature-Oriented Domain Analysis)方法是由卡内基·梅隆大学的软件工程研究所提出的领域工程方法。它支持对某领域中系统共性和个性的发现、分析和文档记录。FODA方法的有关步骤如下: 1)上下文分析 2)领域建模 3)构架建模 10.3 组件技术概述 10.3.1 组件的定义与复用 组件(Component),亦称构件,是指语义完整、语法正确和有可重用价值的单位软件,它是语义描述、通信接口和实现代码的复合体。组件是具有一定的功能,能够独立工作或能同其它组件装配起来协调工作的程序体,其使用同它的开发、生产无关。组件可分为源代码组件和二进制代码组件。 组件复用有白盒和黑盒两种方式。黑盒是指不作修改的直接引用;白盒指进行适应性修改的引用。 随着对软件复用理解的深入,组件的概念不再局限于源代码和二进制代码,而是包括一切对开发活动有用的信息,如需求规约、软件体系结构(构架)、文档、. 数据等。本书将广义的组件用软件制品(简称制品)来称呼,而组件则仍是指源代码和二进制代码。 10.3.2 组件模型 组件模型通常由基于各种语言开发工具、组件嵌入机制和相关服务(事务、安全、认证、负载均衡等)组成。目前,比较成熟的组件模型有OMG的CORBA、SUN的EJB(Java Bean)和Microsoft的COM/DCOM/COM+。 10.3.3 组件获取与描述 组件获取: (1)从现存组件中获取得符合要求的组件,直接使用或作适应性修改,得到可复用的组件; (2)通过遗产工程,将具有潜在复用价值的组件提取出来,得到可复用的组件; (3)从市场上购买现成的商业组件,即COTS(Commercial Off-The-Shelf)组件; (4)开发新的符合要求的组件。

相关文档
最新文档