软件工程-齐志昌版.ppt

上传人:小飞机 文档编号:6027889 上传时间:2023-09-16 格式:PPT 页数:76 大小:1.37MB
返回 下载 相关 举报
软件工程-齐志昌版.ppt_第1页
第1页 / 共76页
软件工程-齐志昌版.ppt_第2页
第2页 / 共76页
软件工程-齐志昌版.ppt_第3页
第3页 / 共76页
软件工程-齐志昌版.ppt_第4页
第4页 / 共76页
软件工程-齐志昌版.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《软件工程-齐志昌版.ppt》由会员分享,可在线阅读,更多相关《软件工程-齐志昌版.ppt(76页珍藏版)》请在三一办公上搜索。

1、2023/9/16,国防科技大学计算机学院,1,软件工程 Software Engineering,国防科技大学计算机学院 2004.07,齐治昌 教授,谭庆平 教授,宁洪 教授,董威 博士,2023/9/16,国防科技大学计算机学院,2,第十七章 软件重用技术,在软件开发过程中,尽可能重用已有的软件元素(包括源程序模块,设计文档,需求文档,测试方案与用例等),这样将有助于加快开发进度,提高软件生产率,同时也有利于提高软件质量。事实上,众所周知的标准函数库即为这种思想的朴素体现。软件重用希望在此基础上跨越一步:软部件库中所有部件的功能或行为将更为丰富、灵活,但库的组织和检索方法也随之复杂化,因

2、而需要建立相配套的软部件生产和组装机制。,2023/9/16,国防科技大学计算机学院,3,软件重用技术,为了实现软件重用的基本目标,软部件库必须提供许多有重用价值的软部件,并且这些软部件的功能或行为不能象函数库的标准函数那样刻板、单调,而应表现出可适应不同软件开发项目的灵活性。但是,当有许多灵活、可变的软部件可用时,寻找、选择并理解适用的软部件就非常困难。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,4,17.1 软件重用,17.1.1 软件重用的概念软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、

3、设计过程、需求分析文档甚至领域知识。对于新的软件开发项目而言,它们或者是构成整个目标软件系统的部件,或者在软件开发过程中发挥某种作用。通常将这些软件元素称为软部件。为了能够在软件开发过程中重用现有的软部件,必须在此之前不断地进行软部件的积累,并将它们组织成软部件库。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,5,17.1.2 软件重用的过程与意义,按照重用活动是否跨越相似性较少的多个应用领域,软件重用可区别为横向和纵向重用。横向重用是指重用不同应用领域中的软件元素,例如数据结构、分类算法、人机界面构件等。纵向重用是指在一类具有较多公共性的应用领域之间进行软部件重用。因

4、为在两个截然不同的应用领域之间实施软件重用的潜力不大,所以纵向重用才广受瞩目,并成为软件重用技术的真正希望所在。不难理解,纵向重用活动的主要关键点即是域分析:根据应用领域的特征及相似性预测软部件的可重用性。,17.1软件重用,2023/9/16,国防科技大学计算机学院,6,软件重用的过程,一旦根据域分析确认了软部件的重用价值,即可进行软部件的开发,并对具有重用价值的软部件进行一般化以便它们能够适应新的类似的应用领域。然后,软部件及其文档即可进入软部件库,成为可供后续开发项目使用的可重用资源。这些步骤构成软部件的构造活动。显然,它是一个软部件不断积累、不断完善的渐进过程。,17.1软件重用,20

5、23/9/16,国防科技大学计算机学院,7,软件重用的过程,随着软部件的不断丰富,软部件库的规模会不断扩大,因此,库的组织结构将直接影响软部件的检索效率,特别是当检索手段并不局限于标准函数库所采用的简单名字匹配方法时。可供候选的软部件从库中被检索出来以后,用户还必须理解其功能或行为以判别它是否真正适应于当前项目。必要时可考虑对某个与期望的功能/行为匹配程度最佳的软部件进行稍许修改,甚至可以将修改后的软部件加进软部件库以替代原有软部件。,17.1软件重用,2023/9/16,国防科技大学计算机学院,8,面向重用的软件开发,17.1软件重用,2023/9/16,国防科技大学计算机学院,9,软件重用

