软件复用概论课件

上传人:沈*** 文档编号:167758130 上传时间:2022-11-04 格式:PPT 页数:91 大小:772KB
收藏 版权申诉 举报 下载
软件复用概论课件_第1页
第1页 / 共91页
软件复用概论课件_第2页
第2页 / 共91页
软件复用概论课件_第3页
第3页 / 共91页
资源描述:

《软件复用概论课件》由会员分享,可在线阅读,更多相关《软件复用概论课件(91页珍藏版)》请在装配图网上搜索。

1、 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程声声 明明 本课件为计算机与信息学院2014级硕士研究生课程软件复用专用;本课件为非正式出版物,仅供选课同学参考,不得外传。如有不当之处,欢迎交流、指正;在制作本课件的过程中,参阅了大量的学术论文、论著和教材,对它们的作者表示真诚的感谢。软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程What is Reuse?What is Software Reuse?软件复用软件复用 硕士研究生课硕士研究生课程程 一位程序员编写了一些排序程序,通过不同参数调用多次

2、使用;C程序员编写了解三角方程的程序,整个程序共调用了12次正弦函数;有人写了段程序我COPY过来,然后再改改 有个现成的控件(例如:COM控件、EJB、CORBA对象),我把它嵌入到我的软件系统中.软件复用软件复用 硕士研究生课硕士研究生课程程 为什么软件复用会成为一个问题,而硬件复用不会成为问题?软件复用在那些方面与软件设计不同?软件复用解决了哪些问题?软件复用软件复用 硕士研究生课硕士研究生课程程复用很神吗?软件复用软件复用 硕士研究生课硕士研究生课程程.复用(Reuse)既不是杀手锏,也不是神奇的减肥药.复用是一种食谱和锻炼程序 Paul G.Basset,1997 软件复用软件复用

3、硕士研究生课硕士研究生课程程软件复用是在软件开发中避免重复劳动的解决方软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率案。通过软件复用,可以提高软件开发的效率和质量。和质量。它通常可分为它通常可分为产品复用产品复用和和过程复用过程复用两条途径。基两条途径。基于构件于构件(Components)(Components)的复用是产品复用的主要的复用是产品复用的主要形式,也是软件复用研究的重点。形式,也是软件复用研究的重点。当前软件构件技术被视为实现成功复用的关键因当前软件构件技术被视为实现成功复用的关键因素之一。素之一。软件复用软件复用 硕士研究生课硕士研究生课程

4、程 软件复用软件复用 硕士研究生课硕士研究生课程程1、为什么可以复用?、为什么可以复用?世界上没有两个完全相同的软件(完全相同就不是两个软件了)是,任一个个开发的软件,一个个的软件项目和产品中一般有超过80%的成分是前人曾经开发过的 软件复用软件复用 硕士研究生课硕士研究生课程程 通常应用软件系统的开发过程包含以下几个阶段通常应用软件系统的开发过程包含以下几个阶段:需求分析、设计、编码、测试、维护等需求分析、设计、编码、测试、维护等.应用系统通常包含三类成分应用系统通常包含三类成分:通用基本构件:是特定于计算机系统的构成成分。通用基本构件:是特定于计算机系统的构成成分。领域共性构件:是应用系统

5、所属领域的共性构成成领域共性构件:是应用系统所属领域的共性构成成分。分。应用专用构件:是每个应用系统的特有构成成分。应用专用构件:是每个应用系统的特有构成成分。软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统(Application)的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了包括分析、设计、编码、测试等在

6、内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程2.2.复用的基本概念复用的基本概念 软件复用是指重复使用“为了复用目的而设计的软件”的过程。相应地,可复用软件是指为了复用目的而设计的软件.与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”

7、的过程,或在一个应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用。软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程CASE技术软件过程非技术因素领域工程构件、构架获取软件构件技术应用系统领域软件再工程 软件构架技术 开放系统技术构件标准化与描述构件分类、存储与检索构件组装遗产软件系统

8、构件库系统 软件复用软件复用 硕士研究生课硕士研究生课程程1 1 软件构件技术软件构件技术 构件构件(Component)是指应用系统中可以明确辨识的构是指应用系统中可以明确辨识的构成成分。而可复用构件成成分。而可复用构件(Reusable Component)是是指具有相对独立的功能和可复用价值的构件。指具有相对独立的功能和可复用价值的构件。随着对软件复用理解的深入随着对软件复用理解的深入,构件的概念已不再局限构件的概念已不再局限于源代码构件于源代码构件,而是延伸到需求、系统和软件的需而是延伸到需求、系统和软件的需求规则约、系统和软件的构架、文档、测试计划、求规则约、系统和软件的构架、文档、

