




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章 软件复用与构件技术 7 高等教育出版社高等教育电子音像出版社 7 1软件复用的基本概念 软件复用就是将已有的软件成分用于构造新的软件系统 以达到提高软件系统的开发质量与效率 开发成本的目的 可复用的软件成分称为可复用构件 ReusableComponent 或组件 可从旧软件中提取 也可以专门为复用而开发 软件复用不仅是对程序的复用 它包括对软件生产过程中任何活动所产生的制成品的复用 如 项目计划 可行性报告 需求定义 分析模型 详细说明 源程序和测试用例等 软件生产过程主要是正向过程 即软件产品从抽象级别较高的形态向抽象级别较低的形态演化 所以较高级别的复用容易带动较低级别的复用 反之则不然 复用级别越高 可得到的回报也越大 因此分析软件 AnalysisWare 和设计软件 DesignWare 的复用备受重视 软件复用的优点 1 提高软件生产率 降低软件生产成本 2 提高软件质量 3 提高互操作性 4 推动标准化 5 支持原型开发 7 1 1软件复用的级别 包括目标代码 也包括文本形式的源代码 受实际环境影响小 可复用机会多 所需修改少 可被复用的分析结果是针对问题域的某些事物或某些问题的抽象程度更高的解法 主要包括测试用例 testcase 的复用和测试过程信息的复用 三种复用方式 从现有系统的分析结果中提取可复用构件用于新系统的分析 用一份完整的分析文档作为输入 生成针对不通软硬件平台和其他实现条件的多项设计 独立于具体应用 专门开发一些可复用的分析构件 7 1 软件复用的形式 一 按照重用活动所跨越的应用领域的类型分1 横向复用 horizontalreuse 也称为水平复用 是指复用活动的范围跨越了几个不同的应用领域 复用的软件产品主要包括数据结构 通用算法 人机界面等软件元素 2 纵向复用 verticalreuse 也称为垂直复用 是指复用活动的范围限制在同一个应用领域或者是一类具有较多共性的应用领域内 二 基于软件复用的软件开发过程的角度分 生产者复用 productreuse 指建立 获取或者重新设计可复用构件的活动 涉及的活动包括 复用的规划 领域分析 构件的开发 构件库的组织和管理 消费者复用 consumerreuse 指使用可复用的构件建立新的系统的活动 涉及的活动包括 应用系统的规划 构件的检索和选择 应用系统中非复用部分的开发 应用系统的组装 复用具有许多明显的优点 但目前应用不广泛的主要原因是 1 技术因素构件与应用系统之间的差异 构件要达到一定的规模 才能支持有效的复用 发现合用构件的困难 基于复用的软件开发方法和软件过程需要一些新的理论 技术及支持环境 7 1 3软件复用的困难 2 人的因素喜欢自己创造而不喜欢使用别人的东西 4 教育因素软件科学技术的教育与培训中 缺乏关于软件复用的内容 缺少专门教材和课程 3 管理因素把复用构件和一般软件构件同等看待 把复用看作可有可无的事 7 2软件构件与构件工程 基于软件构件的软件工程也称为构件工程 是以面向对象的方法为基础 实现软件重用 构造新系统的过程 为了实现软件重用 基于软件构件的软件工程强调领域工程与软件工程同时进行 领域工程创建应用领域的模型 标识 构造 分类和传播一组可重用的软件 软件工程师则在软件开发过程中重用它们 下图给出了一个典型的重用的过程模型 描述了领域工程与软件工程的关系 图 重用的过程模型 一个软件只有在多个系统中被使用才可称为 可复用构件 必须具备的条件 1 独立性 2 完整性 3 可标识性 4 通用性 5 适应性 6 可靠性 7 标准化 7 2 1可复用构件 解决一个相对独立的问题 或大问题中某个相对独立的部分 一个软件只有在多个系统中被使用才可称为 可复用构件 必须具备的条件 1 独立性 2 完整性 3 可标识性 4 通用性 5 适应性 6 可靠性 7 标准化 7 2 1可复用构件 提供较完整的解决 不要遗留很多缺口 让复用者做大量补充 一个软件只有在多个系统中被使用才可称为 可复用构件 必须具备的条件 1 独立性 2 完整性 3 可标识性 4 通用性 5 适应性 6 可靠性 7 标准化 7 2 1可复用构件 构件所解决的问题应该是可标识的 可命名 有简要介绍 便于理解和使用 一个软件只有在多个系统中被使用才可称为 可复用构件 必须具备的条件 1 独立性 2 完整性 3 可标识性 4 通用性 5 适应性 6 可靠性 7 标准化 7 2 1可复用构件 构件解决的问题 应在同类应用中具有一般性 一个软件只有在多个系统中被使用才可称为 可复用构件 必须具备的条件 1 独立性 2 完整性 3 可标识性 4 通用性 5 适应性 6 可靠性 7 标准化 7 2 1可复用构件 应用场合有某些变化时 构件仍是可用的 使构件的某些数据参数化和数据类型参数化 一个软件只有在多个系统中被使用才可称为 可复用构件 必须具备的条件 1 独立性 2 完整性 3 可标识性 4 通用性 5 适应性 6 可靠性 7 标准化 7 2 1可复用构件 要求构件对预计将要使用它的系统是可靠的 一个软件只有在多个系统中被使用才可称为 可复用构件 必须具备的条件 1 独立性 2 完整性 3 可标识性 4 通用性 5 适应性 6 可靠性 7 标准化 7 2 1可复用构件 可复用构件的标准化对于软件复用是至关重要的 7 2 2基于构件的软件工程 基于构件的软件工程与传统的或面向对象的软件工程相比 有显著的差异 它不是针对某个特定的软件系统 而是针对一类软件系统的共同的特征 知识和需求 基于构件的软件的开发过程包括两个并发的子过程 一个是领域工程 另一个是基于构件的开发 领域工程完成一组可复用构件的标示 构造 分类和传播 基于构件的开发完成使用可复用构件构造新的软件系统 领域分析 DomainAnalysis 是针对一类软件系统的应用领域 进行系统化分析 以发现其共同的特征 知识和需求和规约 领域分析是特定类领域软件重用的基础 领域分析又称作领域工程 DomainEngineering 是软件工程的发展与延伸 其目标是 发现和挖掘在特定领域内可以被复用的构件 领域分析活动中输入和输出如图所示 7 2 3领域分析 领域分析 输入信息技术文献已有应用专家经验 建议当前与未来的需求 输出信息领域语言复用标准分类方法功能 行为模型 领域分析的输入和输出 领域分析是一项比系统分析更难的工作 领域分析方法可采用结构化方法和面向对象方法 而后者将成为主流 7 3构件的开发与构件库 7 3 1构件的开发领域分析的结果为构件的选取和开发提供了指导性的原则 此外 构件开发还需要遵循一定的设计概念和原则 构件应该具有相当的一般性和抽象性 能够用于满足一类相似的需求 一个过于特殊的构件是很难被重复使用的 为用户对构件的调整和修改留出余地 即使一个通用性很高的构件也不可能完全适应用户的需求和运行环境 所以一个构件被不同的应用复用时 对它的某些部分进行修改是不可避免的 例如 继承 参数化 模板和宏都是典型的提高构件灵活性和可调整性的机制 7 3 2构件库 构件库 ComponentLibrary 用于对可复用构件进行存储和管理 它是支持软件复用的必要设施 构件库必须有大量的可复用构件 构件库系统应提供的主要功能 构件的存储 管理 检索以及库的浏览与维护等 关键是支持使用者高效而准确地发现所需的可复用构件 相关的主要技术是分类方法和检索方法 支持方便的 友好的用户管理和使用界面 构件分类 构件检索 涉及两个基本问题 大多数构件按枚举 刻面和属性 值分为三类 1 枚举分类通过定义一个层次结构来对构件进行分类 构件库中的可复用构件按照某种标准被分成了若干个大类 每个大类中的构件再分成若干个小类 这样就形成了一个构件分类的层次结构 枚举分类的层次结构 7 3 3构件的分类 2 刻面分类一个刻面描述构件某一个方面的特征 刻面分类则是从不同的侧面对构件进行分类 每一种分类方式称为一个刻面 不同的刻面根据其重要性可以设置不同的优先级 对构件的每个刻面赋予相应的值 用以描述该构件 刻面分类具有较好的灵活性 易于加入新的刻面值 因此刻面分类比枚举分类更易于扩展和修改 刻面分类法支持多重观点对构件进行分类 例如从构件的应用领域 构件所描述的对象 构件的观点和编程语言等不同的方式来分类 每一种分类方式称为一个刻面 每个刻面把构件集合划分为一个子集 各刻面所划分的子集形成一些较小的交集 一个构件对每个每个刻面有一个刻面值 例如 应用领域 计算机绘图对象 椭圆功能 彩色填充 编程语言 C 检索一个构件时 给出一组刻面值 将确定一组子集合 在这些子集合的交集中 确认所需的构件 构件可用属性描述 例如构件类型 开发单位 作者 提交日期等属性 检索时通过构件的属性可以缩小搜索范围 刻面和属性都不涉及构件内部实现 只是为了便于构件的管理 检索和使用 如果把构件比作一只箱子 其内容如同箱子中装的东西 刻面和属性则如同箱子外边的标签 刻面分类法可以看作层次分类法的扩充 3 属性 值分类该方法首先是为构件库中的所有构件定义一组属性 并赋予相应的属性值 开发人员通过指定一组属性值在构件库中对构件进行检索 该分类方法与刻面分类方法有几点不同之处 属性的数量没有限制 而刻面描述一般限制在7或8个刻面 属性没有优先级 而刻面根据其重要程度 有相应的优先级 构件库中检索一个构件和在数据库中检索一个记录是不同的 1 数据库记录按关键字段检索 2 构件库按照子集 刻面值 或属性检索 检索的2个指标 查准率 Precision 查全率 Signature 检索的不确定性带来两种相互矛盾的结果 检索的结果可能是一个较大的构件集合 要从中找到所需的构件仍然很费力 检索得到的集合没有把真正需要的构件包括在内 7 3 4构件检索 解决方法 一 构件库系统能对提出的检索条件作广义解释 建立同义词对照表 例如 商品销售 售货 卖货 看作一组同义词 建立近意词对照表 例如把 商业 商场 连锁店 看作一组近意词 系统首先匹配同义词 再匹配近义词 将匹配结果包括到广义结果集合中 解决方法 二 使检索得到的构件集合尽可能不包括对用户无用的构件 增加更多的刻面与构件属性 将得到更小的子集合交集 降低最终发现和确认所需构件的难度 建立构件关键词 根据构件内容提炼关键词 反映有关构件内容的一些主要信息 例如 找功能构件的关键词有 压入 弹出 后进先出 等 如果通过刻面和构件属性得到的构件子集较大 可用关键词作进一步的检索 以缩小搜索范围 改进构件检索的其他措施 1 记录用户使用构件库的经验 并根据这些经验改进构件检索系统 2 对每个构件给出一段文字的简要介绍 3 提供较强的人机对话功能 4 引导用户对自己需求的表达不断精化 7 3 4基于构件的软件开发 基于构件的软件开发是使用可复用构件组装开发新的应用系统的过程 一 开发过程 1 构件的鉴定考察构件能否满足应用的需要 是否达到应用所需的性能 可靠性 质量的保证 2 构件的调整经过必要的调整和修改的构件 才能适应复用的需要 3 构件的组装将经过鉴定和调整后的构件组装到应用系统中 为此 必须建立一个基础设施 提供构件协同的模型和使构件能够交互并完成共同任务的特定服务 二 基于构件的软件开发特点 1 提高开发质量开发的每个阶段使用的可复用构件在开发过程中都经过严格的测试 故软件的质量高 HP的统计报告表明 使用构件软件比无复用软件的缺陷率减少51 2 开发的效率高开发各阶段都有被复用的软件产品 故效率高 约30 50 的复用 效率提高25 40 3 开发成本低避免人力 物力和财力的不必要浪费 注意 购买第三方构件的风险 在同一个领域的应用系统之间 不但可以找到其共同的软件构件 而且可以发现共同的或相似的软件体系结构 SoftwareArchitecture 专向领域的复用开拓了一种新的复用境界 被复用的不仅是可实现某种局部功能的软件构件 而且可以是一些形成系统总体结构 并把各个可复用构件连接到一起的软件构架 SoftwareFramework 电子产品的主电路板可看成该产品可复用的构架 它把许多可复用的电子器件连接在一起 软件构架是一种由特定领域的软件体系结构所决定的软件构造框架 7 3 5可复用的软件构架 软件构架不是解决软件的某个局部问题 而是描述了软件的总体结构 它描述了一类软件的总体构成情况 包括该软件有哪些主要部件以及各部件之间的关系 但是不涉及每个部件的细节 可复用的软件构架给出一类应用系统在总体构造上的共性或相似性 忽略了各个系统的局部差异 例如 一个超级市场的销售管理系统的软件构架 它包括的类有收款机 商品一览表 商品 供货员 销售事件 账册和上级系统接口等 它只表明一般情况下系统应由哪些类构成 并指出这些类之间的关系 但没有定义每个类 在每个具体情况的系统中 各个类的内部特征可能是不同的 在使用这个软件架构和一些构件组装成一个具体的应用系统时 可以根据该系统的特殊要求选用不同的构件 也可能对构件做一些局部修改 可见 软件构架的使用将把软件开发看作一个组装过程 在软件构架的指导下寻找可复用构件 及开发一些新构件 并进行组装 这种基于构件 架构的组装式软件开发过程是目前很受重视的研究动向 基于构件 构架的软件开发 C Braun等人在1993年提出了 领域专用软件体系结构 Domain SpecificSoftwareArchitecture 简称DSSA 的概念 并指出对基于DSSA的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GSK2636771-Standard-生命科学试剂-MCE
- 2025航天科工天隼实验室招聘4人模拟试卷附答案详解(黄金题型)
- 2025年河南省上蔡第一高级中学招聘教师30人模拟试卷及答案详解(网校专用)
- 2025年户外机柜温控节能项目合作计划书
- 安全培训效果点评课件
- 企业信誉与发展规划承诺函9篇
- 美食电商美食节促销计划
- 2025年甘肃省兰州眼科医院(兰州市第一人民医院眼科)招聘考前自测高频考点模拟试题参考答案详解
- 小学交通安全培训简报课件
- 2025届春季中核集团人才计划招聘模拟试卷附答案详解(突破训练)
- 2025年全国养老护理员资格考试试题及答案解析
- 国企安全环保培训会课件
- 2025年公安院校联考公安院校联考行测题库(附答案)
- 药物的过量反应课件
- 2025年江苏省南京市中考英语真题卷含答案解析
- 商业综合体安保人员培训效果考试试卷及答案
- 炎症与心脑血管疾病
- 天然林保护知识培训内容课件
- UV转印技术简介
- 子宫内膜异位症
- 医院食堂运营与服务简介
评论
0/150
提交评论