软件工程(第五版)--习题及答案---第八章

合集下载

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。

课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。

下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。

第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。

2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。

3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。

每个模型都有其独特的特点和适用场景。

4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。

5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。

第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。

2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。

3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。

4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。

第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。

2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。

3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。

软件工程第五版课后全答案准确对应书山

软件工程第五版课后全答案准确对应书山

软件工程第五版课后全答案准确对应书山第一章软件工程概论1.什么是软件危机,它们有哪些典型表现,为什么会出现软件危机,“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。

‚软件危机?包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

出现软件危机的原因:(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师~当把图1.1给手下的软件工程师们观看~告诉他们及时发现并改正错误的重要性时~有人不同意这个观点~认为要求在错误进入软件之前就清楚它们是不现实的~并举例说:‚如果一个故障是编码错误造成的~那么~一个人怎么能在设计阶段清除它呢,?应该怎么反驳他,答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

软件工程综合复习题连答案

软件工程综合复习题连答案

《软件工程》综合复习资料第一章软件工程概述一、选择题1、瀑布模型本质上是一种()。

A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型2、计算机辅助软件工程,简称()。

A、SAB、SDC、SCD、CASE3、以下判断正确的是()。

A、所谓软件开发就是编写程序。

B、利用软件工程的思想,已成功的解决了软件危机。

C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。

D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。

4、_____是以提高软件质量为目的的技术活动。

A.技术创新B.测试C.技术创造D.技术评审5、瀑布模型的存在问题是()。

A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求6、软件生命周期中所花费用最多的阶段是()。

A.详细设计B.软件编码C.软件测试D.软件维护7、计算机系统就是()A.主机,显示器,硬盘,软驱,打印机等。

B.CPU,存储器,控制器,I/O接口及设备。

C.计算机硬件系统和软件系统。

D.计算机及其应用系统。

8、产生软件危机的原因主要与两个方面的问题有关:A.软件在计算机中很难识别,存在磁盘中也看不到。

B.软件设计对人的智商要求很高,也要求很高的资金投入。

C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。

D.软件很难理解,硬件也很复杂。

9、软件开发瀑布模型中的软件定义时期各个阶段依次是()A.可行性研究,问题定义,需求分析。

B.问题定义,可行性研究,需求分析。

C.可行性研究,需求分析,问题定义。

D.以上顺序都不对。

10、下列选项中()是软件开发中存在不正确的观念、方法。

A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是二、填空题1、软件工程的三个基本要素包括()、()和()。

2、一般软件应该有三部分组成:()、()和()。

3、按软件的功能可将软件分成()、()和()等三类。

软件工程(第五版)--习题及答案---第八章

软件工程(第五版)--习题及答案---第八章

软件工程(第五版)--习题及答案---第八章一、判断题1、(√)使用括号改善表达式的清晰性。

2、(×)对递归定义的数据结构不要使用递归定义的过程。

3、(×)尽可能对程序代码进行优化。

4、(√)不要修改不好的程序,要重新编写。

5、(√)不要进行浮点数的相等比较。

6、(×)应尽可能多地使用临时变量。

7、(√)利用数据类型对数据值进行防范。

8、(×)用计数方法而不是用文件结束符判别批量数据输入的结束。

9、(×)程序中的注释是可有可无的。

10、(√)使用有意义的标识符。

11、(×)应尽量把程序编写的短一些。

12、(×)应尽量使用goto语句。

二、选择题1、在编码中首先要考虑的是(B)。

A、程序的执行效率B、程序的可读性C、程序的一致性D、程序的安全性2、(D)。

不属于序言性注释内容的是A、模块设计者B、修改日期C、程序的整体说明D、语句功能3、序言性注释应置于文件或模块的(A)位置。

A、起始B、结束C、中间D、起始和中间4、如果编写系统软件,可选用的语言是(C)。

A、FoxProB、COBOLC、CD、FORTRAN5、选择程序设计语言不应该考虑的是(B)。

A、应用领域B、语言的功能C、用户的要求D、用户的使用水平6、与编程风格有关的因素不包括(D)。

A、源程序文档化B、语句构造C、输入输出D、程序的编译效率7、最早用于科学计算的程序设计语言是(C)。

A、PROLOGB、SmalltalkC、FORTRAND、COBOL8、功能性注释的主要内容不包括(B)。

A、程序段的功能B、模块的功能C、数据的状态D、语句的功能9、对建立良好的编程风格,下面描述正确的是(A)。

A、程序应简单、清晰、可读性好B、符号名的命名只要符合语法即可C、充分考虑程序的执行效率D、程序的注释可有可无10、源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括合适的标识符、注释和(A)。

最新软件工程导论第五版习题答案教学讲义PPT

最新软件工程导论第五版习题答案教学讲义PPT

D3生理信息
F4警告信息
F2生理信号
P1 接收信号
定时的生理信号
P5 更新日志
F2生理信号 定时的 生理信号
E1 护士
E3 时钟
F3日前、时间
P4 定时取样 生理信号
F6日志
F6日志
D1患者日志
E1
护士
F1要求报告
P6
13:07:42
重庆工学产院生计病算情机报科告学与工程学院 李梁(liliang@)
从问题陈述可知,本系统数据源点是“病人”和“护士” ,他们分别提供生理信号和要求病情报告的信息。进一步 分析问题陈述,从系统应该“定时记录病人情况以形成患 者日志”这项要求可以想到,还应该有一个提供日期和时 间信息的“时钟”作为数据源点。
从问题陈述容易看出,本系统的数据终点是接收警告信息 和病情报告的护士。
F6日志
D1患者日志
E1
护士
F1要求报告
P6
13:07:42
重庆工学产院生计病算情机报科告学与工程学院 李梁(liliang@)
13
作业及解答(第3章)
2-5 北京某高校可用的电话号码有以下几类:校内电话号码 由4位数字组成,第1位数字不是0;校外电话又分为本市 电话和外地电话两类,拨校外电话需先拨0,若是本市电 话则再接着拨8位数字(第1位不是0),若是外地电话则拨3 位区码再拨8位电话号码(第1位不是0)。
8
作业及解答(第3章)
E1 护士
F4警告信息、病情报告 F1要求报告
E1 护士
E2 病人
F2生理信号
P0 患者监护系统
F6日志
D1患者日志
F5安全范围
D2患者安全范围
E3 时钟

软件工程(第五版)--习题及答案---第九章

软件工程(第五版)--习题及答案---第九章

一、判断题1、(×)测试是为了验证该软件以正确地实现了用户的需求。

2、(√)发现错误多的程序模块,残留在模块中的错误也多。

3、(×)白盒测试法是根据程序的功能来设计测试用例的。

4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。

5、(√)确定测试计划是在需求分析阶段制定的。

6、(√)集成测试计划是在概要设计阶段制定的。

7、(√)单元测试是在编码阶段完成的。

8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。

9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。

10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。

二、选择题1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组成。

A、测试输入数据B、预期的测试输出数据C、测试输入与预期的输出数据D、按照测试用例设计方法设计出的数据2、测试和调试最大的不同在于(A)。

A、操作者的心理状态不同B、它们的行为取向不同C、使用的工具不同D、运用的方法不同3、一个成功的测试是(B)。

A、发现错误B、发现至今尚未发现的错误C、没有发现错误D、证明发现不了错误4、白盒法和黑盒法最大的不同在于(A)。

A、测试用例设计方法不同B、测试的任务不同C、应用的测试阶段不同D、基于的知识集不同5、单元测试阶段主要涉及(D)的文档。

A、需求设计B、编码和详细设计C、详细设计D、概要设计6、检查软件产品是否符合需求定义的过程称为(A)。

A、确认测试B、集成测试C、验证测试D、验收测试7、软件调试的目的是(B)。

A、发现错误B、改正错误C、改善软件的性能D、挖掘软件的潜能8、进行软件测试的目的是(A)。

A、尽可能多地找出软件中的错误B、缩短软件的开发时间C、减少软件的维护成本D、证明程序没有缺陷9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。

A、B、C、D、10、在进行单元测试时,常用的方法是(A)。

软件工程 张海藩 课后习题答案

软件工程 张海藩 课后习题答案

《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。

软件工程(第五版)--习题及答案

软件工程(第五版)--习题及答案

一、判断题1、(√)详细设计也称模块设计。

2、(×)在数据代码设计时,应尽量让一条代码代表多个信息。

3、(×)在数据代码设计时,应可能设计字母和数字混合代码。

4、(×)在输出界面设计时,要尽可能使用代码或缩写,以求简洁。

5、(×)详细设计评审应尽可能和概要设计评审一同进行。

二、选择题1、软件详细设计的主要任务是确定每个模块的(A )。

A 、算法和使用的数据结构、算法和使用的数据结构 B 、外部接口、外部接口 C 、功能、功能 D 、程序、程序2、借助于软件工具,可将(C )容易地转换为高级语言源程序。

)容易地转换为高级语言源程序。

