版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章,第7章软件复用与组件技术,软件复用与组件技术,第7、7.1章软件复用概述,软件复用是利用现有的软件组件构建一个新的软件系统,从而提高软件系统开发的质量和效率,降低开发成本。可重用软件组件,也称为可重用组件,可以从旧软件中提取,或者专门为重用而开发。软件复用不仅是程序的复用,也是软件生产过程中任何活动产生的成品的复用。如项目计划、可行性报告、需求定义、分析模型、详细描述、源程序和测试用例等。7.1.1软件重用级别,包括文本形式的目标代码和源代码。受实际环境的影响较小,具有更多的可重用机会,并且需要较少的修改。可重用的分析结果是对问题域中某些事物或问题的更高抽象的解决方案。主要包括测试用例
2、的重用和测试过程信息的重用。以三种方式重用:从现有系统的分析结果中提取可重用组件,用于新系统的分析;以完整的分析文件为输入,针对不合理的软硬件平台和其他实施条件生成多种设计;独立于特定的应用,一些可重用的分析组件是专门开发的。软件生产过程主要是一个向前的过程,也就是说,软件产品从一个较高的抽象层次演化到一个较低的抽象层次,所以较高的重用层次容易驱动较低的重用层次,反之亦然。重用级别越高,回报就越大。因此,分析软件和设计软件的复用受到了广泛的关注。软件复用的优点是:(1)提高软件生产率,降低软件生产成本;(2)提高软件质量;(3)良好的互操作性;(4)推进标准化;(5)支持原型开发。7.1 .软
3、件重用的形式。1.根据重用活动所跨越的应用领域的类型。1.水平复用,也称为水平复用,是指复用活动的范围跨越多个不同的应用领域,复用的软件产品主要包括数据结构、通用算法和人机界面等软件元素。2.垂直重用,也称为垂直重用,意味着重用活动的范围被限制在同一个应用领域或一种具有更多共性的应用领域。从基于软件重用的软件开发过程的角度来看,产品重用是指建立、获取或重新设计可重用组件的活动。所涉及的活动包括重用规划、领域分析、组件开发、组件库组织和管理。消费者重用指的是用可重用组件构建新系统的活动。所涉及的活动包括:应用系统的规划、组件的检索和选择、应用系统不可重用部分的开发以及应用系统的组装。重用有许多明
4、显的优势。目前未被广泛应用的主要原因是:(1)技术因素和应用系统的差异;只有当组件达到一定的规模时,它才能支持有效的重用;发现共享组件的困难;基于复用的软件开发方法和软件过程需要一些新的理论、技术和支持环境。7.1.3软件复用的困难,(2)人的因素更喜欢自己创造而不是使用别人的东西。复用有许多明显的优势,但目前其广泛应用的主要原因是:(7.1.3)软件复用的难度;(4)教育因素在软件科学与技术的教育与培训中,缺乏关于软件复用的内容和专门的教材与课程。(3)管理因素将复用组件与一般软件组件同等对待,视复用为可有可无。软件构件和构件工程软件构件工程,又称构件工程,是基于面向对象方法实现软件复用和构
5、建新系统的过程。为了实现软件复用,基于软件构件的软件工程强调领域工程和软件工程的同步实现。领域工程创建一个应用领域模型,并识别、构建、分类和传播一组可重用软件。、图、可重用过程模型、典型的可重用过程模型描述了领域工程和软件工程之间的关系。一个软件只有在多个系统中使用时才能被称为可重用组件。它必须满足以下条件:(1)独立解决相对独立的问题或大问题中相对独立的部分;(2)完整性提供了一个相对完整的解决方案,留下了许多空白,允许重用者进行大量的补充;(3)通过可识别组件解决的问题应该是可识别的、可命名的、简要介绍的、易于理解和使用的。7.2.1可重用组件、软件只有在多个系统中使用时才能被称为“可重用
6、组件”。必要条件如下:(4)通用部件解决的问题在类似应用中应该是通用的;(5)当自适应应用中有一些变化时,组件仍然可用,因此组件的一些数据和数据类型被参数化;(6)可靠性要求部件对于预期使用它的系统是可靠的;(7)标准化可重用组件的标准化对于软件重用非常重要。7.2.1可重用组件、7.2.2基于组件的软件工程,与传统的或面向对象的软件工程相比,有着显著的区别。它不是针对特定的软件系统,而是针对一类软件系统的共同特征、知识和需求。基于组件的软件开发过程包括两个并行的子过程,一个是领域工程,另一个是基于组件的开发。领域工程完成了一组可重用组件的标记、构建、分类和传播;基于组件的开发已经完成。可重用
7、组件用于构建新的软件系统。领域分析是对特定应用领域的共同特征、知识和需求的识别、分析和说明。领域分析是特定领域软件复用的基础,它的目标是发现和挖掘可以在特定领域复用的组件。领域分析活动中的输入和输出如下所示:7.2.3领域分析、领域分析、输入信息技术文献、现有应用专家经验/建议当前和未来需求、输出信息领域语言重用标准分类方法功能/行为模型、输入和输出领域分析、领域分析是对一类应用系统的常见应用领域进行系统分析,以发现该领域的共同知识。领域分析也称为领域工程,是软件工程的发展和延伸。领域分析比系统分析更困难。领域分析方法可以采用结构化方法和面向对象方法,后者将成为主流。领域分析不是针对特定的软件
8、系统,而是针对一类软件系统的共同特征、知识和需求。它比需求分析更通用、抽象和广泛。7.3构件开发和构件库,构件开发领域分析的结果为构件的选择和开发提供指导原则。除了以领域分析为基础之外,组件开发还需要遵循某些设计概念和原则。组件应该相当通用和抽象,并且可以用来满足一种类似的需求。太特殊的组件很难重用。即使是一个高度通用的组件也不能完全适应用户和运行环境的需求,因此当一个组件被不同的应用程序重用时,不可避免地要修改它的某些部分。因此,在开发组件时,有必要为用户留出调整和修改组件的空间。例如,继承、参数化、模板和宏是提高组件灵活性和可调整性的典型机制。7.3.1组件库,用于存储和管理可重用组件。它
9、是支持软件重用的必要工具。组件库必须有大量可重用的组件。构件库系统应该提供的主要功能是构件的存储、管理、检索、浏览和维护等。关键是支持用户高效准确地找到可重用组件。主要相关技术有分类方法和检索方法。支持方便友好的用户管理和用户界面。构件分类和构件检索涉及两个基本问题:大多数构件分类模式可以分为以下三种类型:(1)枚举分类通过定义层次结构对构件进行分类。构件库中的可重用构件按照一定的标准被划分为几个大类,每个大类中的构件又被进一步划分为几个小类等等,从而形成了构件分类的层次结构。枚举分类的层次结构,7.3.2组件分类,(2)分面分类分面描述组件在某一方面的特征。刻面分类是从不同的角度对组件进行分
10、类,每种分类方法称为一个刻面。不同的方面可以根据其重要性设定不同的优先级。为组件的每个方面分配相应的值来描述组件。刻面分类灵活,易于添加新的雕刻值,因此比枚举分类更易于扩展和修改。首先,该方法为组件库中的所有组件定义一组属性,并分配相应的属性值。开发人员通过指定一组属性值来搜索组件库中的组件。分面分类:支持多种观点对组件进行分类,如组件的应用领域、组件描述的对象、组件的观点和编程语言。每种分类方法都称为一个方面。每个面将组件集划分为一个子集,由每个面划分的子集形成一些较小的交集。一个组件的每个刻面都有一个雕刻值,例如:应用字段=计算机绘图对象=椭圆函数颜色填充,编程语言=c、当搜索一个组件时,
11、将给出一组雕刻值,并确定一组子集。组件应该在这些子集的交集中,因此很容易从它们中确定所需的组件。组件可以用属性来描述,比如组件类型、开发公司、作者、提交日期等等。搜索时,可以通过组件的属性缩小搜索范围。方面和属性与组件的内部实现无关,只是为了方便组件的管理、检索和使用。如果一个组件被比作一个盒子,它的内容就像盒子的内容,而方面和属性就像盒子外面的标签。刻面分类可以看作是层次分类的延伸。属性值分类首先,该方法为组件库中的所有组件定义一组属性,并分配相应的属性值。开发人员通过指定一组属性值来搜索组件库中的组件。这种分类方法与刻面分类方法有几个不同之处:属性的数量不受限制,而刻面描述一般限于7或8个
12、刻面;属性没有优先级,而方面根据其重要性有相应的优先级。在组件库中检索组件不同于在数据库中检索记录。构件库检索的不确定性带来了两个矛盾的结果:检索结果可能是一大组构件,从其中寻找所需的构件仍然非常费力;检索到的集合不包括真正需要的组件。解决方案:(1)通用构件库系统可以从广义上解释检索条件。建立同义词对照表,如“商品销售”、“销售额”和“销售额”作为一组同义词;建立一个近义词对照表,例如,把“商业”、“购物中心”和“连锁店”看作一组近义词。该系统首先匹配同义词,然后匹配包含在广义结果集中的近义词。7.3.3组件检索、(2)使检索到的组件集尽可能不包含对用户无用的组件。增加更多的方面和组件属性:
13、方面和属性值越多,获得的子集语料库越小,这将降低最终发现和确认所需组件的难度;建立构件关键词:根据构件内容提炼关键词,就像学术论文中的关键词一样,反映关于构件内容的一些主要信息。例如,查找功能组件的关键词是“推入”、“弹出”、“后进先出”等等。如果通过刻面和组件属性获得的组件子集很大,则可以使用关键字来进一步改进构件检索的其他措施:(1)记录用户使用构件库的经验,并根据这些经验改变构件检索系统;(2)简要介绍每个组件;(3)提供强大的人机对话功能;(4)引导用户不断表达需求。7.3.4基于组件的开发是使用可重用组件来组装和开发新的应用系统。首先,开发过程,即组件的评估,组件的评估是调查用于软件
14、开发的组件是否能够满足应用程序的需求,并确保应用程序所需的性能、可靠性和质量。组件的调整通常,当组件在应用程序中被重用时,需要对组件进行调整和修改以满足应用程序的需要。组件的组装组件的组装是将识别和调整的组件组装到应用系统中。通常,为了实现这个目标,必须构建一个基础设施来提供组件协作和特定服务的模型,使组件能够交互并完成常见任务。基于组件的软件开发的特点基于组件的软件开发的一个明显的优点是它提高了软件的质量。可重用组件在开发过程中经历了严格的测试。在同一领域的应用系统之间,我们不仅可以找到它们共同的软件组件,还可以找到共同的或相似的软件体系结构。特定领域的重用开辟了重用的新领域。不仅是能够实现
15、某些局部功能的软件组件,而且构成系统整体结构并将所有可重用组件连接在一起的软件框架也是可重用的。电子产品的主电路板可以看作是产品的可重用框架,它将许多可重用的电子设备连接在一起。软件体系结构是由特定领域的软件体系结构决定的一种软件构建框架。7.3.5可重用软件架构、软件架构描述了软件的整体结构。它描述了一类软件的整体组成,包括软件的主要组件和组件之间的关系,但不涉及每个组件的细节。可重用软件体系结构给出了一类应用系统整体结构的共性或相似性,忽略了每个系统的局部差异。例如,超市销售管理系统的软件架构包括收银机、商品清单、商品、供应商、销售事件、账簿和高级系统界面。它只指出系统一般应该由哪些类组成
16、,并指出这些类之间的关系。然而,每个类都没有定义,并且每个类的内部特征在每个特定的系统中可能是不同的。当使用这种软件体系结构和一些组件来组装带有body的应用系统时,可以根据系统的特殊要求选择不同的组件,也可以对组件进行一些局部修改。可以看出,软件体系结构的使用将软件开发视为一个装配过程,并在软件体系结构的指导下找到可重用的组件(并开发一些新的组件)并进行装配。这种基于组件/体系结构的装配软件开发过程是一种研究趋势,在项目开始之前就受到了广泛的关注。布劳恩等人在1993年提出了特定领域软件体系结构(DSSA)的概念,它基于组件/体系结构软件开发、特定领域软件重用和领域分析技术。指出基于DSSA的软件开发应采用新的软件生命周期观点来研究符合其特点的软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 诚实守信做自己小学主题班会课件
- 小学主题班会课件:心理健康与成长关爱
- 2026贵州黔东南州凯里市九韶实验高级中学教师招聘38人备考题库及答案详解1套
- 2026湖南长沙卫生职业学院招聘3人备考题库及答案详解(历年真题)
- 2026上海城投集团春季校园招聘备考题库及答案详解(历年真题)
- 2026青海黄南州泽库县麦秀镇卫生院招聘2人备考题库含答案详解(完整版)
- 2026北京顺义区教委所属事业单位第二次招聘教师189人备考题库完整答案详解
- 2026广东揭阳潮汕机场公司旅客过夜用房(酒店)总经理招聘备考题库含答案详解(研优卷)
- 2026江苏常州外国语学校招聘财务人员2人备考题库带答案详解(完整版)
- 2026云南昆明悦馨生物科技有限公司招聘7人备考题库含答案详解(培优b卷)
- 《AQ3067-2026化工和危险化学品重大生产安全事故隐患判定准则》解读
- YDT 5102-2024 通信线路工程技术规范
- 2024纪检监察干部培训
- 中小学艾滋病防护知识
- 《学位论文写作指导》课件
- 宽宽窄窄量量看
- 2023年十堰市郧阳区事业单位真题及答案
- 冀教版七年级历史下册期中测试
- 中国国防建设
- 三角巾头顶帽式包扎评分标准
- GB/T 9787-1988热轧等边角钢尺寸、外形、重量及允许偏差
评论
0/150
提交评论