组件化软件工程

上传人:cn****1 文档编号:570075199 上传时间:2024-08-01 格式:PPT 页数:57 大小:1.56MB
返回 下载 相关 举报
组件化软件工程_第1页
第1页 / 共57页
组件化软件工程_第2页
第2页 / 共57页
组件化软件工程_第3页
第3页 / 共57页
组件化软件工程_第4页
第4页 / 共57页
组件化软件工程_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《组件化软件工程》由会员分享,可在线阅读,更多相关《组件化软件工程(57页珍藏版)》请在金锄头文库上搜索。

1、组件化软件工程组件化软件工程软件软件复用(reuse)的概念的概念o软件复用:利用已有的软件来建造新的软件系统软件复用:利用已有的软件来建造新的软件系统的过程,将可复用构件作为新系统的构建模块并的过程,将可复用构件作为新系统的构建模块并以可控的方式和过程对构件进行组合与修改以可控的方式和过程对构件进行组合与修改o软件复用的发展软件复用的发展n子程序(子程序(Subroutine) (A. Turing, 20世纪世纪40年代)年代)n复用复用 代码、函数、算法等代码、函数、算法等 n“软件工厂软件工厂” ( Mcllroy , 1968 ) n软件库、类库软件库、类库n构件构件2软件复用的软件

2、复用的优点优点 o改善软件质量改善软件质量o减少工作量减少工作量o快速构建系统原型快速构建系统原型o帮助程序员获得经验和知识帮助程序员获得经验和知识 3影响软件复用成败的因素影响软件复用成败的因素o管理和组织层面管理和组织层面n项目管理者的支持和经验项目管理者的支持和经验n面向复用特点的软件过程模型面向复用特点的软件过程模型n专门的小组搜集、维护和提供可复用的构件专门的小组搜集、维护和提供可复用的构件n程序员的心理因素程序员的心理因素o技术层面技术层面n支持复用的方法和技术还存在许多困难支持复用的方法和技术还存在许多困难n需有一个组织和管理良好的构件库需有一个组织和管理良好的构件库n改编已有的

3、软件或者构件,提取可复用的构件改编已有的软件或者构件,提取可复用的构件o经济层面经济层面n开发可复用的构件的代价较高开发可复用的构件的代价较高4复用的一般过程复用的一般过程 复用评估复用启动复用实验复用扩展领域分析复用整合软件组织了解和评估实施复用的能力,分析复用所带来的收益和所付出的代价分析已有软件,寻找、评价和选择可复用的软件构件了解防碍复用的问题,减少复用的风险和代价确定项目复用过程中各个参与者的职责,扩展或者整合可复用构件库建立系统性的复用过程,标识某一领域多个应用的共同需求根据复用需要调整组织结构和软件开发过程,建立制度性的复用5复用的层次 复用:应用复用:应用(COTSCOTS)复

4、用:框架复用:框架(半完成应用)(半完成应用)复用:微结构复用:微结构(设计模式,协作关系)(设计模式,协作关系)复用:类,方法,代码复用:类,方法,代码6基于构件的软件开发目标基于构件的软件开发目标o长期以来的软件开发状况长期以来的软件开发状况n多数软件都是针对某个具体的应用系统从头进行开发的多数软件都是针对某个具体的应用系统从头进行开发的n导致:出现了大量的同类软件重复开发,造成大量人力、财力导致:出现了大量的同类软件重复开发,造成大量人力、财力的浪费,而且软件的质量也不高的浪费,而且软件的质量也不高o对比:汽车工业的生产模式对比:汽车工业的生产模式n在已有的部件基础上通过组装进行生产:有

5、专门的部件生产工在已有的部件基础上通过组装进行生产:有专门的部件生产工厂,汽车设计者在设计中选择市场上已有的合适的部件厂,汽车设计者在设计中选择市场上已有的合适的部件n避免了大量的重复劳动,提高了产品质量和生产效率,促进分避免了大量的重复劳动,提高了产品质量和生产效率,促进分工合作工合作o我们的目标:将制造业中的组装式生产模我们的目标:将制造业中的组装式生产模式引入到软件开发中式引入到软件开发中7构件构件(Component)的典型定义的典型定义oPressman:构件是某系统中有价值的、几乎独立的并:构件是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境内可替换的一

