[软件工程导论(第六版)]第8章 维护(课后习题详解)

简介: [软件工程导论(第六版)]第8章 维护(课后习题详解)

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)患者监护系统

应该考虑它的完善性和预防性,要能满足用户在使用过程中的增加和修改工作,还要为了改善未来的可维护性或可靠性而修改。更要考虑系统数据的隐秘和安全,随时备份。

相关文章
|
算法 程序员 Go
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
|
芯片
计算机组成原理实验二 存储器实验(上)
计算机组成原理实验二 存储器实验
1828 0
|
算法 图计算
[软件工程导论(第六版)]第6章 详细设计(课后习题详解)
[软件工程导论(第六版)]第6章 详细设计(课后习题详解)
Burpsuite系列 -- (PC端、手机端)抓包配置
Burpsuite系列 -- (PC端、手机端)抓包配置
1448 0
|
算法 数据挖掘 数据库
[软件工程导论(第六版)]第5章 总体设计(复习笔记)
[软件工程导论(第六版)]第5章 总体设计(复习笔记)
|
存储 自然语言处理 算法
【北京大学 软件工程】四、结构化分析方法
结构化分析方法是一种系统化的软件开发方法学,旨在通过使用问题域术语建立系统的功能模型,以明确“系统必须做什么”。该方法包括结构化分析、设计和程序设计三个主要部分。其核心工具是数据流图(DFD),用于表达系统功能模型,并结合数据字典定义数据流和数据存储。此外,还使用加工小说明(如判定表或判定树)描述加工逻辑。 结构化分析过程遵循自顶向下、逐步求精的原则,首先建立系统环境图确定边界,然后通过分解加工、分派数据流和引入文件来细化模型。整个过程中需确保模型平衡和信息组织的复杂性控制。最终输出为需求规格说明书(SRS),确保需求的正确性、无二义性、完整性和可验证性等特性。
1742 1
|
开发工具 git
关于github默认分支名改为main后可能的处理【git推送到远程不同的分支、github修改默认分支名】
git如何删除本地分支、删除远程分支,由分支的删除可以实现推送到远程不同的分支。 git不允许推送到远程与本地分支名不同的分支上。
2201 1
|
存储 前端开发 中间件
『软件工程10』结构化系统分析:数据流图和字典案例分析
该文章通过具体案例分析了在软件工程中如何运用数据流图和数据字典来进行结构化系统分析,帮助明确系统的信息流程和数据定义。
『软件工程10』结构化系统分析:数据流图和字典案例分析
|
消息中间件 存储 Java
MQ核心作用、解耦、削峰使用场景详解
【11月更文挑战第21天】在如今的高并发互联网应用中,如何确保系统在巨大的流量冲击下还能稳定运行,是每个技术团队都会遇到的挑战。说到这,消息队列(MQ)就是背后的“大功臣”了。无论是异步处理请求、平滑应对流量高峰,还是让各个系统模块相互独立不“拖后腿”,MQ都是不可或缺的帮手。那么,MQ是如何削峰的?或者它是如何让复杂系统解耦的?今天,我们就来聊聊MQ的三大核心功能,看它是如何助力系统高效、稳定运转的。
1221 1
|
存储 人工智能 大数据
物联网、大数据、云计算、人工智能之间的关系
物联网、大数据、云计算、人工智能之间的关系是紧密相连、相互促进的。这四者既有各自独立的技术特征,又能在不同层面上相互融合,共同推动信息技术的发展和应用。
4165 0

热门文章

最新文章