第10章软件复用方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个刻面描述构件某一个方面的特征。刻面分类则是从不 同的侧面对构件进行分类,每一种分类方式称为一个刻面。不 同的刻面根据其重要性可以设置不同的优先级。
刻面 应用领域
对象 功能 编程语言
刻面值 图形用户界面编程
菜单 动态修改菜单项
JAVA
对构件的每个刻面赋予相应的值,用以描述该构件。刻面 分类具有较好的灵活性,易于加入新的刻面值,因此刻面分类 比枚举分类更易于扩展和修改。
构件库系统应提供的主要功能:构件的存储、管理、检 索以及库的浏览与维护等。
关键是支持使用者高效而准确地发现所需的可复用构件。 相关的主要技术是分类方法和检索方法。
支持方便的、友好的用户管理和使用界面。
涉及两个基本问题:
构件分类
构件检索
(1)构件的分类
大多数的构件分类模式可以归纳为以下三种类型: 1)枚举分类
类的分析

复用标准


功能模型

需求规约


⑴ 选择特定的领域 ⑵ 抽取具有最优复用的功能 ⑶ 标识该功能 ⑷ 建立领域分析模型 ⑸ 定义需求规约,得到由需求规约构件和子配置构成的领域模型
领域分析
领域分析是对特定应用领域中共同的特征、知识、需求 的标识、分析和规约。领域分析是特定领域内软件重用的基 础,它的目标就是:发现和挖掘在特定领域内可以被复用的 构件。领域分析活动中输入和输出如图所示:
素,如标准函数库。 纵向复用:指具有较多公共性的应用领域之
间的软件复用。 纵向复用的领域工程实施的活动:
① 实施领域分析 ② 开发可复用的构件 ③ 建立可复用构件库
编码与测试
中南大学医药信息系
2. 实施领域分析 领域分析是在特定应用领域寻找最优复用的过程,
它以公共对象、类、子集合和框架等形式进行标 识,然后对它们进行分析和规约。
应用 软件
构件工程
测试
2. 软件复用的措施
软件复用的重要性
目的:能更快、更好、成本更低地生产软件产品。
实现软件复用应优先采取的措施:
建立支持复用的基础设施(如构件库)。 培训工程师和管理者使用复用软件。 采用促进软件复用的开发方法(如面向对象的开发
方法)。 企业内部采取激励措施。
但通用性、抽象性较差。
(2)软件体系结构复用 可复用较大粒度的软件制品
因为难以抽象出简明的描述,存放体系 结构的库不宜管理
编码与测试
中南大学医药信息系
(3)应用程序生成器
用于对整个软件系统设计的复用。 自动化程度高 特定的应用程序生成器不宜构造
(4)领域特定的软件体系结构的复用
指对特定领域中存在的一个公共体系结构 及其构件的复用。要求对领域有透彻的 理解才能进行领域建模。
(3)几种流行的构件技术
1) COM(Component Object Model)
OLE(Object Linking and Embedding) 组件对象模型技术
COM是Microsoft公司开发的一种构件对象模型,它 提供了使用不同厂商生产的对象的规约。任何人都可 以按此标准独立地开发组件和增值组件,或由若干组 件组建集成软件。
程。
获取需求
分析
设计
实现
测试
打包
收集和分析用户的需求,设计并实现需要另加的构件,对
所提供的可复用构件进行必要的修改,建造和测试整个应 用系统。
编码与测试
中南大学医药信息系
10.4 面向对象与软件复用
面向对象技术的核心概念是“类”,而类的主要特征 封装、继承和多态,都十分有利于复用。
1. 面向对象方法对软件复用的支持
10.3 基于构件的软件开发
CBSD改变了软件的生产方式,提高了软件生 产的效率和质量
1. 构件集成模型
适应性修改
查询 构件理解 构件库
复合
新系统
图10.5 把库中的构件集成到应用系统中
编码与测试
中南大学医药信息系
2. 应用系统工程
ASE(Application System Engineering) 通过复用构件系统开发某个特定应用系统的构件工
每个刻面把构件集合划分为一个子集,各刻面所划分的子集 形成一些较小的交集。
一个构件对每个刻面有一个刻面值,例如:
应用领域 = 计算机绘图
对象 = 椭圆
功能 = 彩色填充,
编程语言 = C++
检索一个构件时,给出一组刻面值,将确定一组 子集合,构件应该在这些子结合的交集中,从其中确 认所需的构件就比较容易。
(3)管理因素 把复用构件和一般软件构件同等看待,把复用看 作可有可无的事。
(4)教育因素 软件科学技术的教育与培训中,缺乏关于软件复 用的内容,缺少专门教材和课程。
编码与测试
中南大学医药信息系
3. 软件复用的粒度 (1)源代码复用
在构件库检索到实用的构件,通过设置参数值, 使之具有新的适应性。
由于构件经过充分的测试,其可靠性高。
输入信息
技术文献 已有应用 专家经验/建议 当前与未来的需求
领域分析
输出信息
领域语言 复用标准 分类方法 功能/行为模型
领域分析的输入和输出
领域分析不是针对某个特定的软件系统,而是针对一类软 件系统的共同的特征、知识和需求。比需求分析更一般、更抽 象、更广泛的特征。
3. 开发可复用构件
(1)单个构件的特征 ①通用性 ②可变性
特点:① 复用程度高
② 前期投入大
编码与测试
中南大学医药信息系
10.2 领域工程
领域:是一组具有相似或相近软件需
求的应用系统所覆盖的区域。
编码与测试
中南大学医药信息系
10.2 领域工程
1、横向复用和纵向复用 领域中的复用可分为:横向复用和纵向复用 横向复用:指复用不同应用领域中的软件元
(2)构件检索
构件库中检索一个构件和在数据库中检索一个记录是不同 的。
构件库检索的不确定性带来两种相互矛盾的结果:检索的 结果可能是一个较大的构件集合,要从中找到所需的构件仍然 很费力;检索得到的集合没有把真正需要的构件包括在内。
解决方法:
(一)一般构件库系统能对提出的检索条件作广义解释。 建立同义词对照表,例如“商品销售”、“售货”、“卖
编码与测试
中南大学医药信息系
软件复用的困难
复用具有许多明显的优点,但目前应用不广泛的主要原因是: (1)技术因素
构件与应用系统之间的差异; 构件要达到一定的规模,才能支持有效的复用; 发现合用构件的困难; 基于复用的软件开发方法和软件过程需要一些新的理论、技 术及支持环境。
(2)人的因素 喜欢自己创造而不喜欢使用别人的东西。
人工制品的使用技术。” 开发伴随复用,开发为了复用
制造软件构件技术——领域工程 使用软件构件技术——基于构件的软件开发
编码wk.baidu.com测试
中南大学医药信息系
领域 工程 领域分析
软件结构开发
可重用构件开发
领域模型
结构模型
可复用 构件库
基于构件 的开发
分析
结构设计
构件选用 构件调整 构件组合
构件更新
货”看作一组同义词; 建立近意词对照表,例如把“商业”、“商场”、“连锁
店”看作一组近意词。 系统首先匹配同义词,再匹配近意词,都可以被包括到广
义结果集合中。
(二)使检索得到的构件集合尽可能不包括对用户无用的构件。 增加更多的刻面与构件属性:较多的刻面和属性值,将得
到更小的子集合文集,减轻最终发现和确认所需构件的难度; 建立构件关键词:根据构件内容提炼关键词,如同学术论
⑴ OOA模型
OOA模型分基础模型和详细模型,基础模型体现更 高层次的抽象,更容易复用。
⑵ OOA和OOD的分工
OOA:注重与问题及系统责任有关的信息 OOD:需考虑与实现条件有关的因素
编码与测试
中南大学医药信息系
10.4 面向对象与软件复用
⑶ 对象的表示 ⑷ 一般-特殊结构 ⑸ 整体-部分结构 ⑹ 实例连接
文的关键词,反映有关构件内容的一些主要信息。 例如,找功能构件的关键词有“压入”、“弹出”、“后
进先出”等等。如果通过刻面和构件属性得到的构件子集较大, 可用关键词作进一步的检索,以缩小搜索范围。
改进构件检索的其它措施: (1)记录用户使用构件库的经验,并根据这些经验改经构
件检索系统; (2)对每个构件给出一段文字的简要介绍; (3)提供较强的人机对话功能; (4)引导用户对自己需求的表达不断精化。
编码与测试
中南大学医药信息系
3) OpenDoc开放式文档接口
OpenDoc是IBM、Apple、Novell等公 司推出的关于复合文档和构件软件的标 准。
编码与测试
中南大学医药信息系
4. 建立可复用构件库
构件库(Component Library)用于对可复用构件进行存 储和管理。它是支持软件复用的必要设施。构件库必须有大 量的可复用构件。
为领域中的所有构件定义一组属性,然后赋 给这组属性一组值。通过属性,查找构件。
• 属性-值分类对可使用的属性数量没有限制, 而呈面分类限定不超过7或8个。
• 属性-值分类中的属性没有优先级,而呈面 可以区分优先级。
• 属性-值分类不具有同义词功能,而呈面可 以查找相关的同义词。
编码与测试
中南大学医药信息系
管理信息系统
第10章 软件复用
中南大学医药信息系
主要内容
1. 软件复用的基本概念 2. 领域工程 3. 基于构件的软件开发 4. 面向对象与软件复用
编码与测试
中南大学医药信息系
10.1 软件复用的基本概念
1. 软件复用的定义
Freeman (1983年) : “在构造新的软件系统过程中,对已存在的软件
在建造构件时,应该提供构件的特化和调整机制。
③易组装性
• 构件的组装分为同构件的组装和异构件的组装。 • 构件应有良好的封装性和良好的接口。 • 构件间应有松散的耦合度 • 应提供便于组装的机制
编码与测试
中南大学医药信息系
(2)领域构件的特征
①标准数据 ② 标准接口协议 ③程序模板
编码与测试
中南大学医药信息系
领域分析又称作领域工程(Domain Engineering),是软件工程的发展与延伸。
领域分析是一项比系统分析更难的工作。
领域分析方法可采用结构化方法和面向对象方 法,而后者将成为主流。
编码与测试
中南大学医药信息系
领域分析的步骤:
技术文件


