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