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