软件工程各章作业习题的名词解释和问答题参考答案第一章:1:什么是软件危机开发软件由于管理混乱,加入软件规模越来越大,越来越复杂,造成软件开发失败。
2:软件工程过程指获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。
3:软件生成周期可行性研究与计划、需求分析、总体设计、详细设计、实现、测试、使用与维护4:有哪些软件周期模型瀑布模型、原型模型、增量模型、螺旋模型。
5:软件计算机程序及说明程序的各种文档6:个体手工劳动个人编写程序7:小生产合作方式多人编写程序8:软件的特点是一种逻辑产品,软件的生产主要是研制,软件产品不会用坏,软件生产主要是脑力劳动,软件的成本高。
9:软件文档有关程序的功能、设计、图形资料等等。
第二章:三. 名词解释1.可行性研究以最小代价, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.2.技术可行性主要研究开发的软件技术风险有多大3.经济可行性主要研究开发成功后能否得到应有的效益4.社会可行性主要研究开发的软件是否存在责任和侵权, 以及与当前管理制度, 人员素质, 操作方式的矛盾能否解决.四.问答题1. 可行性研究的任务是什么?首先初步确定项目的规模, 目标, 约束和限制条件, 决定系统的主要功能, 进行简要压缩, 提出几种解决方案.对每种方案提出意见.2.可行性研究有那些步骤?确定任务;分析技术可行性;分析经济可行性;分析社会可行性;作出系统流程图;作出开发计划。
3.可行性研究的目的.减少开发大型软件的风险,缩短开发周期, 减小投资, 减少使用资源, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.第三章三. 名词解释1. 需求分析指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来2. DFD数据流图四.简答题1.什么是需求分析? 该阶段的基本任务是什么?指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来基本任务:(1) 能够表达和理解问题的功能和性能;(2) 可以把一个复杂问题按某种方式进行划分, 并能逐步细化, 从而使复杂问题简化,软件的功能域,数据域都可以划分;(3) 建立模型.2. 简述结构化分析的步骤这一方法的基本思想是采用自顶向下,逐层分解的方法分析整个系统,有效的控制系统的复杂性.对于复杂, 规模大的应用系统,采用先抽象后具体, 先全局后局部的思想,有利于把握系统的总体目标, 结构和功能.第四章:三. 名词解释1. 软件设计确定软件结构,选择好的数据库,进行数据结构设计2.模块化把复杂问题划分为模块的过程3.信息隐蔽指模块内部处理细节和内部数据用某种手段隐蔽起来,外部模块不能随便访问4.模块独立性希望一个模块越独立越好,每个模块完成独立的功能,与其他模块联系越少越好5.耦合性指软件结构中模块之间相互依赖的程度6.内聚性模块内部各部分执行功能组合在一起的相关程度7.模块的控制范围一个模块对下属模块的控制8.模块的作用范围指模块之间的作用,但两个模块间是平级的9. 软件结构以需求分析文档为依据,解决实现软件体系结构四.简答题1.什么是软件概要设计, 该阶段的基本任务是什么?以需求分析文档为依据,解决实现软件体系结构。
基本任务:确定软件结构,分解各部分的模块,确定模块的功能,调用关系及接口信息,将用户的需求分配到适当的位置上,得出系统的模块层次结构。
2.软件设计的基本原理包括那些内容?模块与模块化;抽象;信息隐蔽;模块独立性3.模块的耦合性, 内聚性包括那些内容? 其含义耦合性:无直接耦合(模块之间无直接联系);数据耦合(模块间传递数据);标记耦合(模块间传递数据结构和地址)控制耦合(模块间传递控制变量)公共耦合(模块间通过公共关系传递)内容耦合(一个模块与另一个模块内部数据有关)内聚性:功能内聚(仅完成一个功能的各成分组合在一起)顺序内聚(与同一功能相关的且按顺序执行的各成分组合在一起)通信内聚(在同一数据结构上操作的各成分组合在一起)时间内聚(同一时间内执行的各成分组合在一起)逻辑内聚(逻辑上相似的各成分组合在一起)偶然内聚(将语句和程序段随意地组合在一起,他们之间无任何联系)4.简述软件结构设计优化准则(1)划分模块时,尽量做到模块内部高内聚,模块之间低耦合,保持模块相对独立性。
(2)一个模块的作用范围应该在自己的扩展范围内。
(3)软件结构的深度,宽度应适当。
(4)模块的大小要适中(5)模块的接口要简单、清晰,传递的参数数量不能太多,类型不要太复杂。
第五章:三.名词解释1 详细设计是解决如何实现具体的每个模块功能,涉及每个模块的处理过程,构造其实现算法。
2. 结构化程序设计设计容易理解,容易验证的程序。
四. 问答题1详细设计的基本任务是什么?设计算法,设计数据库,对某些固定的数据值进行代码设计,对界面及输入输出格式设计。
2结构化程序设计方法的基本要点是什么?使用顺序,选择,循环三种基本控制结构自顶向下,逐步求精的构造算法或程序。
3.详细设计主要使用那一个描述工具? 其特点?工具:结构化程序设计特点:首先考虑程序完成的主要功能的步骤;要考虑判断处理和重复处理的问题;考虑数据对程序的影响;三种基本控制结构只能按顺序出现或完整嵌套,不能出现相互交叉的情况。
第六章三. 名词解释1. 编码编程序2. 程序设计风格指人们编程的习惯特点四. 简答题1. 在项目开发时, 选择程序设计语言通常考虑那些因素?根据项目的应用领域;软件的开发方法;软件的执行环境;算法及数据机构的复杂性;软件开发人员的知识水平;合理选择编程语言。
2 什么是程序设计风格? 应该在那些方面注意培养良好的设计风格?(1)指人们编程的习惯特点(2)程序加注释;变量数据按意义取名;语句简单直接,内容要缩进,使用空格,空行提高程序的清晰度;输入输出提示化,表格化,图形化第七章三. 名词解释1.软件测试为了发现软件中的错误而执行程序的过程2.黑盒法着重于测试呗测程序的功能3.白盒法从被测试程序内部的逻辑结构入手来设计测试用例4.渐增式测试逐步组装模块,组装一部分测试一部分5 非渐增式测试将所有经过单元测试的模块一起连接起来进行测试四.问答题1软件测试的目的是什么?是为了发现软件中的错误而执行程序的过程,它的目标是尽可能多的控制软件中存在的错误,将测试结果作为纠错依据。
2白盒法有那些逻辑覆盖标准? 这些标准有什么关系?语句覆盖:是每个语句至少执行一次;判定覆盖:是每个判定的每个分支至少执行一次;条件覆盖:是每个判定的每个条件应该取到各种可能的值;判定/条件覆盖:同时满足判定和条件覆盖;条件组合覆盖:使每个判定中各条件的每一种组合至少出现一次;路径覆盖:使程序中每一条可能的路径至少执行一次3属于黑盒法的测试用例设计方法有那几种? 它们的特点等价类划分:将输入数据划分成若干合理的或不合理的等价类;边界值分析:检查边界情况的测试用例能搞笑的发现错误;错误推测:根据经验或直觉推测出程序种可能存在的各种错误;因果图:检查输入条件的各种组合可能引起的错误4. 软件测试要经过那几个阶段? 各个阶段与什么文档有关?先从每个模块的源程序出发,进行单元测试,然后按概要设计说明书的要求,将各模块组装起来进行集成测试,随后按需求规格说明书要求,对软件进行确认测试,最后将软件与系统中其他元素协调起来,进行系统测试。
第八章三.名词解释1.校正性维护识别和纠正隐含在软件中的错误过程2.适应性维护适应计算机运行环境的不断变化而修改软件的过程3.完善性维护适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程4. 预防性维护为了提高软件的可靠性和可维护性而对软件作出的修改5.软件可维护性指软件能够被理解、校正、适应及增加功能的容易程度6. 软件维护的副作用因修改软件而造成的错误或其他不希望出现的情况问答题1维护有那些类型? 其内容(1)校正性维护识别和纠正隐含在软件中的错误过程(2)适应性维护适应计算机运行环境的不断变化而修改软件的过程(3)完善性维护适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程(4)预防性维护为了提高软件的可靠性和可维护性而对软件作出的修改2.软件维护的特点是什么?(1)维护费用高,维护困难(2)维护的困难性,主要是由开发的软件的可维护性所引起的,软件结构差,文档不齐全,开发不规范,开发技术陈旧,维护工作不吸引人。
3.软件维护的流程是什么?制定维护申请报告;进行维护工作;编制软件维护修改报告;复审。
4.软件维护的副作用有那些?编码、数据、文档副作用等5.提高可维护性有那些方法?建立明确的软件质量目标;利用先进的软件开发技术和工具;尽可能选择好的可维护语言;改进程序的文档。