基于构件的软件工程.ppt
《基于构件的软件工程.ppt》由会员分享,可在线阅读,更多相关《基于构件的软件工程.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 基于构件的软件工程n n基本概念基本概念n n基于构件的开发模型基于构件的开发模型 n nCBSECBSE过程过程 n n基于构件的开发基于构件的开发n n典型的构件模型典型的构件模型 n n构件分类与检索构件分类与检索 6.1 基本概念基于构件的软件工程(基于构件的软件工程(component-based component-based software engineeringsoftware engineering,CBSECBSE)是强调使是强调使用可复用的软件用可复用的软件“构件构件”来设计和构造基来设计和构造基于计算机的系统的过程。于计算机的系统的过程。6.1 基本概念通常来
2、讲,通常来讲,构件构件是计算机软件中的一个模块化的是计算机软件中的一个模块化的构造块。构造块。OMG OMG 统一建模语言规范是这样定义构件的:统一建模语言规范是这样定义构件的:“系系统中模块化的、可部署的和可替换的部件,该部统中模块化的、可部署的和可替换的部件,该部件封装了实现并暴露一系列接口。件封装了实现并暴露一系列接口。”6.1 基本概念在在面向对象软件工程环境面向对象软件工程环境中,中,构件构件包括一组协作包括一组协作的类的类 。在进行构件级设计时,需要对构件中的每个类进在进行构件级设计时,需要对构件中的每个类进行详细设计,包括行详细设计,包括属性属性、与实现相关的、与实现相关的操作操
3、作、所、所有与其他设计类相互通信协作的有与其他设计类相互通信协作的接口接口(消息)。(消息)。6.1 基本概念在在传统软件工程环境传统软件工程环境中,一个中,一个构件构件就是程序的一就是程序的一个功能要素。传统构件也称为个功能要素。传统构件也称为模块模块。通常,构件具有以下三个角色之一:通常,构件具有以下三个角色之一:(1)(1)控制构件控制构件:协调问题域中所有其他构件的调用;:协调问题域中所有其他构件的调用;(2)(2)问题域构件问题域构件:完成部分或全部用户的需求;:完成部分或全部用户的需求;(3)(3)基础设施构件基础设施构件:负责完成问题域中所需相关处理的功能。:负责完成问题域中所需
4、相关处理的功能。BrownBrown和和WallnauWallnau给出了如下可能的构件描述:给出了如下可能的构件描述:(1)(1)构构件件一一个个系系统统中中有有价价值值的的、几几乎乎独独立立的的、并并可可替替换换的部分,它在很好定义的体系结构中完成某一确定的功能。的部分,它在很好定义的体系结构中完成某一确定的功能。(2)(2)运运行行时时软软件件构构件件由由一一个个或或多多个个程程序序构构成成的的动动态态绑绑定定包包,其其中中的的程程序序可可作作为为单单元元进进行行管管理理、并并可可通通过过在在运运行行时时发发现的文档化接口来访问。现的文档化接口来访问。(3)(3)软软件件构构件件仅仅具具
5、有有契契约约性性描描述述的的、显显示示语语境境依依赖赖的的组组装单元。装单元。(4)(4)业务构件业务构件某一某一“自治的自治的”业务概念或业务过程的软业务概念或业务过程的软件实现。件实现。构件分类:构件分类:纵向:纵向:系统级构件系统级构件应用构件应用构件 横向:横向:界面构件(控件)界面构件(控件)业务构件业务构件数据访问构件数据访问构件除除了了关关于于软软件件构构件件的的这这些些描描述述,也也可可以以基基于于软软件件构构件在件在CBSECBSE过程中的使用来描述。过程中的使用来描述。除了除了COTSCOTS构件,构件,CBSECBSE过程生产:过程生产:(1)(1)已已认认证证的的构构件
6、件由由软软件件工工程程师师评评估估,以以确确保保不不仅仅功功能能而而且且性性能能、可可靠靠性性、可可用用性性和和其其它它质质量量因因素素均均符符合合待待构构造造的的系系统或产品的需求。统或产品的需求。(2)(2)适适应应的的构构件件对对不不想想要要的的或或不不希希望望的的特特征征进进行行适适应应性性修修改(也称掩盖或包裹)。改(也称掩盖或包裹)。(3)(3)组组装装的的构构件件被被集集成成到到体体系系结结构构风风格格中中,并并与与能能够够有有效效地协同和管理构件的合适的基础设施互联。地协同和管理构件的合适的基础设施互联。(4)(4)更新的构件更新的构件当新版本的构件可用时,替换现存的构件。当新
7、版本的构件可用时,替换现存的构件。描述构件接口的语言描述构件接口的语言模块接口语言模块接口语言MILMIL(Module interface Module interface languagelanguage)接口定义语言接口定义语言IDLIDL(Interface definition Interface definition languagelanguage)体系结构描述语言体系结构描述语言ADLADL(Architecture Architecture description languagedescription language)接口定义语言接口定义语言IDLIDL用于描述接口的一种
8、高用于描述接口的一种高级符号符号语言,言,IDL不涉及任何接口的不涉及任何接口的实现细节。特点:特点:(1)(1)是一种规范语言,看上去很像是一种规范语言,看上去很像C C语言;语言;(2)(2)分离对象的接口和其实现;分离对象的接口和其实现;(3)(3)剥离了编程语言和对象的依赖性;剥离了编程语言和对象的依赖性;(4)(4)提供了一套通用数据类型,并用这套数据类型提供了一套通用数据类型,并用这套数据类型来定义更为复杂的数据类型。来定义更为复杂的数据类型。接口定义语言接口定义语言IDL体系结构描述语言体系结构描述语言ADLADLADL是一种描述实际系统体系结构的形式语法;是一种描述实际系统体系
9、结构的形式语法;构成元素:构成元素:构件构件 连接件连接件 体系结构配置体系结构配置比较有影响的比较有影响的ADLADL有有C2C2、UniConUniCon、MetaHMetaH、AesopAesop、SADLSADL、RapideRapide、WrightWright等。等。构件接口的分类构件接口的分类内部接口内部接口应用系统接口应用系统接口平台接口平台接口构件接口的分类构件接口的分类6.2 基于构件的开发模型从表面上看,从表面上看,CBSECBSE似乎类似于传统软件工程或面向对象的软似乎类似于传统软件工程或面向对象的软件工程。软件团队针对每一系统需求询问如下问题:件工程。软件团队针对每一
10、系统需求询问如下问题:l现现有有的的商商业业成成品品构构件件(commercial commercial off-the-shelfoff-the-shelf,COTSCOTS)是否能够实现该需求?)是否能够实现该需求?l内部开发的可复用构件是否能够实现该需求?内部开发的可复用构件是否能够实现该需求?l可用构件的接口与待构造系统的体系结构是否相容?可用构件的接口与待构造系统的体系结构是否相容?团队可以试图修改或去除那些不能用团队可以试图修改或去除那些不能用COTSCOTS或自有构件实现或自有构件实现的系统需求。如果不能修改或删除这些需求,则必须应用的系统需求。如果不能修改或删除这些需求,则必须
11、应用软件工程方法构造满足这些需求的新构件。软件工程方法构造满足这些需求的新构件。基于构件的开发模型基于构件的开发模型 基于构件的开发模型基于构件的开发模型具有许多螺旋模型的特点。它本质基于构件的开发模型具有许多螺旋模型的特点。它本质上是演进模型,需要以迭代方式构建软件。不同之处在上是演进模型,需要以迭代方式构建软件。不同之处在于,基于构件开发模型采用预先打包的软件构件开发程于,基于构件开发模型采用预先打包的软件构件开发程序。序。基于构件的开发模型 基于构件的开发模型中基于构件的开发模型中,建模和构建活动开始于识别可建模和构建活动开始于识别可选构件。这些构件有些设计成通用的软件模块选构件。这些构
12、件有些设计成通用的软件模块,有些设计成有些设计成面向对象的类或软件包。面向对象的类或软件包。不考虑构件的开发技术,基于构件的开发模型由以下不考虑构件的开发技术,基于构件的开发模型由以下步骤组成步骤组成(采用演进方法采用演进方法):n 对于该问题领域的基于构件的可用的产品进行研究和评对于该问题领域的基于构件的可用的产品进行研究和评估。估。n 考虑构件集成的问题。考虑构件集成的问题。n 设计软件架构以容纳这些构件。设计软件架构以容纳这些构件。n 将构件集成到架构中。将构件集成到架构中。n 进行充分的测试以保证功能正常。进行充分的测试以保证功能正常。基于构件的开发模型存在的存在的问题:构件的信赖度构
13、件的信赖度一个拿不到源代码的构件如何一个拿不到源代码的构件如何是可信赖的呢?是可信赖的呢?构件认证构件认证谁来认证构件的质量?谁来认证构件的质量?自然特性预测自然特性预测如何预测构件合成的自然性质。如何预测构件合成的自然性质。需求折衷需求折衷在多个构件的特性中人们应该如何在多个构件的特性中人们应该如何进行折衷?进行折衷?6.3 CBSE过程CBSECBSE过程是这样描述的:过程是这样描述的:不仅标识候选的构件,不仅标识候选的构件,而且认证每个构件接口,适应性修改构件以消除而且认证每个构件接口,适应性修改构件以消除体系结构中的不匹配,组装构件到选择的体系结体系结构中的不匹配,组装构件到选择的体系
14、结构风格中以及当系统需求变化时更新构件。构风格中以及当系统需求变化时更新构件。基于构件的软件工程的过程模型强调基于构件的软件工程的过程模型强调领域工程领域工程与与基于构件的开发基于构件的开发并行进行。并行进行。领域工程领域工程 n领域工程的目的是标识、构造、分类和传播一组领域工程的目的是标识、构造、分类和传播一组软件构件,它们对某特定应用领域中现存的和未软件构件,它们对某特定应用领域中现存的和未来的软件具有适用性。来的软件具有适用性。n总体目标是建立相应的机制,使得软件工程师在总体目标是建立相应的机制,使得软件工程师在开发新系统或改造现存系统时可以共享这些构件开发新系统或改造现存系统时可以共享
15、这些构件复用它们。复用它们。n领域工程包括三个主要活动领域工程包括三个主要活动分析分析、构造构造和和传传播播。领域分析过程领域分析过程 通通常常在在面面向向对对象象软软件件工工程程的的范范畴畴内内描描述述领领域域分分析析方法。领域分析过程中的步骤定义如下:方法。领域分析过程中的步骤定义如下:1.1.定义待研究的领域。定义待研究的领域。2.2.对从领域中抽取出的项进行分类。对从领域中抽取出的项进行分类。3.3.收集领域中有代表性的应用样本。收集领域中有代表性的应用样本。4.4.分析样本中的每个应用,并定义分析类。分析样本中的每个应用,并定义分析类。5.5.开发类的分析模型。开发类的分析模型。虽然
16、上面的步骤提供了领域分析的有用模型,但对决虽然上面的步骤提供了领域分析的有用模型,但对决定哪些是候选的可复用软件构件并没有指导作用。定哪些是候选的可复用软件构件并没有指导作用。HutchinsonHutchinson和和HindleyHUT88HindleyHUT88提提出出了了下下面面一一组组实实际际问题用来指导标识可复用的软件构件:问题用来指导标识可复用的软件构件:在将来的实现中是否需要构件的功能?在将来的实现中是否需要构件的功能?构件功能在领域中的公共性怎么样?构件功能在领域中的公共性怎么样?构构件件是是否否有有硬硬件件依依赖赖性性?如如果果具具有有依依赖赖性性,硬硬件件在在不不同同实实
17、现现之之间间保保持持不不变变吗吗?或或者者,硬硬件件的的细细节节可可以移到另一个构件中吗?以移到另一个构件中吗?设计是否为以后的实现进行了足够的优化?设计是否为以后的实现进行了足够的优化?领域分析过程领域分析过程 能否将一个不可复用的构件参数化使其变成可复用能否将一个不可复用的构件参数化使其变成可复用的?的?是否可以仅对构件进行少量修改,就能够在很多实是否可以仅对构件进行少量修改,就能够在很多实现中复用?现中复用?通过修改进行复用是可行的吗?通过修改进行复用是可行的吗?不不可可复复用用的的构构件件是是否否能能够够通通过过分分解解产产生生一一组组可可复复用用的构件?的构件?针对复用的构件分解有效
18、吗?针对复用的构件分解有效吗?领域分析过程领域分析过程 6.4 基于构件的开发基于构件的开发(基于构件的开发(component-based developmentcomponent-based development,CBDCBD)是一个与领域活动并行的)是一个与领域活动并行的CBSECBSE活动。活动。一旦建立了体系结构,就必须向其中增加构件,一旦建立了体系结构,就必须向其中增加构件,这些构件可从复用库中获得,或者根据专门需要这些构件可从复用库中获得,或者根据专门需要而开发。而开发。构件合格性检验、适应性修改与组装构件合格性检验、适应性修改与组装 当当计计划划使使用用某某一一构构件件时时,
19、要要进进行行基基于于构构件件开开发发的的一系列活动:一系列活动:1.1.构构件件合合格格性性检检验验:保保证证候候选选构构件件执执行行需需要要的的功功能能,将将完完全全适适合合系系统统的的体体系系结结构构,并并具具有有该该应应用所需的质量特性。用所需的质量特性。2.2.构件适应性修改构件适应性修改 3.3.构件组装构件组装 1.1.构件合格性检验构件合格性检验在构件合格性检验中考虑的很多因素有:在构件合格性检验中考虑的很多因素有:应用编程接口(应用编程接口(APIAPI););构件所需的开发与集成工具;构件所需的开发与集成工具;运运行行时时需需求求,包包括括资资源源使使用用(如如内内存存和和存
20、存储储器器)、时时间间或或速度以及网络协议;速度以及网络协议;服务需求,包括操作系统接口及来自其他构件的支持;服务需求,包括操作系统接口及来自其他构件的支持;安全特征,包括访问控制和身份验证协议;安全特征,包括访问控制和身份验证协议;嵌入式设计假定,包括特定的数值或非数值算法的使用;嵌入式设计假定,包括特定的数值或非数值算法的使用;异常处理。异常处理。2.2.构件适应性修改构件适应性修改 实实际际上上,即即使使已已经经对对一一个个构构件件在在应应用用体体系系结结构构内内部部的的使使用用进进行行了了合合格格性性检检验验,也也可可能能在在刚刚才才提提到到的的一一个个或或多多个个地地方方发发生生冲冲
21、突突。为为了了避避免免这这些些冲冲突突,经经常常使使用用一一种种称称为为构构件件包包装装(component component wrappingwrapping)的的适应性修改技术:适应性修改技术:白白盒盒包包装装技技术术:检检查查构构件件的的内内部部处处理理细细节节,并并进进行行代代码码级级的的修改来消除任何冲突。修改来消除任何冲突。灰灰盒盒包包装装技技术术:当当构构件件库库提提供供了了能能够够消消除除或或掩掩盖盖冲冲突突的的构构件件扩展语言或扩展语言或APIAPI时时,应用灰盒包装技术。应用灰盒包装技术。黑黑盒盒包包装装技技术术:需需要要在在构构件件接接口口中中引引入入前前处处理理、后后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 构件 软件工程
限制150内