6、CASE工具,显然,软件重用过程可借助计算机的帮助。支持软件重用的CASE工具的主要任务是,用某种组织结构实现软部件库的存储,提供友好的人机界面帮助用户浏览、检索和修改软部件库,并且对用户感兴趣的软部件进行解释。事实上,现在几乎所有的软件重用活动都是在CASE工具的帮助下进行的。,17.1软件重用,2023/9/16,国防科技大学计算机学院,10,软件重用的意义,使用重用技术可以减少软件开发活动中大量的重复性工作,这样就能够提高软件生产率,降低开发成本,缩短开发周期。同时,由于软部件大都经过严格的质量认证,并在实际运行环境中得到检验,因此,重用软部件有助于改善软件质量。此外,大量使用软部件,软

7、件的灵活性和标准化程度也可望得到提高。,17.1软件重用,2023/9/16,国防科技大学计算机学院,11,17.1.3 重用项目的管理,在软部件的积累过程中,软件开发人员必须在不能立即获得经济效益的情况下进行软部件的筛选、开发,不断地进行软部件库的维护。由于希望软部件具有跨越多个软件项目甚至跨越多个应用领域的适应能力,同时要求它们达到较其他软件元素更为苛刻的质量标准,因此,开发软部件需要花费一定的经济代价与人力耗费。这可能还会引发软件开发人员在心理上自觉或不自觉的抵触情绪,进而对软件重用的目标造成危害。这些问题是软件重用对传统的软件项目管理模式提出的挑战,其解决方案涉及项目管理机构、管理手段

8、,经济和心理因素等方面。,17.1软件重用,2023/9/16,国防科技大学计算机学院,12,17.2 软部件库的构造,本节讨论软部件库的构造技术,内容包括:基于域分析的软部件选取,软部件的开发与质量控制,软部件库的组织方法。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,13,17.2.1 域分析,从软件工程的观点看,域就是向目标软件系统提出应用需求的问题及其背景知识。域分析的主要任务是针对单个或一族相似的域,以软件重用为目标,探寻并挖掘域或域族中能够为多个目标软件系统共用的软部件,并对它们进行结构化组织以备重用。域分析与需求分析活动有相似之处,但是,域分析必须具有比需

9、求分析更为广阔的视角:不仅要服务于当前软件项目,而且要从域的历史项目中发现软件项目之间的共同性和差异点,并放眼于同类或相似应用领域的未来软件项目。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,14,域分析,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,15,域分析步骤,在省略有关建模的技术细节之后,域分析过程可大致归纳为以下步骤:(1)发现并描述可重用的实体;(2)对这些实体及它们之间的关系进行抽象化、一般化和参数化;(3)对可重用的实体进行分类、归并,以备日后重用。域分析还可产生一种重用超结构以管理在后续软件项目的各个开发阶段的软件重用活动:提供

10、可重用软部件,指导新的软部件的生产,根据新的软件需求提示重用的可能性,以及收集有关重用活动的各类统计数据。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,16,重用超结构,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,17,17.2.2 软部件的开发,域分析的结果为软部件的选取提供了指导原则。一旦确定某些软件元素应该作为重用部件加入软部件库之后,开发人员就必须实际构造它们。由于软部件的生命周期将跨越开发项目甚至应用领域,因此,软部件的开发具有相当的特殊性:如何使软部件更为通用,更易于组装为新的软件系统,以及在新的运行环境下表现出更好的强壮性?本书的软

11、部件不仅包括代码级部件,也涵盖域知识、需求分析文档、设计文档、测试方案、测试用例等软件元素,因为这些级别上的软部件可望更好地发挥重用技术的潜力,同时也是代码级重用的必要补充。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,18,1.需求及设计级软部件,需求级软部件通常包括问题(及子问题)描述、有关的域知识以及相应的需求规格说明。问题描述及域知识说明均用域语言表示,必要时可辅以结构化的自然语言。类似地,设计级软部件包括设计规格说明(片段)、设计决策描述以及相应的设计文档。于是,设计级软部件与需求级软部件相结合,使需求级软部件和设计级软部件的重用同时发生,简化了对这些软部件的

