文档库 最新最全的文档下载
当前位置:文档库 › 软件工程各章作业习题的名词解释和问答题参考答案

软件工程各章作业习题的名词解释和问答题参考答案

软件工程各章作业习题的名词解释和问答题参考答案

第一章:

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.提高可维护性有那些方法?

建立明确的软件质量目标;

利用先进的软件开发技术和工具;

尽可能选择好的可维护语言;

改进程序的文档。

相关文档