6、个部分,它在良好定义的体系结构语境内满足某清晰的功能满足某清晰的功能oBrown:构件是一个独立发布的功能部分,可以通过:构件是一个独立发布的功能部分,可以通过其接口访问它的服务其接口访问它的服务o“计算机科学技术百科全书计算机科学技术百科全书” :软件构件是软件系统中:软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体;软件构件须承载有用的功能,提供的可组装软件实体;软件构件须承载有用的功能,并遵循某种构件模型;可复

7、用构件是指具有可复用价并遵循某种构件模型;可复用构件是指具有可复用价值的构件值的构件8构件(Component)的概念o构件是:是:n已被封装的、具有良好接口定义的软件包已被封装的、具有良好接口定义的软件包n可以被独立地开发和部署,可由第三方来组合可以被独立地开发和部署,可由第三方来组合n能够与其它构件组合能够与其它构件组合n具有清晰的接口和文档,并定义了复用的情景具有清晰的接口和文档,并定义了复用的情景o注:构件不是对象,也不一定使用对象技术注:构件不是对象,也不一定使用对象技术实现。从粒度上,构件一般都比对象类大,实现。从粒度上,构件一般都比对象类大,面向对象的构件一般实现为一组类的集合面

8、向对象的构件一般实现为一组类的集合 9构件的要素构件的要素o规格说明:建立在接口概念之上,作为服规格说明:建立在接口概念之上,作为服务提供方与客户方之间的契约务提供方与客户方之间的契约o一个或多个实现一个或多个实现o受约束的构件标准受约束的构件标准o包装方法包装方法o部署方法部署方法103C构件模型:一个指导性模型构件模型:一个指导性模型o构件由三个不同方面的描述组成构件由三个不同方面的描述组成n概念概念(concept):关于:关于“构件做什么构件做什么”的抽象的抽象描述,可以通过概念去理解构件的功能。描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述(和每个操概念包括接口规约和

9、语义描述(和每个操作相关联,一般表示为前后置谓词形式)作相关联,一般表示为前后置谓词形式) n内容内容(content):概念的具体实现,描述构:概念的具体实现,描述构件如何完成概念所刻画的功能件如何完成概念所刻画的功能n情境情境(context):描述构件和外围环境在概:描述构件和外围环境在概念级和内容级的关系,刻画构件的应用环念级和内容级的关系,刻画构件的应用环境,为构件的选用和适应性修改提供指导境,为构件的选用和适应性修改提供指导11常用的构件标准常用的构件标准oCORBA(Common Object Request Broker Architecture)nOMG发布的构件标准发布的构

10、件标准n核心是核心是ORB(Object Request Broker),定义了异构环境下对象,定义了异构环境下对象透明地发送请求和接收响应的基本机制透明地发送请求和接收响应的基本机制oCOM+n微软开发的一个构件对象模型,提供了在运行于微软开发的一个构件对象模型,提供了在运行于Windows操操作系统之上的单个应用中使用不同厂商生产的对象的规约作系统之上的单个应用中使用不同厂商生产的对象的规约 oEJB:基于:基于Java的构件的构件n提供了让客户端使用远程的分布式对象的框架提供了让客户端使用远程的分布式对象的框架nEJB规约规定了规约规定了EJB构件如何与构件如何与EJB容器进行行交互容器

