您好,欢迎访问三七文档
软件工程第8章基于构件的软件开发基于构件的软件开发目标•长期以来的软件开发状况–多数软件都是针对某个具体的应用系统从头进行开发的–导致:出现了大量的同类软件重复开发,造成大量人力、财力的浪费,而且软件的质量也不高•对比:汽车工业的生产模式–在已有的部件基础上通过组装进行生产:有专门的部件生产工厂,汽车设计者在设计中选择市场上已有的合适的部件–避免了大量的重复劳动,提高了产品质量和生产效率,促进分工合作•我们的目标:将制造业中的组装式生产模式引入到软件开发中内容摘要•基于构件的软件开发概述•建造可复用构件•应用系统工程•构件的管理•小结内容摘要•基于构件的软件开发概述•建造可复用构件•应用系统工程•构件的管理•小结基于构件的软件开发•基于构件的软件开发–Component-BasedSoftwareDevelopment–简称CBSD–是指使用可复用构件来开发应用软件•基于构件的软件工程–Component-BasedSoftwareEngineering–简称CBSE构件(Component)的典型定义•Pressman书中的定义:构件是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境内满足某清晰的功能•Brown的定义:构件是一个独立发布的功能部分,可以通过其接口访问它的服务•“计算机科学技术百科全书”的定义:软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体;软件构件须承载有用的功能,并遵循某种构件模型;可复用构件是指具有可复用价值的构件商用成品构件•Commercialoff-the-shelf•简称COTS•指由第三方开发的满足一定构件标准的,可组装的软件构件构件的要素•规格说明:建立在接口概念之上,作为服务提供方与客户方之间的契约•一个或多个实现•受约束的构件标准•包装方法•部署方法3C构件模型•关于构件的一个指导性模型•由构件的三个不同方面的描述组成–概念(concept):关于“构件做什么”的抽象描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述两部分,语义描述和每个操作相关联(至少表示为前后置谓词形式)–内容(content):概念的具体实现,描述构件如何完成概念所刻画的功能–周境(context):描述构件和外围环境在概念级和内容级的关系,刻画构件的应用环境,为构件的选用和适应性修改提供指导REBOOT构件模型•REBOOT(ReuseBasedonObject_OrientedTechnology):基于面向对象技术的复用•一种基于刻面(facet)的模型–刻面:对领域进行分析,所得到的一组基本的描述特征–刻面可以描述构件执行的功能、所操作的数据、构件应用的周境或任何其它特征–通常的刻面描述限制在不超过7或8个刻面•一个构件通常包括以下刻面:–抽象(abstraction):它是构件概念的抽象性描述–操作(operation):它是构件所提供的操作的描述–操作对象(operand):它描述操作的对象–依赖(dependency):它描述构件与外界的依赖关系常用的构件标准•CORBA(公共对象请求代理体系结构)–CommonObjectRequestBrokerArchitecture–OMG发布的构件标准–核心是ORB(ObjectRequestBroker),定义了异构环境下对象透明地发送请求和接收响应的基本机制•COM+–微软开发的一个构件对象模型,提供了在运行于Windows操作系统之上的单个应用中使用不同厂商生产的对象的规约•EJB:一种基于Java的构件标准–提供了让客户端使用远程的分布式对象的框架–EJB规约规定了EJB构件如何与EJB容器进行行交互对象管理组织(OMG)的CORBA1、CORBA技术概述CORBA(公共对象请求代理体系结构)是由OMG(ObjectManagementGroup,对象管理组织)提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。CORBA在不同平台、不同语言之间实现对象通信的模型,它为分布式应用环境下对象资源共享、代码重用、可移植和对象间相互访问建立了通用标准,同样也为在大量硬件、软件之间实现互操作提供了良好的解决方案。CORBA的基础是对象管理体系(OMA),它定义了应用程序的面向对象的体系结构,CORBAOMA由下图所示的四个部分组成:应用程序对象(applicationobjects)、公共工具(commonfacilities)、对象请求代理(ORB)和对象服务。程序对象公共工具对象服务对象请求代理2、CORBA的对象管理体系(OMA)CORBAOMA(1)对象请求代理是整个CORBA系统的核心,它提供了客户和服务对象之间进行信息传送的通路。(2)对象服务是为创建对象、对象访问控制、对象生命期控制、对象引用等提供的一套基本的功能服务。对象服务是为方便应用程序开发人员开发服务对象的必要的系统服务。(3)公共工具为许多不同的应用程序提供一套一般用途的应用程序功能,例如信息管理、系统管理、任务管理。(4)应用程序对象是专用于特定领域的应用构件,它为最终用户提供了一套完成特定任务的对象。CORBA的对象管理体系3、CORBA的体系结构CORBA的体系结构微软的COM1、COM技术概述COM为构件与构件、构件与应用程序之间的通信和互操作提供了统一的标准和技术规范,使得使用不同编程语言开发的构件进行基于构件的软件开发成为可能。COM技术规范包括了两大部分:规范部分和实现部分。规范部分定义了构件之间的通信机制,这些规范是独立于任何特定的编程语言和操作系统的。COM接口是COM构件暴露出来的所有信息,它由一组逻辑上相关的函数组成,客户程序利用这些函数获得COM构件提供的服务。Interface1IUnknownCOM构件对象Interface2COM接口是COM构件暴露出来的所有信息,它由一组逻辑上相关的函数组成,客户程序利用这些函数获得COM构件提供的服务。COM中定义的每一个接口都必须从IUnknown继承而来。IUnknown提供了两个非常重要的操作:COM构件生存期的控制和构件接口的查询。IUnknown的三个成员函数:QueryInterface():用于查询同一个COM构件对象的其他接口指针AddRef():增加引用计数Release():减少引用计数COM构件对象的结构:微软的COMCORBA的接口WindowsDNA(分布式网际应用体系结构)是一个完整的、三层结构的企业应用总体方案,是一个分布式的企业应用开发平台。表示层ADO/OLEDBHTTP客户应用Web应用事务逻辑层数据层数据库MTSMSMQIISCOM/COM+DCOM2、WindowsDNA策略三层结构COM+在COM的基础上增加了许多新的特征,通过把COM、DCOM和MTS统一起来,形成了真正适合于企业应用的构件。COM+COM+目录负载平衡内存数据库对象池队列化构件新的事件模型构件管理和配置MTS事务管理资源分发管理安全模型易于管理COM/DCOM基于接口的编程模型基本的构件服务远程访问支持分布式构件服务3、COM的发展——COM+COM+Sun的EJB1、EJB技术概述EJB构件是实现了EJB规范的在企业级应用中完成业务逻辑的Java构件。EJB构件驻留在EJB容器中。EJB容器为EJB构件提供了一组标准的系统服务,其中包括事务管理、持久性、安全性和并发控制等。EJB容器降低了EJB构件开发的复杂程度,提高了构件开发的效率,保证了构件的可移植性。EJB规范定义了EJB构件与EJB容器之间的交互机制。(1)无状态会话EJB构件在方法调用之间不会保持客户的会话状态信息。(2)有状态会话EJB构件保持会话的状态信息,每个会话实例都与一个特定的客户相关联。(3)实体EJB构件提供了对持久数据进行操作的服务。(4)消息驱动EJB构件为客户和EJB构件之间提供了一种异步的通信能力。2、EJB构件的类型(1)远程接口向客户展示EJB构件提供的业务逻辑方法。(2)本地接口提供与EJB构件生命周期有关的方法。(3)Bean类实现EJB构件的业务逻辑方法,通过远程接口提供给客户。3、EJB构件的组成基于构件的软件开发过程领域工程步骤-1•领域分析:首先要进行领域分析,收集领域中有代表性的应用样本,分析应用中的公共部分或相似部分,抽取该领域的应用体系结构.其目标是:发现和挖掘在特定领域内可以被复用的构件。领域分析活动中输入和输出如图所示:•领域分析不是针对某个特定的软件系统,而是针对一类软件系统的共同的特征、知识和需求。比需求分析更一般、更抽象、更广泛的特征。领域分析输入信息技术文献已有应用专家经验/建议当前与未来的需求输出信息领域语言复用标准分类方法功能/行为模型领域工程步骤-2•建立领域特定的基准体系结构模型:在领域分析的基础上,构造该领域的基准体系结构,这个基准体系结构应是可以裁剪和扩充的,并可供该领域的应用复用•标识候选构件:在领域分析和领域基准体系结构模型的基础上标识该领域的候选构件•泛化(generalization)和可变性(variability)分析:提高其通用性,同时寻找候选构件在不同应用中的变化点(variationpoint),通过设置参数、继承或其它手段,使可变部分局部化领域工程步骤-3•重建构件:在泛化和可变性分析的基础上,重建构件,使它成为可复用构件•构件的测试:对重建的可复用的构件要严格测试,以提高其可靠性•构件的包装:经测试的构件应根据构件库的要求,对它进行包装,以便构件库对它分类储存和检索•构件入库:包装后的构件即可存入构件库应用系统工程的步骤-1•建立应用系统的体系结构模型:可以使用构件生产者提供的领域特定的基准体系结构经裁剪和/或扩充而获得•寻找候选构件:根据应用系统的体系结构模型,从构件库或其它可利用的构件源中寻找候选构件•评价和选择合适的构件:评价候选构件以判断是否适合于待开发的软件•构件的修改(modify)和特化(specialize):在复用时对构件进行特化以满足特定应用的需要应用系统工程的步骤-2•开发未被复用的部分:对新系统中未复用的部分进行开发•构件的组装:将特化和修改后的可复用构件和新开发的部分组装成一个新的软件系统•集成测试:对组装后的软件系统进行集成测试•评价被复用的构件,并推荐可能的新构件CBSD对质量、生产率和成本的影响•对质量的影响:随着长期的测试和使用,构件能够保证很高的质量,因此可以使系统开发的质量得到保证•对生产率的影响:一般来说,大约30%~50%的复用可使生产率提高25%~40%•对成本的影响–与复用相关的成本应由多个采用复用技术的项目来分担–通常要经过2~3个采用复用的生产周期(大约3年左右)复用才能带来显著的效益内容摘要•基于构件的软件开发概述•建造可复用构件•应用系统工程•构件的管理•小结建造可复用构件•建造构件的目的是为了以后复用构件,即为复用而建造构件•在建造构件时仍应遵循抽象、逐步求精、信息隐蔽、功能独立、结构化程序设计等思想和原则•由于面向对象方法具有封装性、继承等特点,能有力地支持复用,所以应尽可能考虑采用面向对象方法对可复用构件的要求•构件的设计应具有较高的通用程度•构件应易于调整•构件应易于组装•构件必须具有可检索性•构件必须经过充分的测试创建领域构件的设计框架•除应遵循已有的设计概念和原则外,还必须考虑应用领域的特征,例如:–标准数据:应该研究应用领域,并标识出标准的全局数据结构(如文件结构或完整的数据库)。于是所有设计的构件都可以用这些标准数据结构来刻画–标准接口协议:应该建立三个层次的接口协议:构件内(intramodular)接口、构件外接口以及人机接口–程序模板:程序的结构模型可以作为新程序的体系结构设计的模板可变性分析•构件应具有较强的通用性和可变性•为了满足不同的复用需求,
本文标题:AR28系列路由器
链接地址:https://www.777doc.com/doc-2898179 .html