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