《实用软件工程》PPT课件.ppt
《《实用软件工程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《实用软件工程》PPT课件.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在在软软件件的的开开发发工工作作已已完完成成并并把把软软件件产产品品交交付付给给用用户户使使用用之之后后,就就进进入入了了软软件件维维护护阶阶段段。这这个个阶阶段段的的工工作作目目标标是是保保证证软软件件在在一一个个相相当当长长的的时时期期内内能能够够正正常常运运行行,因因此对软件的维护就成为必不可少的了。此对软件的维护就成为必不可少的了。软软件件维维护护需需要要的的工工作作量量非非常常大大。平平均均说说来来,大大型型软软件件的的维维护护成成本本高高达达开开发发成成本本的的四四倍倍左左右右。目目前前国国外外许许多多软软件件开开发发组组织织把把60%60%以以上上的的人人力力用用于于维维护护已已
2、有有的的软软件件,而而且且随随着着软软件件数数量量增增多多和和使使用用寿寿命命延延长长,这这个个百百分分比比还还在在持持续续上上升升。将将来来维维护护工工作作甚甚至至可可能能会会束束缚缚住住软软件件开开发发组组织的手脚,使他们没有余力开发新的软件。织的手脚,使他们没有余力开发新的软件。6.1 软件维护的内容及特点软件维护的内容及特点6.1.1 软件维护的内容软件维护的内容 所所谓谓软软件件维维护护就就是是在在软软件件已已经经交交付付使使用用之之后后,为为了改正错误或满足新的需要而修改软件的过程了改正错误或满足新的需要而修改软件的过程。我我们们可可以以通通过过描描述述软软件件交交付付使使用用后后
3、可可能能进进行行的的下下述四项活动述四项活动,具体地定义软件维护具体地定义软件维护。1.改正性维护改正性维护通常,在软件开发过程中所进行的测试都是不完通常,在软件开发过程中所进行的测试都是不完全、不彻底的,软件中必然会有一些潜伏的错误被带到全、不彻底的,软件中必然会有一些潜伏的错误被带到运行阶段来。用户常常将把他们遇到的问题报告给软件运行阶段来。用户常常将把他们遇到的问题报告给软件维护人员,要求解决。维护人员,要求解决。我们把诊断和改正软件错误的过程称为我们把诊断和改正软件错误的过程称为改正性维护改正性维护。例如,在软件交付用户使用之后,解决在开发时没有测例如,在软件交付用户使用之后,解决在开
4、发时没有测试所有可能的执行通路而带来的问题;解决程序中遗漏试所有可能的执行通路而带来的问题;解决程序中遗漏对文件中最后一个记录的处理的错误等。对文件中最后一个记录的处理的错误等。2.适应性维护适应性维护 计计算算机机科科学学技技术术领领域域的的各各个个方方面面都都在在迅迅速速进进步步,大大约约每每过过3636个个月月就就有有新新一一代代的的硬硬件件宣宣告告出出现现;另另一一方方面面,应应用用软软件件的的使使用用寿寿命命却却很很容容易易超超过过十十年年,远远远远长长于于最最初初开开发发这这个个软软件件时时的的运运行行环环境境的的寿寿命命。因因此此,适适应应性性维维护护就就是是为为了了和和变变化化
5、了了的的环环境境适适当当地地配配合合而而进进行行的的修修改改软软件件的的活活动动,是是既必要又经常的维护活动。既必要又经常的维护活动。例例如如,适适应应性性维维护护可可以以是是修修改改原原在在DOSDOS操操作作系系统统中中运运行行的的程程序序,使使之之能能在在WindowsWindows操操作作系系统统中中运运行行;修修改改两两个个程程序序,使使它它们们能能够够使使用用相相同同的的记记录录结结构构;修修改改程程序序,使使它它适适用用于于另外一种终端设备。另外一种终端设备。3.完善性维护完善性维护在在使使用用软软件件的的过过程程中中,用用户户往往往往提提出出增增加加新新功功能能或或改改变变某某
6、些些已已有有功功能能的的要要求求,还还可可能能提提出出提提高高程程序序性性能能的的要要求求。为为了了满满足足这这类类要要求求而而修修改改软软件件的的活活动动,称称为为完完善善性性维维护护。例例如如,在在储储蓄蓄系系统统交交付付银银行行使使用用之之后后,增增加加扣扣除除利利息息税税的的功功能能;缩缩短短系系统统的的响响应应时时间间,使使之之达达到到新新的的要要求求;改改变变现现有有程程序序输输出出数数据据的的格格式式,以以方方便便用用户户;在在正正在在运运行行的的软件中增加联机求助功能等,都是完善性维护。软件中增加联机求助功能等,都是完善性维护。4.预防性维护预防性维护当当为为了了提提高高未未来
7、来的的可可维维护护性性或或可可靠靠性性,或或为为了了给给未未来来的的改改进进工工作作奠奠定定更更好好的的基基础础而而修修改改软软件件时时,就就出出现现了了第第四四类类维维护护活活动动,这这类类维维护护活活动动称称为为预预防防性性维维护护。通通常常,把把预预防防性性维维护护定定义义为为:“把把今今天天的的方方法法学学应应用用于于昨昨天天的的系系统统以以满满足足明明天天的的需需要要”。也也就就是是说说,预预防防性性维维护护就就是是采采用用先先进进的的软软件件工工程程方方法法对对需需要要维维护护的的软软件件或或软软件件中中的的某某一一部部分分,主主动动地地进进行行重重新设计、编码和测试。新设计、编码
8、和测试。在维护阶段的最初一二年,在维护阶段的最初一二年,改正性维护改正性维护的工作量往往比的工作量往往比较大。随着在软件运行过程中错误发现率迅速降低并趋于稳较大。随着在软件运行过程中错误发现率迅速降低并趋于稳定,就进入了正常使用期间。但是,由于用户经常提出改造定,就进入了正常使用期间。但是,由于用户经常提出改造软件的要求,软件的要求,适应性维护和完善性维护适应性维护和完善性维护的工作量逐渐增加,的工作量逐渐增加,而且在这种维护过程中往往又会引入新的错误,从而进一步而且在这种维护过程中往往又会引入新的错误,从而进一步加大了维护的工作量。加大了维护的工作量。从上述关于软件维护的定义不难看出,软件维
9、护绝不仅从上述关于软件维护的定义不难看出,软件维护绝不仅限于纠正使用中发现的错误,事实上在全部维护活动中一半限于纠正使用中发现的错误,事实上在全部维护活动中一半以上是完善性维护。以上是完善性维护。国外的统计数字表明:国外的统计数字表明:完善性维护占全部维护活动的完善性维护占全部维护活动的50%66%改正性维护占改正性维护占17%21%,适应性维护占适应性维护占18%25%,其他维护活动只占其他维护活动只占4%左右。左右。软件维护策略软件维护策略针对上一小节所述的三种典型的维护活动,JamesMartin等等人人提提出出了了一一些些可可以以减减少少维维护护成成本本的的策策略略。下下面面学习主要的
10、软件维护策略。学习主要的软件维护策略。1.降低改正性维护成本的策略降低改正性维护成本的策略 显然,软件中包含的错误越少,改正性维护的成本显然,软件中包含的错误越少,改正性维护的成本也就越低,但是,要生成也就越低,但是,要生成100%100%可靠的软件通常成本太高,可靠的软件通常成本太高,并不一定合算。然而通过使用先进技术仍然可以大大提并不一定合算。然而通过使用先进技术仍然可以大大提高软件的可靠性,从而减少改正性维护的需求。高软件的可靠性,从而减少改正性维护的需求。2.降低适应性维护成本的策略降低适应性维护成本的策略这类维护是必然要进行的,但是要采取适当的策略。(1 1)在进行配置管理时,把硬件
11、、操作系统和其他相关的)在进行配置管理时,把硬件、操作系统和其他相关的环境因素的可能变化考虑在内,可以减少某些适应性维护的环境因素的可能变化考虑在内,可以减少某些适应性维护的工作量;工作量;(2 2)把与硬件、操作系统及其他外围设备有关的代码放到)把与硬件、操作系统及其他外围设备有关的代码放到特定的程序模块中,可以把因环境变化而必须修改的程序代特定的程序模块中,可以把因环境变化而必须修改的程序代码局限于某些特定的程序模块内;码局限于某些特定的程序模块内;(3 3)使用内部程序列表、外部文件及例行处理程序包,可)使用内部程序列表、外部文件及例行处理程序包,可以为维护时修改程序提供方便。以为维护时
12、修改程序提供方便。3.降低完善性维护成本的策略降低完善性维护成本的策略 上述的减少前两类维护成本的策略,通常也能降低上述的减少前两类维护成本的策略,通常也能降低完善性维护的成本。特别是数据库管理系统、程序自动完善性维护的成本。特别是数据库管理系统、程序自动生成系统、软件开发环境、第四代语言和应用软件包,生成系统、软件开发环境、第四代语言和应用软件包,可明显减少维护工作量。可明显减少维护工作量。此外,在需求分析过程中准确地预测用户将来可能此外,在需求分析过程中准确地预测用户将来可能提出的需求,并且在设计时为将来可能提出的需求预先提出的需求,并且在设计时为将来可能提出的需求预先做准备,显然是降低完
13、善性维护成本的有力措施。做准备,显然是降低完善性维护成本的有力措施。在实际开发软件之前,建立软件的原型并让用户试在实际开发软件之前,建立软件的原型并让用户试用,以进一步完善他们对软件的功能需求,也能显著减用,以进一步完善他们对软件的功能需求,也能显著减少软件交付使用之后的完善性维护需求。少软件交付使用之后的完善性维护需求。6.1.2 软件维护的软件维护的的特点的特点图描绘了面对一项维护要求时,不同的软件配置所导致的不同工作流程。图结构化维护与非结构化维护的对比非结构化维护结构化维护6.1.2.1结构化维护与非结构化维护差别悬殊结构化维护与非结构化维护差别悬殊 如如果果软软件件配配置置的的惟惟一
14、一成成分分是是程程序序代代码码,那那么么维维护护活活动动从从艰艰苦苦地地评评价价程程序序代代码码开开始始,而而且且常常常常由由于于程程序序内内部部文文档档不不足足而而使使评评价价更更困困难难(诸诸如如软软件件结结构构、全全程程数数据据结结构构、系系统统接接口口、性性能能或或设设计计约约束束等等微微妙妙的的特特点点是是难难于于搞搞清清的的,而而且且常常常常误误解解了了这这一一类类特特点点)。最最终终对对程程序序代代码码所所做做的的改改动动的后果是难于估量的。的后果是难于估量的。因因为为没没有有测测试试方方面面的的文文档档,所所以以不不可可能能进进行行回回归归测测试试。这这就就是是非非结结构构化化
15、维维护护,这这种种维维护护方方式式是是没没有有使使用用良良好好定定义义的的方方法法学学开开发发出出来来的的软软件件的的必必然然结结果果-并并正正在在为为此此而而付付出出代价(浪费精力和受挫折)。代价(浪费精力和受挫折)。非结构化维护非结构化维护(上图右侧)如如果果有有一一个个完完整整的的软软件件配配置置存存在在,那那么么维维护护工工作作从从评评价价设设计计文文档档开开始始,确确定定软软件件重重要要的的结结构构特特点点、性性能能特特点点以以及及接接口口特特点点;估估量量要要求求的的改改动动将将带带来来的的影影响响,并并且且计计划划实实施施途途径径。然然后后首首先先修修改改设设计计并并且且对对所所
16、做做的的修修改改进进行行仔仔细细复复查查。接接下下来来编编写写相相应应的的源源程程序序代代码码;使使用用在在测测试试说说明明书书中中包包含含的的信信息息进进行行回回归归测测试试;最最后后,把把修修改改后后的的软软件件再再次次交交付使用。付使用。上上面面描描述述的的事事件件构构成成结结构构化化维维护护,它它是是在在软软件件开开发发的的早早期期应应用用软软件件工工程程方方法法学学的的结结果果。(它它确确实实能能减减少少精精力力的的浪费并且能提高维护的总体质量。)浪费并且能提高维护的总体质量。)6.1.2.2维护的代价高昂维护的代价高昂在在过过去去的的几几十十年年中中,软软件件维维护护的的费费用用稳
17、稳步步上上升升。19701970年年用用于于维维护护已已有有软软件件的的费费用用只只占占软软件件总总预预算算的的35%35%40%40%,19801980年年上上升升为为40%40%60%60%,19901990年上升为年上升为70%70%80%80%。维维护护费费用用只只不不过过是是软软件件维维护护的的最最明明显显的的代代价价,其其他他一一些些现现在在还还不不明明显显的的代代价价将将来来可可能能更更为为人人们们所所关关注注。因因为为可可用用的的资资源源必必须须供供维维护护任任务务使使用用,以以致致耽耽误误甚甚至至丧丧失失了了开开发发新新软软件件的的良良机机,这这是是软软件件维维护护的的一一个
18、个无无形形的代价的代价。其他无形的代价还有:其他无形的代价还有:当看来合理的有关改错或修改的要求不能及时满足时将引起用户不满;由于维护时的改动,在软件中引入了潜伏的故障,从而降低了软件的质量;当必须把软件工程师调去从事维护工作时,将在开发过程中造成混乱。软件维护的最后一个代价是生产率的大幅度下降,这软件维护的最后一个代价是生产率的大幅度下降,这种情况在维护旧程序时常常遇到。例如,据种情况在维护旧程序时常常遇到。例如,据GauslerGausler在在19761976年的报道,美国空军的飞行控制软件每条指令的开发成本年的报道,美国空军的飞行控制软件每条指令的开发成本是是7575美元,然而维护成本
19、大约是每条指令美元,然而维护成本大约是每条指令40004000美元,也就美元,也就是说,生产率下降了是说,生产率下降了5050倍以上。倍以上。用用用用于于于于维维维维护护护护工工工工作作作作的的的的劳劳劳劳动动动动(活活活活动动动动)可可可可以以以以分分分分成成成成生生生生产产产产性性性性活活活活动动动动(例例如如,分分析析评评价价,修修改改设设计计和和编编写写程程序序代代码码等等)和和和和非非非非生生生生产产产产性性性性活活活活动动动动(例例如如,理理解解程程序序代代码码的的功功能能,解解释释数数据据结结构构、接接口口特点和性能限度等)。特点和性能限度等)。下述公式给出下述公式给出维护工作量
20、维护工作量的一个模型的一个模型:其中:其中:M是维护用的总工作量 P是生产性工作量 K是经验常数 c是复杂程度(非结构化设计和缺少文档都会增加软件的复杂程度)d是维护人员对软件的熟悉程度。上面的模型表明,如果软件的开发途径不好(即,没有使用软件工程方法学),而且原来的开发人员不能参加维护工作,那么维护工作量(和费用)将指数地增加。MPKexp(cd)6.1.2.3维护的困难性维护的困难性与软件维护有关的绝大多数困难,都可归因于软件定义和软件开发的方法有缺点。在软件生命周期的头两个时期没有严格而又科学的管理和规划,几乎必然会导致在最后阶段出现问题。下面列出和软件维护有关的部分问题下面列出和软件维
21、护有关的部分问题:读懂别人写的程序通常非常困难。而且困难程度随着软件配置成分的减少而迅速增加。如果仅有程序代码没有说明文档,则会出现严重的问题。需要维护的软件往往没有合格一致的文档,或者文档资料显著不足。认识到软件必须有文档仅仅是第一步,容易理解并且和程序代码完全一致的文档才真正有价值。当要求对软件进行维护时,不能指望由开发人员给我们仔细说明软件。由于维护阶段持续的时间很长,因此,当需要解释软件时,往往原来写程序的人已不在现场了。绝大多数软件在设计时没有考虑将来的修改。除非使用强调模块独立原理的设计方法学,否则修改软件既困难又容易发生差错。软件维护不是一项吸引人的工作。形成这种观念很大程度上是
22、因为维护工作经常遭受挫折。上述种种困难存在于现有的没采用软件工程思想开发上述种种困难存在于现有的没采用软件工程思想开发出来的软件中。出来的软件中。不应该把一种科学的方法学看做万应灵药,不应该把一种科学的方法学看做万应灵药,但是,软件工程至少部分地解决了与维护有关的每一个问但是,软件工程至少部分地解决了与维护有关的每一个问题。题。6.2软件的可维护性软件的可维护性6.2.1软件的可维护性软件的可维护性-指软件能够被维护人员理解、改正、适应和完指软件能够被维护人员理解、改正、适应和完善以适应新的环境的难易程度。善以适应新的环境的难易程度。决定软件可维护性的因素决定软件可维护性的因素维护就是在软件交
23、付使用后进行的修改,修改之前必维护就是在软件交付使用后进行的修改,修改之前必须理解修改的对象,修改之后应该进行必要的测试,以保须理解修改的对象,修改之后应该进行必要的测试,以保证所做的修改是正确的。如果是改正性维护,还必须预先证所做的修改是正确的。如果是改正性维护,还必须预先进行调试以确定错误。因此,进行调试以确定错误。因此,影响软件可维护性的因素主影响软件可维护性的因素主要有下述七个:要有下述七个:1.可理解性可理解性2.可测试性可测试性3.可修改性可修改性4.可靠性可靠性5.可移植性可移植性6.可重用性可重用性7.效率效率6.2.2文档文档文文档档是是影影响响软软件件可可维维护护性性的的决
24、决定定因因素素。由由于于长长期期使使用用的的大大型型软软件件系系统统在在使使用用过过程程中中必必然然会会经经受受多多次次修修改,改,所以文档比程序代码更重要所以文档比程序代码更重要。软件系统的软件系统的文档文档可以分为用户文档和系统文档可以分为用户文档和系统文档两类。两类。用用户户文文档档主主要要描描述述系系统统功功能能和和使使用用方方法法,并并不不关关心心这这些功能是怎样实现的;些功能是怎样实现的;系统文档系统文档描述系统设计、实现和测试等各方面的内容。描述系统设计、实现和测试等各方面的内容。总的说来,总的说来,软件文档应该满足下述要求软件文档应该满足下述要求:(1 1)必须描述如何使用这个
25、系统,没有这种描述即使是最)必须描述如何使用这个系统,没有这种描述即使是最简单的系统也无法使用;简单的系统也无法使用;(2 2)必须描述怎样安装和管理这个系统;)必须描述怎样安装和管理这个系统;(3 3)必须描述系统需求和设计;)必须描述系统需求和设计;(4 4)必须描述系统的实现和测试,以便使系统成为可维护)必须描述系统的实现和测试,以便使系统成为可维护的。的。6.2.3 提高软件可维护性的方法提高软件可维护性的方法 从以下五方面解决:从以下五方面解决:1建立明确的软件质量标准建立明确的软件质量标准2利用先进的软件技术和工具利用先进的软件技术和工具3建立明确的质量保证制度建立明确的质量保证制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用软件工程 实用 软件工程 PPT 课件
限制150内