12、理解和组装过程。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,19,需求及设计级软部件,需求级与设计级软部件的开发必须遵循下列两项原则:(1)将软部件应用的上下文与软部件严格分离;(2)利用抽象化、参数化等手段提取公共性,以增强软部件对未来不同应用项目的适应能力。需求级、设计级与代码级软部件相结合,有助于代码级软部件的提取和理解。借助较高抽象级别的软部件可望提高重用效能,因为,这样不仅可以重用代码,而且可以重用需求模型和设计方案。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,20,2.代码级软部件,代码级重用是迄今为止研究最深入、应用最广泛的重用

13、技术。代码级软部件除包含通常的代码段外,还必须辅以相应的解释和上下文说明。这些辅助说明可以用结构化自然语言或其他表示机制描述,但最好以相应的需求或设计级软部件的形式出现。传统上,代码级软部件的主体是子程序(函数或过程)。现在,由于基于对象和面向对象的程序设计语言及相应开发环境的发展,软部件还可以用Ada程序包及C+类实现。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,21,代码级软部件,可以用下列三种抽象方法开发软部件:(1)功能抽象:软部件的功能由接口说明中的输入输出关系确定,实现细节对软部件使用者透明。(2)数据抽象:在功能抽象的基础上进一步隐藏除界面参数之外的所有

14、数据。(3)过程抽象:在数据抽象的基础上进一步实现在相同软部件上同时执行的多重线程的无关性。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,22,主要原则,可重用性、正确性、可理解性和易组装性是衡量软部件质量的重要标准。这些标准都与软部件开发过程中使用的程序设计风格密切相关。为此,下面简要列出程序设计的主要原则,以供代码级软部件开发者参考。1.关于可重用性和易组装性(1)抽象化、参数化、模板化;(2)显式建立软部件的外部接口,保证接口在语法和语义上的清晰性;(3)除参数外,接口中的成份不应与运行环境相关;(4)软部件的使用信息应与软部件的实现细节相分离;(5)软部件接口的

15、使用方式、功能及行为模式应遵循域分析所确立的公共标准。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,23,主要原则(续),2.关于正确性(1)使用显式的、标准的、完全的错误处理机制;(2)使用强类型程序设计;(3)在软部件上附加重要的测试数据和测试报告。3.关于易理解性(1)提供完全的、精确的文档及程序注解;(2)软部件内部的结构、数据及控制流程必须标准化;(3)使用统一的命名规则和语法约定。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,24,3.软部件的质量控制,由于软部件将在多种硬件和软件环境下运行,因此,除采用软件工程的一般质量控制措施外,

16、还要针对可重用软部件的特征进行特别的质量控制。(1)软部件的开发者应利用现有的硬件、软件在尽可能多的环境中进行各种标准测试。(2)在软部件的设计过程中必须预先考虑软部件对于各类可能的硬件环境的可移植性以及对于不同软件环境的适应能力,并为此制订相应的编码原则。(3)应该尽可能地将软部件与环境有关的因素抽象成为软部件的参数;或者,可将这些因素作为软部件使用的约束条件在接口说明中详细阐述,有时甚至可以将这些约束条件表示成精确的逻辑断言插进软部件的源程序之中。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,25,软部件的质量控制(续),(4)对可能引发移植性错误和适应性错误的错误

17、源进行分类,针对每类错误源制订相应的防范和测试措施。(5)制订并执行统一的、良好的程序设计风格。(6)成立软部件质量控制小组。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,26,17.2.3 软部件库的组织,必须对收集和开发的软部件进行分类并置于软部件库的适当位置。软部件的分类方法及相应的库结构对软部件的检索和理解有极为深刻的影响。因此,软部件库的组织应方便软部件的存储和检索。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,27,软部件库的组织,可重用技术对软部件库组织方法的要求是:(1)支持软部件库的各种维护动作:增加、删除及更新软部件尽量不要影

18、响软部件库的结构;(2)不仅要支持精确匹配,还要支持相似软部件的查找;(3)不仅能进行简单的语法匹配,而且能够查找在功能或行为方面等价或相似的软部件;(4)对应用领域(族)具有较强的描述能力和较好的描述精度;(5)库管理员和用户容易使用;(6)具备可自动化潜力。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,28,1.关键字分类法,这是一种最简单的软部件库组织方法,其基本思想是:根据域分析的结果将应用领域(族)的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构。每个概念使用一个描述性的关键字表示。不可分解的原子级关键字包含隶属于它的某些软部件。当加入软部件时,库

