最新软件工程(第五版)--习题及答案---第九章电子教案
- 格式:doc
- 大小:118.50 KB
- 文档页数:6
《软件工程》(第五版)习题参照答案第 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、(×)在输出界面设计时,要尽可能使用代码或缩写,以求简洁。
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)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
- (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
- 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
一、判断题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、10、在进行单元测试时,常用的方法是(A )。
A 、采用白盒测试,辅之以黑盒测试 B 、采用黑盒测试,辅之以白盒测试 C 、只使用白盒测试 D 、只使用黑盒测试11、白盒测试方法一般适合于(A )测试。
A 、单元B 、系统C 、集成D 、确认 12、为了提高测试的效率,应该(D )。
A 、随机地选取测试数据B 、取一切可能的输入数据作为测试数据C 、在完成编码以后制定软件的测试计划D 、选择发现错误可能性大的数据作为测试数据 13、不属于白盒测试的技术是(D )。
A 、语句覆盖B 、判定覆盖C 、条件覆盖D 、边界值分析14、下列逻辑覆盖标准中,差错能力最强的是(D )。
A 、语句覆盖 B 、判定覆盖 C 、条件覆盖 D 、条件组合覆盖15、在黑盒法中,着重检查输入条件组合的测试方法是(D )。
A 、等价类划分法 B 、边界值分析法 C 、错误推测法 D 、因果图法三、简答题1、 为什么要进行软件测试?软件测试要以什么目标和原则?答:软件测试的目的是为了发现软件产品中存在的软件缺陷,进而保证软件产品的质量。
软件测试是软件开发过程中的一个重要阶段,是软件产品正式投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
软件测试的结果也是分析软件可靠性的重要依据。
在软件测试中,应注意以下指导原则:(1)所有测试都应追溯到需求(2)坚持“尽早地和不断地进行软件测试”。
(3)测试用例应由输入数据和预期的输出结果两部分组成。
(4)程序员应避免测试自己的程序。
(5)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
(6)充分注意测试中的群集现象。
(7)严格执行测试计划,排除测试的随意性。
(8)应当对每个测试结果做全面检查。
(9)在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该做的事。
(10)应长期保留所有测试用例。
保留测试用例有助于以后修改程序后的回归测试。
2、软件测试包括哪几个过程?测试过程中包括哪些数据源?答:测试过程分为4个步骤,即单元测试、组装测试、确认测试和系统测试。
数据源有:(1)软件配置:包括软件需求规格说明、软件设计规格说明、源代码等。
(2)测试配置:包括测试计划、测试用例、测试驱动程序等。
(3)测试工具:测试工具为测试的实施提供某种服务,以减轻测试过程中的手工劳动,提高测试效率。
3、黑盒测试法与白盒测试法的本质区别是什么?它们的使用场合有何不同。
答:黑盒测试法与白盒测试法的根本区别是设计测试用例的方法不同。
前者是测试产品的功能,后者是测试产品的内部结构和处理过程。
通过黑盒测试主要发现以下错误:(1)是否有不正确或遗漏了的功能。
(2)界面是否有错,能否正确地接受输入数据,能否产生正确的输出信息。
(3)是否有数据结构或外部数据库访问错误。
(4)性能是否满足要求。
(5)是否有初始化或终止性错误。
白盒测试法是一种程序级的微观上的测试,不适合于大单元、大系统的测试,主要用于很小单元的测试,以及从事软件底层工作、生产构件的测试人员使用。
4、试比较测试与调试的异同。
答:软件测试的目的是尽可能多地发现程序中的错误,而调试的目的是根据测试时发现的错误,找出错误的原因和具体位置,并改正错误。
测试与调试的不同如下表所示。
测试与调试的不同5(1)面向对象的单元测试面向对象的单元测试是进行面向对象集成测试的基础。
面向对象的单元测试以类或对象为单位。
由于类包含一组不同的操作,并且某些特殊的操作可能被多个类共享,因此,单元测试不能孤立地测试某个操作,而是将操作作为类的一部分来测试。
(2)面向对象的集成测试因为在面向对象的软件中没有层次的控制结构,并且构成类的成分彼此之间存在着直接或间接的交互作用,所以,传统意义上的自顶向下和自底向上的集成策略将不再适用。
(3)面向对象的确认测试在确认测试层次,不需要再考虑类的实现和交互的具体细节,只要验证交互过程及功能,包括提供的用户界面,用户可见的操作,软件的反应和输出的结果等情况,其中测试用例的选择主要是依据动态模型和系统的脚本描述。
四、应用题1、使用等价类划分方法,为一元二次方程求解程序设计足够的测试用例。
该程序要求分别打印出:不是一元二次方程,有实数根和有复数根三种信息。
2、早期DOS操作系统对文件名的命名要求如下:文件名由基本文件名和扩展名组成,扩展名可以省略,两部分文件名以小数点分隔。
基本文件名至少为1位,至多为8位长度,且首字符必须为非数字字符(如字母或部分特殊符号,文件名中不能包括空格、+号、?号、*号、圆点符号。
大小写字母无区别);扩展名最多为3位长度。
请用等价类划分法设计对文件名命名要求的测试用例。
等价类划分表测试用例表3、对于例9-2,仿照表9-5,请重新设计六种逻辑覆盖的测试用例,并重新填写表格内容,要求测试数据要尽量少。
逻辑覆盖测试用例《修辞无处不在》教案1、教学目标:(1)明确修辞的内容,能从语音、词语、语句三个方面对词语进行分析,引导学生树立大修辞的观念。
(2)通过对三种修辞的引导和学习,引导学生把学过的修辞知识串联起来,进行系统复习。
2、教学重难点:重点:明确修辞的内容,掌握修辞三个方面的内容。
难点:能够从语音、词语、语句三个方面对一段文字进行修辞分析。
5、教学过程:一、导入:天冷了,大树发抖了,小草打冷颤了,小强冬眠了,老牛烧炭取暖了,小白兔穿羽绒服了,蚂蚁买暖水袋了。
你还不多穿件衣服?要问我是谁?当然是这世上最关心你的人!二、早梅初识春风面——了解修辞(梳理)定义:修辞是对语言材料进行选择、调整和组合的过程,目的是为了使语言表达鲜明、生动。
从这个角度讲,修辞在语言表达中无处不在。
(狭义与广义之分,确定今日主要讲广义上的修辞)1、语音修辞(1)品味下列句子,体会其中语言的韵味:①俗谚:三个臭皮匠,顶个诸葛亮。
歌曲:我送你离开,千里之外,你无声黑白。
②名篇佳句:曲曲折折的荷塘上面,弥望的是田田的叶子。
叶子出水很高,像亭亭的舞女的裙。
轻轻的我走了,正如我轻轻的来;我轻轻的招手,作别西天的云彩。
③广告:车到山前必有路,有路必有丰田车。
歌曲:雨纷飞,飞在天空里是我的眼泪,泪低垂,垂在手心里是你的余味。
(顶针)(2)找找,以上这些修辞手法有什么共同点呢?共同点:富于节奏语音和谐语音修辞的定义:一切使语句富于节奏、优美动听的修辞方法。
通过对语音的调配,使语音整齐和谐、富有节奏感和旋律美。
特征:修辞格如对偶、排比、反复、顶真等;(3)课堂练兵:运用所学的语音修辞知识,写一段文字(20--30字左右)2、词语修辞(1)走近词语修辞①定义:对所使用的词语加以选择和锤炼.②特征:类似于古人的“炼字”;词语超常搭配比喻、比拟、借代、夸张、双关等修辞格的运用。
(2)练习:说说下面的语句运用了什么修辞1、短信一:送你一件外套,前襟是平安,后襟是幸福,吉祥是领子,如意是袖子,快乐是扣子,口袋里满是温暖,穿上吧,让它相伴你的每天。
短信二:送你一杯早茶,以芬芳的祝福为叶,以温柔的叮咛做花,再用沸腾的热情为水,宽厚的包容当杯,喝出你一天的好心情和一生的幸福。
2、红杏枝头春意(闹)。