A 、程序流程图、程序流程图 B 、N-S 图 C 、PAD 图 D 、判定表、判定表3、不属于详细设计工具的是(A )。

A 、DFD 图B 、PAD 图C 、PDlD 、N-S 图 4、程序的三种基本结构是(C )。

A 、过程、子过程和子程序、过程、子过程和子程序 B 、递归、堆栈和队列、递归、堆栈和队列 C 、顺序、选择和重复、顺序、选择和重复 D 、调用、返回和转移、调用、返回和转移 5、下面描述中,符合结构化程序设计风格的是(A )。

A 、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 、模块只有一个入口,可以有多个出口C 、注重提高程序的执行效率、注重提高程序的执行效率D 、不使用goto 语句 三、简答题1、软件的详细设计阶段完成的主要任务是什么? 答:(1)算法设计;(2)数据结构设计;(3)模块接口细节设计;(4)测试用例设计;(5)数据库物理设计;(6)数据代码设计;(7)其他设计;(8)编写详细设计说明书并进行评审。

编写详细设计说明书并进行评审。

2、数据输入界面设计的主要原则有哪些?答:在设计数据输入界面时应做到:尽量简化用户的工作、减少输入的出错率;减轻用户的记忆负担、尽可能减少输入量并实现自动输入;尽可能减少输入量并实现自动输入; 对共同的输入设置默认值;对共同的输入设置默认值; 使用代码或缩写;缩写; 自动填入已输入过的内容;列表式输入; 数据分组输入。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、判断题
1、(√)使用括号改善表达式的清晰性。