19、管理员必须对软部件的功能或行为进行分析,在浏览上述关键字分类结构的同时将软部件置于最合适的原子级关键字之下。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,29,关键字分类结构示例,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,30,2.多面分类法,这种软部件库组织方法是Prieto-Diaz和Freeman在1987年提出的。其主要思想植根于图书馆学。多面分类法由三部分构成:多面分类机制,同义词库和概念距离图。(1)在多面分类机制中定义若干用于刻画软部件特征的“面”(facet),每个“面”包含若干“概念”,这些“概念”表述软部件在“面”上的特征。

20、(2)意义相同或相近的若干词汇构成同义词库。(3)概念距离图用于度量每个“面”中“概念”的相似性程度。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,31,多面分类法的组成,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,32,3.超文本组织方法,超文本方法与基于数据库系统的软部件库组织方法不同,它基于全文检索技术,其主要思想是:所有软部件必须辅以详尽的功能或行为说明文档;说明中出现的重要概念或软部件以网状链接方式相互连接;检索者在阅读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或软部件的文档;全文检索系统将用户给出的关键字与说明文档中的

21、文字进行匹配实现软部件的浏览式检索。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,33,超文本组织方法,超文本(Hypertext)是一种非线性的网状信息组织方法,它以结点为基本单位,链则作为结点之间的联想式关联。,17.2软部件库的构造,2023/9/16,国防科技大学计算机学院,34,17.3 软部件的重用,为了让软部件库在新的软件项目中发挥作用,库的使用者必须完成以下工作:检索与提取软部件,理解与评价软部件,修改软部件,最后将软部件组装到新的软件产品中。本节依次介绍完成这些任务的主要方法。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,35,

22、17.3.1 检索与提取软部件,软部件库的检索方法与组织方式密切相关,因此,本小节针对前面介绍的关键字分类法、多面分类法及超文本组织方法分别讨论相应的检索方法。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,36,1.基于关键字的检索,这种简单检索方法的基本思想是:系统(CASE工具)在图形用户界面上将软部件库的关键字树形结构直观地展示给用户;用户通过对树形结构的逐级浏览寻找需要的关键字并提取相应的软部件。当然,用户也可直接给出关键字(其中可含通配符),由系统自动给出合适的候选软部件清单。这种方法的优点是简单、易于实现,但在某些场合没有应用价值,因为用户往往无法用软部件库中

23、已有的关键字描述期望的软部件功能或行为,对库结构的浏览也容易使用户迷失方向。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,37,2.多面检索法,该方法基于多面分类法,由三步构成:(1)构造查询。(2)检索软部件。(3)对软部件进行排序。这种方法的优点是它易于实现相似软部件的查找,但用户在构造查询时比较麻烦。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,38,3.超文本检索法,这种方法的基本步骤是:用户首先给出一个或数个关键字,系统在软部件的说明文档中进行精确或模糊的语法匹配,匹配成功后向用户列出相应的软部件说明。为了避免用户在跳转过程中迷失方向,系统

24、可以通过图形用户界面提供浏览历史信息图,允许将特定画面定义为命名“书签”并随时跳转至“书签”,并帮助用户逆跳转路经而逐步返回。这种方法的优点是用户界面友好,但在某些情况下用户难以在超文本浏览过程中正确选取软部件。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,39,4.其他检索方法,上述检索方法基于语法匹配,要求使用者对软部件库中出现的众多词汇有较全面的把握、较精确的理解。理论上,理想的检索方法是语义匹配:软部件库的用户以形式化手段描述所需要的软部件的功能或行为语义,系统通过定理证明及基于知识的推理过程寻找语义上等价或相近的软部件。遗憾的是,这种基于语义的检索方法涉及许多人

25、工智能难题,目前尚难于支持大型软部件库的工程实现。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,40,17.3.2 理解与评价软部件,考虑到设计信息对于理解软部件的必要性以及软部件库的用户逆向发掘设计信息的困难性,必须要求软部件的开发过程遵循公共的软件工程规范,并且在软部件库的文档中全面、准确地说明以下内容:软部件的功能与行为;相关的领域知识;可适应性约束条件与例外情形;可以预见的修改部分及修改方法。借助于CASE工具对侯选软部件进行分析。逆向工程是理解软部件的另一种重要手段。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,41,理解与评价软部件,对软

