软件工程第五版习题及答案
软件工程 导论 第五版 课后习题 答案详解
19:50:09
作业及解答(第3 作业及解答(第3章)
• 从问题陈述可知,复印机的状态主要有“闲置”、 “复印”、“缺纸”和“卡纸”。引起状态转换的事 件主要是“复印命令”、“完成复印命令”、“发现 缺纸”、“装满纸”、“发生卡纸故障”和“排除了 卡纸故障”。
19:50:09
作业及解答(第4 作业及解答(第4章)
作业及解答(第1 作业及解答(第1-2章)
1-5 根据历史数据可以做出如下的假设 : 对计算机存储容量的需求大致按下面公式描述的趋势逐 年增加:M=4080e0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降: P1=0.3×0.72Y-1974(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为: P2=0.048×0.72Y-1974(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2 代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋 19:50:09 势。要求计算:
作业及解答(第3 作业及解答(第3章)
3-3 银行计算机储蓄系统的工作过程大致如下:储户填 写的存款单或取款单由业务员键入系统,如果是存款 则系统记录存款人姓名、住址(或电话号码)、身份证 号码、存款类型、存款日期、到期日期、利率及密码 (可选)等信息,并印出存单给储户;如果是取款而且 存款时留有密码,则系统首先核对储户密码,若密码 正确或存款时未留密码,则系统计算利息并印出利息 清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图 描绘系统中的数据对象。
作业及解答(第4 作业及解答(第4章)
其中, –符号∷=表示定义为; –符号[...]表示可选项; –符号a|b表示a或b。 假设有这样一个有穷状态机:以一串字符为输入,判断字 符串中是否含有合法的浮点二进制数。试对这个有穷状态机 进行规格说明。
软件工程第五版课后全答案准确对应书山
软件工程第五版课后全答案准确对应书山第一章软件工程概论1.什么是软件危机,它们有哪些典型表现,为什么会出现软件危机,“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
‚软件危机?包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的原因:(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师~当把图1.1给手下的软件工程师们观看~告诉他们及时发现并改正错误的重要性时~有人不同意这个观点~认为要求在错误进入软件之前就清楚它们是不现实的~并举例说:‚如果一个故障是编码错误造成的~那么~一个人怎么能在设计阶段清除它呢,?应该怎么反驳他,答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
软件工程(第五版)--习题及答案---第八章
软件工程(第五版)--习题及答案---第八章一、判断题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)。
最新软件工程(第五版)-习题及答案---第四章资料
7、(×)结构化设计是一种面向数据结构的设计方法。
8、(√)在结构化设计过程中首先要确认DFD。
二、选择题
1、软件结构图的形态特征能反映程序重用率的是(C)。
A、深度B、宽度C、扇入D、扇出
2、概要设计的目的是确定整个系统的(B)。
A、规模B、功能及模块结构
……
feturn fee;
}
答:模块A和B是数据耦合,模块B是功能内聚。
2、
模块A:
……
flag=1;
The鏁inch Lu?max=max_avg(flag);
……
The Cha撻€?鏈?模块B:
The鑷姩鍖栦粨Qian?int max_avg(int flag)
The鎷呬繚鐗╂潈Suo堢伃{
闆嗚Chuai……
C、数据库D、软件代码
11、概要设计的主要成果是(C)。
A、用户的界面需求B、用户的分析方案
C、概要设计说明书D、系统总体方案
12、数据结构设计也是概要设计的重要内容,主要是进行数据的(A)设计。
A、逻辑B、存取C、用户视图D、索引
13、概要设计与详细设计衔接的图形工具是(B)。
A、DFD图B、SC图C、程序流程图PFDD、PAD图
一、判断题
1、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。
2、(√)概要设计与详细设计之间的关系是全局和局部的关系。
3、(×)一个模块的作用范围应该大于该模块的控制范围。
4、(√)模块间的耦合性越强,则模块的独立性越弱。
5、(×)在设计模块时,应使一个模块尽量包括多个功能。
A、数据耦合B、公共耦合C、标记耦合D、内容耦合
软件工程(第五版)--习题及答案---第九章
一、判断题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)。
软件工程(第5版课后答案)
适合于软件需求不明确,设计方案有一定风险的软件项目.
P23 7参考答案
螺旋模型 缺点: 需要相当的风险分析评估的专门技术,且成功依赖于这 种技术. 很明显一个大的没有被发现的风险问题,将会导致问题 的发生,可能导致演化的方法失去控制. 这种模型相对比较新,应用不广泛,其功效需要进一步 的验证. 优点: 对于大型系统及软件的开发,这种模型是一个很好的方 法.开发者和客户能够较好地对待和理解每一个演化级 别上的风险. 适合于大型软件的开发
P22 3
习题1第3题 什么是软件工程?它有哪些本质特性?怎样用软件工程消 除软件危机?
P22 3参考答案
软件工程是:
① 把系统的,规范的,可度量的途径应用于软件开发,运行和 维护过程,也就是把工程应用于软件; ② 研究①中提到的途径
软件工程的本质特性:
软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户 在软件工程领域中是由具有一种文化背景的人替具有另一种 文化背景的人创造产品
P23 7参考答案
优点:
它提供了一个模板,这个模板使得分析,设计,编码,测试 和支持的方法可以在该模板下有一个共同的指导. 虽然有不少缺陷但比在软件开发中随意的状态要好得多. 软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重 要的位置.
P23 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、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。
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)转换为软件表示的过程。
软件工程(第五版)--习题及答案
软件⼯程(第五版)--习题及答案《软件⼯程》(第五版)习题参考答案第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)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
- (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
- 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程(第五版)--习题及答案--第三章
一、判断题
1、(√)软件需求分析阶段要确定软件系统要“做什么”。
2、(×)软件需求规格说明书可作为可行性研究的依据。
3、(√)需求分析员可以参加最后的需求评审工作。
4、(×)画数据流图时可以加少量的控制流,使加工之间有时序的关系。
5、(√)结构化分析模型的核心是数据词典。
6、(×)在数据流图中,带有箭头的线段表示的是控制流。
7、(×)在软件生产过程中,需求信息的来源是项目经理。
8、(√)需求分析阶段的任务是确定软件的功能。
二、选择题
1、需求分析最终结果是产生(B)。
(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线分数,并存入录取线文件。试根据要求画出该子系统的数据流程图。
解:数据流图如下:
3、某考务中心准备开发一个考务管理系统,其需求如下:
(1)考生填写考试报名表,经检查合格后在系统中登记注册,并发给学生准考证。
(2)学生按照准考证要求进入考场考试。考试完后将试卷交给阅卷站。
IF年龄>40 THEN
SWITCH(学历)
{CASE:“初中”
IF性别为“男”THEN
做修理工
ELSE做清洁工
CASE:“高中”
IF性别为“男”THEN
做修理工
ELSE做清洁工
CASE:“大专”做技术员
ELSE IF年龄>=25且年龄<40 THEN
SWITCH(学历)
{ CASE:“初中”
IF性别为“男”THEN
软件工程(第五版)-习题及答案---第六章
软件工程(第五版)-习题及答案---第六章-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII一、选择题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):用例是系统的使用过程或要执行的动作序列,用来描述某个参与者使用系统所完成的功能。
在图中用椭圆来表示,用例名称可写在椭圆中或椭圆下面。
软件工程导论(第5版)习题一答案
P32 习题一1.什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
出现软件危机的原因如下:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.什么是软件工程? 它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程具有的本质特性:(1)软件工程关注与大型程序的构造;(2)软件工程的中心课题是控制复杂性;(3)软件经常变化;(4)开发软件的效率非常重要;(5)和谐地合作是开发软件的关键;(6)软件必须有效地支持它的用户;(7)在软件工程领域中通常由具有一种文化背景的人替具有另外一种文化背景的人创造产品。
为了消除软件危机,首先应该对计算机软件有一个正确的认识。
(1)更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,更应该是一种组织良好、管理严密、各类人员协同配合共同完成的工程项目。
软件工程(第五版)--习题及答案--第七章
一、选择题1、汽车有一个发动机,汽车和发动机之间的关系是(B)关系。
A、一般具体B、整体部分C、分类关系D、is a2、火车是一种陆上交通工具,火车和陆上交通工具之间的关系是(D)关系。
A、组装B、整体部分C、has aD、一般具体3、面向对象程序设计语言不同于其他语言的最主要特点是(C)。
A、模块B、抽象性C、继承性D、共享性4、软件部件的内部实现与外部可访问性分离,这是指软件的(A)。
A、封装性B、抽象性C、继承性D、共享性5、面向对象分析阶段建立的三个模型中,核心模型是(C)模型。
A、功能B、动态C、对象D、分析6、对象模型的描述工具是(C)。
A、状态图B、数据流图C、对象图D、结构图7、动态模型的描述工具是(A)。
A、状态图B、结构图C、对象图D、流程图8、在只有单重继承的类层次结构中,类层次结构是(A)层次结构。
A、树型B、网状型C、星型D、环型9、(C)模型表示了对象的互相行为。
A、功能B、动态C、对象D、分析10、在确定类时,所有(A)是候选的类。
A、名词B、形容词C、动词D、代词11、面向对象分析的原则不包括(C)。
A、抽象B、封装C、依赖D、继承12、常用动词和动词词组来表示(C)。
A、对象B、类C、关联D、属性13、在确定属性时,所有(B)是候选的属性。
A、名词B、修饰性名词词组C、动词D、词组14、在面向对象方法中,信息隐藏是通过对象的(A)来实现的。
A、封装性B、分类性C、继承性D、共享性15、面向对象设计的准则不包括(D)。
A、模块化B、抽象C、信息隐藏D、强耦合二、简答题1、面向对象分析通常要建立哪三种模型?它们分别描述系统的哪些方面?答:面向对象分析通常要建立三种模型,分别是对象模型、动态模型和功能模型。
其中:对象模型描述系统的数据结构,它是用来描述系统包含的对象及对象之间关系的模型;动态模型描述系统的控制结构,它是用来确定各个对象之间交互及整体的控制结构的模型;功能模型描述系统的功能,它是用来描述系统要实现的功能的模型。
软件工程(第五版)--习题及答案---第九章
一、判断题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、D10、在进行单元测试时,常用的方法是(A)。
软件工程简答题答案 第五版
软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1)程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3.什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件。
4.软件工程的目标是什么?软件工程有哪些原则?答:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。
软件工程第五版课后全答案准确对应书山
软件工程第五版课后全答案准确对应书山答案一:软件工程概述软件工程是一门研究如何以系统化、规范化、可定量化的方法开发和维护软件的学科。
它包括软件开发的理论、方法和工具,以及软件工程实践中的管理过程。
答案二:软件工程的原则和概念1. 软件工程的原则:- 适应性原则:软件工程应适应不断变化的需求和环境。
- 开发可验证性:软件开发过程应可验证和检验。
- 风险管理:软件开发中应采取风险管理策略。
- 可扩展性:软件应具备可扩展性,以适应未来的发展和变化。
2. 软件工程的概念:- 软件生命周期:指软件从提出需求到废弃的整个过程。
- 开发过程模型:指将软件开发过程分为一系列可管理的阶段和活动。
- 软件需求:用户对软件的功能、质量和性能等方面的要求和期望。
- 软件设计:确定软件系统的体系结构和组件之间的关系,并编写详细的规格说明。
- 软件测试:验证软件是否符合需求,并发现和修复软件中的缺陷。
- 软件维护:对已经交付使用的软件进行错误修复、性能优化等活动。
答案三:软件过程和项目管理1. 软件过程:- 软件过程定义:软件过程是指为实现软件的开发和维护需要采取的一系列方法和活动。
- 软件过程模型:包括瀑布模型、迭代模型、增量模型等。
- 软件过程改进:通过评估现有过程并采取相应的改进措施,提高软件开发效率和质量。
2. 项目管理:- 项目管理概述:项目管理是指将规划、组织、指导、控制和评估项目活动的过程。
- 项目管理知识体系:包括项目范围管理、项目时间管理、项目成本管理等多个方面。
- 项目管理过程:包括项目启动、规划、执行、监控和收尾等阶段。
答案四:需求分析与规格说明1. 需求工程:需求分析是软件开发的重要阶段,它涉及对用户需求的收集、分析和规格说明等活动。
- 需求获取:通过面谈、问卷调查等方式,从用户和相关人员中获取需求。
- 需求分类和排序:将获取的需求进行分类和排序,以便进一步分析和规格说明。
2. 需求分析模型:在需求分析过程中,可以使用不同的模型来表示需求,常用的模型有数据流图、用例图等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C、软件社会化的需要D、计算机软件技术的发展
三、简答题
1、软件通过你自己使用计算机的经历和对计算机的认识分辨软件和程序的差别,指出区别的关键点。
答:软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。
1、系统流程图是一种传统工具,用于描绘(D)。
A、逻辑模型B、程序结构
C、体系结构D、物理系统
2、软件可行性研究的目的是(C)。
A、证明软件开发项目可行
B、证明软件开发项目不可行
C、阐述软件开发项目值得或不值得做
D、为了确定软件开发项目要不要做
3、技术可行性研究要解决的问题是(A)。
A、从技术方面说明项目是否可行
B、从技术上定义项目要解决的问题
C、给出项目开发可行的技术线
D、给出精简的项目需求设计报告
4、可行性研究的步骤首先是(A)。
A、确定项目目标,即对要解决的问题进行定义
B、研究项目要求
C、对项目目标进行可行性分析
D、给出可行的解决方案
5、可行性研究的任务不包括(D)。
A、技术可行性B、经济可行性
C、法律可行性D、政治可行性
A、能让用户参与开发、给出反馈
B、尽早把需求分析清楚,以降低风险
C、尽早地发现问题、纠正错误
D、对软件分析设计人员的素质要求不高
11、快速原型的主要问题在于(A)。
A、缺乏支持原型开发的工具B、要严格控制原型构造的迭代
C、终端用户对原型不能理解D、软件的测试和文档更新困难
12、螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
2、简述软件危机产生的原因以及避免的方法。
答:软件危机的产生有两方面因素,一方面与软件本身的抽象性和复杂性有关;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因。
为了解决软件危机,既要有技术措施(好的方法和工具),也要有组织管理措施。(1)使用好的软件开发技术和方法。(2)使用好的软件开发工具,提高软件生产率。(3)有良好的组织、严密的管理,各方面人员相互配合共同完成任务。
A、增量模型B、专家系统
C、喷泉模型D、变换模型
13、在软件生产的程序系统时代由于软件规模扩大和和软件复杂性提高等原因导致了(A)。
A、软件危机B、软件工程
C、程序设计革命D、结构化程序设计
14、集成化开发环境中的环境集成机制不包括(D)。
A、数据集成B、控制集成
C、界面集成D、服务集成
15、软件工程的出现是由于(A)。
二、选择题
1、软件是一种(C)。
A、程序B、数据C、逻辑产品D、物理产品
2、软件开发方法是(A)。
A、指导软件开发的一系列规则和约定B、软件开发的步骤
C、软件开发的技术D、软件开发的思想
3、软件生存周期中花费最多的阶段是(D)。
A、详细设计B、软件编码(最少)
C、软件测试D、软件维护
4、软件工程的三要素不包括(D)。
《软件工程》(第五版)习题参考答案
第1章
一、判断题
1、(×)软件的维护与硬件维护本质上是相同的。
2、(√)软件在运行和使用中也存在退化问题。
3、(×)软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言。
4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和衰亡的生存过程。
5、(×)文字处理软件Word属于系统软件。应用软件
A、工具B、过程C、方法D、环境
5、在软件生存周期中,能准确地确定“软件系统必须做什么”的阶段是(D)。
A、总体设计B、详细设计(怎么做)
C、可行性研究(能不能做)D、需求分析
6、瀑布模型本质上是一种(A)模型。
A、线性顺序B、顺序迭代
C、线性迭代D、能及早见到产品的
7、瀑布模型突出的缺点是不适应(D)的变动。
6、(√)原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。
7、(√)软件开发过程中,一个错误发现得越晚,为改正它所付出的代价就越大。
8、(×)快速原型模型对软件开发人员的水平要求不高。
9、(√)喷泉模型适合于面向对象的软件开发。
10、(×)面向对象开发方法的主要缺点是在适应需求变化方面不够灵活。
答:许多软件开发问题都不能在预期的时间范围内或资源限制下得到解决。如果开发人员没有尽早停止没有可行解决方案的开发项目,就会造成时间、资金、人力、物力的浪费。为了降低软件开发失败的可能性,需要进行软件可行性研究。可行性研究要从经济可行性、技术可行性、运行可行性和法律可行性四方面进行。
5、分析瀑布模型和螺旋模型的异同,比较它们的适用场合。
答:瀑布模型是线性模型,是整体开发模型,文档驱动的模型,每一阶段必须完成指定的文档,需求明确的中、小型软件开发,不适宜需求模糊或多变的应用软件开发;螺旋模型是典型迭代模型,是风险驱动模型,可用于面向对象开发,适宜风险较大的大型软件开发。
第2章
一、选择题
A、算法B、程序语言C、平台D、用户需求
8、在软件开发模型中,提出最早、应用最广泛的模型是(A)。
A、瀑布模型B、喷泉模型
C、快速原型模型D、螺旋模型
9、瀑布模型不适合用于(A)的软件开发。
A、需求模糊不清B、用户不能参与开发
C、用户对计算机不了解D、开发人员对业务知识不熟悉
10、快速原型的主要优点不包括(D)。
6、系统流程图是描述(A)的工具。
A、物理系统B、逻辑系统
C、体系系统D、程序系统
7、可行性研究实质上是要进行一次(A)需求分析,设计过程。
A、简化、压缩的B、详细的
C、彻底的D、深入的
8、系统流程图的符号不包括(D)。
A、B、C、D、
二、简答题
1、软件开发的早期,为什么要进行可行性研究?目标的可行性研究有几个方面?
3、简述软件工程在软件开发中的作用和意义。
答:软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。软件工程的目标是实现软件的优质高产。软件工程的目的是在经费的预算范围内,按期交付出用户满意的、质量合格的软件产品。
4、软件生命周期概念对软件的开发有哪些指导作用。
答:软件生命周期是软件工程的一个重要的概念。把整个软件生命周期划分为若干个较小的阶段,每个阶段都有相对独立的任务和完成任务的步骤和方法,然后逐步完成各个阶段的任务,这有利于软件开发过程的组织和管理,从而降低了整个软件开发过程的困难程度,从而使规模庞大、结构复杂和管理复杂的软件开发变得容易控制和管理。