已有应用


客户考察



专家提议

源 目前/未来的需求
建议用简单的二元关系表示各种复杂 关系和多元关系 ⑺ 类模型模板 ⑻ 用例
编码与测试
中南大学医药信息系
2. 复用技术对面向对象方法的支持
⑴ 类库 人们已经开发了许多基于面向对象语言的编程类库,有利
地支持了源程序级的软件复用。 ⑵ 构件库 构件库可以提炼比对象类粒度更大的可复用构件,如用例
图、交互图等,形式和内容比类库更丰富。 ⑶ 构架库 通过领域分析,建立可重用的OOA模型。 ⑷ 工具 支持复用的软件工具。 ⑸ OOA过程
该方法首先是为构件库中的所有构件定义一组属性,并赋 予相应的属性值。开发人员通过指定一组属性值在构件库中对 构件进行检索。
刻面分类法(Faceted Classification):
支持多重观点对构件进行分类,例如从构件的应用领域、构 件所描述的对象、构件的观点和编程语言等不同的方式来分类。
每一种分类方式称为一个刻面。
通过定义一个层次结构来对构件进行分类。构件库中的可 复用构件按照某种标准被分成了若干个大类,而每个大类中的 构件再被划分成若干个小类,依此类推,这样就形成了一个构 件分类的层次结构,
图形用户界面类
窗口类
菜单类
文字窗 口构件
图形窗 口构件
弹出式菜 单构件
枚举分类的层次结构
普通菜 单构件
系统菜 单构件
2)刻面分类
编码与测试
中南大学医药信息系
2) CORBA(Common Object Request Broker Achitecture)公共对象请求代理体 系结构
CORBA是对象管理组织于1991年发布的一种基 于分布对象技术的公共对象请求代理体系结构, 其目的是在分布式环境下,建立一个基于对象 技术的体系结构和一组规范,实现应用的集成, 使组件在异构环境中可以复用、移植和互操作。
构件可用属性描述,例如构件类型、开发单位、 作者、提交日期等属性。检索时通过构件的属性可以 缩小搜索范围。
刻面和属性都不涉及构件内部实现,只是为了便 于构件的管理、检索和使用。如果把构件比作一只箱 子,其内容如同箱子中装的东西,刻面和属性则如同 箱子外边的标签。
刻面分类法可以看作层次分类法的扩充。
3) 属性-值分类
这个阶段的主要任务是获得“领域模型”,领域模 型的需求描述为“领域需求”。
根据领域需求,领域工程师寻找领域的共性,进而 确定软件的可复用构件。
编码与测试
中南大学医药信息系
领域分析(Domain Analysis)是对一类应用系统的 共同应用领域进行系统化分析,以发现该领域 的共同知识、需求及其应用系统的共同特征。
相关文档
最新文档