第八章基于构件的软件工程_第1页
第八章基于构件的软件工程_第2页
第八章基于构件的软件工程_第3页
第八章基于构件的软件工程_第4页
第八章基于构件的软件工程_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章第八章基于构件的软件工程基于构件的软件工程第11章基于构件的软件工程1111.1软件复用的基本概念11.3构件的开发与构件库11.2软件构件与构件工程11.1软件复用的基本概念软件复用就是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。

可复用的软件成分—可复用构件(ReusableComponent)可从旧软件中提取,也可以专门为复用而开发。软件复用不仅是对程序的复用,它包括对软件生产过程中任何活动所产生的制成品的复用。如:项目计划、可行性报告、需求定义、分析模型、详细说明、源程序和测试用例等等。11.1软件复用的基本概念代码的复用设计结果的复用分析结果的复用测试信息的复用

高抽象程度

低11.1.1软件复用的级别包括目标代码,也包括文本形式的源代码。受实际环境影响小,可复用机会多,所需修改少。可被复用的分析结果是针对问题域的某些事物或某些问题的抽象程度更高的解法。主要包括测试用例(testcase)的复用和测试过程信息的复用。三种方式复用:

从现有系统的分析结果中提取可复用构件用于新系统的分析;用一份完整的分析文档作为输入,成生针对不通软硬件平台和其它实现条件的多项设计;独立于具体应用,专门开发一些可复用的分析构件。11.1.1软件复用的级别

软件生产过程主要是正向过程,即软件产品从抽象级别较高的形态向抽象级别较低的形态演化,所以较高级别的复用容易带动较低级别的复用,反之则不然。复用级别越高,可得到的回报也越大,因此分析软件(AnalysisWare)和设计软件(DesignWare)的复用备受重视。软件复用的优点:

(1)提高软件生产率,降低软件生产代价;(2)提高软件质量;(3)互操作性好;(4)推动标准化;(5)支持原型开发。

软件复用的级别11.1.2软件复用的形式一、按照重用活动所跨越的应用领域的类型分

1、横向复用(horizontalreuse)也称为水平复用,是指复用活动的范围跨越了几个不同的应用领域,复用的软件产品主要包括数据结构、通用算法、人机界面等软件元素。2、纵向复用(verticalreuse)也称为垂直复用,是指复用活动的范围限制在同一个应用领域或者是一类具有较多共性的应用领域内。11.1.2软件复用的形式二、基于软件复用的软件开发过程的角度分1、生产者复用(productreuse)

指建立、获取或者重新设计可复用构件的活动。涉及到的活动包括:复用的规划、领域分析、构件的开发、构件库的组织和管理。2、消费者复用(consumerreuse)

指使用可复用的构件建立新的系统的活动。涉及到的活动包括:应用系统的规划、构件的检索和选择、应用系统中非复用部分的开发、应用系统的组装。11.1.2软件复用的形式建立构件组装应用

生产者复用消费者复用(为复用开发构件)(使用构件开发应用)图11.1生产者复用与消费者复用复用具有许多明显的优点,但目前应用不广泛的主要原因是:(1)技术因素

构件与应用系统之间的差异;构件要达到一定的规模,才能支持有效的复用;发现合用构件的困难;基于复用的软件开发方法和软件过程需要一些新的理论、技术及支持环境。11.1.3软件复用的困难(2)人的因素喜欢自己创造而不喜欢使用别人的东西。(4)教育因素软件科学技术的教育与培训中,缺乏关于软件复用的内容,缺少专门教材和课程。(3)管理因素把复用构件和一般软件构件同等看待,把复用看作可有可无的事。11.1.3软件复用的困难11.2软件构件与构件工程

