版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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.1软件复用用的级别别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.1可复用构构件11.2.1可复用构构件11.2.2基基于构构件的软软件工程程基于构件件的软件件工程与与传统的的或面向向对象的的软件工工程相比比,有显显著的差差异。它不是针针对某个个特定的的软件系系统,而而是针对对一类软软件系统统的共同同的特征征、知识识和需求求。基于构件件的软件件的开发发过程包包括两个个并发的的子过程程,一个个是领域域工程,,另一个个是基于于构件的的开发。。领域工工程完成成一组可可复用构构件的标标示、构构造、分分类和传传播;基基于构件件的开发发完成使使用可复复用构件件构造新新的软件件系统。。8.2..2基基于构件件的软件件工程领域分析析是对特特定应用用领域中中共同的的特征、、知识、、需求的的标识、、分析和和规约。。领域分分析是特特定领域域内软件件重用的的基础,,它的目目标就是是:发现现和挖掘掘在特定定领域内内可以被被复用的的构件。。领域分分析活动动中输入入和输出出如图11.33所示::11.2.3领领域分分析领域分析析输入信息息技术文献献已有应用用专家经验验/建议议当前与未未来的需需求输出信息息领域语言言复用标准准分类方法法功能/行行为模型型图11..3领领域分析析的输入入和输出出领域分析析不是针针对某个个特定的的软件系系统,而而是针对对一类软软件系统统的共同同的特征征、知识识和需求求。比需求分分析更一一般、更更抽象、、更广泛泛的特征征。11.2.3领领域分分析领域分析析(DomainAnalysis))是对一类类应用系系统的共共同应用用领域进进行系统统化分析析,以发发现该领领域的共共同知识识、需求求及其应应用系统统的共同同特征。。领域分析析又称作作领域工工程(DomainEngineering)),是软件工工程的发发展与延延伸。领域分析析是一项项比系统统分析更更难的工工作。领领域分析析方法可可采用结结构化方方法和面面向对象象方法,,而后者者将成为为主流。。11.2.3领领域分分析11.3构件件的开发发与构件件库构件的开开发领域分析析的结果果为构件件的选取取和开发发提供了了指导性性的原则则。除了了有领域域分析作作为其基基础,构构件开发发还需要要遵循一一定的设设计概念念和原则则。构件应该该具有相相当的一一般性和和抽象性性,能够够用于满满足一类类相似的的需求,,一个过过于特殊殊的构件件是很难难被重复复使用的的。即使使一个通通用性很很高的构构件也不不可能完完全适应应用户的的需求和和运行环环境,所所以在一一个构件件被不同同的应用用复用时时,对它它的某些些部分进进行修改改是不可可避免的的。所以以构件开开发时,,需要为为用户对对构件的的调整和和修改留留出余地地。例如如继承、、参数化化、模板板和宏都都是典型型的提高高构件灵灵活性和和可调整整性的机机制。11.3构件件的开发发与构件件库11.3.1构构件库库构件库(ComponentLibrary))用于对可可复用构构件进行行存储和和管理。。它是支支持软件件复用的的必要设设施。构构件库必必须有大大量的可可复用构构件。构件库系系统应提提供的主主要功能能:构件件的存储储、管理理、检索索以及库库的浏览览与维护护等。关键是支支持使用用者高效效而准确确地发现现所需的的可复用用构件。。相关的的主要技技术是分分类方法法和检索索方法。。支持方便便的、友友好的用用户管理理和使用用界面。。构件分类类构件检索索涉及两个个基本问问题:11.3.1构构件库库大多数的的构件分分类模式式可以归归纳为以以下三种种类型::(1)枚枚举分类类通过定义义一个层层次结构构来对构构件进行行分类。。构件库库中的可可复用构构件按照照某种标标准被分分成了若若干个大大类,而而每个大大类中的的构件再再被划分分成若干干个小类类,依此此类推,,这样就就形成了了一个构构件分类类的层次次结构,,图形用户界面类窗口类菜单类图形窗口构件文字窗口构件系统菜单构件弹出式菜单构件普通菜单构件图11..4枚举分类类的层次次结构11.3.2构件的分分类11.3.2构件的分分类(2)刻刻面分类类一个刻面面描述构构件某一一个方面面的特征征。刻面面分类则则是从不不同的侧侧面对构构件进行行分类,,每一种种分类方方式称为为一个刻刻面。不不同的刻刻面根据据其重要要性可以以设置不不同的优优先级。。刻面应用领域对象功能编程语言刻面值图形用户界面编程菜单动态修改菜单项JAVA对构件的的每个刻刻面赋予予相应的的值,用用以描述述该构件件。刻面面分类具具有较好好的灵活活性,易易于加入入新的刻刻面值,,因此刻刻面分类类比枚举举分类更更易于扩扩展和修修改。该方法首首先是为为构件库库中的所所有构件件定义一一组属性性,并赋赋予相应应的属性性值。开开发人员员通过指指定一组组属性值值在构件件库中对对构件进进行检索索。11.3.2构件的分分类刻面分类类法(FacetedClassification):支持多重重观点对对构件进进行分类类,例如如从构件件的应用用领域、、构件所所描述的的对象、、构件的的观点和和编程语语言等不不同的方方式来分分类。每一种分分类方式式称为一一个刻面面。每个刻面面把构件件集合划划分为一一个子集集,各刻刻面所划划分的子子集形成成一些较较小的交交集。一个构件件对每个个每个刻刻面有一一个刻面面值,例例如:应用领域域=计计算机机绘图对对象象=椭椭圆功能==彩色色填充,,编编程语言言=C++11.3.2构件的分分类检索一个个构件时时,给出出一组刻刻面值,,将确定定一组子子集合,,构件应应该在这这些子结结合的交交集中,,从其中中确认所所需的构构件就比比较容易易。构件可用用属性描描述,例例如构件件类型、、开发单单位、作作者、提提交日期期等属性性。检索索时通过过构件的的属性可可以缩小小搜索范范围。刻面和属属性都不不涉及构构件内部部实现,,只是为为了便于于构件的的管理、、检索和和使用。。如果把把构件比比作一只只箱子,,其内容容如同箱箱子中装装的东西西,刻面面和属性性则如同同箱子外外边的标标签。刻面分类类法可以以看作层层次分类类法的扩扩充。11.3.2构件的分分类(3)属属性-值值分类该方法首首先是为为构件库库中的所所有构件件定义一一组属性性,并赋赋予相应应的属性性值。开开发人员员通过指指定一组组属性值值在构件件库中对对构件进进行检索索。该分类方方法与刻刻面分类类方法有有几点不不同之处处:属性的数数量没有有限制,,而刻面面描述一一般限制制在7或或8个刻刻面;属性没有有优先级级,而刻刻面根据据其重要要程度,,有相应应的优先先级;11.3.2构件的分分类构件库中中检索一一个构件件和在数数据库中中检索一一个记录录是不同同的。构件库检检索的不不确定性性带来两两种相互互矛盾的的结果::检索的的结果可可能是一一个较大大的构件件集合,,要从中中找到所所需的构构件仍然然很费力力;检索索得到的的集合没没有把真真正需要要的构件件包括在在内。解决方法法:(一)一一般构件件库系统统能对提提出的检检索条件件作广义义解释。。建立同义义词对照照表,例例如“商商品销售售”、““售货””、“卖卖货”看看作一组组同义词词;建立近意意词对照照表,例例如把““商业””、“商商场”、、“连锁锁店”看看作一组组近意词词。系统首先先匹配同同义词,,再匹配配近意词词,都可可以被包包括到广广义结果果集合中中。11.3.3构件检索索11.3.3构件检索索(二)使使检索得得到的构构件集合合尽可能能不包括括对用户户无用的的构件。。增加更多多的刻面面与构件件属性::较多的的刻面和和属性值值,将得得到更小小的子集集合文集集,减轻轻最终发发现和确确认所需需构件的的难度;;建立构件件关键词词:根据据构件内内容提炼炼关键词词,如同同学术论论文的关关键词,,反映有有关构件件内容的的一些主主要信息息。例如,找找功能构构件的关关键词有有“压入入”、““弹出””、“后后进先出出”等等等。如果果通过刻刻面和构构件属性性得到的的构件子子集较大大,可用用关键词词作进一一步的检检索,以以缩小搜搜索范围围。改进构件件检索的的其它措措施:(1)记记录用户户使用构构件库的的经验,,并根据据这些经经验改经经构件检检索系统统;(2)对对每个构构件给出出一段文文字的简简要介绍绍;(3)提提供较强强的人机机对话功功能;(4)引引导用户户对自己己需求的的表达不不断精化化。11.3.3构件检索索11.3.4基基于构构件的开开发11.3.4基基于于构件的的开发基于构件件的开发发是使用用可复用用构件组组装开发发新的应应用系统统。一、开发发过程1、构件的鉴鉴定构件的鉴鉴定是对对打算用用于软件件开发的的构件能能否满足足应用的的需要,,达到应应用所需需要的性性能、可可靠性、、质量的的保证进进行相应应的考察察。2、构件的调调整通常在将将构件复复用到应应用中时时,构件件需要进进行必要要的调整整和修改改才能适适应应用用的需要要。3、构件的组组装构件的组组装是将将经过鉴鉴定和调调整以后后的构件件组装到到应用系系统中。。通常为为了达到到此目的的,还必必须建一一个基础础设施提提供构件件协同的的模型和和使构件件能够交交互并完完成共同同任务的的的特定定服务。。二、基于于构件的的软件开开发特点点1、开发发的质量量基于构件件的软件件开发的的一个明明显的优优点就是是提高了了软件的的质量。。可复用的的构件在在开发过过程中,,都经过过严格的的测试。。118..3.4基于于构件的的开发11.3.5可可复用用的软件件构架在同一个个领域的的应用系系统之间间,不但但可以找找到其共共同的软软件构件件,而且且可以发发现共同同的或相相似的软软件体系系结构((SoftwareArchitecture)。专向领域域的复用用开拓了了一种新新的复用用境界,,被复用用的不仅仅是可实实现某种种局部功功能的软软件构件件,而且且可以是是一些形形成系统统总体结结构,并并把各个个可复用用构件连连接到一一起的软软件构架架(SoftwareFramework)。电子产品品的主电电路板可可看成该该产品可可复用的的构架,,它把许许多可复复用的电电子器件件连接在在一起。。软件构架架是一种种由特定定领域的的软件体体系结构构所决定定的软件件构造框框架。
11.3.5可可复用用的软件件构架软件构架架不是解解决软件件的某个个局部问问题,而而是描述述了软件件的总体体结构。。它描述述了一类类软件的的总体构构成情况况,包括括该软件件有哪些些主要部部件以及及各部件件之间的的关系,,但是不不涉及每每个部件件的细节节。可复用的的软件构构架给出出一类应应用系统统在总体体构造上上的共性性或相似似性,忽忽略了各各个系统统的局部部差异。。例如,一一个超级级市场的的销售管管理系统统的软件件构架,,它包括括的类有有收款机机、商品品一览表表、商品品、供货货员、销销售事件件、帐册册和上级级系统接接口等。。它只表表明一般般情况下下系统应应由哪些些类构成成,并指指出这些些类之间间的关系系。但没没有定义义每个类类,在每每个具体体情况的的系统中中,各个个类的内内部特征征可能是不不同的。。
11.3.5可可复用用的软件件构架在使用这这个软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计毕业实践报告范文
- 商铺访谈报告范文模板
- 2025年龙岩驾驶资格证模拟考试
- 高尔夫球场用拖车行业深度研究报告
- 2025光纤电路租用合同
- 上海外国语大学《投资学专业综合实验》2023-2024学年第一学期期末试卷
- 护理暑期实践报告范文
- 上海视觉艺术学院《证券投资》2023-2024学年第一学期期末试卷
- 上海师范大学天华学院《中级笔译》2023-2024学年第一学期期末试卷
- 上海师范大学《数据新闻》2023-2024学年第一学期期末试卷
- 画法几何与机械制图全套PPT完整教学课件
- 信用修复申请文书(当事人适用)
- 小型水闸委托管理协议书
- 专项资金支出明细表参考模板范本
- 八年级化学鲁教版(五四学制)全一册第二单元探秘水世界知识点梳理
- 工艺研发工程师岗位说明书
- 中国联通机房标准化规范
- 2023年电大期末考试劳动与社会保障法
- GB/T 41805-2022光学元件表面疵病定量检测方法显微散射暗场成像法
- GB/T 6438-2007饲料中粗灰分的测定
- 《乡土中国》之《从欲望到需要》同步教学
评论
0/150
提交评论