软件复用与软件构件 李健东 李东 杜俊博 王涵杨 许博谦 概 述 -- 软件复 ...

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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