9、测试计划、测试案例和数据以及其他对开发活动有用的信息测试案例和数据以及其他对开发活动有用的信息.这些信息都可以称为可复用软件构件。这些信息都可以称为可复用软件构件。软件复用软件复用 硕士研究生课硕士研究生课程程可复用构件应具备以下属性可复用构件应具备以下属性 有用性(Usefulness):构件必须提供有用的功能;可用性(Usability):构件必须易于理解和使用;质量(Quality):构件及其变形必须能正确工作;适应性(Adapt ability):构件应该易于通过参数化等方式在不同语境中进行配置;可移植性(Portability):构件应能在不同的硬件运行平台和软件环境中工作。软件复用

10、软件复用 硕士研究生课硕士研究生课程程其主要研究内容包括:(1)构件获取:有目的的构件生产和从已有系统中挖掘提取构件;(2)构件模型:研究构件的本质特征及构件间的关系;(3)构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题;(4)构件分类与检索:研究构件分类策略、组织模式及检索策略,建立构件库系统,支持构件的有效管理;(5)构件复合组装:在构件模型的基础上研究构件组装机制,包括源代码级的组装和基于构件对象互操作性的运行级组装;(6)标准化:构件模型的标准化和构件库系统的标准化。软件复用软件复用 硕士研究生课硕士研究生课程程2 2 软件构架软件构架 软件构架是对系统整体结构设计

11、的刻划软件构架是对系统整体结构设计的刻划 ,包括全包括全局组织与控制结构局组织与控制结构 ,构件间通讯、同步和数据访问的构件间通讯、同步和数据访问的协议协议 ,设计元素间的功能分配设计元素间的功能分配 ,物理分布物理分布 ,设计元素设计元素集成集成 ,伸缩性和性能伸缩性和性能 ,设计选择等设计选择等.软件构架研究如任快速、可靠地从可复用构件构软件构架研究如任快速、可靠地从可复用构件构造系统的方式造系统的方式 ,着重于软件系统自身的整体结构和构着重于软件系统自身的整体结构和构件间的互联件间的互联 .其中主要包括其中主要包括 :软件构架原理和风格软件构架原理和风格 ,软件构架的描述和规约软件构架的

12、描述和规约 ,特定领域软件构架特定领域软件构架 ,构件向构件向软件构架的集成机制等。软件构架的集成机制等。软件复用软件复用 硕士研究生课硕士研究生课程程重要的意义:通过对软件构架的研究,有利于发现不同系统在较高级别上的共同特性;获得正确的构架对于进行正确的系统设计非常关键;对各种软件构架的深入了解,使得软件工程师可以根据一些原则在不同的软件构架之间作出选择;从构架的层次上表示系统,有利于系统较高级别性质的描述和分析.在基于复用的软件开发中,为复用而开发的软件构架可以作为一种大粒度的、抽象级别较高的软件构件进行复用,而且软件构架还为构件的组装提供了基础和上下文,对于成功的复用具有非常重要的意义.

13、软件复用软件复用 硕士研究生课硕士研究生课程程3 3 领域工程领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动.领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域 领域工程包括三个主要的阶段.(1)(1)领域分析领域分析(2)(2)领域设计领域设计(3)(3)领域实现领域实现 软件复用软件复用 硕士研究生课硕士研究生课程程(1)领域分析领域分析:这个阶段的主要目标是建立领域分析模型这个阶段的主要目标是建立领域分析模型它包含三项活动:建立领域需求定义它包含三项活动:建立领域需求定义建立领域面向对象分析模型建立领域面向对

14、象分析模型建立领域术语字典建立领域术语字典其中,建立领域需求定义又可以划分为其中,建立领域需求定义又可以划分为确定领域业务模型确定领域业务模型确定领域业务过程确定领域业务过程确定领域需求确定领域需求建立领域需求定义建立领域需求定义与建立面向对象分析模型构成领域分析的主线与建立面向对象分析模型构成领域分析的主线领域分析模型描述领域中系统之间的共同的需求领域分析模型描述领域中系统之间的共同的需求领域分析模型主要包括:领域术语字典、领域分析模型主要包括:领域术语字典、领域需求定义、领域面向对象分析模型等领域需求定义、领域面向对象分析模型等 软件复用软件复用 硕士研究生课硕士研究生课程程建立领域需求定