11、进行行交互12构件化软件开发(构件化软件开发(CBSD)13构件化软件开发的比较构件化软件开发的比较AnalysisComponent AcquisitionComponent Oriented DesignComponent CompositionIntegration TestSystem Test构件化软件开发过程构件化软件开发过程ImplementationUnit Test传统的软件过程传统的软件过程AnalysisDesignIntegration TestSystem Test14基于构件的软件开发过程基于构件的软件开发过程15领域工程步骤领域工程步骤o领域分析领域分析o建立领域

12、特定的基准体系结构模型建立领域特定的基准体系结构模型o标识候选构件标识候选构件o泛化泛化(generalization)和可变性和可变性(variability)分析分析o重建构件重建构件o构件的测试构件的测试o构件的包装构件的包装o构件入库构件入库16应用系统工程的步骤应用系统工程的步骤o建立应用系统的体系结构模型建立应用系统的体系结构模型o寻找候选构件寻找候选构件o评价和选择合适的构件评价和选择合适的构件o构件的修改构件的修改(modify)和特化和特化(specialize)o开发未被复用的部分开发未被复用的部分o构件的组装构件的组装o集成测试集成测试o评价被复用的构件,并推荐可能的新构

13、件评价被复用的构件,并推荐可能的新构件17基于构件的软件开发中的关键活动基于构件的软件开发中的关键活动o(1)查找构件)查找构件n发掘待开发应用中的核心构件,用文档描述构件;通发掘待开发应用中的核心构件,用文档描述构件;通过领域分析、自行开发、逆向工程或者商业购买等途过领域分析、自行开发、逆向工程或者商业购买等途径来获得所需构件;创建构件库径来获得所需构件;创建构件库o(2)选择构件)选择构件n从构件库中挑选合适的构件。选择过程通常与构件库从构件库中挑选合适的构件。选择过程通常与构件库的检索技术及算法相关的检索技术及算法相关o(3)适配构件)适配构件n改编或者定制化所挑选的构件来满足新的应用需

14、求,改编或者定制化所挑选的构件来满足新的应用需求,使其能与其它构件或者底层框架集成使其能与其它构件或者底层框架集成18基于构件的软件开发中的关键活动(续)o(4)创建构件)创建构件n所选择的构件不能完全满足应用需求,这时必所选择的构件不能完全满足应用需求,这时必须开发和创建新的构件须开发和创建新的构件o(5)组合构件)组合构件n组装和集成构件的过程。工作量取决于构件的组装和集成构件的过程。工作量取决于构件的性质性质o(6)替换构件)替换构件n替换构件的过程与产品的维护有关,构件升级替换构件的过程与产品的维护有关,构件升级及其版本管理及其版本管理19构件化开发中值得注意的问题o技术方面n构件接口

15、应该清晰、标准构件接口应该清晰、标准n开发过程模型开发过程模型 : 以接口为中心以接口为中心 ;独立于编程;独立于编程语言语言 ;组合性;组合性 ;分离性;分离性n集成能力集成能力 o商业方面n构件市场和标准构件市场和标准 n市场的范围、规模和标准化市场的范围、规模和标准化 20Software Industry In the Real WorldFlashline () Javabeans/COM/ActiveXVbxtras () Visual BasicComponent Source () Java/COM/C+/Delphi/VisualStudio2122基于构件的开发活动基于构件

16、的开发活动 (1):):构件选择构件选择o在构件库中浏览和检索构件在构件库中浏览和检索构件 n检索的效率检索的效率n检索的精确性检索的精确性o构件存储和分类的标准构件存储和分类的标准n构件的存在形式:源代码,可执行代码构件的存在形式:源代码,可执行代码n使用范围:在单个项目中使用,整个产品线中使用,多个产使用范围:在单个项目中使用,整个产品线中使用,多个产品线使用品线使用n查询表示方法:功能说明,关键字列表,设计模式,行为样查询表示方法:功能说明,关键字列表,设计模式,行为样例例n构件表示方法:功能说明,源代码,执行代码,关键字构件表示方法:功能说明,源代码,执行代码,关键字n检索目标:精确性

17、,功能近似性,结构近似性检索目标:精确性,功能近似性,结构近似性n匹配标准:正确性,关键字的相等性和包容性,自然语言分匹配标准:正确性,关键字的相等性和包容性,自然语言分析析23构件的管理构件的管理o构件的分类描述构件的分类描述n对构件库中的构件进行合理的分类和组织,帮助软件对构件库中的构件进行合理的分类和组织,帮助软件开发人员方便地找到所需要的构件开发人员方便地找到所需要的构件n大多数的研究都建议使用图书馆科学索引方法进行构大多数的研究都建议使用图书馆科学索引方法进行构件分类件分类o构件库管理系统:主要用于构件的储存、检索、浏览和构件库管理系统:主要用于构件的储存、检索、浏览和管理管理24常

