软件工程教程:第1章软件工程概述 课后习题

本文介绍了软件工程的基础知识,包括软件危机的成因和表现,软件与软件工程的定义,软件工程的目标,软件生存周期的概念、阶段和模型。此外,还探讨了软件工程的知识域划分。内容涵盖了从需求分析到维护的全过程,以及不同软件过程模型,如瀑布模型、螺旋模型等。
摘要由CSDN通过智能技术生成

《软件工程教程》(第2版)主编:吴迪 马宏茹 丁万宁 电子科技大学出版社

目录

一、选择题

二、简答题

(1)什么是软件危机?软件危机表现在哪些方面?

(2)简述软件和软件工程的定义以及软件工程的形成过程。

(3)软件工程的目标是什么?如何解决多目标之间的矛盾?

(4)什么是软件生存周期?它分为几个时期,几个阶段?

(5)什么是软件生存周期模型?它有哪些主要软件过程模型?

(6)在软件工程知识体系中,将软件工程划分为哪些知识域?


一、选择题

(1)在下列选项中,(D)不是软件的特征

A.系统性与复制性

B.可靠性与一致性

C.抽象性与智能型

D.有形性与可控性

(2)与计算机科学的理论研究不同,软件工程是一门(B)学科。

A.理论性

B.工程性

C.原理性

D.心理性

(3)下列选项中,(C)不是软件生存周期模型

A.螺旋模型

B.增量模型

C.功能模型

D.瀑布模型

(4)软件生存周期中时间最长的阶段是(D)

A.需求分析阶段

B.总体设计阶段

C.测试阶段

D.维护阶段

(5)瀑布模型是一种(D)

A.软件开发方法

B.软件生存周期

C.程序设计方法学

D.软件生存周期模型

(6)软件开发中常采用结构化生存周期方法,由于其特征而一般称其为(A)。

A.瀑布模型

B.对象模型

C.螺旋模型

D.层次模型

(7)在结构性的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标。

A.详细设计阶段

B.总体设计阶段

C.可行性研究阶段

D.需求分析

二、简答题

(1)什么是软件危机?软件危机表现在哪些方面?

具体来说,软件危机出现的原因可以概括如下。

① 忽视软件开发前期的需求分析。

② 开发过程缺乏统一的、规范化的方法论指导。

③ 文档资料不齐全或不准确。

④ 忽视与用户之间、开发组成员之间的交流。

⑤ 忽视测试的重要性。

⑥ 不重视维护或由于上述原因造成维护工作的困难。

⑦ 从事软件开发的专业人员对这个产业的认识不充分,缺乏经验。

⑧ 没有完善的质量保证体系。

具体地说,软件危机的表现形式可以概括如下。

① 软件开发费用和进度失控。

② 软件系统实现的功能与实际需求不符。

③ 软件的可靠性差。

④ 软件难以维护。

⑤ 软件通常没有适当的文档资料。

⑥ 软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。

⑦ 软件生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

(2)简述软件和软件工程的定义以及软件工程的形成过程。

软件是计算机系统中与硬件相对应的另一部分,是一系列程序、数据及其相关的文档集合。在这里,程序是按照特定顺序组织的计算机数据和指令的集合;数据是使程序能正常执行的数据结构;文档是是开发、使用和维护程序所需要的图文资料。

软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或进行研究的学科。

软件工程的发展经历了以下四个阶段。

① 20世纪70年代。为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出了软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。人们发现将传统工程学的原理、技术和方法应用于软件开发,可以起到使软件生产规范化的作用。

② 20世纪80年代。面向对象的方法与技术受到了广泛的重视,maltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。20世纪80年代末,逐步发展起来的面向对象的分析与设计方法,已经形成了完整的面向对象技术体系,使系统的生存周期更长,适应更大规模、更广泛的应用。

③ 20世纪90年代末。出现了许多的敏捷方法,如自适应软件开发、水晶项目开发、动态系统开发、极限编程、特征驱动开发和Scrum等。这些主要的敏捷方法的创始人在2001年聚集一堂,并发表了敏捷开发宣言。

④ 21世纪。对快速应用开发(Rapid Application Development,RAD)追求的趋势仍在继续,在信息技术、组织、竞争对策及环境等方面的变革步伐也正在加快。云计算、大数据、物联网、人工智能和机器学习、移动互联网、三维打印、可穿戴式技术、虚拟现实、增强现实、社交媒体、无人驾驶汽车和飞机等技术不断涌现。“大规模计算”、“自治和生化计算机”、“模型驱动体系结构”和“构件化软件开发”等新领域都可能成为接下来软件工程发展的主要方向。

(3)软件工程的目标是什么?如何解决多目标之间的矛盾?

软件工程要达到的基本目标包括以下六方面。

① 达到要求的软件功能。

② 取得较好的软件性能。

③ 开发出高质量的软件。

④ 付出较低的开发成本。

⑤ 需要较低的维护费用。

⑥ 能按时完成开发工作,及时交付使用。

软件工程的首要问题是软件质量。软件工程的目的就是在以上目标的冲突之间取得一定程度的平衡。因此,在涉及平衡软件工程目标这个问题的时候,软件的质量应该摆在最重要的位置加以考虑。软件质量可用功能性、可靠性、可用性、效率、可维护性和可移植性等六个特性来评价。

(4)什么是软件生存周期?它分为几个时期,几个阶段?

软件生存周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用,以及产品版本的不断更新,到该产品最终被市场淘汰的全过程。软件生存周期由软件定义、软件开发和运行维护三个时期组成,划分为问题定义、可行性研究、需求分析、概要设计、详细设计、软件实现和单元测试、综合测试和运行维护八个阶段。

(5)什么是软件生存周期模型?它有哪些主要软件过程模型?

软件生存期模型也称为软件过程模型,是从软件项目需求定义直至软件运行维护为止,跨越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架。典型的包括瀑布模型、快速原型模型、增量模型、螺旋模型、统一过程、敏捷过程等。

(6)在软件工程知识体系中,将软件工程划分为哪些知识域?

SWEBOK将软件工程知识体系划分为10个知识域,包含在两类过程中。一类过程是开发与维护过程,包括软件需求、软件设计、软件构造、软件测试和软件维护;另一类过程是支持过程,包括软件配置管理、软件工程管理,软件工程过程、软件工程工具写方法、软件质量。每个知识域还可进一步分解为若干个论题,在论题描述中引用有关知识的参考文献,形成一个多级层次结构,以此确定软件工程知识体系的内容和边界。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一条小橘猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值