15、义建立领域面向对象分析模型建立领域术语字典确定术语确定解释确定同义词确定领域中共同的需求建立面向对象分析模型建立与领域需求定义间的可追踪性确定领域中需求的变化性确定具有变化性的需求间的关系复审领域分析过程:领域分析过程:软件复用软件复用 硕士研究生课硕士研究生课程程(2)领域设计领域设计:这个阶段的主要目标是这个阶段的主要目标是针对领域分析阶段获得的针对领域分析阶段获得的对目标领域的问题域和系统责,的认识对目标领域的问题域和系统责,的认识开发出相应的领域设计模型开发出相应的领域设计模型并且显示地表示出来并且显示地表示出来领域设计模型的具体表现形式为:领域设计模型的具体表现形式为:特定于领域的软

16、件构架:特定于领域的软件构架:DSSADomain-Specific Software Architecture它要保持与领域分析模型中它要保持与领域分析模型中需求变化的可追踪性需求变化的可追踪性 软件复用软件复用 硕士研究生课硕士研究生课程程复审结合设计模式,实现变化性进行初步的领域设计问题域部分人机交互部分控制接口部分数据接口部分建立与领域分析模型的可追踪性领域设计过程:领域设计过程:软件复用软件复用 硕士研究生课硕士研究生课程程(3)领域实现领域实现该阶段的主要目标是该阶段的主要目标是依据领域分析模型和依据领域分析模型和DSSA开发领域特定的构件与构架开发领域特定的构件与构架它们它们 可

17、以从现有系统中提取得到可以从现有系统中提取得到也可以通过重个开发而得到也可以通过重个开发而得到在可复用构件与在可复用构件与DSSA之间需要建立可追踪性之间需要建立可追踪性以将可复用构件与其规约联系起来以将可复用构件与其规约联系起来从方便使用角度从方便使用角度应尽量提供黑盒式复用方式应尽量提供黑盒式复用方式 软件复用软件复用 硕士研究生课硕士研究生课程程DSSA和构件的详细设计DSSA和构件的实现从现有系统中利用再工程技术提取DSSA和构件对现有构件进行包装依据领域分析模型和DSSA组织可复用构件库依据详细设计重个实现DSSA和构件复审领域实现过程:领域实现过程:软件复用软件复用 硕士研究生课硕

18、士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程领域领域应用应用应用应用应用应用应用应用领域工程领域工程D DA1A1B1B1C1C1A2A2B2B2领域模型领域模型/构架构架领域可复用构件领域可复用构件输入输入输出输出领域工程师领域工程师最终用户最终用户领域专家领域专家应用系应用系统开发统开发需求分析员、需求分析员、软件设计者软件设计者.应应用用工工程程领域工程基本过程:领域工程基本过程:软件复用软件复用 硕士研究生课硕士研究生课程程 可复用信息具有领域特定性可复用信息具有领域特定性 领域具有内聚性和稳定性领域具有内聚性和稳定性可复用信息具有领域特定性可复用信息具有领域特定性

19、是指:是指:可复用性不是信息的一种孤立的属性可复用性不是信息的一种孤立的属性 依赖于特定的问题和特定的问题解决方法依赖于特定的问题和特定的问题解决方法 因此,在识别、获取和表示可复用信息时因此,在识别、获取和表示可复用信息时应采用面向领域的策略应采用面向领域的策略为什么领域工程是获取构件的主要途径?为什么领域工程是获取构件的主要途径?软件复用软件复用 硕士研究生课硕士研究生课程程领域具有内聚性和稳定性领域具有内聚性和稳定性 是指:是指:关于领域的解决方法是充分内聚和充分稳定的关于领域的解决方法是充分内聚和充分稳定的因此,一个领域的规约和实现知识的内聚性因此,一个领域的规约和实现知识的内聚性 使

20、得可以通过一组有限的、相对较少的使得可以通过一组有限的、相对较少的 可复用信息来解决大量问题可复用信息来解决大量问题领域的稳定性领域的稳定性使得获取的信息可以在较长的时间内多次复用使得获取的信息可以在较长的时间内多次复用 软件复用软件复用 硕士研究生课硕士研究生课程程通过领域工程获得软件构件通过领域工程获得软件构件/构架构架 面向领域的构件面向领域的构件 数目大数目大 面向领域的构架面向领域的构架 更具体更具体 面向领域的复用面向领域的复用复用程度高复用程度高 因此:因此:领域工程领域工程 是是 获取构件获取构件/构架的构架的 主要途径主要途径 软件复用软件复用 硕士研究生课硕士研究生课程程4