18、用的构件分类模式常用的构件分类模式-1o枚举分类枚举分类(Enumerated Classification)n将构件组织成分类层次结构,构件库中的构件按某些性将构件组织成分类层次结构,构件库中的构件按某些性质分成若干大类,每个大类又分成若干较小的类,经过质分成若干大类,每个大类又分成若干较小的类,经过若干次分解,形成构件分类的层次结构,实际的构件位若干次分解,形成构件分类的层次结构,实际的构件位于层次结构的最低层,其它层次则表示构件的类或子类于层次结构的最低层,其它层次则表示构件的类或子类n枚举分类模式的分层结构易于理解和检索,但是,在建枚举分类模式的分层结构易于理解和检索,但是,在建立层次

19、结构之前,必须进行领域分析,寻找合适的供分立层次结构之前,必须进行领域分析,寻找合适的供分类的性质。类的性质。o属性属性值分类值分类(Attribute_Value Classification)n为所有构件定义一组属性,每个构件都具有一组属性值,为所有构件定义一组属性,每个构件都具有一组属性值,开发人员通过指定一组属性值对构件库检索开发人员通过指定一组属性值对构件库检索25常用的构件分类模式常用的构件分类模式-2o刻面分类刻面分类(Faceted Classification)n根据一组刻面对构件分类,每个刻面从不同的侧面对构件根据一组刻面对构件分类,每个刻面从不同的侧面对构件库中的构件进行

20、分类,并根据重要性设置刻面的优先级库中的构件进行分类,并根据重要性设置刻面的优先级n每个刻面由一组术语每个刻面由一组术语(term)构成构成,称之为术语空间称之为术语空间(term space),这些术语通常是描述性的关键词,这些术语通常是描述性的关键词n检索:用户通过指定一组刻面的术语值寻找匹配的构件检索:用户通过指定一组刻面的术语值寻找匹配的构件n使用同义词词典使用同义词词典(thesaurus)解决用户指定的术语值与库中解决用户指定的术语值与库中构件所对应的术语值之间的不一致问题构件所对应的术语值之间的不一致问题n评价:具有较好的灵活性,易于加入新的刻面值,比枚举评价:具有较好的灵活性,

21、易于加入新的刻面值,比枚举分类模式易于扩展和修改分类模式易于扩展和修改26构件库管理系统的主要功能构件库管理系统的主要功能o构件的分类存储构件的分类存储(即添加构件即添加构件):根据构件库的分类模型将入库的构件储存在构件库中o构件检索构件检索:从构件库中检索出满足用户要求或接近用户要求的构件.o构件库浏览构件库浏览:浏览库中的全部或部分构件o删除构件删除构件:将不再使用的构件从构件库中删去o构件使用情况评价构件使用情况评价:根据用户使用和检索构件的反馈意见对构件作出评价,为进一步的改进提供依据27构件的描述和检索构件的描述和检索o构件库管理系统的两个关键技术,直接影响到构件库管理系统的两个关键

22、技术,直接影响到构件库检索的查准率构件库检索的查准率(precision)、查全率、查全率(recall)和效率和效率(efficient)o常用的构件检索方法常用的构件检索方法n规约匹配:基于有序的谓词逻辑的匹配,通过谓词演算公式进行规约匹配:基于有序的谓词逻辑的匹配,通过谓词演算公式进行精确匹配精确匹配,通过逻辑连接符和逻辑量词进行部分精确匹配通过逻辑连接符和逻辑量词进行部分精确匹配n特征特征(signature)匹配:通过接口的定义进行匹配,适用于函数之类匹配:通过接口的定义进行匹配,适用于函数之类的构件的构件n术语轮廓匹配:基于构件编目描述语言的匹配,将每一个构件的术语轮廓匹配:基于构

