软件工程(第五版)-习题及答案---第六章
《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论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给手下的软件工程师们观看~告诉他们及时发现并改正错误的重要性时~有人不同意这个观点~认为要求在错误进入软件之前就清楚它们是不现实的~并举例说:‚如果一个故障是编码错误造成的~那么~一个人怎么能在设计阶段清除它呢,?应该怎么反驳他,答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
软件工程导论(第五版) 第六章

•经典的结构程序设计:只允许使用顺序、
IF_THEN_ELSE选择和DO_WHILE循环;
扩展的结构程序设计:除了三种基本控制结构, 还使用DO_CASE和DO_UNTIL循环;
修正的结构程序设计:除了三种基本控制结构 和两种扩充结构,还使用BREAK等结构。
6.1.1 结构化程序
6.1.1.1 控制结构 • 流程图通常由三种结点组成: •1)函数结点 • 如果一个结点有一个入口线和
行李重量w30行李重量w30国内乘客外国乘客头等舱其他舱头等舱其他舱残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客w302w304w303w306w304w308w306w3012免费图67用判定树表示计算行李费的算法636pdl2可以使用普通的正文编辑程序或文字处理系统来完成pdl的书写和编辑工作
•定义7:由基本程序的一个固定的基集合构造出的复合
程序,称为结构化程序。
6.1.2 结构化定理 •结构化定理:任一正规程序都可以函数等价于
一 个 由基 集 合 {顺 序 , If-else-then,While-do} 产生的结构化程序。
• 实际上,只要能证明可以将任一正规程序转
换成等价的结构化程序就可以证明这个结构化 定理。
123456789 TTTTFFFF TFTFTFTF FFTTFFTT
TFFFFFFFF
×
×
×
×
×
×
×
×
×
•6.3.5 判定树
• 判定树是判定表的变种。
行李重量
国内乘客
头等舱 其他舱
残疾乘客
正常乘客 残疾乘客 正常乘客
(W-30)×2 (W-30)×4 (W-30)×3 (W-30)×6
软件工程(第五版)--习题及答案

一、判断题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.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
软件工程课后习题答案第五版

软件工程课后习题答案第五版《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
课后习题答案

第一章 (2)第二章 (3)第三章 (4)第四章 (5)第五章 (6)第六章 (8)第七章 (10)第八章 (10)第九章 (11)课后习题答案第一章项目的市场调研习题1.选择题(1)软件是计算机系统中与硬件相互依存的另一部分,它包括文档、数据和()。
A.数据B. 软件C.文档D. 程序(2)软件工程是一门研究如何用系统化、()、可度量化等工程原则和方法去进行指导软件开发和维护的学科。
A.规范化B.标准化C.抽象化D.简单化(3)软件工程的出现主要是由于()。
A.方法学的影响B.软件危机的出现C.其他工程学科的发展D.计算机的发展(4)可行性研究主要包括经济可行性、技术可行性、法律可行性和()等六个方面。
A.运行可行性B.条件可行性C.环境可行性D.维护可行性(5)编制项目开发计划的目的是用文件的形式,把在开发过程中各项工作的负责人员、开发进度、所需经费预算、所需软件、硬件条件等问题做出的安排以()记载下来。
A.文件形式B. 文档形式C. 电子档案形式D. 条文形式2.填空题(1)软件工程是开发、运行、维护和修复软件的系统方法,这里所说的系统方法,是把系统化的、规范化的、可度量化的途径应用于软件生存周期中,也就是把工程化应用于软件中。
(2)可行性研究的任务不是具体解决系统中的问题,而是确定问题是否值得解决、是否能够解决。
(3)软件的开发计划也称项目实施计划,是一个综合的计划,是软件开发工作的指导性文档,阅读对象是软件开发的主管部门、软件技术人员和普通用户。
3.思考题(1)软件危机产生的原因是什么?为何要引入软件工程的概念?答:①忽视了软件开发前期的需求分析的需求分析;②开发过程没有统一、规范的方法论的指导,文档资料不齐全,忽视了人与人之间的交流。
③忽视测试阶段的工作,提交给用户的软件质量差。
④请示软件的维护。
(2)可行性研究的主要任务有哪些?答:①经济可行性②技术可行性③时机可行性④管理上的可行性⑤法律可行性⑥运行可行性(3)制定项目开发计划的主要任务是什么?答:①项目资源计划软件开发中的资源包括用于支持软件开发的硬件,软件工具以及人力资源。
软件工程(第5版课后答案)