21、 软件再工程软件再工程 要解决的问题:要解决的问题:现有软件系统如任适应当前技术的发展及需求的变化,采用更易于理解的、适应变化的、可复用的系统软件构架并提炼出可复用的软件构件?现存大量的遗产软件系统(Legacy Software)由于技术的发展,正逐渐退出使用,如任对这些系统进行挖掘、整理,得到有用的软件构件?已有的软件构件随着时间的流逝会逐渐变得不可使用,如任对它们进行维护,以延长其生命期,充分利用这些可复用构件?软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程5 5 开放系统技术开放系统技术 开放系统技术的基本原则是在系统的开放系统技术的基本

22、原则是在系统的开发中使用接口标准开发中使用接口标准,同时使用符合接同时使用符合接口标准的实现口标准的实现.对于系统的演化,提供了一个稳定的基础。系统(子系统)间的互操作提供了保证.。对于稳定的接口标准的依赖,使得开发系统更容易适应技术的进步 解决异构环境中的互操作为目标 开放系统技术为软件复用提供了良好的支持,在符合接口标准的前提下,构件就可以独立地进行开发。软件复用软件复用 硕士研究生课硕士研究生课程程6 6 软件过程软件过程 软件过程又称软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合.一个良好定义的软件过程对软件开发的质量和效率有着重要影响.已出现了一些实

23、用的过程模型标准,如、90 0 1 等.然而,基于构件复用的软件开发过程和传统的一切从头开始的软件开发过程有着实质性的不同,探讨适应于软件复用的软件过程自然就成为一个迫切的问题。软件复用软件复用 硕士研究生课硕士研究生课程程7 技术技术 技术对软件工程的很多方面,例如分析、设计、代码生成、测试、版本控制和配置管理、再工程、软件过程、项目管理等等,都可以提供有力的自动或半自动支持.技术中与软件复用相关的主要研究内容包括:在面向复用的软件开发中,可复用构件的抽取、描述、分类和存储;在基于复用的软件开发中,可复用构件的检索、提取和组装;可复用构件的度量等等 软件复用软件复用 硕士研究生课硕士研究生课

24、程程8 非技术因素非技术因素 机构组织如任适应复用的需求;管理方法如任适应复用的需求;开发人员知识的更个;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题等等 软件复用软件复用 硕士研究生课硕士研究生课程程三、复用的研究与实践活动三、复用的研究与实践活动 1 领域工程领域工程 2 产品线系统产品线系统 3 构件及构件库的标准化构件及构件库的标准化 4 构件组装技术构件组装技术 5 基于复用的软件开发过程基于复用的软件开发过程 6 复用成熟度模型复用成熟度模型()软件复用软件复用 硕士研究生课硕士研究生课程程1 领域工程领域工程 领域

25、:是指一组具有:是指一组具有相似 或或相近 需求的软件需求的软件应用系统所覆盖的功能区域应用系统所覆盖的功能区域 领域工程:是为一组相似或相近系统的是为一组相似或相近系统的应用工程应用工程 建建立基本能力立基本能力和和必备基础必备基础的过程,它覆盖了建立可的过程,它覆盖了建立可复用软件构件的所有活动复用软件构件的所有活动 应用工程:是开发单个特定应用系统的活动是开发单个特定应用系统的活动n应用工程:应用工程:针对一组特定的需求,产生一个特定的解决方案n领域工程:领域工程:针对一个领域中的所有系统,而不局限于某个特定的系统n与应用工程相比与应用工程相比,领域工程处于一个较高的抽象级别上 软件复用