23、件编目描述语言的匹配,将每一个构件的编目描述作为该构件的一个特征矢量,通过测算矢量的距离进行编目描述作为该构件的一个特征矢量,通过测算矢量的距离进行匹配匹配n行为采样:基于构件测试的匹配,根据测试结果相同的概率进行行为采样:基于构件测试的匹配,根据测试结果相同的概率进行匹配匹配28基于构件的开发方法基于构件的开发方法 (2)构件适配(构件适配(Adaptation)o构件适配指:是一般化化的构件建立面向特定应构件适配指:是一般化化的构件建立面向特定应用的构件用的构件o方法:方法:n部分实现。构件只实现一部分行为,而其它部分仅提。构件只实现一部分行为,而其它部分仅提供接口供接口o例如,例如,C+

24、类的抽象方法类的抽象方法n重载。构件为其全部行为提供了缺省的实现,用户在。构件为其全部行为提供了缺省的实现,用户在具体应用时可以重载这些行为具体应用时可以重载这些行为n插件。通过编写插件的形式为构件添加功能。插件在。通过编写插件的形式为构件添加功能。插件在构件中注册其服务,构件在需要使用该服务时调用插构件中注册其服务,构件在需要使用该服务时调用插件件29基于构件的开发方法基于构件的开发方法 (3)构件的创建构件的创建 o创建构件时必须强调广泛性、通用性,而不应考创建构件时必须强调广泛性、通用性,而不应考虑那些仅在一些特定场合有用的特性虑那些仅在一些特定场合有用的特性o构件创建的技术思路构件创建

25、的技术思路n扩展。扩展构件的范围,延伸其需求,以便于以后的。扩展构件的范围,延伸其需求,以便于以后的应用应用n收缩。缩小构件的范围和限制它们的功能,为以后的。缩小构件的范围和限制它们的功能,为以后的构件延伸建立基础。(如:继承机制)构件延伸建立基础。(如:继承机制)n隔离。把构件与系统特定的部分(如操作系统或者硬。把构件与系统特定的部分(如操作系统或者硬件)分离开来,以实现构件的独立性件)分离开来,以实现构件的独立性n可配置性。创建一些较小的构件,然后通过配置以不。创建一些较小的构件,然后通过配置以不同的方式组合这些构件以适应不同的应用需求同的方式组合这些构件以适应不同的应用需求o构件创建完成

26、之后,必须对其进行构件创建完成之后,必须对其进行认证认证30建造可复用构件建造可复用构件o建造构件的目的是为了以后复用构件,即建造构件的目的是为了以后复用构件,即为复用而建造构件为复用而建造构件o在建造构件时仍应遵循抽象、逐步求精、在建造构件时仍应遵循抽象、逐步求精、信息隐蔽、功能独立、结构化程序设计等信息隐蔽、功能独立、结构化程序设计等思想和原则思想和原则o由于面向对象方法具有封装性、继承等特由于面向对象方法具有封装性、继承等特点,能有力地支持复用,所以应尽可能考点,能有力地支持复用,所以应尽可能考虑采用面向对象方法虑采用面向对象方法31对可复用构件的要求对可复用构件的要求o构件的设计应具有

27、较高的通用程度构件的设计应具有较高的通用程度o构件应易于调整构件应易于调整o构件应易于组装构件应易于组装o构件必须具有可检索性构件必须具有可检索性o构件必须经过充分的测试构件必须经过充分的测试32创建领域构件的设计框架创建领域构件的设计框架o除应遵循已有的设计概念和原则外,除应遵循已有的设计概念和原则外,还必须考虑应用领域的特征,例如:还必须考虑应用领域的特征,例如:n标准数据:应该研究应用领域,并标识出标标准数据:应该研究应用领域,并标识出标准的全局数据结构准的全局数据结构(如文件结构或完整的数据如文件结构或完整的数据库库)n标准接口协议:应该建立三个层次的接口协标准接口协议:应该建立三个层

28、次的接口协议:构件内议:构件内(intramodular)接口、构件外接口接口、构件外接口以及人机接口以及人机接口n程序模板:程序的结构模型可以作为新程序程序模板:程序的结构模型可以作为新程序的体系结构设计的模板的体系结构设计的模板33可变性分析可变性分析o构件应具有较强的通用性和可变性构件应具有较强的通用性和可变性o为了满足不同的复用需求,需要在构件复用时可能为了满足不同的复用需求,需要在构件复用时可能发生变化的一个或多个位置上标识变化点发生变化的一个或多个位置上标识变化点(variation point),同时为变化点附加一个或多个变体,同时为变化点附加一个或多个变体(variant)n例

29、如例如Account构件的帐号编码规则以及透支规则在不同的构件的帐号编码规则以及透支规则在不同的国家可能不一样国家可能不一样VP1VP2CVP1 descriptioncontext34 构件系统构件系统中的门面中的门面和变体和变体35可变性机制可变性机制o继承:在变化点上创建指定抽象类型或抽继承:在变化点上创建指定抽象类型或抽象类的子类型或子类。象类的子类型或子类。o扩展和扩展点:可以在用况和对象构件中扩展和扩展点:可以在用况和对象构件中的变化点的变化点(或扩展点或扩展点)上附加变体上附加变体(或扩展或扩展)o参数化:用于模板、框架和宏的类型和类参数化:用于模板、框架和宏的类型和类n适用于变

30、体较小时适用于变体较小时(经常是一个数值、短语或表达式经常是一个数值、短语或表达式)36构件质量保证构件质量保证(qualification)o目的:确保获得的构件可以完成所需的功目的:确保获得的构件可以完成所需的功能并能被集成在系统中与系统的其它构件能并能被集成在系统中与系统的其它构件正确交互正确交互o主要依据是构件的接口描述和相关的规格主要依据是构件的接口描述和相关的规格说明,但这些信息往往还不足以确保构件说明,但这些信息往往还不足以确保构件能成功地集成到系统中能成功地集成到系统中o对于外部提供的成品构件对于外部提供的成品构件(COTS)可通过运可通过运行构件测试版进行鉴定行构件测试版进行

31、鉴定37构件质量保证需考虑的因素构件质量保证需考虑的因素o应用编程接口应用编程接口(API)o该构件所需的开发和集成工具该构件所需的开发和集成工具o运行时需求,包括使用的资源运行时需求,包括使用的资源(如内存或存储器如内存或存储器)、时间或速度以及网络协议、时间或速度以及网络协议o服务需求,包括操作系统接口和来自其他构件服务需求,包括操作系统接口和来自其他构件的支持的支持o安全特征,包括访问控制和身份验证协议安全特征,包括访问控制和身份验证协议o嵌入式设计假定,包括特定的数值或非数值算嵌入式设计假定,包括特定的数值或非数值算法的使用法的使用o异常处理异常处理38构件质量的保证措施构件质量的保证

32、措施 39基于构件的开发方法基于构件的开发方法 (4)构件的组合构件的组合o构件组装构件组装n将经过鉴定和特化后的构件组装成应用系统将经过鉴定和特化后的构件组装成应用系统n提倡使用构件组装工具来组装应用系统提倡使用构件组装工具来组装应用系统(能检查接口匹配能检查接口匹配中的错误,实现组装的自动化或半自动化中的错误,实现组装的自动化或半自动化)o构件特化构件特化n根据应用系统的具体情况对其进行特化,对变化点配置根据应用系统的具体情况对其进行特化,对变化点配置特定的变体,必要时要自行开发变体特定的变体,必要时要自行开发变体n如果所选的构件不能完全满足应用系统的功能需求,还如果所选的构件不能完全满足

33、应用系统的功能需求,还需对构件作适当的修改需对构件作适当的修改n如果所选的构件未按构件标准开发如果所选的构件未按构件标准开发(如遗产系统中抽取的如遗产系统中抽取的构件构件)时,还需按某种构件标准对其进行包装时,还需按某种构件标准对其进行包装40构件组合的方法构件组合的方法o构件的结构构件的结构o构件组合的主要方法构件组合的主要方法构件B构件A确切匹配 额外服务修改服务 补充服务粘合代码41构件组合的中介构件组合的中介o直接组合。构件通过直接交互的方式来构建。构件通过直接交互的方式来构建应用应用n构件必须了解其它构件的存在及其所能提供的构件必须了解其它构件的存在及其所能提供的服务,并直接调用这些

34、服务服务,并直接调用这些服务n直接组合导致构件接口之间的强耦合直接组合导致构件接口之间的强耦合o基于中间件的组合n中间件通过底层的基础设施来容纳和集成构件中间件通过底层的基础设施来容纳和集成构件n构件之间并不直接互相调用,而是通过中间件构件之间并不直接互相调用,而是通过中间件框架所提供的接口来调用框架所提供的接口来调用42构件组合要注意的问题构件组合要注意的问题o构件方面的问题n构件的分类和文档化技术构件的分类和文档化技术n构件测试与认证技术构件测试与认证技术n构件的版本和升级问题构件的版本和升级问题o集成过程方面的问题n构件集成对软件开发过程模型可能产生影响构件集成对软件开发过程模型可能产生

35、影响n在分析待开发系统前就应熟悉已经存在的构件,在分析待开发系统前就应熟悉已经存在的构件,并根据构件的有关信息将系统分割为构件并根据构件的有关信息将系统分割为构件n维护构件的困难维护构件的困难43构件组合要注意的问题(续)构件组合要注意的问题(续)o质量方面的问题n如何保证构件及其组合结果系统的可靠性如何保证构件及其组合结果系统的可靠性n相对于从头开发并经过优化的系统,基于构件相对于从头开发并经过优化的系统,基于构件系统的性能可能有所下降系统的性能可能有所下降n使用构件组合系统的安全性使用构件组合系统的安全性44应用系统工程应用系统工程o任务:通过组装可复用构件得到应用系统任务:通过组装可复用

36、构件得到应用系统o构件是组成应用系统的基本单元构件是组成应用系统的基本单元o注重体系结构和构件接口的分析和设计,注重体系结构和构件接口的分析和设计,忽略构件内部实现的设计忽略构件内部实现的设计45关注接口的设计关注接口的设计o接口是构件行为的描述机制,并提供了对接口是构件行为的描述机制,并提供了对其服务的访问其服务的访问n供应接口供应接口(Provided interface):描述构件所提供的服:描述构件所提供的服务,可以被其它构件访问务,可以被其它构件访问n请求接口请求接口(requived interface):请求接口描述构件为:请求接口描述构件为完成其功能完成其功能(服务服务)需请求

37、其它构件为其提供的服务需请求其它构件为其提供的服务o一个接口可以有多种实现,并且对使用者一个接口可以有多种实现,并且对使用者隐蔽隐蔽o接口描述是构件使用者能依赖的所有信息,接口描述是构件使用者能依赖的所有信息,因此构件接口描述的表达能力和完整性是因此构件接口描述的表达能力和完整性是CBSD方法主要关注的问题之一方法主要关注的问题之一46基于构件的体系结构基于构件的体系结构o基于构件的应用系统体系结构基于构件的应用系统体系结构n描述了组成应用系统的构件,构件之间的组织结构、描述了组成应用系统的构件,构件之间的组织结构、交互、约束和关系交互、约束和关系n对系统的组成、结构以及系统如何工作的较为宏观

38、的对系统的组成、结构以及系统如何工作的较为宏观的描述描述o如果在领域工程中已开发了领域基准体系如果在领域工程中已开发了领域基准体系结构结构(reference architecture),则可以通过,则可以通过对基准体系结构的剪裁和对基准体系结构的剪裁和/或扩充获得应用或扩充获得应用系统的体系结构系统的体系结构47基于构件的体系结构层次基于构件的体系结构层次o逻辑体系结构逻辑体系结构n以接口形式对每组服务进行描述,并描述那些包怎样以接口形式对每组服务进行描述,并描述那些包怎样交互来满足通常的用户使用场景交互来满足通常的用户使用场景n展示了系统设计的蓝图,可用于验证系统是否提供了展示了系统设计的

39、蓝图,可用于验证系统是否提供了适当的功能,并能在系统功能需求变化时方便地改变适当的功能,并能在系统功能需求变化时方便地改变系统的设计系统的设计o物理体系结构物理体系结构n描述系统的物理设计,包括硬件及其拓扑结构、网络描述系统的物理设计,包括硬件及其拓扑结构、网络和通信协议、基础设施和通信协议、基础设施(如运行平台、中间件、数据库如运行平台、中间件、数据库管理系统等管理系统等),以及软件系统的部署,以及软件系统的部署n展示了系统的实现构架,有助于理解系统的许多非功展示了系统的实现构架,有助于理解系统的许多非功能属性,如性能、吞吐量、服务的可用性等能属性,如性能、吞吐量、服务的可用性等48基于构件

40、的应用系统开发方法基于构件的应用系统开发方法oRational统一过程统一过程(RUP)n一个关于软件开发的广泛的过程框架,覆盖了整个软件一个关于软件开发的广泛的过程框架,覆盖了整个软件生命周期生命周期n使用使用UML进行分析和设计建模,鼓励使用进行分析和设计建模,鼓励使用CBSD方法方法oSterling Software的的Enterprise-CBD方法方法n鼓励使用鼓励使用UML的扩展形式把构件的规格说明和实现分离的扩展形式把构件的规格说明和实现分离n允许制作技术中立的规格说明,然后再使用不同的实现允许制作技术中立的规格说明,然后再使用不同的实现技术来实现规格说明技术来实现规格说明o共

41、同点:关注构件库中的构件、接口的设计共同点:关注构件库中的构件、接口的设计和基于构件构架的应用程序组装和基于构件构架的应用程序组装49COTS的概念 o商品构件商品构件COTS(Commercial Off The Shelf):指可根):指可根据商品价目表向制造商或供应商购买的现成商品,用户据商品价目表向制造商或供应商购买的现成商品,用户能在不加任何修改的情况下直接使用能在不加任何修改的情况下直接使用 o在软件领域中,在软件领域中,COTS是指具有如下特征的可运行的软件是指具有如下特征的可运行的软件产品:产品:n可以面向公众销售、出租或者授予许可;可以面向公众销售、出租或者授予许可;n购买者

