第7章 软件维护 课后习题参考答案
简答题
(1)面向缺陷维护的内容是什么?
答:面向缺陷维护(程序级维护):软件产品能够正常运转,可以满足用户的功能、性能、接口需求,只是个别地方存在缺陷,使用户感到不便。缺陷发生在程序实现的级别上。克服缺陷的方法是修改程序,而不是修改分析与设计,也就是通常说的只修改编码,不修改数据结构。
(2)传统软件维护分哪几大类?
答:完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能,以满足用户日益增长的需要而进行的工作;
适应性维护:是软件适应新的运行环境而进行的工作;
纠错性维护:纠正开发期间未发现的遗留错误,即在程序使用期间发现的程序错误进行诊断和改正的过程;
预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。
(3)怎样理解“软件维护是一种面向用户提供的服务”?
答:激烈的软件产品市场竞争中,同类软件产品的价格、功能、性能、接口都是不相上下的,那么用户如何选择呢? 软件厂商要推销自己的产品,推销的焦点就是服务。谁的售后服务及时、到位,谁的产品就可能占领市场。现在流行一句话:“卖软件就是卖服务”。
(4)什么叫结构化维护和非结构化维护?
答:结构化维护的前提是:软件产品或软件项目必须有完善的文档,并且文档与程序代码互相匹配。反之为非结构化维护。
(5)可维护性的软件应具备什么性质?
答:主要有可理解性、可测试性和可修改性。可理解性被定义为人们通过阅读源代码和文档了解软件系统的结构、接口、功能、内部过程以及如何运行的难易程度;可测试性被定义为诊断和测试系统的难易程度;可修改性被定义为修改软件系统的难易程度;它们是密切相关的。
(6)软件维护的副作用表现在哪4个方面?
答:①修改编码:使编码更加混乱,程序结构更不清晰,可读性更差,而且有连锁反应。
②修改数据结构:数据结构是系统的骨架,修改数据结构是对系统伤筋动骨的大手术,在数据冗余与数据不一致方面,可能顾此失彼。
③修改用户数据:需要与用户协商,一旦有疏忽,可使系统发生意外。
④修改文档:对非结构化维护不适应,对结构化维护要严防程序与文档的不匹配。
(7)面向功能维护的内容是什么?
答:面向功能维护(设计级维护):软件产品在功能、性能、接口上存在某些不足。不维护就不能正常运转。维护即要修改分析与设计,又要修改程序,也就是既修改数据结构,又修改编码。
(8)简述软件维护的流程。
答:软件维护的流程:
1.制定申请维护报告;
2.审查申请报告并批准;
3.进行维护并作详细记录;
4.覆审。
软件维护的工作程序:
1.维护需求分析;
2.维护设计;
3.程序代码修改;
4.维护后测试;
5.维护后试运行;
6.维护后正式运行;
7.维护过程的评审和审核。
(9)怎么理解UMILCMOMI对软件维护的影响?
答:UML把软件生存周期定义为4个主要阶段:初始、细化、构造、移交。经过这四个阶段的历程被称为一个开发周期,自动产生一个周期内的所有文档,从而生成一个软件产品。
首次经历这四个阶段称为该产品的初始开发周期,除非该产品的生命终止,否则它将重复初始、细化、构造、移交这4个阶段,从而演化为下一代产品,这就是旧产品的维护,也是新产品的升级换代,这就是UML对软件维护工作的影响。由此可见,在软件开发中,若采用UML建模技术和相应的CASET具Rose,高额的软件维护费用将会较快地降下来。