26、软件复用 硕士研究生课硕士研究生课程程领域模型领域模型DSSA系统需求系统需求系统体系结构系统体系结构设计设计系统实现系统实现C CCC CCC CCC CCR1R2 or R3R4(opt)CSCSCSCS需求需求体系体系结构结构设计设计设计设计与与实现实现系统系统1需求需求体系体系结构结构设计设计设计设计与与实现实现系统系统n系统系统n+1 软件复用软件复用 硕士研究生课硕士研究生课程程 研究实践表明,软件复用在特定领域内更容易获得成功:(一)卡内基梅隆大学的软件工程研究所(/)提出了面向特征的领域分析方法(Feature Oriented Domain Analysis Method,缩

27、写为FODA方法),的过程分为三个阶段:软件复用软件复用 硕士研究生课硕士研究生课程程(二)WillTracz提出了领域构架方法(Domain Specific Software Architecture,缩写为 DSSA),该方法有五个阶段.每个阶段可以进一步划分为一些步骤或子阶段.每个阶段包括一组需要回答的问题,一组需要的输入、一组将产生的输出和验证标准.该方法的领域工程过程是并发的、递归的和反复的.或者可以说,它是螺旋型的.完成该过程可能需要对每个阶段经历几遍,每次增加更多的细节。软件复用软件复用 硕士研究生课硕士研究生课程程(1)定义领域范围定义领域范围:重点是确定领域中包含哪些元素以

28、及领域工程过程到任时结束.这个阶段的一个主要输出是领域中的应用需要满足的一系列用户的需求;(2)定义领域特定的元素定义领域特定的元素:目标是制订领域字典和领域术语的同义词词典.在领域工程过程的前一个阶段产生的高层次块图中增加更多的细节,特别是识别领域中应用间的共同性和差异性;(3)定义领域特定的设计和实现需求约束定义领域特定的设计和实现需求约束:目标是描述解空间中的特性.不仅要识别约束,并且要记录约束对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论;(4)定义领域模型和构架定义领域模型和构架:目标是产生,并说明构成它的模块或构件的语法和语义;(5)产生、搜集可复用产品产

29、生、搜集可复用产品:目标是为增加构件使得它可以被用来产生问题域中的个应用.软件复用软件复用 硕士研究生课硕士研究生课程程(三)领域分析过程(Domain Analysis Process)分四个阶段,每个阶段用结构化分析与设计技术描述。(1)准备领域信息:定义领域,按自顶向下方式完成高级功能分析;(2)分类领域实体:按自底向上方式识别和描述对象及操作,并构造领域字典;(3)导出领域模型:结合上述信息,构造基于可复用构件的类属功能模型;(4)扩展模型并分类:应用并确认模型.软件复用软件复用 硕士研究生课硕士研究生课程程2 2 产品线系统产品线系统“软件产品线”是是CMU(Carnegie Mel

30、lon University)的的SEI(Software Engineering Institute)提出的。提出的。一个产品线(Product Line):是共享一组是共享一组公共的、的、可可管理的特性,并且满足的特性,并且满足特定市场需求的产品集需求的产品集合。合。产品线方法必将成为个世纪中占主导地位的必将成为个世纪中占主导地位的软件生产模式 产品的灵活性是市场的必然需求,而产品线将通过产品的灵活性是市场的必然需求,而产品线将通过裁剪,生产出满足特定用户或用户群需要的产品。,生产出满足特定用户或用户群需要的产品。从开发者的角度,产品线的成功在于产品之间通过共从开发者的角度,产品线的成功在

31、于产品之间通过共性的性的共享,达到了生产上经济的目的。,达到了生产上经济的目的。软件复用软件复用 硕士研究生课硕士研究生课程程个产品(系统)的开发从“创造编程创造编程”变为“集成组装集成组装”一个软件产品线软件产品线是满足下列性质的一组软件系统:共享一组相同的、可管理的特性集合 满足一类特定的市场需求 以预先规定的方式基于公共核心资产集开发在一个软件产品线中,新产品的形成新产品的形成通过以下步骤:从公共资产库中选取合适的构件使用预定义的变化性机制进行必要裁剪,如参数化、继承必要时增加个的构件在整个产品线范围内共同的SA指导下,进行构件组装,形成系统 软件复用软件复用 硕士研究生课硕士研究生课程

32、程 软件复用软件复用 硕士研究生课硕士研究生课程程系统体系结构体系结构组资产资产支持组监督和控制通讯和空管智能和信息竞争命令和控制标准、可操作的体系结构软件资产适用性报告系统项目办公室用户需要需求需求产品开发活动工程中心美国空军电子系统中心美国空军电子系统中心(ESC)产品线产品线ESC产品线的组织结构 软件复用软件复用 硕士研究生课硕士研究生课程程产品线体系结构开发选择PLEC;评价PL体系结构体系结构视图数据性能安全性.系统体系结构设计(产品)产品线工程中心产品线体系结构体系结构及剪裁原则产品线需求系统体系结构剪裁后的需求;体系结构选择系统体系结构组SPO用户产品线或系统需要产品线规约系统

