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