基于构件的软件开发

上传人:lisu****2020 文档编号:246699843 上传时间:2024-10-15 格式:PPT 页数:41 大小:265.99KB
返回 下载 相关 举报
基于构件的软件开发_第1页
第1页 / 共41页
基于构件的软件开发_第2页
第2页 / 共41页
基于构件的软件开发_第3页
第3页 / 共41页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,复旦大学计算机科学与工程系 软件工程课程,*,软件工程,第8章 基于构件的软件开发,1,复旦大学计算机科学与工程系 软件工程课程,基于构件的软件开发目标,长期以来的软件开发状况,多数软件都是针对某个具体的应用系统从头进行开发的,导致:出现了大量的同类软件重复开发,造成大量人力、财力的浪费,而且软件的质量也不高,对比:汽车工业的生产模式,在已有的部件基础上通过组装进行生产:有专门的部件生产工厂,汽车设计者在设计中选择市场上已有的合适的部件,避免了大量的重复劳动,提高了产品质量和生产效率,促进分工合作,我们的目标:将制造业中的组装式生产模式引入到软件开发中,2,复旦大学计算机科学与工程系 软件工程课程,内容摘要,基于构件的软件开发概述,建造可复用构件,应用系统工程,构件的管理,小结,3,复旦大学计算机科学与工程系 软件工程课程,内容摘要,基于构件的软件开发概述,建造可复用构件,应用系统工程,构件的管理,小结,4,复旦大学计算机科学与工程系 软件工程课程,基于构件的软件开发,基于构件的软件开发,Component-Based Software Development,简称CBSD,是指使用可复用构件来开发应用软件,基于构件的软件工程,Component-Based Software Engineering,简称CBSE,5,复旦大学计算机科学与工程系 软件工程课程,构件(Component)的典型定义,Pressman书中的定义:构件是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境内满足某清晰的功能,Brown的定义:构件是一个独立发布的功能部分,可以通过其接口访问它的服务,“计算机科学技术百科全书”的定义:软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体;软件构件须承载有用的功能,并遵循某种构件模型;可复用构件是指具有可复用价值的构件,6,复旦大学计算机科学与工程系 软件工程课程,商用成品构件,Commercial off-the-shelf,简称COTS,指由第三方开发的满足一定构件标准的,可组装的软件构件,7,复旦大学计算机科学与工程系 软件工程课程,构件的要素,规格说明:建立在接口概念之上,作为服务提供方与客户方之间的契约,一个或多个实现,受约束的构件标准,包装方法,部署方法,8,复旦大学计算机科学与工程系 软件工程课程,3C构件模型,关于构件的一个指导性模型,由构件的三个不同方面的描述组成,概念(concept):关于“构件做什么”的抽象描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述两部分,语义描述和每个操作相关联(至少表示为前后置谓词形式),内容(content):概念的具体实现,描述构件如何完成概念所刻画的功能,周境(context):描述构件和外围环境在概念级和内容级的关系,刻画构件的应用环境,为构件的选用和适应性修改提供指导,9,复旦大学计算机科学与工程系 软件工程课程,REBOOT构件模型,REBOOT(Reuse Based on Object_Oriented Technology):基于面向对象技术的复用,一种基于刻面(facet)的模型,刻面:对领域进行分析,所得到的一组基本的描述特征,刻面可以描述构件执行的功能、所操作的数据、构件应用的周境或任何其它特征,通常的刻面描述限制在不超过7或8个刻面,一个构件通常包括以下刻面:,抽象(abstraction):它是构件概念的抽象性描述,操作(operation):它是构件所提供的操作的描述,操作对象(operand):它描述操作的对象,依赖(dependency):它描述构件与外界的依赖关系,10,复旦大学计算机科学与工程系 软件工程课程,常用的构件标准,CORBA(公共对象请求代理体系结构),Common Object Request Broker Architecture,OMG发布的构件标准,核心是ORB(Object Request Broker),定义了异构环境下对象透明地发送请求和接收响应的基本机制,COM+,微软开发的一个构件对象模型,提供了在运行于Windows操作系统之上的单个应用中使用不同厂商生产的对象的规约,EJB:一种基于Java的构件标准,提供了让客户端使用远程的分布式对象的框架,EJB规约规定了EJB构件如何与EJB容器进行行交互,11,复旦大学计算机科学与工程系 软件工程课程,基于构件的软件开发过程,12,复旦大学计算机科学与工程系 软件工程课程,领域工程步骤-1,领域分析:首先要进行领域分析,收集领域中有代表性的应用样本,分析应用中的公共部分或相似部分,抽取该领域的应用体系结构,建立领域特定的基准体系结构模型:在领域分析的基础上,构造该领域的基准体系结构,这个基准体系结构应是可以裁剪和扩充的,并可供该领域的应用复用,标识候选构件:在领域分析和领域基准体系结构模型的基础上标识该领域的候选构件,泛化(generalization)和可变性(variability)分析:提高其通用性,同时寻找候选构件在不同应用中的变化点(variation point),通过设置参数、继承或其它手段,使可变部分局部化,13,复旦大学计算机科学与工程系 软件工程课程,领域工程步骤-2,重建构件:在泛化和可变性分析的基础上,重建构件,使它成为可复用构件,构件的测试:对重建的可复用的构件要严格测试,以提高其可靠性,构件的包装:经测试的构件应根据构件库的要求,对它进行包装,以便构件库对它分类储存和检索,构件入库:包装后的构件即可存入构件库,14,复旦大学计算机科学与工程系 软件工程课程,应用系统工程的步骤-1,建立应用系统的体系结构模型:可以使用构件生产者提供的领域特定的基准体系结构经裁剪和/或扩充而获得,寻找候选构件:根据应用系统的体系结构模型,从构件库或其它可利用的构件源中寻找候选构件,评价和选择合适的构件:评价候选构件以判断是否适合于待开发的软件,构件的修改(modify)和特化(specialize):在复用时对构件进行特化以满足特定应用的需要,15,复旦大学计算机科学与工程系 软件工程课程,应用系统工程的步骤-2,开发未被复用的部分:对新系统中未复用的部分进行开发,构件的组装:将特化和修改后的可复用构件和新开发的部分组装成一个新的软件系统,集成测试:对组装后的软件系统进行集成测试,评价被复用的构件,并推荐可能的新构件,16,复旦大学计算机科学与工程系 软件工程课程,CBSD对质量、生产率和成本的影响,对质量的影响:随着长期的测试和使用,构件能够保证很高的质量,因此可以使系统开发的质量得到保证,对生产率的影响:一般来说,大约30%50%的复用可使生产率提高25%40%,对成本的影响,与复用相关的成本应由多个采用复用技术的项目来分担,通常要经过23个采用复用的生产周期(大约3年左右)复用才能带来显著的效益,17,复旦大学计算机科学与工程系 软件工程课程,内容摘要,基于构件的软件开发概述,建造可复用构件,应用系统工程,构件的管理,小结,18,复旦大学计算机科学与工程系 软件工程课程,建造可复用构件,建造构件的目的是为了以后复用构件,即为复用而建造构件,在建造构件时仍应遵循抽象、逐步求精、信息隐蔽、功能独立、结构化程序设计等思想和原则,由于面向对象方法具有封装性、继承等特点,能有力地支持复用,所以应尽可能考虑采用面向对象方法,19,复旦大学计算机科学与工程系 软件工程课程,对可复用构件的要求,构件的设计应具有较高的通用程度,构件应易于调整,构件应易于组装,构件必须具有可检索性,构件必须经过充分的测试,20,复旦大学计算机科学与工程系 软件工程课程,创建领域构件的设计框架,除应遵循已有的设计概念和原则外,还必须考虑应用领域的特征,例如:,标准数据:应该研究应用领域,并标识出标准的全局数据结构(如文件结构或完整的数据库)。于是所有设计的构件都可以用这些标准数据结构来刻画,标准接口协议:应该建立三个层次的接口协议:构件内(intramodular)接口、构件外接口以及人机接口,程序模板:程序的结构模型可以作为新程序的体系结构设计的模板,21,复旦大学计算机科学与工程系 软件工程课程,可变性分析,构件应具有较强的通用性和可变性,为了满足不同的复用需求,需要在构件复用时可能发生变化的一个或多个位置上标识变化点(variation point),同时为变化点附加一个或多个变体(variant),例如Account构件的帐号编码规则以及透支规则在不同的国家可能不一样,VP,1,VP,2,C,VP,1,description,context,22,复旦大学计算机科学与工程系 软件工程课程,构件系统中的门面和变体,23,复旦大学计算机科学与工程系 软件工程课程,可变性机制,继承:在变化点上创建指定抽象类型或抽象类的子类型或子类。,扩展和扩展点:可以在用况和对象构件中的变化点(或扩展点)上附加变体(或扩展),参数化:用于模板、框架和宏的类型和类,适用于变体较小时(经常是一个数值、短语或表达式),24,复旦大学计算机科学与工程系 软件工程课程,内容摘要,基于构件的软件开发概述,建造可复用构件,应用系统工程,构件的管理,小结,25,复旦大学计算机科学与工程系 软件工程课程,应用系统工程,任务:通过组装可复用构件得到应用系统,CBSD中构件是组成应用系统的基本单元,注重体系结构和构件接口的分析和设计,忽略构件内部实现的设计,26,复旦大学计算机科学与工程系 软件工程课程,关注接口的设计,接口是构件行为的描述机制,并提供了对其服务的访问,供应接口(Provided interface):描述构件所提供的服务,可以被其它构件访问,请求接口(requived interface):请求接口描述构件为完成其功能(服务)需请求其它构件为其提供的服务,一个接口可以有多种实现,并且对使用者隐蔽,接口描述是构件使用者能依赖的所有信息,因此构件接口描述的表达能力和完整性是CBSD方法主要关注的问题之一,27,复旦大学计算机科学与工程系 软件工程课程,基于构件的体系结构,基于构件的应用系统体系结构,描述了组成应用系统的构件,构件之间的组织结构、交互、约束和关系,对系统的组成、结构以及系统如何工作的较为宏观的描述,如果在领域工程中已开发了领域基准体系结构(reference architecture),则可以通过对基准体系结构的剪裁和/或扩充获得应用系统的体系结构,28,复旦大学计算机科学与工程系 软件工程课程,基于构件的体系结构层次,逻辑体系结构,以接口形式对每组服务进行描述,并描述那些包怎样交互来满足通常的用户使用场景,展示了系统设计的蓝图,可用于验证系统是否提供了适当的功能,并能在系统功能需求变化时方便地改变系统的设计,物理体系结构,描述系统的物理设计,包括硬件及其拓扑结构、网络和通信协议、基础设施(如运行平台、中间件、数据库管理系统等),以及软件系统的部署,展示了系统的实现构架,有助于理解系统的许多非功能属性,如性能、吞吐量、服务的可用性等,29,复旦大学计算机科学与工程系 软件工程课程,基于构件的应用系统开发方法,Rationel统一过程,Rationals Unified Process,简称RUP,一个关于软件开发的广泛的过程框架,覆盖了整个软件生命周期,使用UML进行分析和设计建模,鼓励使用CBSD方法,The Select Perspective Method,支持通用的构件设计方法,并以Select Component Manager为目标,通用构件设计准则使用UML作为构件设计符号,Sterling Software的Enterprise-CBD方法,鼓励使用UML的扩展形式把构件的规格说明和实现分离,允许制作技术中立的规格说明,然后再使用不同的实现技术
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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