33、体系结构组的职能系统体系结构组的职能(ESC)产品线产品线 软件复用软件复用 硕士研究生课硕士研究生课程程工程中心体系结构组软件供应商工程中心体系结构组SPOs供应商支持的产品列表适用性测试资产库标识企业级资产工程中心,体系结构组,SPOs资产支持组资产支持组的职能资产支持组的职能(ESC)产品线产品线 软件复用软件复用 硕士研究生课硕士研究生课程程定义和演化产品线体系结构生成应用系统(产品)开发/演化/维护产品线资产资产体系结构体系结构产品线工程中心SPO资产支持组系统体系结构组工程中心的职能工程中心的职能(ESC)产品线产品线 软件复用软件复用 硕士研究生课硕士研究生课程程CelsiusT

34、ech的的SS2000产品线产品线 CelsiusTech公司是一家瑞典的防务系统供应商,采用产品线方法为世界各地的海军开发上百万行的嵌入式舰船指挥和控制系统族。该产品线中产品的变化性表现在:该产品线中产品的变化性表现在:硬件配置硬件配置底层的操作系统底层的操作系统船上使用的设备和传感器船上使用的设备和传感器人机界面,包括表示语言人机界面,包括表示语言其他许多需求上的差异其他许多需求上的差异使用产品线方法,使用产品线方法,这些系统的开发时间从这些系统的开发时间从9年降到年降到2年以下年以下硬件和软件的花费比例从硬件和软件的花费比例从35:65变为变为80:20软件复用率软件复用率80%雇员数量

35、也减少了雇员数量也减少了 软件复用软件复用 硕士研究生课硕士研究生课程程SS2000通用项目经理SS2000通用项目经理构架组体系结构组客户项目管理客户项目管理集成和配置管理组集成和配置管理组市场市场C3C3MMIMMI武器武器通用服务通用服务库系统库系统产品线构件开发组-权限和责,为产品线体系结构的定义、集成和一致性-较小,面向技术-管理使用产品线软件资产库建立的单个客户的产品-支持反复-管理软件资产的集成和产品线中项目间的一致性SS2000产品线的组织结构产品线的组织结构SS2000产品线产品线 软件复用软件复用 硕士研究生课硕士研究生课程程3 3 构件及构件库的标准化构件及构件库的标准化

36、 美国军方与政府资助的项目中,已建立了若干构件库系统,如、(软件工程技术资产源)、(国防软件仓库系统)等。(可复用国防软件综合方法)是NASA计划专门研究如任达到美国国防部(DoD)建立未来系统化软件复用制度的目标.设计支持多领域作战的可复用软件库.还包括支持最终用户的库维护和浏览工具.软件复用软件复用 硕士研究生课硕士研究生课程程 DSRS(国防软件仓库系统)是一个软件复用库活动,专门开发软件复用支持中心(SRSCS)网络,每个SRSC都是一个国防可复用资产库.DSRS提供支持存储和检索的自动化分布式库.软件工程技术资产源(ASSET)“国防高级研究计划署(DARPA)”最初作为STARS(

37、可适配可靠软件系统软件技术)计划的一个子计划,发起ASSET计划,该计划的目的是为可复用软件资产提供在线仓库.软件复用软件复用 硕士研究生课硕士研究生课程程 由DARPA发起,由美国军方、SEI和MITRE支持的STARS项目在此基础上考虑了开放体系结构的构件库之间共享资源和无缝互操作的问题,并于 1 992年提交了ALOAF(Asset Library Open Architecture Framework,开放体系结构的构件库框架)软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程ALOAF的短期目标:1、是尽快实现不同复用库间的构件共享;2、长

