1. 软件的可维护性与哪些因素有关?在软件开发过程中应该采取哪些措施来提高软件产品的可维护性?
- (1)软件的可维护性与软件的可理解性、可测试性、可修改性、可重用性、可移植性有关。
- (2)提高软件产品的可维护性的措施有如下几点:
- ① 软件中使用的可重用构件越多,软件的可靠性越高,改正性维护需求就越少。
- ② 在每个阶段结束前的技术审查和管理复审中,应该着重对可维护性进行复审。
2. 假设自己的任务是对一个已有的软件做重大修改,而且只允许从下述文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(c)源程序清单(其中有适当数量的注解)。应选取哪两份文档?为什么这样选取?打算怎样完成交给自己的任务?
应该选取(a)和(c)两份文档,理由如下:
(1)“对一个已有的软件做重大修改”意味着对软件功能做较大变更或增加较多新功能,这往往需要修改软件的体系结构。因此,了解原有软件的总体情况是很重要的。程序的规格说明书准确地描述了对软件系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需 求、接口需求、约束、逆向需求及将来可能提出的需求,对了解已有软件的总体情况有很大帮助。在对已有软件做重大修改之前仔细阅读、认真研究这份文档,可以避免许多修改错误。因此,应该选取(a)程序的规格说明。
(2)有经验的软件工程师通过阅读含有适当数量注解的源程序,不难搞清程序的实现算法,没有描述详细设计结果的文档并不会给维护工作带来太大困难。此外,为了修改程序代码,原有程序的清单是必不可少 的。因此,应该选取(c)源程序清单。
3. 分析预测在下列系统交付使用以后,用户可能提出哪些改进或扩充功能的要求。如果由自己来开发这些系统,在设计和实现时将采取哪些措施,以方便将来的修改?
(1)储蓄系统(参见习题2第2题)
(2)机票预订系统(参见习题2第3题)
(3)患者监护系统(参见习题2第4题)
答:
(1)储蓄系统
一般大型软件的维护成本远高于开发成本若干倍,所以在设计时就应该考虑到维护成本,而且在开发过程中应该使用标准的程序设计语言和标准的操作系统接口,可以大大提高软件的可维护性,也可以减少软件存在的错误。
(2)机票预订系统
人多的时候系统瘫痪几率就大,在开发人员不在场的情况下,很容易出现系统错误,维护软件也是很困难的,也会给很多人带来不便,所以, 在设计过程中应该科学地管理规划还有合理设计模块,使各个模块的独立性越高,这样对软件的改进越方便,也便于快速纠错。
(3)患者监护系统
应该考虑它的完善性和预防性,要能满足用户在使用过程中的增加和修改工作,还要为了改善未来的可维护性或可靠性而修改。更要考虑系统数据的隐秘和安全,随时备份。