软件复用与软件构件 李健东 李东 杜俊博 王涵杨 许博谦 概 述 -- 软件复 ..._第1页
软件复用与软件构件 李健东 李东 杜俊博 王涵杨 许博谦 概 述 -- 软件复 ..._第2页
软件复用与软件构件 李健东 李东 杜俊博 王涵杨 许博谦 概 述 -- 软件复 ..._第3页
软件复用与软件构件 李健东 李东 杜俊博 王涵杨 许博谦 概 述 -- 软件复 ..._第4页
软件复用与软件构件 李健东 李东 杜俊博 王涵杨 许博谦 概 述 -- 软件复 ..._第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件复用与软件构件 李健东李东杜俊博王涵杨许博谦 概述 软件复用是在软件开发中避免重复劳动的解决方案 通过软件复用 可以提高软件开发的效率和质量 当前软件构件技术被视为实现成功复用的关键因素之一 软件复用技术的广泛应用将促进软件产业的变革 这种变革对软件产业的发展将起到极大的推动作用 软件复用的概念软件复用的分类软件复用的意义软件复用的关键技术软件复用的研究与实践构件模型的实例 青鸟构件模型 软件复用的概念 软件复用是指重复使用 为了复用而设计的软件 的过程 相应地 可复用软件是指为了复用目的而设计的软件 与软件复用的概念相关 重复使用软件的行为还可能是重复使用 并非为了复用目的而设计的软件 的过程 或在一个应用系统的不同版本间重复使用代码的过程 在软件演化的过程中 重复使用的行为可能发生在三个维上 1 时间维 2 平台维 3 应用维 这三种行为中都重复使用了现有的软件 它的基本思想非常简单 即放弃那种原始的 一切从头开始的软件开发方式 而是利用复用技术 由公共的可复用构件来组装新的系统 这些可复用构件包括对象类 框架或者软件体系结构等 软件复用的分类 软件复用可以从多个角度进行考察 依据复用的对象 可以将软件复用分为两类 1 产品复用 产品复用指复用已有的软件构件 通过构件集成 组装 得到新系统 2 过程复用 过程复用指复用已有的软件开发过程 使用可复用的应用生成器来自动或半自动地生成所需系统 依据对可复用信息进行复用的方式分类 可以将软件复用区分为 黑盒 Black box 复用 黑盒复用指对已有构件不需作任何修改 直接进行复用 白盒 White box 复用 白盒复用指已有构件并不能完全符合用户需求 需要根据用户需求进行适应性修改后才可使用 依据抽象程度的高低 我们将软件的复用划分为以下几类 1 代码的复用包括目标代码和源代码的复用 其中目标代码的复用级别最低 源代码的复用级别略高于目标代码的复用 程序员在编程时把一些想复用的代码段复制到自己的程序中 但这样往往会产生一些新旧代码不匹配的错误 2 设计的复用这种复用有三种途径 途径是从现有系统的设计结果中提取一些可复用的设计构件 并把这些构件应用于新系统的设计 途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现 也就是把一个设计运用于多个具体的实现 途径是独立于任何具体的应用 有计划地开发一些可复用的设计构件 3 分析的复用复用的途径也有三种 从现有系统的分析结果中提取可复用构件用于新系统的分析 用一份完整的分析文档作输入产生针对不同软硬件平台和其它实现条件的多项设计 独立于具体应用 专门开发一些可复用的分析构件 4 测试信息的复用主要包括测试用例的复用和测试过程信息的复用 前者是把一个软件的测试用例在新的软件测试中使用 后者是在测试过程中通过软件工具自动地记录测试的过程信息 软件复用的意义 通常情况下 应用软件系统的开发过程包含以下几个阶段 需求分析 设计 编码 测试 维护等 当每个应用系统的开发都是从头开始时 在系统开发过程中就必然存在大量的重复劳动 软件复用是在软件开发中避免重复劳动的解决方案 充分利用过去应用系统开发中积累的知识和经验 从而将开发的重点集中于应用的特有构成成分 软件复用的意义主要有以下几点 提高生产率 软件复用最明显的好处在于提高生产率 从而减少开发代价 减少维护代价 使用经过检验的构件 减少了可能的错误 同时软件中需要维护的部分也减少了 提高互操作性 通过使用同一个接口的实现 系统将更为有效地实现与其它系统之间的互操作 支持快速原型 软件复用另一个好处在于对快速原型的支持 即可以快速构造出系统可操作的模型 以获得用户对系统功能的反馈 5 减少培训开销 软件工程师将使用一个可复用构件库 其中的构件都是他们所熟悉和精通的 通过软件复用 在应用系统开发中可以充分地利用已有的开发成果 消除了包括分析 设计 编码 测试等在内的许多重复劳动 从而提高了软件开发的效率 同时 通过复用高质量的已有开发成果 避免了重新开发可能引入的错误 从而提高了软件的质量 软件复用的关键技术 1 软件构件技术构件 Component 是指应用系统中可以明确辨识的构成成分 包括需求 系统和软件的需求规则约 系统和软件的构架 文档 测试计划 测试案例和数据以及其他对开发活动有用的信息 软件构件技术是支持软件复用的核心技术 广义上讲 构件可以是数据 也可以是被封装的对象类 软件构架 文档 测试用例等 一个构件可以小到只有一个过程 也可以大到包含一个应用程序 它可以包括函数 例程 对象 二迸制对象 类库 数据包等 构件具有以下特点 1 构件是一个独立的可部署单位 它能很好地从环境和其它构件中分离出来 2 作为一个部署单位 一个构件不会被部分地部署 第三方也不应该涉及构件的内部实现细节 3 构件是可替换的 构件通过接口与外界进行交互 明确定义的接口是构件之间唯一可视的部分 软件构件的主要研究内容包括 1 构件获取 2 构件模型 3 构件描述语言 4 构件分类与检索 5 构件复合组装 6 标准化 2 软件构架软件构架是对软件系统的系统组织 是对构成系统的构件的接口 行为模式 协作关系等体系问题的决策总和 在基于复用的软件开发中 为复用而开发的软件构架可以作为一种大粒度的 抽象级别较高的软件构件进行复用 而且软件构架还为构件的组装提供了基础和上下文 对于成功的复用具有非常重要的意义 软件构架研究如何快速 可靠地从可复用构件构造系统的方式 着重于软件系统自身的整体结构和构件间的互联 其中主要包括 1 软件构架原理和风格 2 软件构架的描述和规约 3 特定领域软件构架 4 构件向软件构架的集成机制 3 领域工程领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程 它覆盖了建立可复用软件构件的所有活动 其中 领域 是指一组具有公共属性的系统 领域工程可以从已经存在的系统中提取可复用的信息 把关于领域的知识转化为领域中系统共同的规约 设计和构架 使得可以被复用的信息的范围扩大到了抽象级别较高的分析和设计阶段 领域工程包括三个阶段 领域分析 识别和捕捉特定领域中相似系统的有关信息 通过挖掘其内在规律及其特征 并对信息进行有效的整理和组织形成模型的活动 领域设计 通过对领域模型的分析来获取领域架构DSSA Domain 领域实现 依据领域架构组织和开发可复用信息 信息可以从领域工程中获得 值得注意的是这三个阶段是一个反复 迭代 逐步求精的过程 4 软件再工程 5 开放系统技术开放系统 OpenSystem 技术的基本原则是在系统的开发中使用接口标准 同时使用符合接口标准的实现 这些为系统开发中的设计决策 特别是对于系统的演化 提供了一个稳定的基础 同时 也为系统 子系统 间的互操作提供了保证 当前以解决异构环境中的互操作为目标的分布对象技术是开放系统技术中的主流技术 该技术使得符合接口标准的构件可以方便地以 即插即用 的方式组装到系统中 实现黑盒复用 6 CASE技术 CASE是一种智能化计算机辅助软件工程 ComputerAidedSoftwareEngineering CASE 工具 CASE工具的已成为保证软件质量 解决软件危机的主要手段 CASE技术中与软件复用相关的主要研究内容包括 在面向复用的软件开发中 可复用构件的抽取 描述 分类和存储 在基于复用的软件开发中 可复用构件的检索 提取和组装 可复用构件的度量等 CASE技术与软件复用技术相关的主要研究内容包括 在面向复用的软件开发中 可复用构件的抽取 描述 分类和存储 在基于复用的软件开发中 可复用构件的检索 提取 组装及度量等 7 软件过程软件过程 SottwareProcess 又称软件生存周期过程 是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合 一个良好定义的软件过程对软件开发的质量和效率有着重要影响 当前已出现了一些实用的过程模型标准 如CMM ISO9001 TickIT等 8 非技术因素非技术因素包括机构组织 管理方法 开发人员的知识更新 知识产权 标准化问题等 软件复用的研究与实践 1 领域工程卡内基 梅隆大学的软件工程研究所 CMU SEI 提出了面向特征的领域分析方法 Feature OrientedDomainAnalysisMethod 缩写为FODA方法 它支持对某领域中系统共性和个性的发现 分析和文档记录 FODA的过程分为三个阶段 上下文分析 ContextAnalysis 领域建模 DomainModeling 构架建模 ArchitectureModeling 在美国国防部高级研究项目署 ARPA 资助下 WillTracz提出了领域构架方法 Domain SpecificSoftwareArchitecture 缩写为 DSSA方法 该方法有五个阶段 每个阶段可以进一步划分为一些步骤或子阶段 每个阶段包括一组需要回答的问题 一组需要的输入 一组将产生的输出和验证标准 该方法的领域工程过程是并发的 concurrent 递归的 recursive 和反复 iterative 完成该过程可能需要对每个阶段经历几遍 每次增加更多的细节 2 产品线系统产品线系统 ProductLineSystem 是CMU SEI提出的产品开发的组织方式 产品线集中体现了软件复用思想 一个产品线是共享一组共同设计及标准的产品族 从市场角度看是在某市场片断中的一组相似的产品 产品线方法可以通过各种可复用软件构件 如需求 需求规约 构架 代码构件 文档 测试策略和计划 测试案例和数据 开发人员的知识和技能 过程 方法及工具等 产品线也是基于在相同产品价格条件下提高竞争力的商业考虑 3 构件及构件库的标准化北大西洋公约组织 NATO 针对NATO NATO参与国和承包商制定了一组关于软件复用的标准 其中包括 可复用构件开发标准 可复用软件构件库管理标准 软件复用过程标准 制订这些标准的目标是供NATO及其参与国的项目管理部门使用它们来建立复用计划需求和向承包商提供指导 4 构件组装技术5 基于复用的软件开发过程 6 复用成熟度模型 RMM 已出现了几个复用成熟度模型 ReuseMaturityModel RMM 作为对企业内复用水平层次的度量 在IBM的RMM中 将企业的软件复用水平分为五级 这五级分别为 1 初始级 Initial 不协调的复用努力 2 监控级 Monitored 管理上知道复用 但不作为重点 3 协调级 Coordinated 鼓励复用 但没有投资 4 计划级 Planned 存在组织上的复用支持 5 固有级 Ingrained 规范化的复用支持 HP的RMM将复用成熟度与复用率联系起来 也分为五级 1 无复用 20 至20 的复用率 2 挖掘整理 15 至50 的复用率 3 计划复用 30 至40 的复用率 4 系统化复用 50 至70 的复用率 5 面向领域的复用 80 至90 的复用率 构件模型的实例 青鸟构件模型 青鸟工程是在国家支持下的重点科技攻关课题 历经 六五 七五 和 八五 已有十余年的发展 开发成功了集成化软件开发环境JB和JB 制定了软件工业化生产标准 强化采用面向对象技术 支持以软件复用为基线的 基于 构件 构架 模式的软件工业化生产技术 开发基于异构平台 可访问多信息源的应用系统集成 组装 环境青鸟III型 JB3 系统JB3作为一个支持复用的软件开发环境 其构件的有效管理和查询是关键 其核心是一个构件库系统JBCL 青鸟构件库系统用于对可复用构件进行描述 管理 存储和检索 以满足基于 构件 构架 复用的软件开发过程的需要 青鸟软件开发过程 青鸟构件开发流程 青鸟构件模型 青鸟构件模型由外部接口和内部结构两部分组成 外部接口 指构件向其重用者提供的基本信息 包括构件名称 功能描述 对外功能接口 所需构件 参数化属性等 外部接口是构件与外部世界的一组交互点 说明了构件所提供的那些服务 消息 操作 变量 内部结构 包括两方面内容 内部成员以及内部成员之间的关系 其中内部成员包括具体成员与虚拟成员 成员关系包括内部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论