38、期目标是实现异质构件库间的无缝互操作,包括构件及其描述的共享及丰富的构件库工具集的易移植性.其基本观点是软件系统的开发将演化成一种过程驱动的、特定于领域的和基于复用的技术支持范型.软件复用软件复用 硕士研究生课硕士研究生课程程认为构件库是软件工程环境()的子系统之一,其提供的功能应与框架的参考模型一致.构件库系统利用提供的服务,并向上层提供服务.在构件库和复用服务方面对参考模型进行补充.与的关系如图 7所示.软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程 可复用库互操作组织(Reuse Library Interoperablity Group,

39、缩写为)互操作性,即复用库间软件构件的共享,可能是在短期内提高效率、增加复用库的价值和影响,并在长期中避免不兼容协议的爆炸性增长的关键.因此,的目标是致力于开发可互操作性的解决方案.参与国和承包商制定了一组关于软件复用的标准,其中包括“可复用构件开发标准”、“可复用软件构件库管理标准”、“软件复用过程标准”,制订这些标准的目标是供及其参与国的项目管理部门使用它们来建立复用计划需求和向承包商提供指导 软件复用软件复用 硕士研究生课硕士研究生课程程参考:http:/reuse/软件复用软件复用 硕士研究生课硕士研究生课程程4 构件组装技术构件组装技术 是公共对象请求代理体系结构.成为支持分布式系统

40、中对象技术的中间件设施.的对象请求代理()作为转发消息的中间件,实现了对象间的无缝集成和互操作 是微软公司开发的分布式构件对象模型,支持分布式系统中的面向对象技术。.NET提供了全面的开发及集成运行环境 J2EE有标准的构件模型,同时也提供了组装、集成支持。这些技术的流行为构件组装提供了很好的技术支持,同时它们也为构件提供了实现标准.软件复用和分布对象技术的结合使得即插即用的构件黑盒组装成为可能.软件复用软件复用 硕士研究生课硕士研究生课程程5 5 基于复用的软件开发过程基于复用的软件开发过程 Caldieri和Basili提出了一种工厂化的软件生产方式 软件复用软件复用 硕士研究生课硕士研究

41、生课程程在这种模型中,构件生产组和系统开发组间严格按照生产者消费者关系进行,务分工,经验工厂负责生产、提供构件,项目组不再编程,而是通过从经验工厂中请求所需的构件集成组装而得到最终所需的系统.经验工厂的活动分为同步活动和异步活动.同步活动指配合项目组的活动,接收构件查找请求或定制请求,为项目组服务.异步活动指有目的的构件生产或对同步活动中的构件进行再工程以提高构件的可复用性.软件复用软件复用 硕士研究生课硕士研究生课程程6 6 复用成熟度模型复用成熟度模型 ()受能力成熟度模型受能力成熟度模型(Capability Maturity Model,缩写为缩写为)的启发的启发,已出现了几个已出现了

42、几个复用成熟度模型复用成熟度模型(Reuse Maturity Model,缩缩写为写为),作为对企业内复用水平层次的作为对企业内复用水平层次的度量度量.软件复用软件复用 硕士研究生课硕士研究生课程程 IBM IBM初始级(Initial):不协调的复用努力.复用是个人的行为,没有库的支持,主要的复用对象是子程序和宏;监控级(Monitored):管理上知道复用,不作为重点.复用是小组的行为,有非正式的、无监控的数据库,复用的对象包括模块和包;协调级(Coordinated):鼓励复用,没有投资.复用的范围包括整个部门,有配置管理和构件文档的数据库,复用的对象包括子系统、模式和框架;计划级(P

43、lanned):存在组织上的复用支持.在项目级别支持复用,有复用库,复用的对象包括应用生成器;固有级(Ingrained):规范化的复用支持.复用成为整个企业范围的行为,有一组领域相关的复用库,复用的对象包括.软件复用软件复用 硕士研究生课硕士研究生课程程Loral Federal System公司公司 初始级:偶尔的开发过程复用;基本级:在项目级上定义的开发过程复用;系统化级:标准的开发过程复用;面向领域级:大规模的子系统复用;软件制造级:可配置的生成器及.软件复用软件复用 硕士研究生课硕士研究生课程程 无复用:-2 0%至 2 0%的复用率;挖掘整理:1 5%至30%的复用率;计划复用:3

44、 0%至 50%的复用率;系统化复用:50%至 70%的复用率;面向领域的复用:80%至 90%的复用率 软件复用软件复用 硕士研究生课硕士研究生课程程四、青鸟软件生产线简介四、青鸟软件生产线简介青鸟工程是国家重点支持的科技攻关课题青鸟工程是国家重点支持的科技攻关课题,已有十余年的发展历程已有十余年的发展历程.“七五七五”、“八五八五”期间期间,青鸟工程面向我国软件产业基础建青鸟工程面向我国软件产业基础建设的需求设的需求,以实用的软件工程技术为依托以实用的软件工程技术为依托,研究开发具有自主版权的软件工程环境研究开发具有自主版权的软件工程环境.“九五九五”期间期间,重点是研究软件的工业化生重点