2、(×)对递归定义的数据结构不要使用递归定义的过程。

3、(×)尽可能对程序代码进行优化。

4、(√)不要修改不好的程序,要重新编写。

5、(√)不要进行浮点数的相等比较。

6、(×)应尽可能多地使用临时变量。

7、(√)利用数据类型对数据值进行防范。

8、(×)用计数方法而不是用文件结束符判别批量数据输入的结束。

9、(×)程序中的注释是可有可无的。

10、(√)使用有意义的标识符。

11、(×)应尽量把程序编写的短一些。

12、(×)应尽量使用goto语句。

二、选择题
1、在编码中首先要考虑的是(B)。

A、程序的执行效率
B、程序的可读性
C、程序的一致性
D、程序的安全性
2、(D)。

不属于序言性注释内容的是
A、模块设计者
B、修改日期
C、程序的整体说明
D、语句功能
3、序言性注释应置于文件或模块的(A)位置。

A、起始
B、结束
C、中间
D、起始和中间
4、如果编写系统软件,可选用的语言是(C)。

A、FoxPro
B、COBOL
C、C
D、FORTRAN
5、选择程序设计语言不应该考虑的是(B)。

A、应用领域
B、语言的功能
C、用户的要求
D、用户的使用水平
6、与编程风格有关的因素不包括(D)。

A、源程序文档化
B、语句构造
C、输入输出
D、程序的编译效率
7、最早用于科学计算的程序设计语言是(C)。

A、PROLOG
B、Smalltalk
C、FORTRAN
D、COBOL
8、功能性注释的主要内容不包括(B)。

A、程序段的功能
B、模块的功能
C、数据的状态
D、语句的功能
9、对建立良好的编程风格,下面描述正确的是(A)。

A、程序应简单、清晰、可读性好
B、符号名的命名只要符合语法即可
C、充分考虑程序的执行效率
D、程序的注释可有可无
10、源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括合适的标识符、注释和(A)。

A、程序的布局组织
B、尽量不使用或少用goto语句
C、检查输入数据的有效性
D、设计良好的输出报表
11、编制一个好的程序应强调良好的编程风格,例如,选择标识符的名字时应考虑(C)。