基于软件构件的软件工程也称为构件工程,是以面向对象的方法为基础,实现软件重用,构造新系统的过程。为了实现软件重用,基于软件构件的软件工程强调领域工程与软件工程同时进行。领域工程创建应用领域的模型,标识、构造、分类和传播一组可重用的软件。软件工程师则在软件开发过程中重用它们。图11.2给出了一个典型的重用的过程模型,描述了领域工程与软件工程的关系。11.2软件构件与构件工程图2领域分析设计软件体系结构开发可重用的软件成分中心库可重用软件成分/构件领域模型结构模型系统分析规格说明与设计建造系统规格说明分析与设计模型应用软件用户需求软件工程领域工程图11.2重用的过程模型11.2软件构件与构件工程一个软件只只有在多个个系统中被被使用才可可称为“可可复用构件件”,必须须具备的条条件:(1)独立立性解决一个相相对独立的的问题,或或大问题中中某个相对对独立的部部分;(2)完整整性提供较完整整的解决,,不要遗留留很多缺口口,让复用用者做大量量补充;(3)可标标识性构件所解决决的问题应应该是可标标识的,可可命名,有有简要介绍绍,便于理理解和使用用。(4)通用性构件解决的的问题,应应在同类应应用中具有有一般性;;(5)适应性应用场合有有某些变化化时,构件件仍是可用用的,使构构件的某些些数据参数数化和数据据类型参数数化;(11)可靠性要求构件对对预计将要要使用它的的系统时可可靠的;(7)标准化可复用构件件的标准化化对于软件件复用是至至关重要的的。可复用构件件可复用构件件11.2.2基于于构件的软软件工程基于构件的的软件工程程与传统的的或面向对对象的软件件工程相比比,有显著著的差异。。它不是针对对某个特定定的软件系系统,而是是针对一类类软件系统统的共同的的特征、知知识和需求求。基于构件的的软件的开开发过程包包括两个并并发的子过过程,一个个是领域工工程,另一一个是基于于构件的开开发。领域域工程完成成一组可复复用构件的的标示、构构造、分类类和传播;;基于构件件的开发完完成使用可可复用构件件构造新的的软件系统统。8.2.2基于构构件的软件件工程领域分析是是对特定应应用领域中中共同的特特征、知识识、需求的的标识、分分析和规约约。领域分分析是特定定领域内软软件重用的的基础,它它的目标就就是:发现现和挖掘在在特定领域域内可以被被复用的构构件。领域域分析活动动中输入和和输出如图图11.33所示:11.2.3领域域分析领域分析输入信息技术文献已有应用专家经验/建议当前与未来来的需求输出信息领域语言复用标准分类方法功能/行为为模型图11.33领域分分析的输入入和输出领域分析不不是针对某某个特定的的软件系统统,而是针针对一类软软件系统的的共同的特特征、知识识和需求。比需求分析析更一般、、更抽象、、更广泛的的特征。11.2.3领域域分析领域分析(DomainAnalysis)是对一类类应用系统统的共同应应用领域进进行系统化化分析,以以发现该领领域的共同同知识、需需求及其应应用系统的的共同特征征。领域分析析又称作作领域工工程(DomainEngineering),是软软件工程程的发展展与延伸伸。领域分析析是一项项比系统统分析更更难的工工作。领领域分析析方法可可采用结结构化方方法和面面向对象象方法,,而后者者将成为为主流。。领领域分分析11.3构件件的开发发与构件件库构件的开开发领域分析析的结果果为构件件的选取取和开发发提供了了指导性性的原则则。除了了有领域域分析作作为其基基础,构构件开发发还需要要遵循一一定的设设计概念念和原则则。构件应该该具有相相当的一一般性和和抽象性性,能够够用于满满足一类类相似的的需求,,一个过过于特殊殊的构件件是很难难被重复复使用的的。即使使一个通通用性很很高的构构件也不不可能完完全适应应用户的的需求和和运行环环境,所所以在一一个构件件被不同同的应用用复用时时,对它它的某些些部分进进行修改改是不可可避免的的。所以以构件开开发时,,需要为为用户对对构件的的调整和和修改留留出余地地。例如如继承、、参数化化、模板板和宏都都是典型型的提高高构件灵灵活性和和可调整整性的机机制。11.3构件件的开发发与构件件库构构件库库构件库(ComponentLibrary)用于对可可复用构构件进行行存储和和管理。。它是支支持软件件复用的的必要设设施。构构件库必必须有大大量的可可复用构构件。构件库系系统应提提供的主主要功能能:构件件的存储储、管理理、检索索以及库库的浏览览与维护护等。关键是支支持使用用者高效效而准确确地发现现所需的的可复用用构件。。相关的的主要技技术是分分类方法法和检索索方法。。支持方便便的、友友好的用用户管理理和使用用界面。。构件分类类构件检索索涉及两个个基本问问题:构构件库库大多数的的构件分分类模式式可以归归纳为以以下三种种类型::(1)枚枚举分类类通过定义义一个层层次结构构来对构构件进行行分类。。构件库库中的可可复用构构件按照照某种标标准被分分成了若若干个大大类,而而每个大大类中的的构件再再被划分分成若干干个小类类,依此此类推,,这样就就形成了了一个构构件分类类的层次次结构,,图形用户界面类窗口类菜单类图形窗口构件文字窗口构件系统菜单构件弹出式菜单构件普通菜单构件图11.4枚举分类类的层次次结构构件的分分类构件的分分类(2)刻刻面分类类一个刻面面描述构构件某一一个方面面的特征征。刻面面分类则则是从不不同的侧侧面对构构件进行行分类,,每一种种分类方方式称为为一个刻刻面。不不同的刻刻面根据据其重要要性可以以设置不不同的优优先级。。刻面应用领域对象功能编程语言刻面值图形用户界面编程菜单动态修改菜单项JAVA对构件的的每个刻刻面赋予予相应的的值,用用以描述述该构件件。刻面面分类具具有较好好的灵活活性,易易于加入入新的刻刻面值,,因此刻刻面分类类比枚举举分类更更易于扩扩展和修修改。该方法首首先是为为构件库库中的所所有构件件定义一一组属性性,并赋赋予相应应的属性性值。开开发人员员通过指指定一组组属性值值在构件件库中对对构件进进行检索索。构件的分分类刻面分类类法(FacetedClassification):支持多重重观点对对构件进进行分类类,例如如从构件件的应用用领域、、构件所所描述的的对象、、构件的的观点和和编程语语言等不不同的方方式来分分类。每一种分分类方式式称为一一个刻面面。每个刻面面把构件件集合划划分为一一个子集集,各刻刻面所划划分的子子集形成成一些较较小的交交集。一个构件件对每个个每个刻刻面有一一个刻面面值,例例如:应用领域域=计计算机机绘图对对象象=椭椭圆功能==彩色色填充,,编编程语言言=C++11.3.2构件的分分类检索一个个构件时时,给出出一组刻刻面值,,将确定定一组子子集合,,构件应应该在这这些子结结合的交交集中,,从其中中确认所所需的构构件就比比较容易易。构件可用用属性描描述,例例如构件件类型、、开发单单位、作作者、提提交日期期等属性性。检索索时通过过构件的的属性可可以缩小小搜索范范围。刻面和属性都都不涉及构件件内部实现,,只是为了便便于构件的管管理、检索和和使用。如果果把构件比作作一只箱子,,其内容如同同箱子中装的的东西,刻面面和属性则如如同箱子外边边的标签。刻面分类法可可以看作层次次分类法的扩扩充。11.3.2构件的分类(3)属性-值分类该方法首先是是为构件库中中的所有构件件定义一组属属性,并赋予予相应的属性性值。开发人人员通过指定定一组属性值值在构件库中中对构件进行行检索。该分类方法与与刻面分类方方法有几点不不同之处:属性的数量没没有限制,而而刻面描述一一般限制在7或8个刻面面;属性没有优先先级,而刻面面根据其重要要程度,有相相应的优先级级;11.3.2构件的分类构件库中检索索一个构件和和在数据库中中检索一个记记录是不同的的。构件库检索的的不确定性带带来两种相互互矛盾的结果果:检索的结结果可能是一一个较大的构构件集合,要要从中找到所所需的构件仍仍然很费力;;检索得到的的集合没有把把真正需要的的构件包括在在内。解决方法:(一)一般构构件库系统能能对提出的检检索条件作广广义解释。建立同义词对对照表,例如如“商品销售售”、“售货货”、“卖货货”看作一组组同义词;建立近意词对对照表,例如如把“商业””、“商场””、“连锁店店”看作一组组近意词。系统首先匹配配同义词,再再匹配近意词词,都可以被被包括到广义义结果集合中中。构件检索11.3.3构件检索(二)使检索索得到的构件件集合尽可能能不包括对用用户无用的构构件。增加更多的刻刻面与构件属属性:较多的的刻面和属性性值,将得到到更小的子集集合文集,减减轻最终发现现和确认所需需构件的难度度;建立构件关键键词:根据构构件内容提炼炼关键词,如如同学术论文文的关键词,,反映有关构构件内容的一一些主要信息息。例如,找功能能构件的关键键词有“压入入”、“弹出出”、“后进进先出”等等等。如果通过过刻面和构件件属性得到的的构件子集较较大,可用关关键词作进一一步的检索,,以缩小搜索索范围。改进构件检索索的其它措施施:(1)记录用用户使用构件件库的经验,,并根据这些些经验改经构构件检索系统统;(2)对每个个构件给出一一段文字的简简要介绍;(3)提供较较强的人机对对话功能;(4)引导用用户对自己需需求的表达不不断精化。11.3.3构件检索11.3.4基于构件件的开发11.3.4基于构构件的开发基于构件的开开发是使用可可复用构件组组装开发新的的应用系统。。一、开发过程程1、构件的鉴定构件的鉴定是是对打算用于于软件开发的的构件能否满满足应用的需需要,达到应应用所需要的的性能、可靠靠性、质量的的保证进行相相应的考察。。2、构件的调整通常在在将构构件复复用到到应用用中时时,构构件需需要进进行必必要的的调整整和修修改才才能适适应应应用的的需要要。3、构件的的组装装构件的的组装装是将将经过过鉴定定和调调整以以后的的构件件组装装到应应用系系统中中。通通常为为了达达到此此目的的,还还必须须建一一个基基础设设施提提供构构件协协同的的模型型和使使构件件能够够交互互并完完成共共同任任务的的的特特定服服务。。二、基基于构构件的的软件件开发发特点点1、开开发的的质量量基于构构件的的软件件开发发的一一个明明显的的优点点就是是提高高了软软件的的质量量。可复用用的构构件在在开发发过程程中,,都经经过严严格的的测试试。基基于构构件的的开发发可可复复用的的软件件构架架在同一一个领领域的的应用用系统统之间间,不不但可可以找找到其其共同同的软软件构构件,,而且且可以以发现现共同同的或或相似似的软软件体体系结结构(SoftwareArchitecture)。专向领领域的的复用用开拓拓了一一种新新的复复用境境界,,被复复用的的不仅仅是可可实现现某种种局部部功能能的软软件构构件,,而且且可以以是一一些形形成系系统总总体结结构,,并把把各个个可复复用构构件连连接到到一起起的软软件构构架(SoftwareFramework)。电子产产品的的主电电路板板可看看成该该产品品可复复用的的构架架,它它把许许多可可复用用的电电子器器件连连接在在一起起。软件构构架是是一种种由特特定领领域的的软件件体系系结构构所决决定的的软件件构造造框架架。可可复复用的的软件件构架架软件构构架不不是解解决软软件的的某个个局部部问题题,而而是描描述了了软件件的总总体结结构。。它描描述了了一类类软件件的总总体构构成情情况,,包括括该软软件有有哪些些主要要部件件以及及各部部件之之间的的关系系,但但是不不涉及及每个个部件件的细细节。。可复用用的软软件构构架给给出一一类应应用系系统在在总体体构造造上的的共性性或相相似性性,忽忽略了了各个个系统统的局局部差差异。。例如,,一个个超级级市场场的销销售管管理系系统的的软件件构架架,它它包括括的类类有收收款机机、商商品一一览表表、商商品、、供货货员、、销售售事件件、帐帐册和和上级级系统统接口口等。。它只只表明明一般般情况况下系系统应应由哪哪些类类构成成,并并指出出这些些类之之间的的关系系。但但没有有定义义每个个类,,在每每个具具体情情况的的系统统中,,各个个类的的内部部特征征可能能是是不不同同的的。。可可复复用用的的软软件件构构架架在使使用用这这个个软软件件架架构构和和一些些构构件件组组装装成成一一个个具具体体的的应应用用系系统统时时,,可可以以根根据据该该系系统统的的特特殊殊要要求求选选用用不不同同的的构构件件,,也也可可能能对对构构件件做做一一些些局局部部修修改改。。可见见,,软软件件构构架架的的使使用用将将把把软软件件开开发发看看作作一一个个组组装装过过程程,,在在软软件件构构架架的的指指导导下下寻寻找找可可复复用用构构件件(及及开开发发一一些些新新构构件件)并并进进行行组组装装。。这种种基基于于构构件件/架架构构的的组组装装式式软软件件开开发发过过程程是是目目前前很很受受重重视视的的研研究究动动向向。。可可复复用用的的软软件件构构架架基于于构构件件/构构架架的的软软件件开开发发基于于专专向向领领域域的的软软件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论