42、、租赁者和获得许可者没有存取源代码的权利,只能将购买者、租赁者和获得许可者没有存取源代码的权利,只能将COTS作为黑盒使用;作为黑盒使用;n由创建它的供应商提供,一般情况下由供应商负责维护和升级;由创建它的供应商提供,一般情况下由供应商负责维护和升级;n在市场上可以有多种版本的拷贝可用。在市场上可以有多种版本的拷贝可用。o使用使用COTS的主要优点在于:价格;产品质量;功能;上的主要优点在于:价格;产品质量;功能;上市时间;维护代价市时间;维护代价50基于COTS的开发与基于构件的开发o基于基于COTS的开发方法与的开发方法与CBD都是组合式的软件都是组合式的软件开发方法,前者可以看作后者的特

43、殊情形开发方法,前者可以看作后者的特殊情形 o二者的区别二者的区别COTSCBD通常只限于使用黑盒法通常只限于使用黑盒法 可使用白盒法和黑盒法相结合的方法可使用白盒法和黑盒法相结合的方法 用户获得的是执行构件资源的服务,用户获得的是执行构件资源的服务, 是是COTS供应商拥有相应构件的版权供应商拥有相应构件的版权 用户有些时候可以获得源代码,因而用户有些时候可以获得源代码,因而开发者可能拥有其开发的系统的版权开发者可能拥有其开发的系统的版权 COTS由供应商维护由供应商维护 开发者负责维护所获得的构件开发者负责维护所获得的构件 51Java世界中的构件化开发世界中的构件化开发oJavaBean

44、oEJBnEJB 2.1nEJB 3.0oJava EE(J2EE)52DB & EISResourcesBrowserStand-aloneApplicationWeb ComponentsEJBsWeb ComponentsEJBsEJB, EJB Server, EJB ClientStandalone EJB client talking to EJB serverweb-tier EJB client talking to EJB serverEJB clients talking to EJB server53ClientObject ReferenceStubServant SkeletonServernetworkClient and server are collocated in different address space.54EJB Architecture55EJB Architecture56EJB container/server57

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号