软件工程各章作业习题的名词解释和问答题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程各章作业习题的名词解释和问答题参考答案
第一章:
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)模块的接口要简单、清晰,传递的参数数量不能太多,类型不要太复杂。