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

软件工程教程:第1章软件工程概述 课后习题相关推荐

  1. UML统一建模语言第1章 UML概述课后习题

    <UML2基础.建模与设计教程>杨弘平等编著,清华大学出版社,第1章 UML概述课后习题 1.UML事物有哪些? 构件事物.行为事物.分组事物.注释事物. 2.UML关系有哪些? 依赖.关 ...

  2. 软件工程 科学出版社 郑逢斌主编 第1章 软件工程概述 课后习题答案

    软件工程 科学出版社 郑逢斌 第1章 软件工程概述 课后习题答案 1. 简述软件的发展过程. 2. 简述软件的定义和特点. 定义: 在 IEEE 软件工程词汇标准中,软件的定义是:软件是计算机程序.规 ...

  3. 软件工程 科学出版社 郑逢斌主编 第12章 软件实现 课后习题答案

    软件工程 科学出版社 郑逢斌主编 第12章 软件实现 课后习题答案 1. 简述程序设计语言的基本特征及分类. 程序设计语言,通常简称为编语言,是一组用来定义计算机程序的语法规则.它是一种被标准化的交流 ...

  4. C语言程序设计教程(第三版)课后习题5.7

    C语言程序设计教程(第三版)课后习题5.7 语言学习从菜鸟开始 描述 给出一个不多于5位的整数,要求1.求出它是几位数2.分别输出每一位数字3.按逆序输出各位数字,例如原数为321,应输出123 输入 ...

  5. C语言程序设计教程(第三版)课后习题6.1

    C语言程序设计教程(第三版)课后习题6.1 语言学习从菜鸟开始 描述 输入两个正整数m和n,求其最大公约数和最小公倍数. 输入 两个整数 输出 最大公约数,最小公倍数 输入样例 1 5 7 输出样例 ...

  6. 1097: C语言程序设计教程(第三版)课后习题10.4

    1097: C语言程序设计教程(第三版)课后习题10.4 1.描述 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图.写一函数:实现以上功能,在主函数中输入n个数和输出调整后的 ...

  7. C语言程序设计教程(第三版)课后习题6.7

    C语言程序设计教程(第三版)课后习题6.7 语言学习从菜鸟开始 描述 一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是 ...

  8. C语言程序设计教程(第三版)课后习题6.11

    C语言程序设计教程(第三版)课后习题6.11 Description 用迭代法求 .求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n])要求前后两次求出的得差的绝对值少于0.0000 ...

  9. 1095: C语言程序设计教程(第三版)课后习题10.2

    1095: C语言程序设计教程(第三版)课后习题10.2 1.描述 输入三个字符串,按由小到大的顺序输出 输入 3行字符串 输出 按照从小到大输出成3行 样例输入 cde afg abc 样例输出 a ...

  10. C语言程序设计教程(第三版)课后习题1.6

    C语言程序设计教程(第三版)课后习题1.6 Description 编写一个程序,输入a.b.c三个值,输出其中最大值. Input 一行数组,分别为a b c Output a b c其中最大的数 ...

最新文章

  1. java B2B2C Springboot电子商务平台源码-Feign 基本使用
  2. [FF-A]-01-Introduction
  3. c++学习笔记之类的应用
  4. SQL应用与开发:(三)数据操作 #183; 改 AND 删
  5. 【TCP传输数据-键盘录入】
  6. SendMessage函数的常用消息及其应用大全
  7. groovy和java结合使用
  8. eclipse android 慢,Android编译很慢(使用Eclipse)
  9. 运筹学在不同环境下的决策 -- 学习记录
  10. 业务、架构、技术,我们应该关注什么 Java和.Net的优势劣势简单看法 市场经济决定,商业之道即是软件之道,市场的需求决定着软件技术的发展 利益决定着选择应用新技术...
  11. 如何排查即时通讯互动开发平台AnyChat的故障信息
  12. matlab中modred,计算机仿真技术(中南大学)3系统模型及转换.ppt
  13. Postman中的Pre-request Scrip详解
  14. 图片放大后很模糊怎么办?
  15. PPT封面怎样设计才更赏心悦目
  16. java程序定时运行
  17. Redis 源码分析跳跃表(skiplist)
  18. 经典网络-InceptionV1论文及实践
  19. 数据预处理阶段“不处理”缺失值的思路
  20. Docker学习之docker重启参数--restart=always的作用

热门文章

  1. 深度学习求职专业技术路径
  2. LENOVO联想笔记本电脑 ThinkPad P15v gen2(21A9)恢复原厂OEM系统,原装出厂Win10系统
  3. 台式中端计算机配置单,2020中端游戏台式电脑组装配置单
  4. 创业,你会选择什么?
  5. IIC实验(测温度湿度)
  6. 国外14亿泄露数据下载及还原
  7. MacBook 外接鼠标键盘时指针乱窜、不受控制的解决方法
  8. SetUnhandledExceptionFilter函数学习
  9. 大厂Java岗面试原题复盘,双非2年经验成功内推进入阿里
  10. 世纪前线网络质量测试工具 是什么_6.1.1 测试工具分类