26、部件可重用性的评价是通过收集并分析软部件的用户在实际重用该软部件的历史过程中的各种反馈信息来完成的。这些信息包括:重用成功的次数,对软部件的修改量,软部件的强壮性度量(例如出错数量),性能度量(例如执行效率与资源消耗量),等等。可以考虑建造相应的CASE工具来自动收集这些信息,按照某种域模型给出可重用性评价。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,42,17.3.3 修改软部件,在大多数情况下,必须对软部件进行或多或少的修改以适应新的需求。为了减少软部件修改的工作量,要求软部件的开发者尽量使软部件的功能、行为和接口设计更为抽象化、通用化、参数化。这样,软部件的用户即

27、可通过对实参的选取来调整软部件的功能或行为。如果这种调整仍不足以使软部件适用于新的软件项目,用户就必须借助设计信息和文档来理解、修改软部件。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,43,17.3.4 软部件的合成,软部件合成是指,将库中的软部件(经适当修改后)相互连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件。软部件合成技术大致可分为基于功能、基于数据的合成技术以及面向对象的合成技术。它们都有各自的适用范围。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,44,1.基于功能的合成技术,基于功能的合成技术采用子程序调用和参数

28、传递的方式将软部件结合起来。它要求库中的软部件以子程序(过程或函数)形式出现,并且接口说明必须清晰。当使用这种合成技术进行软件开发时,开发人员首先应对目标软件系统进行功能分解,将系统分解为强内聚、松藕合的功能模块。然后根据各模块的功能需求提取软部件,对它进行适应性修改后再挂接在上述功能分解框架中。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,45,2.基于数据的合成技术,基于数据的合成技术首先根据当前软件问题的核心数据结构设计出一个框架,然后根据框架中各结点的需求提取软部件并进行适应性修改,再将软部件逐个分配至框架中的适当位置。此后,软部件的合成方式仍然是传统的子程序调用

29、与参数传递。这种合成技术也要求库中软部件以子程序形式出现,但它所依赖的软件设计方法不再是功能分解,而是面向数据的设计方法,例如Jackson系统开发方法。,17.3软部件的重用,2023/9/16,国防科技大学计算机学院,46,17.4 面向对象的软件重用技术,由于封装和继承特征,面向对象方法比其他软件开发方法更适合支持软件重用。封装意味着可以将软部件的类看作黑箱。要使用它们,只需了解其外部接口,即它能够响应哪些消息,相应的对象行为是什么。继承是指在定义新的子类时可利用库中已有父类的属性和方法。当然,子类也可以修改父类的属性及方法,或者引进新的属性与方法。理论上,使用继承也不需要软部件用户了解

30、软部件的实现细节。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,47,17.4.1 类库的构造,在面向对象的软部件库中,所有软部件均以类的形式呈现。所以,通常将面向对象的软部件库称为可重用类库(简称类库)。可重用基类的设置取决于域分析阶段对当前应用问题(族)中具有一般适用性的对象及类的标识。类库的组织方式采用继承层次结构,这种结构与现实问题空间的类继承关系存在某种自然、直接的对应。同时,类库的文档以超文本方式组织,每个类的说明都可以包括指向其他文档说明的关键字结点,17.4面向对象的软件重用技术,2023/9/16,国防科技大学计算机学院,48,类库结构示例,17.4面

31、向对象的软件重用技术,2023/9/16,国防科技大学计算机学院,49,17.4.2 类库的检索,一般而言,类库的组织方式直接决定检索方式。因此,常用的类库检索方法主要是对类库中类的继承层次结构的树形浏览,以及基于类库文档的超文本检索。借助于树形浏览工具,类库的用户可以从树的根部出发,根据对可重用基类的需求逐级决定它所属的语法和语义范畴,然后确定最合适的父类。借助于类库的超文本文档,用户一方面可以在类库的继承层次结构中查阅各基类的属性、方法及其他特征,另一方面可按照基类之间的语义关联实现自由跳转。,17.4面向对象的软件重用技术,2023/9/16,国防科技大学计算机学院,50,17.4.3