f(作者姓名)
系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件。
设计测试数据以全面测试系统正常操作。 设计测试数据以测试系统的非正常操作。
P175 5
P175 5 参考答案
划分等价类(略) 全面测试系统正常操作 B BS BSD F FD
B:输入关键字,看是否输出约20个加了行号的字,是否与关键字完全相同的字约在屏幕中央。 输入:“计算机” 预期输出:约20个加行号的字 BS:输入关键字,选取屏幕上行号,是否生成包含索引号的文件。 输入:“计算机”;12 预期输出:约20个加行号的字;文件 BSD:输入关键字,选取屏幕上行号,检索索引号有关信息,是否显示文件中索引信息。 输入:“计算机”;12;3 预期输出:约20个加行号的字;文 件;文件中索引信息。 F:输入作者姓名,是否在屏幕上显示该作者的著作的索引号,是否将这些索引存入文件。 输入:“金庸” 预期输出:该作者著作的索引号 FD:输入作者姓名,检索索引号有关信息,是否现实文件中索引信息。 输入:“金庸”;3 预期输出:该作者著作索引号;文件中 索引信息
单击此处可添加副标题
P23 7参考答案
增量模型 缺点: 至始至终开发者和客户纠缠在一起,直到完全版本出来。 优点: 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 具有一定的市场。 适合于软件需求不明确、设计方案有一定风险的软件项目。
习题1第6题
什么是软件过程?它与软件工程方法学有何关系?
P23 6
P23 6参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1、UML的主要特点不正确的是(C)。
A、面对对象,表达能力强
B、可视化建模
C、面对过程,表达能力强
D、统一标准
2、静态建模图不包括(B)。
A、用例图
B、协作图
C、类图
D、对象图
3、用例图的模型元素不包括(D)。
A、用例
B、系统
C、行为者
D、软件开发者
4、类图的要素不包括(D)。
A、类名称
B、操作
C、属性
D、对象
5、时序图中的要素不包括(A)。
A、执行者
B、对象
C、对象生命线
D、消息
6、对象模型的描述工具是(C)。
A、状态图
B、数据流图
C、对象图
D、结构图
7、协作图的要素不包括(A)。
A、用例
B、对象
C、链
D、消息
8、类图反映了系统中对象之间的抽象关系,不包括(D)。
A、关联
B、聚合
C、泛化
D、内聚
9、下面(D)不是状态图的图符。
A、圆角的矩形
B、实心圆点
C、实心圆环
D、椭圆
10、描述类中某个对象的行为,反映了状态与事件关系的是(A)。
A、状态图
B、数据流图
C、对象图
D、结构图
11、动态模型的描述工具(C)。
A、对象图
B、设计图
C、状态图
D、结构图
12、表示对象的相互行为的模型是(A)模型。
A、对象
B、动态
C、结构
D、静态
13、有关类和对象的描述中,错误的是(A)。
A、一个类只能有一个对象
B、对象是类的具体实例
C、类是某一类对象的抽象
D、类和对象的关系是一种数据类型和变量的关系
14、用例图中用例之间的关系通常有关联关系、依赖关系和(C)关系。
A、协作
B、聚合
C、泛化
D、内聚
15、动态模型图包括:时序图、协作图、状态图和(C)图。
A、对象图
B、设计图
C、活动图
D、结构图
二、简答题
1.简要介绍用例图的三个要素。
答:用例图主要包括以下三个元素:
①用例(Use Case):用例是系统的使用过程或要执行的动作序列,用来描述某个参与者使用系统所完成的功能。
在图中用椭圆来表示,用例名称可写在椭圆中或椭圆下面。
②参与者(Actor)。
或称角色或执行者,它是系统外部的一个实体(可以是任何的事物或人所扮演的角色等)。
在图中用一个小人图形表示。
③关联。
表示角色与用例之间的驱动和反馈关系,也可以表示用例间的包含与扩展关系。
在图中用线段或带箭头的线段表示。
2.分别写出UML对象图中对象的三种表示方式。
答:在UML中,对象图和类图一样采用矩形图示,不过对象名称下方有下划线(类名称下方没有下划线),通常对象名采用:对象名:类名、:类名或对象名三种格式表示,中间形式是尚未给对象命名,最后一种形式是省略了类名。
3.举例说明类图和对象图之间的关系。
答:对象图展示了一组对象和它们之间的关系。
对象图是类图的实例,对象之间的连接是类之间关联的实例。
类图和对象图的不同点在于对象图显示类的多个对象实例,而不是实际的类。
4.活动图的主要作用是什么,状态图的主要作用是什么
答:状态图和活动图都属于行为图,主要用于分析、设计阶段描述对象的行为。
状态图适于描述单个对象状态的变化情况,活动图适于描述一个工作过程、多个对象之间的合作。
状态图描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。
活动图(Activity Diagram)是状态图的变种。
状态图适于描述单个对象状态的变化情况,而活动图的目的是描述动作(执行的工作和活动),以及对象状态改变的结果,适于描述一个工作过程、多个对象之间的合作。
与状态图不同的是,活动图中动作状态的迁移不是靠事件触发,当动作状态中的活动完成时就触发迁移,活动图中的一个活动结束后将立即进行下一个活动。
三、应用题
1、某教务管理系统主要完成以下功能:教师使用该系统完成某班级学生某门课程成绩的录入、修改、计算和打印,学生使用该系统查询所学课程的成绩,系统管理员使用该系统进行学生信息、教师信息、课程信息和班级信息的管理。
请对该系统分析,找出系统中的参与者、用例,确定它们之间的关系,并对每个用例进行详细描述。
略。
2、某教务管理系统中,教师的主要信息包括:工号、姓名、性别、职称、系部;学生的主要信息包括:学号、姓名、性别、班级;课程的主要信息包括:课程编号、课程名称、任课教师。
请列出本系统中所涉及的主要的类,给出类的主要属性及类间关系,画出该系统的类图。
略。
3、请画出某教务管理系统中某一学期中课程对象的状态图。
略。
4、请画出某教务管理系统中学生选课的活动图。
略。