软件工程(殷锋)答案有问答题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程课后习题答案
——殷锋主编注:有些可能错误,读者自己注意
第一章
一、填空题:
1、软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据、及
相关文档的的完整集合
2、软件工程包括三要素:方法、工具和过程。
3、软件开发的基本方法包括结构化方法和面向对象方法
二、选择题:
C 2、B 3、C
1软件的特点:
(1)逻辑实体(2)与硬件生产方式不同(3)与硬件的维护不同(4)复杂的5 成本相当昂贵
2软件危机的产生及其表现:1开发进度难以预测2成本难以控
3功能不能能满足用户的需求4质量难以保证5难以维护6缺少适当的文本资料
3比较结构化方法和面向对象方法:
结构化方法:自顶向下,逐步分解模块易于控制和处理模块相对独立、接口简单、使用维护非常方便
面向对象方法:提高软件系统的稳定性可修改和可重用性产生的具有特点:客观世界任何事物对象都是对象每各类定义一种方法若干对象组成参次结构系统对象通过传递消息相互联系
第二章
一、填空题:
1、软件生存周期的各个过程可以分成三类,及主要生存周期过程、支持生存
周期过程和组织的生存周期过程。
2、软件生存周期包括计划、需求分析、设计、程序编码、软件测试和运行
维护6个阶段。
3、软件过程改进(SPI)帮助软件企业对其软件过程的改变进行计划,制定以及
实施。
二、填空题
1、A
2、B
三、判断题
1、√
2、X
4什么是软件过程?
软件生存周期过程或软件过程组,是指软件生存周期中的一系类相关过程。
5软件的生存周期:
计划需求分析设计程序编码软件测试运行维护
6可行性研究的任务是什么?
进行一次大大压缩简化的系统分析和设计的过程,在高参差上以抽象的方式进行系统分析和设计。
任务:以最小的代缴在最短的时间内确定问题能否解决,也就是判定原定的目标和规模能否实现
第三章
三、填空题:
1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定问题是否
能够解决
2、可行性研究在进行简要需求分析和设计时,要在高层次上以较抽象的方式进
行
3、需求分析阶段产生的最重要的文档是软件需求规格说明书。
4、为解决一个复杂的问题,往往采取的策略是自顶向下、逐步分解。
5、SA方法中使用半形式化的描述方式表达需求,采用的主要描述工具是数据
流图和E-R图。
6、数据流图中有四种负号元素,它们是数据流、加工处理、文件、数据源或
终点
7、数据字典中有四类条目,分别是数据流、数据流分量、数据存储、转换
8、在IDEF0图中,表示系统功能的图形成为图。
9、在画分层的DFD时,父图与子图的输入/输出的数据流要平衡。
10、用于描述基本加工的小说明的三种描述工具是结构化语言、判定树、
判定表。
二、选择题
1、A
2、C
3、B
4、B
5、D
6、D
7、D
8、A
9、D 10、A 11、C 12、B
7什么是需求分析?该阶段的基本任务是什么?
需求分析过程就是通过分析员与用户之间的广泛交流,最终形成一个完整清晰一致的软件需求规格说明书的过程。任务:认清问题、分析资料、建立分析模型、编写软件需求规格说明书
8结构化分析方法的步骤:系统要解决的问题为解决该问题,系统该做的事情系统该怎么去做
9数据流图与数据字典的作用?
数据流图作用是指明系统中数据是如何流动和变换的,以及描述数据流是如何进行变换。
数据字典是在软件分析和设计的过程中给人提供关于数据的描述信息。画数据流图应注意什么?合理编号注意子图与父图的平衡
局部文件分解的程度
第四章
一、填空题
1、变换型系统由3部分组成:输入、中心变换、输出。
2、模块的分解的基本原则是高内聚,低耦合。
3、在软件开发的过程中必须遵循的软件工程原则有:抽象、模块化、信息隐
藏和模块独立性。
二、选择题
1、D
2、A
3、A
4、A
5、B
三、判断题
1、√
2、X
3、X
4、√
5、X10如何理解模块的独立性?用什么指标来衡量模块的独立性?
每个模块只能完成系统要求的子功能,与其他模块的联系较少且接口简单,模块独立的概念是模块化、抽象、信息隐蔽概念的直接结果定性标准度量:内聚和耦合
11结构设计有哪些原则?1提高模块的独立性2选择合适的模块规模3适当的选择模块的深度、宽度、扇入和扇出4 模块的作用范围应在控制范围之内5降低模块接口的复杂程度6设计单入口和单出口,且功能可预测的模块
12软件详细设计的主要任务是什么?1为每个模块确定所采取的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述2确定每一模块使用的数据结构3确定模块接口的细节4详细设计
结束时,应把结果写入详细设计说明书,并且通过复审形成正式文档13软件详细设计模块的原则:1模块的逻辑描述要清晰易读、准确可靠2采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性。3选择恰当的工具描述模块算法
14详细设计的工具有哪几类?优缺点?工具:图形工具(程序流程图、NS、PAD、HIPO)表格工具(判定表)语言工具(伪码PDL)
程序流程图:独立于任何一种程序设计语言,比较直观清晰的描述过程的控制流程,易于学习掌握。但不能引导人们用结构化方法进行详细设计,人么可以实现向任何位置的转移,箭头使用不当,框图难懂,无法维护。
第五章
二、填空题
1、软件测试是为了发现程序中的错误而执行程序的过程。
2、运行被测程序的方法称为动态测试。
3、动态测试中,主要测试软件功能的方法称为黑盒测试法
4、选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻
辑覆盖标准为判定/覆盖法。
5、要覆盖含有循环结构的所有路径是不可能的,一般通过限制循环次数来测
试。
6、用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取之
范围,则可确定一个合理的等价类和两个不合理的等价类
7、凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是错误推