32、面向对象的合成,如果从类库中检索出来的基类能够完全满足新软件项目的需求,则可以直接应用。否则,必须以类库中的基类为父类采用构造法或子类法生成子类。注意,面向对象的重用通常不允许用户直接修改库中基类,对类库进行扩充或修改的办法只是将新的子类加入到类库的继承层次结构中。,17.4面向对象的软件重用技术,2023/9/16,国防科技大学计算机学院,51,1.构造法,为了在子类中使用库中基类的属性和方法,可以考虑在子类中引进基类的对象作为子类的实例变元(或称成员变量),然后在子类中通过实例变元重用基类的属性与方法。构造法只用到面向对象的封装特征。例17.1,17.4面向对象的软件重用技术,2023/9

33、/16,国防科技大学计算机学院,52,2.子类法,与构造法完全不同,子类法将新子类直接说明为库中基类的子类,通过继承和修改基类的属性与行为完成新子类的定义。显然,子类法利用了面向对象的封装和继承特征。例17.2,17.4面向对象的软件重用技术,2023/9/16,国防科技大学计算机学院,53,17.5 软件重用项目的管理,技术因素并非软件重用的唯一成功要素。如何鼓励开发人员积极生产软部件,如何管理软部件库,如何提高软部件的重用率,等等,这些管理问题对于成功地实现软件重用同样十分重要。如果在软件开发项目的规划和整个开发过程中系统地考虑重用(包括生产可重用的软部件以及重用已有软部件)并建立了一整套

34、重用管理机制,则称此类项目为软件重用项目。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,54,软件重用项目的管理,重用管理问题涉及到项目机构、管理手段、经济和心理因素等诸多方面:(1)如何组织项目机构以便对重用活动进行有效的支持、控制和管理。(2)如何控制软部件的质量(包括文档质量)。(3)软件重用对软部件的可适应性、正确性及文档完整性、准确性均有很高要求,因而开发投资相对较多,但效益却要延迟到其他软件项目才能体现。(4)开发人员由于时间苍促或缺乏利益驱动,没有重用意识甚至在心理上有抵触情绪。只有妥善解决上述问题才能推广重用技术。,17.5软件重用项目的管理,2023/

35、9/16,国防科技大学计算机学院,55,17.5.1 组织机构,由于软件重用项目必须对一系列重用活动和可重用资源进行支持、控制和管理,必须对传统的项目组织形式加以改进。,17.5软件重用项目的管理,2023/9/16,国防科技大学计算机学院,56,组织机构,一个典型的重用组织机构应该由重用管理组、重用支持组、系统开发组和软部件开发组构成:(1)系统开发组负责传统的软件开发任务:需求分析、软件设计、编码、调试与测试等。(2)软部件开发组是从传统的项目开发组中去掉系统开发组分割而成的,它负责从系统开发组接收软部件设计规格说明,进行软部件的设计、实现和质量控制。(3)重用管理组由各开发组的部分人员混

36、合组成,它负责管理、组织、协调各类重用活动并处理所有与重用有关的事务性工作。(4)重用支持组负责软部件的资格确认、质量控制、分类与存储。,17.5软件重用项目的管理,2023/9/16,国防科技大学计算机学院,57,17.5.2 软件重用的考核指标,为了有效地控制和管理重用活动,重用管理组需要利用一些可操作的定量指标对组织机构中的工作成效进行考核,以便作为制定或调整重用计划及实施奖惩的依据。同时,重用支持组也需要利用这些指标监测软部件库中各部件的重用情况,给出分析报告反馈至重用管理组、软部件开发组和系统开发组。,17.5软件重用项目的管理,2023/9/16,国防科技大学计算机学院,58,软件

37、重用的考核指标,下面所列指标反映了重用活动的主要侧面:(1)软部件累计重用次数。它是软部件可重用性的度量。(2)软部件累计重用规模。它等于累计重用次数与软部件规模度量的乘积。它反映软部件创造的实际效益。(3)项目重用率=软部件累计重用规模/目标软件的规模度量。(4)软部件库重用率=库中所有软部件的累计重用次数之和/库中软部件总数。(5)软部件库重用规模比率=库中所有软部件的累计重用规模之和/库中所有软部件的规模度量之和。在软部件的开发过程中,应该遵循以下原则:在满足可重用性的前提下,尽可能扩大软部件规模。,17.5软件重用项目的管理,2023/9/16,国防科技大学计算机学院,59,17.5.

