软件工程(第五版)-习题与答案---第四章
- 格式:doc
- 大小:41.00 KB
- 文档页数:4
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
《软件工程》(第五版)习题参照答案第 1 章一、判断题1、(×)软件的保护与硬件保护本质上是同样的。
2、(√)软件在运转和使用中也存在退化问题。
3、(× )软件危机的产生主假如因为程序设计人员使用了不适合的程序设计语言。
4、(√)软件同其余事物同样,有孕育、出生、成长、成熟和衰灭的生计过程。
5、(×)文字办理软件 Word 属于系统软件。
应用软件6、(√)原型是软件的一个初期可运转的版本,它反应最后系统的部分重要特征。
7、(√)软件开发过程中,一个错误发现得越晚,为改正它所付出的代价就越大。
8、(×)快速原型模型对软件开发人员的水平要求不高。
9、(√)喷泉模型适合于面向对象的软件开发。
10、(×)面向对象开发方法的主要弊端是在适应需求变化方面不够灵巧。
二、选择题1、软件是一种( C)。
A、程序B、数据C、逻辑产品D、物理产品2、软件开发方法是( A)。
A、指导软件开发的一系列规则和商定B、软件开发的步骤C、软件开发的技术D、软件开发的思想3、软件生计周期中花销最多的阶段是( D)。
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、用户需求8、在软件开发模型中,提出最早、应用最宽泛的模型是(A)。
A、瀑布模型B、喷泉模型C、快速原型模型D、螺旋模型9、瀑布模型不适合用于( A)的软件开发。
A、需求模糊不清B、用户不可以参加开发C、用户对计算机不认识D、开发人员对业务知识不熟习10、快速原型的主要长处不包含(D)。
软件工程第五版课后全答案准确对应书山第一章软件工程概论1.什么是软件危机,它们有哪些典型表现,为什么会出现软件危机,“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
‚软件危机?包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的原因:(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师~当把图1.1给手下的软件工程师们观看~告诉他们及时发现并改正错误的重要性时~有人不同意这个观点~认为要求在错误进入软件之前就清楚它们是不现实的~并举例说:‚如果一个故障是编码错误造成的~那么~一个人怎么能在设计阶段清除它呢,?应该怎么反驳他,答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
软件工程课后作业第四章第四章.简述软件设计阶段的基本任务。
答:(1)数据/类设计数据/类设计将分析类模型变换成类的实现和软件实现所需要的数据结构。
(2)体系结构设计体系结构设计定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。
(3)接口设计接口设计描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。
(4)部件级设计部件级设计将软件体系结构的结构性元素变换为对软件部件的过过程性描述。
.软件设计与软件质量的关系是怎么样的答:设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确地转化为完整的软件产品或系统的主要途径。
.简述模块、模块化及模块化设计的概念。
答:模块:具有名字、参数、功能等外部特征以及完场模块功能的程序代码和模块内部数据等特征。
模块化:把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件。
模块化设计:简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。
.举例说明每种类型的模块耦合度和每种类型的模块内聚度。
答:1、巧合内聚:讲几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块称巧合内聚模块。
2、逻辑内聚:逻辑内聚是指完成一组逻辑相关任务的模块,调用该模块时,由传送给模块的控制性参数来确定该模块应执行哪一种功能。
3、时间内聚:时间内聚是指一个模块中的所有任务必须在同一时间段内执行。
4、过程内聚:过程内聚是指一个模块完成多个任务,这些任务必须指定的过程执行。
5、通信内聚:通信内聚是指一个模块内所有处理元素都集中在某个数据结构的一块区域中。
6、顺序内聚:顺序内聚是指一个模块完成多个功能,这些功能又必须顺序执行7、功能内聚:功能内聚是指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割。
一、判断题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、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用
结构化设计方法。
2、(√)概要设计与详细设计之间的关系是全局和局部的关系。
3、(×)一个模块的作用范围应该大于该模块的控制范围。
4、(√)模块间的耦合性越强,则模块的独立性越弱。
5、(×)在设计模块时,应使一个模块尽量包括多个功能。
6、(√)软件结构图可以利用数据流图映射出来。
7、(×)结构化设计是一种面向数据结构的设计方法。
8、(√)在结构化设计过程中首先要确认DFD。
二、选择题
1、软件结构图的形态特征能反映程序重用率的是(C)。
A、深度
B、宽度
C、扇入
D、扇出
2、概要设计的目的是确定整个系统的(B)。
A、规模
B、功能及模块结构
C、费用
D、测试方案
3、耦合是对软件不同模块之间互连程度的度量。
各种耦合从强到弱的排列为(C)。
A、内容耦合,控制耦合,数据耦合,公共环境耦合
B、内容耦合,控制耦合,公共环境耦合,数据耦合
C、内容耦合,公共环境耦合,控制耦合,数据耦合
D、控制耦合,内容耦合,数据耦合,公共环境耦合
4、当一个模块直接使用另一个模块的内部数据时, 这种模块之间的耦合为(D)。
A、数据耦合
B、公共耦合
C、标记耦合
D、内容耦合
5、数据耦合和控制耦合相比, 则(B)成立。
A、数据耦合的耦合性强
B、控制耦合的耦合性强
C、两者的耦合性相当
D、两者的耦合性需要根据具体情况分析
6、衡量模块独立性的标准是(D)。
A、耦合的类型
B、内聚的类型
C、模块信息的隐藏性
D、耦合性和内聚性
7、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行, 则这种内聚为(A)。
A、时间内聚
B、逻辑内聚
C、通信内聚
D、信息内聚
8、为了提高模块的独立性, 模块内部最好是(C)。
A、逻辑内聚
B、时间内聚
C、功能内聚
D、通信内聚
9、在结构化设计方法中, 下面哪种内聚的内聚性最弱(C)。
A、逻辑内聚
B、时间内聚
C、偶然内聚
D、过程内聚
10、软件设计是把(A)转换为软件表示的过程。
A、软件需要
B、系统分析
C、数据库
D、软件代码
11、概要设计的主要成果是(C)。
A、用户的界面需求
B、用户的分析方案
C、概要设计说明书
D、系统总体方案
12、数据结构设计也是概要设计的重要内容, 主要是进行数据的(A)设计。
A、逻辑
B、存取
C、用户视图
D、索引
13、概要设计与详细设计衔接的图形工具是(B)。
A、DFD图
B、SC图
C、程序流程图PFD
D、PAD图
14、在软件开发中, 下面任务不属于设计阶段的是(D)。
A、数据结构设计
B、给出系统模块结构
C、定义模块算法
D、定义需求并建立系统模型
15、下面不属于软件设计原则的是(C)。
A、抽象
B、模块化
C、自底向下
D、信息隐藏
三、简答题
1、软件设计应遵循的原则是什么?
答: 软件设计中一般应遵循以下原则:模块化、抽象、信息隐蔽与局部化、一致
性、完整性和可验证性。
2、什么是软件的概要设计?概要设计阶段完成的主要任务是什么?
答: 总体设计又称概要设计,是将软件需求转化为软件体系结构、确定系统级接
口、全局数据结构和数据库模式。
3、启发设计规则有哪些?
答:(1)模块功能的完善化;(2)消除重复功能,改善软件结构;(3)模块规模
应该适中;(4)模块的深度、宽度、扇出和扇入都应适当;(5)模块的作用范围
应该在控制范围之内;(6)力争降低模块接口的复杂程度;(7)设计单入口、单
出口的模块;(8)模块功能应该可以预测。
四、应用题
根据以下的C语言程序段判断模块A和B之间属于哪一种耦合,模块B是哪一种内聚。
1、
模块 A “开发票”:
,,
water_fee= calc_waterfee (12.5,3.0);
模块B“计算水费”:
float calc_waterfee (float mount ,float price );
{
float fee;
,,
feturn fee;
}
答:模块A 和B 是数据耦合,模块 B 是功能内聚。
2、
模块 A :
,,
flag=1 ;
max=max_avg(flag);
,,
模块B:
int max_avg (int flag )
{
,,
if (flag= =1 )
,,
else if(flag= =0 )
,,
}
答:模块A 和B 是控制耦合,模块 B 是逻辑内聚。