软件工程全部习题答案。
(2003-5-31 19:55:00)第九章1、渐增模型有那几种特点答:增量构造和演化提交。
增量构造是瀑布模型的基础上在一些的阶段中采用增量开发一些阶段整体开发。
演化提交是在瀑布模型的基础上所有阶段都使用增量开发也就是不紧使用增量开发也使用增量提交。
2、快速原形有那几种特点答:探索型、试验型、演化型。
探索型:在需求阶段帮助明确理解需求用完抛弃。
试验型:在设计阶段考核现行方案是否合适用完抛弃。
演化型:及早的向用户展示一个系统的原形包含主要的功能得到用户的认可后将原形不断的扩充直到系统完成。
3、快速原形开发的步骤答:快速开发、需求、构造原形、原形、运行原形、评价原形、修改意见。
4、评价快速原形的优缺点答:可以更清楚的理解用户的需求、开发阶段可以用原形解决局部的困难,通过原形的开发可以让用户看见系统的初步功能的实现有利与用户的开发人员更好的交流,及早的解决存在的问题减少开发的风险。
缺乏好的管理工具和开发环境、缺乏管理机制、对开发人员的技术要求高、更新文档比较困难。
5、对比瀑布模型和增量模型,指出增量模型的新思路。
答:瀑布模型是一种整体的开发模型,开发的每一阶段必须按线性的顺序来进行,前一阶段的工作没有完成后一阶段的工作就不能开始。
由于需求分析的易变性使的软件开发工作不顺利,同时瀑布模型的每个阶段有不可避免的错误出现,那么延伸到以下的各个阶段错误就会放大。
增量模型是非整体开发的模型它采用渐增模型和原形模型,软件的开发是用增量开发和增量提交。
第八章1、软件维护有那些内容答:校正性维护、完善性维护、适应性维护、预防性维护2、软件维护的特点答:结构性维护、非结构性维护、别人的程序难懂、开发和维护在人员和时间上的差异、文档的不一致性、维护不是一项吸引人的工作3、软件维护的流程答:制定维护申请报告、审查申请报告并批准、实施维护并做记录、复审4、软件维护的副作用答:代码副作用、数据副作用、文档副作用5、什么是软件的可维护性可维护性度量的特性答:是能够别理解、适应、校正和增强功能的容易程度。
可理解、可适应、可测试、可修改、可靠、可移植可使用、效率。
6、提高可维护性的方法答:使用有可维护性的程序设计语言、及时更新文档、使用先进技术和工具、明确软件质量目标、明确质量保证工作。
第七章1、软件测试的目的是测试中要注意那些原则答:软件测试的目的是的发现软件中存在错误的活动。
好的测试用例可以发现至今没有发现的错误、好的测试用例可以发现至今没有发现的错误测试。
要提供输入数据还要提供输出数据、保留测试用例、检查它是否做了应该做的还要检查它是否做了不该做的、避免自己测试自己的程序、多错误多的地方要更严格的测试。
2、什么是白盒法有那些覆盖标准比较他们的检错能力。
答:将程序看成是白盒子,认真的分析程序的结构和功能制定测试用例来测试。
有逻辑覆盖(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖)3、什么是黑盒法有那些测试方法特点答:将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。
等价类划分、边界值分析、因果图、错误推测。
4、软件测试要经过那些步骤这些步骤和开发那些阶段对应答:单元测试对应详细设计和编码、集成测试对应概要设计、确认测试对应需求分析。
5、单元测试有那些内容答:测试模块的接口、数据结构、重要的执行路径、错误处理、边界条件。
6、什么是集成测试非渐增式和渐增式有什么区别渐增式如何组装模块答:将模块组合起来成为一个完整的系统对其进行测试。
非渐增式是将模块先进行单元测试然后组装在一起进行测试。
渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。
非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。
渐增式组装模块有自顶向下和自底向上两种组装方式。
7、什么是确认测试该阶段有那些工作答:按照需求规格说明书中的确定指标对系统进行功能与性能的测试。
进行确认测试(对照需求规格说明书用黑盒法进行测试)、软件配置检查。
(文档的完整性、正确性,发现遗漏和错误及时补充和修改)8、调试的目的是什么调试的技术有那些答:调试的目的是发现错误的位置并改正错误。
简单调试、演绎调试、递归调试、回溯调试。
第六章1、程序语言的共同特征答:心理特征(歧义性、简洁性、局部性、顺序性、传统性)、工程特征(可移植性、可重用性、可维护性)2、项目开发时,选择程序设计语言通常考虑的因素有那些答:项目应用领域、软件开发方法、软件执行环境、算法和数据结构的复杂性、开发人员的知识。
3、4GL的特征答:友好的界面、有过程和非过程特性、高效的程序代码、完备的DB应用程序生成。
4、什么是程序风格为了具有良好的设计风格应注意那些方面的问题答:原程序文档化、数据说明、语句构造、输入输出、效率。
第五章1、详细设计的基本任务是什么有那几种描述方法答:设计模块的数据结构、设计数据库的物理结构、设计模块的详细算法、其它(代码设计、输入/输出格式设计、人机对话设计)、编写详细设计说明书、评申。
程序流程图、PAD图、PDL第四章1、什么是概要设计有那些基本任务答:概要设计是在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现。
基本任务是:建立软件系统结构(划分模块、定义模块功能、模块间的调用关系、定义模块的接口、评价模块的质量)、数据结构和数据库的设计(数据结构设计、概念设计、逻辑设计、物理设计)、编写概要设计文档(概要设计说明书、用户手册、数据库设计说明书、修订测试计划)。
、2、软件设计基本原理包括那些内容答:抽象、模块化(接口、功能、逻辑、状态)、信息隐蔽、模块独立性。
3、衡量模块独立性的两个标准是什么他们表示什么含义答:内聚、耦合。
内聚:表示模块内各个组成部分之间联系的紧密程度的度量,耦合:模块间联系紧密程度的度量。
4、模块间的耦合有哪几种含义答:无直接耦合:模块间没有直接联系数据耦合:模块间传递的是数据标记耦合:模块间传递的是数据结构控制耦合:传递的是控制变量,被调通过该变量有选择的执行模块内的某以功能。
公共耦合:通过一个公共数据环境相互作用的模块间的耦合关系。
内容耦合:一个模块直接使用另一个模块的内容。
5、模块的内聚有哪几种含义答:偶然内聚:逻辑内聚:时间内聚:通信内聚:顺序内聚:功能内聚:6、什么是软件结构图简述软件结构设计优化准则。
答:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。
准则:高内聚底耦合、作用范围在控制范围内、软件的深度、宽度、扇入、扇出适当、模块大小适中、接口简单清晰易懂。
7、什么是模块的控制范围和作用范围他们的关系如何答:控制范围:是模块本身和它的下属模块的集合。
作用范围:模块中的一个判定影响的所有模块的集合。
作用范围应该在控制范围内。
8、什么是变换流什么是事物流答:变换流由输入、变换(或处理)、输出三部分组成。
某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入选择其中一个路径来执行这种特征的DFD称为事物流。
第三章1、什么是需求分析任务是什么答:需求分析是准确的理解用的需求将其转换成需求定义,然后由需求定义转换成形式化的功能规约。
需求分析的困难表现在问题的复杂性、交流的障碍、不完备和不一致性、需求易变性。
任务:问题识别(功能需求、性能需求、环境需求、用户界面需求)分析综合导出逻辑结构、编写文档(需求规格说明书、初步用户手册、确认测试计划、完善修改软件开发计划)2、什么是结构化分析方法用什么工具描述答:结构化分析方法是采用自顶向下逐层分解的分析策略把一个复杂的系统分解成若干小问题然后分别解决。
描述工具:数据流图、数据字典、结构化语言、判定表、判定树。
3、结构化分析方法通过那些步骤实现答:分析现行系统,获得物理模型、抽象出当前系统的逻辑模型、建立目标系统的逻辑模型、补充优化。
4、什么是数据流图作用其中的符号表示什么含义答:数据流图是用来表示系统的功能的工具它表示系统的逻辑模型描述了数据流在系统中流动的情况它是一种功能模型。
它用来定义系统的功能。
箭头表示数据流、圆圈表示加工、双横线表示存储、方框表示数据的原点和终点。
5、画数据流图要注意什么答:命名、父子图平衡、局部数据存储、画数据流不画控制流、每个加工至少有一个输入和输出、不画物质流提高数据流图的易理解性。
6、什么是数据字典答:数据字典是用来描述数据流图中数据流、加工、存储的详细信息的。
7、描述逻辑加工有那些工具答:结构化语言、判定表判定树。
8、什么是IDEF方法IDEF0有什么特点答:IDEF方法是米国空军针对集成化计算机制造工程项目中用来进行复杂系统分析和设计的方法。
IDEF0用来描述功能活动极其联系的,它是功能模型。
IDEF0中将系统功能称为活动,用输入、输出、控制、机制来表示系统的功能,一个活动至少有一个控制可以没有输入。
9、SA方法的优缺点答:优点:SA是公认的、有效的、成熟的、使用广泛的方法。
它比较适用数据处理方面的设计。
采用图形形式化工具表达需求,简洁、易读、适用方便,对后续阶段的测试、评价提供了有利的条件。
缺点:它是个静态模型,没有反映控制流不适于实时控制系统的描述、SA对数据要求方面的描述木够全面最好和E-R图一起适用、不适合描述人机界面交互频繁的系统、为了加强对系统的描述能力应于形式化方法结合一起使用。
第二章1、可行性研究的任务是什么答:可行性研究的任务是对体统进行一次概要分析研究在尽可能短的时间里明确系统的目标和规模、约束、限制。
然后分析人员进行简要的需求分析,抽象出该项目的逻辑结构、建立逻辑模型,提出几种方案对它们进行可行性分析。
包括技术可行性,经济可行性、社会可行性。
2、可行性研究的步骤答:确定项目规模和目标、研究当前的系统、建立新系统的高层逻辑模型、导出和评价各种方案、推荐可行方案、编写可行性研究报告。
3、可行性研究报告有那些内容答:引言、可行性研究前提、对现有系统的分析、所建议系统的技术可行性分析、所建议系统的经济可行性分析、所建议系统的社会可行性分析、其它方案、结论意见。
4、成本—效益分析可用那些指标度量答:投资回收期、纯收入、货币的时间价值。
5、项目开发计划内容答:项目概述、实施计划、人员分组及分工、交付期限。
第一章1、软件产品特性答:逻辑产品有无形性、生产就是开发研制、不会坏不会磨损、成本昂贵、生产主要是脑力劳动。
2、软件生产有几个阶段特征答:程序设计、程序系统、软件工程。
3、什么是软件危机产生的原因4、什么是软件工程目标和内容答:用科学的原理和理论定义,开发、维护软件的学科。