38、3 创造重用氛围,由于对软件重用投资的回报往往要延迟到后续软件开发项目才能得到体现,因此,部分开发人员对重用难免存在自觉或不自觉的抵触情绪。重用管理组的任务是使所有开发人员充分认识到重用的良好效益,组织软件重用技术培训并定期进行重用经验交流;按照上述定量指标在开发机构内设立重用奖励机制等等。,17.5软件重用项目的管理,2023/9/16,国防科技大学计算机学院,60,17.6 支持软件重用的CASE工具,能否在软件开发过程中成功地使用重用技术直接取决于CASE工具对软件重用的支持程度。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,61,17.6.1 软件重用对CASE

39、工具的需求,软件重用的各个阶段都需要CASE工具的帮助,例如域分析、软部件的开发与分类、软部件库的检索、软部件的评估与修改、软部件的合成。当然,这些CASE工具并非软件重用的必要条件,但具备上述的部分或全部工具会提高重用效能,并使重用活动变得轻松自如。,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,62,(1)域分析,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,63,(2)软部件开发,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,64,软部件开发(续),17.6支持软件重用的CASE工具,2

40、023/9/16,国防科技大学计算机学院,65,(3)软部件库的组织与检索,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,66,(4)软部件的合成,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,67,17.6.2 类库的组织与检索工具,基于17.4节介绍的面向对象重用技术,本节给出一个具体的类库组织和检索CASE工具OORTool,主要内容包括:类库的组织与重构工具、类库的浏览与检索工具、软部件的合成工具。,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,68,1.类库的组织与重构工具,17.6

41、支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,69,2.类库的浏览与检索工具,OORTool提供以下两种类库的浏览与检索手段:(1)用户在程序设计环境的语法制导编辑器中键入一个字符串,按下指定的功能键(例如F1)之后,CASE工具自动在类库文档中搜索所有与之相同或相近的关键字(超文本中的结点),然后报告并解释所有的侯选超文本片段,由用户最终选取并进入所希望的文档画面。(2)用户通过浏览(Browse)菜单下的类层次图(Class Hierarchy Chart)自顶向下浏览类库中每个类的说明性文档。,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学

42、计算机学院,70,例:,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,71,3.类的合成,OORTool类库中类的合成机制与17.4.3节所介绍的方法一样,用户必须在自己的程序中采用构造法或子类法引用类库中的类,然后OORTool与程序设计环境中的编译器和连接器一道自动将被重用类的说明与实现组装至目标软件产品之中。后面这一动作完全是用户透明的。,17.6支持软件重用的CASE工具,2023/9/16,国防科技大学计算机学院,72,小结,软件重用是提高软件生产率、改进软件质量的有效途径。可供重用的软件元素包括源程序模块、设计文档、需求分析文档、测试方案与用例,等

43、等。典型的软件重用过程一般包括域分析、开发软部件、组织与扩充软部件库、检索与提取软部件、理解与修改软部件、合成软部件等阶段。为提高可重用性,软部件的开发者必须利用抽象化、参数化、模板化等手段将软部件的应用环境与其内容和实现机制严格分离。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,73,小结(续),为便于用户理解和修改软部件,软部件必须附有充分的设计信息和说明文档。为保证软部件在不可预知的环境中具备良好的正确性和强壮性,必须执行严格的质量控制措施。软部件库的组织方法主要有关键字分类法、多面分类法和超文本组织方法,相应的软部件检索方法依次为关键字检索法、多面检索法和超文本

44、检索方法。为了将软部件合成至当前的软件开发项目之中,可以采用基于功能、基于数据和面向对象的合成技术。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,74,小结(续),为了有效地实施软件重用,CASE工具的支持是必不可少的。由于封装和继承特征,面向对象方法非常适合支持软件重用。因此,目前大多数商品化的软部件库都是以类库的形式出现的。技术因素并非软件重用的唯一成功要素。为了鼓励软部件的生产、提高软部件重用率,应该设立面向重用的管理机构,根据重用考核指标实施有效的奖惩机制,尽量消除经济因素和心理因素对软件重用的消极影响。,第十七章 软件重用技术,2023/9/16,国防科技大学计算机学院,75,谢谢,2023/9/16,国防科技大学计算机学院,76,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号