A、名字长度越短越好,以减少源程序的输入量
B、多个变量共用一个名字,以减少变量名的数目
C、选择含义明确的名字,以正确提示所代表的实体
D、尽量用关键字作名字,以使名字标准化
12、以下关于编程风格的叙述中,不应提倡的是(B)。

A、使用括号以改善表达式的清晰性
B、用计数方法而不是用文件结束符判断输入的结束
C、一般情况下,不要直接进行浮点数的相等比较
D、使用有清晰含义的标识符
13、在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在人们更重视程序的(D)性。

A、技巧性
B、保密性
C、一致性
D、可理解性
14、为了提高易读性,源程序内部应加功能性注释,用于说明(B)。

A、模块总的功能
B、程序段或语句的功能
C、模块参数的用途
D、数据的用途
15、适合在互联网上编写程序可供不同平台上运行的面向对象的程序设计语言是(B)。

A、ALGOL
B、Java
C、Smalltalk
D、Lisp
16、使用(C)语言开发的软件具有较好的可移植性。

A、COBOL
B、BASIC
C、C
D、C++
17、用低级语言开发的程序,具有(C)特点。

A、运行效率低,开发效率低
B、运行效率低,开发效率高
C、运行效率高,开发效率低
D、运行效率高,开发效率高
三、简答题
1、程序设计语言发展至今已经历了哪几个时代
答:第一代语言(机器语言)、第二代语言(汇编语言)、第三代语言(高级语言)。

高级语言种类繁多,又可分为传统的基础语言、结构化语言和专用语言三类。

2、良好的编码风格包括哪几方面
答:1)源程序文档化2)数据说明3)语句构造4)输入与输出5)效率。

3、在软件开发时,应根据哪些因素选择程序设计语言
答:(1)项目的应用领域。

(2)用户的要求。

(3)软件开发工具。

(4)算法和数据结构的复杂性。

(5)软件开发人员的知识。

(6)系统的可移植性要求。

四、应用题
1.指出下面的程序段在风格上的问题并改正。

答:一方面尽量不使用“非”条件;另一方面语句格式不规范。

改为:
if( x <= 0)
{
x = -x;
}
2.请将语句printf((i+1) % 10 = = 0)”%5d\n”:”%5d”, *(a+i) );改写为更为清晰的格式。

if ( (i+1) % 10 = = 0)
{
printf(”%5d\n”, *(a+i) );
}
else
{
printf(”%5d”, *(a+i) );
}
3.王永涛同学于2008年4月22日编写了下面的C程序,其名称为。

请阅读该程序,并根据程序设计风格的一般要求改写下面的程序。

答:按编码风格优化后的代码为:
/**************************************************************
程序名称:
设计者:王永涛
日期:2008年4月22日
程序功能:由键盘输入若干个整数,计算它们之和,并打印整数个数及其和
***************************************************************/
# include <>
void main()
{
int count, j=1,sum=0, x;
printf(“请输入整数个数\n”);
scanf("%d",&count);
while (j<=count) //求count 个整数之和
{
printf(“请输入第%d个整数:\n”, j );
scanf("%d",&x);
sum=sum+x; //累加整数
j++; //整数个数计数
}
printf("%d个整数的和为%d\n" , j, sum);}
}
4、请对以下代码的布局进行改进,使其符合良好的编码风格。

for(i=0;i<n-1;i++)
{
t=i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[t])
{
t=j;
if(t!=i)
{
temp=a[t];
a[t]=a[i];
a[i]=temp;
}
}
}
5、求整数1~n的累加和sum,其中n的值由键盘输入。

使用您熟悉的语言编写程序,注意编码风格。

/*****************************
程序名:
程序功能:求整数1~n的累加和sum,其中n的值由键盘输入
*****************************/
void main( )
{
int i,n,sum=0;
printf(“请输入整数个数n\n”);
for(i=1;i<=n;i+++)
{
scanf(“%d”); /*输入整数,使用空格、回车或TAB键分隔*/
sum=sum+i; /*计算累加*/
}
printf(“1~%d的累加和sum=%d\n”,n,sum);
}。

相关文档
最新文档