45、是研究软件的工业化生产技术产技术,开发软件工业化生产系统开发软件工业化生产系统青鸟软件生产线系统青鸟软件生产线系统,即基于构件即基于构件构架模式的软件开发技术及系统构架模式的软件开发技术及系统 软件复用软件复用 硕士研究生课硕士研究生课程程成果成果 青鸟工程开发了基于异构平台、具有多信息源接口的应用系统集成(组装)环境青鸟型(3)系统.青鸟型系统研制的目标是针对软件工业化生产的需求,完善并初步实现青鸟软件生产线的思想,制定软件工业化生产标准和规范,研究基于“构件构架”模式的软件工业化生产技术,研制支持面向对象技术,支持软件复用的,基于异构平台、具有多信息源接口的应用系统集成(组装)环境.其最终

46、目标是要构造软件生产线系统 软件复用软件复用 硕士研究生课硕士研究生课程程在青鸟软件生产线中,软件的生产过程划分为三类不同的生产车间,即应用构架生产构架生产车间、构件生产构件生产车间和基于构件、构架复用的应用集成(组装)车间,从而形成软件产业内部的合理分工,实现软件的工业化生产.软件开发人员被划分成三类:构件生产者、构件库管理者和构件复用者.这三种角色所需完成的,务是不同的,构件生产者负责构件的生产、描述;构件库管理者负责构件分类以及构件库的管理工作;而构件复用者负责进行基于构件的软件开发,包括构件查询、构件理解、适应性修改、构件组装以及系统演化.软件复用软件复用 硕士研究生课硕士研究生课程程

47、 软件复用软件复用 硕士研究生课硕士研究生课程程 软件复用软件复用 硕士研究生课硕士研究生课程程青鸟青鸟型系统的体系结构型系统的体系结构 软件复用软件复用 硕士研究生课硕士研究生课程程在对国际相关标准规范进行比较研究的同时在对国际相关标准规范进行比较研究的同时 ,提出了一套青鸟构件标准规范提出了一套青鸟构件标准规范 .这套标准规这套标准规范保持了和国际标准规范的接轨和兼容范保持了和国际标准规范的接轨和兼容 ,同同时也融进了一些国际上重要研究成果和自己时也融进了一些国际上重要研究成果和自己的研究成果的研究成果 ,具有自身特色和优点具有自身特色和优点 .这些规这些规范包括范包括 :青鸟可复用构件制

48、作指南、青鸟领青鸟可复用构件制作指南、青鸟领域工程方法指南、青鸟构件模型、青鸟构件域工程方法指南、青鸟构件模型、青鸟构件描述语言、青鸟构件库概念模型、基于复用描述语言、青鸟构件库概念模型、基于复用的软件开发过程的软件开发过程 .软件复用软件复用 硕士研究生课硕士研究生课程程五、小结五、小结 复用项目的成功主要发生于以下几种情形:在较小的特定领域;在理解充分的领域;当领域知识变动缓慢时;当存在构件互联标准时;当市场规模形成时(大量的项目可以分担费用);当技术规模形成时(有大量可用的、可获利的构件).而复用项目失败的原因主要包括:缺乏对复用的管理支持;没有对开发可复用软件及复用已有软件的激励措施没

49、有强调复用问题的规程或过程;没有足够的可复用资源;没有良好的分类模式,使得构件查找比较困难;没有良好的构件库支持和控制复用;构件库中的构件没有良好的接口;已有的部件不是为了复用而开发的.软件复用软件复用 硕士研究生课硕士研究生课程程主要参考主要参考、杨芙清,软件复用及相关技术、杨芙清等,软件复用与软件构件技术 3、Hafedh Mili Ali Mili Sherf Yacoub Edward Addy.Reuse-Based Software Engineering Techniques,Organization,and Controls 软件复用软件复用 硕士研究生课硕士研究生课程程思考题1 1、软件复用与传统软件开发的重用的差异?、软件复用与传统软件开发的重用的差异?2 2、影响软件可复用性的因素。、影响软件可复用性的因素。3 3、什么是领域工程?、什么是领域工程?领域工程对软件复用领域工程对软件复用的影响表现在那些方面?的影响表现在那些方面?软件复用软件复用 硕士研究生课硕士研究生课程程

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!