软件工程-齐志昌版.ppt
《软件工程-齐志昌版.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工具)在图形用户界面上将软部件库的关键字树形结构直观地展示给用户;用户通过对树形结构的逐级浏览寻找需要的关键字并提取相应的软部件。当然,用户也可直接给出关键字(其中可含通配符),由系统自动给出合适的候选软部件清单。这种方法的优点是简单、易于实现,但在某些场合没有应用价值,因为用户往往无法用软部件库中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 齐志昌版
链接地址:https://www.31ppt.com/p-6027889.html