您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 安徽工程科技学院计算机系
2019/8/10安徽工程科技学院计算机系1第十七章软件重用技术在软件开发过程中,尽可能重用已有的软件元素(包括源程序模块,设计文档,需求文档,测试方案与用例等),这样将有助于加快开发进度,提高软件生产率,同时也有利于提高软件质量。软件重用希望在此基础上跨越一步:软部件库中所有部件的功能或行为将更为丰富、灵活,但库的组织和检索方法也随之复杂化,因而需要建立相配套的软部件生产和组装机制。2019/8/10安徽工程科技学院计算机系2软件重用技术软部件库必须提供许多有重用价值的软部件,并且这些软部件的功能或行为不能象函数库的标准函数那样刻板、单调,而应表现出可适应不同软件开发项目的灵活性。寻找、选择并理解适用的软部件困难。第十七章软件重用技术2019/8/10安徽工程科技学院计算机系317.1软件重用17.1.1软件重用的概念软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。对于新的软件开发项目而言,它们或者是构成整个目标软件系统的部件,或者在软件开发过程中发挥某种作用。通常将这些软件元素称为软部件。为了能够在软件开发过程中重用现有的软部件,必须在此之前不断地进行软部件的积累,并将它们组织成软部件库。第十七章软件重用技术2019/8/10安徽工程科技学院计算机系417.1.2软件重用的过程与意义按照重用活动是否跨越相似性较少的多个应用领域,软件重用可区别为横向和纵向重用。横向重用是指重用不同应用领域中的软件元素,例如数据结构、分类算法、人机界面构件等。纵向重用是指在一类具有较多公共性的应用领域之间进行软部件重用。因为在两个截然不同的应用领域之间实施软件重用的潜力不大,所以纵向重用才广受瞩目,并成为软件重用技术的真正希望所在。不难理解,纵向重用活动的主要关键点即是域分析:根据应用领域的特征及相似性预测软部件的可重用性。17.1软件重用2019/8/10安徽工程科技学院计算机系5软件重用的过程一旦根据域分析确认了软部件的重用价值,即可进行软部件的开发,并对具有重用价值的软部件进行一般化以便它们能够适应新的类似的应用领域。软部件及其文档即可进入软部件库,成为可供后续开发项目使用的可重用资源。一个软部件是不断积累、不断完善的渐进过程。17.1软件重用2019/8/10安徽工程科技学院计算机系6软件重用的过程软部件库的规模会不断扩大,软件库的组织结构将直接影响软部件的检索效率,特别是当检索手段并不局限于标准函数库所采用的简单名字匹配方法时。可供候选的软部件从库中被检索出来以后,用户还必须理解其功能或行为以判别它是否真正适应于当前项目。17.1软件重用2019/8/10安徽工程科技学院计算机系7面向重用的软件开发17.1软件重用2019/8/10安徽工程科技学院计算机系8软件重用CASE工具软件重用过程可借助计算机的帮助。支持软件重用的CASE工具的主要任务是,用某种组织结构实现软部件库的存储,提供友好的人机界面帮助用户浏览、检索和修改软部件库,并且对用户感兴趣的软部件进行解释。17.1软件重用2019/8/10安徽工程科技学院计算机系9软件重用的意义使用重用技术可以减少软件开发活动中大量的重复性工作,这样就能够提高软件生产率,降低开发成本,缩短开发周期。重用软部件有助于改善软件质量。大量使用软部件,软件的灵活性和标准化程度也可望得到提高。17.1软件重用2019/8/10安徽工程科技学院计算机系1017.1.3重用项目的管理软件重用对传统的软件项目管理模式提出的挑战,其解决方案涉及项目管理机构、管理手段,经济和心理因素等方面。17.1软件重用2019/8/10安徽工程科技学院计算机系1117.2软部件库的构造本节讨论软部件库的构造技术,内容包括:基于域分析的软部件选取,软部件的开发与质量控制,软部件库的组织方法。第十七章软件重用技术2019/8/10安徽工程科技学院计算机系1217.2.1域分析从软件工程的观点看,域就是向目标软件系统提出应用需求的问题及其背景知识。域分析的主要任务是针对单个或一族相似的域,以软件重用为目标,探寻并挖掘域或域族中能够为多个目标软件系统共用的软部件,并对它们进行结构化组织以备重用。域分析与需求分析活动有相似之处,但是,域分析必须具有比需求分析更为广阔的视角:不仅要服务于当前软件项目,而且要从域的历史项目中发现软件项目之间的共同性和差异点,并放眼于同类或相似应用领域的未来软件项目。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系13域分析17.2软部件库的构造2019/8/10安徽工程科技学院计算机系14域分析步骤在省略有关建模的技术细节之后,域分析过程可大致(1)(2)对这些实体及它们之间的关系进行抽象化、一般化和参数化;(3)对可重用的实体进行分类、归并,以备日后重用。域分析还可产生一种重用超结构以管理在后续软件项目的各个开发阶段的软件重用活动:提供可重用软部件,指导新的软部件的生产,根据新的软件需求提示重用的可能性,以及收集有关重用活动的各类统计数据。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系15重用超结构17.2软部件库的构造2019/8/10安徽工程科技学院计算机系1617.2.2软部件的开发域分析的结果为软部件的选取提供了指导原则。一旦确定某些软件元素应该作为重用部件加入软部件库之后,开发人员就必须实际构造它们。软部件的开发具有相当的特殊性:如何使软部件更为通用,更易于组装为新的软件系统,以及在新的运行环境下表现出更好的强壮性?书中的软部件不仅包括代码级部件,也涵盖域知识、需求分析文档、设计文档、测试方案、测试用例等软件元素,因为这些级别上的软部件可望更好地发挥重用技术的潜力,同时也是代码级重用的必要补充。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系171.需求及设计级软部件需求级软部件通常包括问题(及子问题)描述、有关的域知识以及相应的需求规格说明。问题描述及域知识说明均用域语言表示,必要时可设计级软部件包括设计规格说明(片段)、设计决策描述以及相应的设计文档。设计级软部件与需求级软部件相结合,使需求级软部件和设计级软部件的重用同时发生,简化了对这些软部件的理解和组装过程。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系18需求及设计级软部件需求级与设计级软部件的开发必须遵循下列两项原则:(1)将软部件应用的上下文与软部件严格分离;(2)利用抽象化、参数化等手段提取公共性,以增强软部件对未来不同应用项目的适应能力。需求级、设计级与代码级软部件相结合,有助于代码级软部件的提取和理解。借助较高抽象级别的软部件可望提高重用效能,可以重用代码,而且可以重用需求模型和设计方案。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系192.代码级软部件代码级重用是迄今为止研究最深入、应用最广泛的重用技术。代码级软部件除包含通常的代码段外,还必须辅以相应的解释和上下文说明。这些辅助说明可以用结构化自然语言或其他表示机制描述,但最好以相应的需求或设计级软部件的形式出现。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系20代码级软部件可以用下列三种抽象方法开发软部件:(1)功能抽象:软部件的功能由接口说明中的输入—输出关系确定,实现细节对软部件使用者透明。(2)数据抽象:在功能抽象的基础上进一步隐藏除界面参数之外的所有数据。(3)过程抽象:在数据抽象的基础上进一步实现在相同软部件上同时执行的多重线程的无关性。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系21主要原则可重用性、正确性、可理解性和易组装性是衡量软部件质量的重要标准。这些标准都与软部件开发过程中使用的程序设计风格密切相关。为此,下面简要列出程序设计的主要原则,1.17.2软部件库的构造2019/8/10安徽工程科技学院计算机系22主要原则(续)2.(1)使用显式的、标准的、完全的错误处理机制;(2)(3)在软部件上附加重要的测试数据和测试报告。3.(1)(2)软部件内部的结构、数据及控制流程必须标准(3)17.2软部件库的构造2019/8/10安徽工程科技学院计算机系233.软部件的质量控制由于软部件将在多种硬件和软件环境下运行,因此,除采用软件工程的一般质量控制措施外,还要针对可重用软部件的特征进行特别的质量控制。(1)软部件的开发者应利用现有的硬件、软件在尽可能多的环境中进行各种标准测试。(2)在软部件的设计过程中必须预先考虑软部件对于各类可能的硬件环境的可移植性以及对于不同软件环境的适应能力,并为此制订相应的编码原则。(3)应该尽可能地将软部件与环境有关的因素抽象成为软部件的参数。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系24软部件的质量控制(续)(4)对可能引发移植性错误和适应性错误的错误源进行分类,针对每类错误源制订相应的防范和测试措施。(5)制订并执行统一的、良好的程序设计风格。(6)成立软部件质量控制小组。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系2517.2.3软部件库的组织必须对收集和开发的软部件进行分类并置于软部件库的适当位置。软部件的分类方法及相应的库结构对软部件的检索和理解有极为深刻的影响。因此,软部件库的组织应方便软部件的存储和检索。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系26软部件库的组织可重用技术对软部件库组织方法的要求是:(1)支持软部件库的各种维护动作:增加、删除及更新软部件尽(2)不仅要支持精确匹配,还要支持相似软部件的查找;(3)不仅能进行简单的语法匹配,而且能够查找在功能或行为方(4)对应用领域(族)(5)(6)具备可自动化潜力。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系271.关键字分类法这是一种最简单的软部件库组织方法,其基本思想是:根据域分析的结果将应用领域(族)的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构。每个概念使用一个描述性的关键字表示。不可分解的原子级关键字包含隶属于它的某些软部件。当加入软部件时,库管理员必须对软部件的功能或行为进行分析,在浏览上述关键字分类结构的同时将软部件置于最合适的原子级关键字之下。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系28关键字分类结构示例17.2软部件库的构造2019/8/10安徽工程科技学院计算机系292.多面分类法这种软部件库组织方法是Prieto-Diaz和Freeman在1987年提出的。其主要思想植根于图书馆学。多面分类法由三部分构成:多面分类机制,同义词库和概念距离图。(1)在多面分类机制中定义若干用于刻画软部件特征的“面”(facet),每个“面”包含若干“概念”,这些“概念”表述软部件在“面”上的特征。(2)意义相同或相近的若干词汇构成同义词库。(3)概念距离图用于度量每个“面”中“概念”的相似性程度。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系30多面分类法的组成17.2软部件库的构造2019/8/10安徽工程科技学院计算机系313.超文本组织方法超文本方法与基于数据库系统的软部件库组织方法不同,它基于全文检索技术,其主要思想是:所有软部件必须辅以详尽的功能或行为说明文档;说明中出现的重要概念或软部件以网状链接方式相互连接;检索者在阅读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或软部件的文档;全文检索系统将用户给出的关键字与说明文档中的文字进行匹配实现软部件的浏览式检索。17.2软部件库的构造2019/8/10安徽工程科技学院计算机系32超文本组织方法超文本(Hypertext)是一种非线性的网状信息组织方法,它以结点为基本
本文标题:安徽工程科技学院计算机系
链接地址:https://www.777doc.com/doc-179083 .html