郑州大学软件学院[软件工程导论]第六版期末复习总结

软件工程第六版期末总复习

一、名词解释与问答

1、SA ——结构化分析方法

2、画数据流图应注意什么事项?

(1)数据流名称只能是名词或是名词短语;

(2)每个加工至少有一个输入数据和一个输出数据流,反映出此加工数据的来 源与加工的结果;

(3)编号:某个加工分解成一张数据流图时,上层图为父类,下层图为子类; 父图与子图的平衡:子图的输入输出数据流同父类相应的输入输出数据流必须一致;

(4)注意数据流图的易理解性;

3、什么是软件生存周期?它有那几个活动?

一个软件从提出开发要求开始直到该软件报废为止的整个时期。

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

4、什么是数据流图?作用是什么?其中的基本符号表示什么含义?

以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。

箭头,表示数据流 数据流是数据在系统内传播的路径,由一组成分固定的数据项组成;

圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工;

双杆,表示数据存储 指暂时保存的数据; 方框,数据源点或终点 软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中;

什么是数据字典 简述数据字典与数据流图的关系. 答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用. 数据流

图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分) 简述编码风格的重要性. 答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量.

简述软件测试的任务、目的与类型。

答:软件测试是一个为了寻找软件错误而运行程序的过程。

目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现 的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试 主要分为白盒测试和黑盒测试两大类。

可行性分析的目的和主要任务是什么?

答:可行性分析的目的不是解决问题,而是确定问题是否值得去解决。

主要任务是从下面几方面研究每种解法的可行性:技术可行性,经济可行性,操作可行 性,社会可行性,抉择可行性。

需求分析的目的和主要任务是什么?

答:进行需求分析是为了准确地回答“系统必须做什么”这个问题,决定可以做什么不做什 么。需求分析的主要任务是描述系统的功能需求、性能需求、数据需求、可靠性/可用性需求、出错处理需求、接口需求、约束条件、其他需求。

软件维护的目的和主要任务是什么?维护的类型有哪些?

答:软件维护是软件生命周期中最后一个、持续时间最长的阶段。

主要任务是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件,目的是提高软件的可靠性、可用性,延长软件的寿命。维护的类型有:改正性(错误)、适应性(环境)、完善性(功能)、预防性(新产品)

什么是耦合?模块的耦合包括哪些类型?

答:耦合是对一个软件结构内不同模块之间互连程度的度量。

模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容 耦合,标记耦合,无耦合/非直接耦合

什么是内聚?模块的内聚包括哪些类型?

答:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念

的自然扩展模块的内聚包括以下几种类型:低内聚—偶然内聚,逻辑内聚,时间内聚 中内聚—过程内聚,通信内聚; 高内聚—顺序内聚,功能内聚

什么是编码风格?为什么要强调编码风格?

答:编码风格包括以下内容:程序内部良好的文档(注释)、数据说明、语句构造、输入输出和效率保障等。因为编码风格对软件的可读性、可维护性、可靠性、可用性很重要,所以要强调编码风格。

二、综合应用题

1、用PAD图描述下面问题的控制结构。

有一个表A(1)、A(2)、....A(n),按递增顺序排列。给定一个Key值,在表中用折半法查找。若找到,将表位置i送入X,否则将零送到x,同时将key值插入表中。 算法:

置初值H=1(表头),T=N(表尾)。 置i=[(H+T)/2](取整)

若Key=A(i),则找到,i送到x;若Key>A(i),则Key在表的后半部分,i+1送入H;若KeyT为止。

查不到时,将A(i),......A(N)移到A(i+1)......A(N+1),Key值送入A(i)中。

四、填空题

1:结构化方法是一种面向数据流的开发方法。又结构化分析、_结构化程序设计 ___、构成

2:为了减少软件开发费用,缩短软件开发周期、减少软件内部潜在的错误,可 以减少程序复杂性,以提高软件的简单性和___可理解性________。

3:结构化程序设计方法是使用_____三种基本控制结构___构造程序。

4:与编码风格有关的因素有数据说明、语句构造、输入输出、效率等,其中还 有一个重要的因素是___源程序文档化_______.

5:结构化程序设计方法是提倡开发人员的组织形式是__主程序员组

6:增量模型在开发过程中以一系列增量方式开发系统,忽略某些阶段的细节, 从而尽早产生__工作软件_____

7:数据流图仅反映系统必须完成的逻辑功能,所以它是一种_____功能____模型

判断题:

1. 在进行总体设计时应加强模块间的联系。( N )

2. 系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系

统流程图使用。( N )

3. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( N )

4. 在程序调试时,找出错误的位置和性质比改正该错误更难。( Y )

5. 以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计

方法之一。( Y )

6. 如果通过软件测试没有发现错误,则说明软件是正确的。( N )

7. 快速原型模型可以有效地适应用户需求的动态变化。( Y )

8. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软

件产品。( Y )

9. 集成测试主要由用户来完成。( N )

10. 软件危机完全是由于硬件问题引起的。( N )

Warnier方法也是一种面向数据结构的设计方法,其逻辑更严格.(×) PAD图在设置了五种基本控制结构后,还允许递归调用. (×) 为了加快软件维护作业的进度,应尽可能增加维护人员的数目.(×)

当验收测试通过,软件开发就完成了.(×) 完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×)

第二章:可行性研究

1:可行性研究实质上是一次简化,压缩了的

2:可行性研究的三个方面是、、和行性)

1. __数据流图________和__数据字典___共同构成系统的逻辑模型。

1:技术可行性要研究的问题之一是( D )

A:存在侵权否 B:成本效益问题 C:运行方式可行否 D:技术风险问题 2:研究硬件资源的有效性是进行( A )研究的一方面

A:技术可行性 B:经济可行性 C:社会可行性 D:操作可行性

三:名词解释

1.可行性研究 :可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程;

2.技术可行性:对待开发的系统进行功能、性能和限制条件的分析,确定在现有的资源条件下,技术风险有多大,系统能否实现;

3.经济可行性:这个系统的经济效益能超过它的开发成本吗?

4.社会可行性:实用性怎样

四.问答题

1.可行性研究的任务是什么:可行性研究最根本的任务是对以后的行动方针提出建议。

2.可行性研究有那些步骤:(1)复查系统规模和目标;(2)研究目前正在使用的系统;(3)导出新系统的高层逻辑模型;(4)进一步定义问题;(5)导出和评价供选择的解法;(6)推荐行动方针;(7)草拟开发计划;(8)书写文档提交审查;

3.可行性研究的目的.:可行性研究的目的不是解决问题,而是确定问题是否值得

去解决;

五、数据流图的基本符号:(1)正方形(或立方体)表示数据的源点或终点;

(2)圆角矩形(或圆形)代表变换数据的处理;(3)开口矩形(或两条平行横线)代表数据存储;(4)箭头表示数据流,即特定数据的流动方向。 数据流图的作用:

1、便于用户表达功能需求和数据需求及其联系;

2、便于两类人员共同理解现行系统和规划系统的框架;

3、清晰表达数据流的情况;

4、有利于系统建模。

什么是数据流图:数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。

六、数据字典:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合;数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息;

七、成本/效益分析方法是可行性研究的一项重要内容,是客户组织负责人从经济角度判断是否继续投资于这项工程的主要依据;

应考虑:①货币的时间价值;②投资回收期;③纯收入;④投资回收率 成本估计有:①代码行技术;②任务分解技术;③自动估计成本技术

第三章:需求分析

一. 填空题

1.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是(功能)需求

3.数据字典中,一般不出现的条件是( D )

A数据流 B数据存储 C加工 D源点与终点

8. 需求分析阶段不适用于描述加工逻辑的工具是( D )

A结构化语言 B判定表 C判定树 D流程图

四. 简答题

1. 什么是需求分析? 该阶段的基本任务是什么:需求分析是发现、求精、建模、

规格说明和复审的过程;准确定义未来系统目标,确定为了满足用户的需要系统必须做什么;

2.简述结构化分析的步骤:(1)系统分析员应该从不同的角度抽象出目标系统的特性;(2)使用精确的表示方法构造系统的模型;(3)验证模型是否满足用户对目标系统的需求;(3)在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型;

第四章:

第五章:总体设计

一. 填空题

1.在软件概要设计阶段, 建立软件结构后, 还应该为每个模块写一份处理说明和 (接口说明)

2. 两个模块都使用同一张表, 模块的这种耦合称为

3.一个模块内部各程序段都在同一张表上操作, 这个模块的内聚性称为聚 )

4.软件结构是以为基础而组成的一种控制层次结构

5.反映软件结构的基本形态特征是

6.一个模块把数值作为参数传送给另一个模块, 这种耦合方式称为

7.两个模块通过全程变量相互作用, 这种耦合方式称为

8.一个模块的作用范围指的集合

9.一个模块的控制范围指的集合

10.结构化设计以为基础映射成软件结构

11.为了防止软件概要设计的错误传播到开发后续阶段,在概要设计文档完成以后, 要进行( 软件评审 )

5. 耦合性:耦合是指一个模块与其它模块之间的联系,又称为块间联系,是模块之间相对独立性的度量;

6. 内聚性:内聚是指模块内部各个成分之间的关系,又称为块内联系,是模块功能相对强度的度量;

7. 模块的控制范围:一个模块的控制范围是指该模块本身及其所属的(直接或间接调用的)所有模块的集合;

8. 模块的作用范围:受该模块内一个判定影响的所有模块的集合; 9. 软件结构:软件结构图;

10.模块:在软件中,通常把用一个名字就可以调用的一段程序称为模块;

3. 模块的耦合性, 内聚性包括那些内容? 其含义:(1)低耦合:非直接耦合,数据耦合,标记耦合;(2)中耦合:控制耦合,外部耦合;(3)高耦合:公共耦合,内容耦合;(4)低内聚:偶然内聚,逻辑内聚,时间内聚;(5)中内聚:过程内聚,通讯内聚;(6)高内聚:顺序内聚,功能内聚;

4.为了提高模块的独立性, 模块内部最好是( C )

A 逻辑内聚 B 时间内聚 C 功能内聚 D 通信内聚

5.为了提高模块的独立性, 模块之间最好是( D )

A 公共耦合 B 控制耦合 C 内容耦合 D 数据耦合

6. 结构化设计方法在软件开发中, 用于( B )

A 测试用例设计 B 软件概要设计 C 程序设计 D 软件详细设计

7. 划分模块时, 一个模块的( A )

A 作用范围应该在其控制范围之内 B 控制范围应该在其作用范围之内

C 作用范围与控制范围互相不包含 D 作用范围与控制范围不受任何限制

第六章:

一. 填空题

1. 结构化程序设计方法的要点是使用 精地构造算法或程序

2.结构化分析的基本思想是采用(自顶向下逐步分解)方法,能有效的控制系统的复杂性

3.当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时, 其加工逻辑用(判定表或判定树)描述较好.

4.数据流图中有四种符号元素,它们是(数据流,加工,数据存储,数据源点和终

点)

3. 在详细设计阶段, 一种历史悠久, 使用最广泛的描述程序逻辑结构的工具是

4. 结构化程序设计技术指导人们用良好的思想方法开发的程序

5. 详细描述处理过程常用的三种工具是图形, 语言和

6. 详细设计的目标不仅是逻辑上正确的实现每个模块的功能, 还应该使设计出的处理过程 ( 清晰易读 )

7. 在详细设计阶段,除了对模块内的算法进行设计, 还应该对模块内的进行设计

2. 结构化设计方法是一种面向( A )的设计方法

A 数据流 B 数据结构 C 数据库 D 程序

1. 结构化程序设计主要强调的是( C )

A 程序的效率 B 程序的执行速度 C 程序的易读性 D 程序的规模

2. 详细设计的任务是确定每个模块的( A )

A 算法 B 功能 C 调用关系 D 输入输出数据

3. 结构化程序设计的一种基本方法是( D )

A 筛选法 B 递归法 C 迭代法 D 逐步求精法

4. 程序的三种基本控制结构是( B )

A过程,子程序和分程序

C 递归, 堆栈和队列 B 顺序, 选择和重复 D 调用, 返回和转移

5. 程序的三种基本控制结构的共同特点是( D )

A 不能嵌套使用

C 已经用硬件实现

3. 详细设计主要使用那一个描述工具:程序流程图,盒图,PAD图,判定表,判定树。

4.结构化程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序B只能用来写简单程序 D只有一个入口和一个出口

时结构华的;

第七章:实现

1. 为了提高程序的易读性, 同时减少错误, 提高软件开发效率, 编码时注意养成良好的 ( 程序设计风格 )

1. 软件测试程序不在机器上运行, 而是采用人工检测和计算机辅助分析检测的手段称( 静态 )测试.

2. 用等价类划分法设计一个测试用例时, 使其覆盖尚未被覆盖的合理等价类

3. 用等价类划分法设计一个测试用例时, 使其覆盖不合理等价类

4. 在单元测试时, 需要为被测试模块设计

5. 在集成测试时有两种测试方法, 它们是

6. 软件测试是为了而执行程序的过程

7. 运行被测试程序的方法称为测试

8. 动态测试中, 主要测试软件功能的方法称为法

9. 运行测试用例, 使得被测试程序中每个判定分支至少执行一次, 这种逻辑覆盖标准称为( 判定覆盖 )

1.软件测试中, 白盒法是通过分析程序的( B )来设计测试用例的

A 应用范围 B 内部逻辑 C 功能 D 输入数据

2 . 黑盒法是根据程序的( C ) 来设计测试用例的

A 应用范围 B 内部逻辑 C 功能 D 输入数据

3. 为了提高软件测试的效率, 应该( D ).

A 随机地选取测试数据

B 取一切可能的输入数据作为测试数据

C 在完成编码以后制定软件的测试计划

D 选择发现错误可能性大的数据作为测试用例

7. 下列几种逻辑覆盖标准中, 查错能力最强的是( D )

8.A 语句覆盖 B 判定覆盖 C 条件覆盖 D 条件组合覆盖

8. 在黑盒测试中, 着重检查输入条件组合的方法是( D )

A 等价类划分法 B 边界值分析法 C 错误推测法 D 因果图法

9. 软件测试过程中的集成测试主要是为了发现( B )阶段的错误

A 需求分析 B 概要设计 C 详细设计 D 编码

10. 不属于白盒测试的技术是( D )

A 路径覆盖 B 判定覆盖 C 循环覆盖 D 边界值分析

11. 确认测试以( A )文挡作为测试的基础

A 需求规格说明书 B 设计说明书 C 源程序 D 开发计划

2. 与选择编程语言无关的因素是( C )

A 软件开发的方法 B 软件执行的环境

C 程序设计风格 D 软件开发人员的知识

3. 源程序文档化要求在每个模块之前加序言性注释, 该注释内容不应该有( B )

A 模块的功能 B 语句的功能 C 模块的接口 D 开发历史

1. 在结构化程序设计思想提出之前, 程序设计中曾强调程序的效率, 现在人们更重视程序的( D )

A 技巧性 B 保密性 C 一致性 D 可理解性

4. 提高程序效率的根本途径并非在于( D )

A 选择良好的设计方法 B 选择良好的数据结构

C 选择良好的算法 D 对程序语句作调整

5. 为了提高易读性, 源程序内部应该加功能性注释, 用于说明( B )

A 模块总的功能 B 程序段或语句的功能

C 模块参数的用途 D 数据的用途

1. 软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为A 。

A、改正性维护 B、适应性维护

C、完善性维护 D、预防性维护

三. 名词解释

1. 编码:所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序;

2. 程序设计风格:所谓程序设计风格是指书写源程序的习惯、程序代码的逻辑

结构与习惯的编程技术。从软件工程要求出发,程序设计风格应包括以下要素: ① 源程序文档化 ② 数据说明 ③ 语句构造 ④ 输入输出

 白盒测试技术:逻辑覆盖和基本路径覆盖

 黑盒测试技术:等价类划分、边界测试、错误推测、因果图

 软件测试步骤:单元测试、集成测试和确认测试

四. 简答题

1. 在项目开发时, 选择程序设计语言通常考虑那些因素:人的思维和解题方式;人和计算机通信的方式和质量;其他人阅读和理解程序的难易程度;

2. 什么是程序设计风格? 应该在那些方面注意培养良好的设计风格? (1)程序内部的文档; (2)数据说明; (3)语句构造; (4)输入输出;(5)效率;

第八章:维护

一. 填空题

1. 为了识别和纠正软件在运行中的错误而进行的维护称为维护

2. 在软件维护中, 因修改软件而导致出现的错误或其它情况称为用 )

3. 维护阶段是软件生存周期中时间最长的阶段, 也是花费精力和费用的阶段

4. 在软件交付使用后, 由于在软件开发过程中产生的错误没有完全彻底在开发阶段发现, 必然有一部分隐含错误带到( 维护 )阶段

5. 采用手工方法开发软件只有程序而无文挡, 这是一种维护

6. 所有的软件维护申请报告要按规定方式提出, 该报告也称报告

二. 选择题

1为了增加软件功能和性能而进行的软件修改维护过程是( C )

A 校正性维护 B 适应性维护 C 完善性维护 D 预防性维护

2. 维护中, 因修改全局或公共数据而引起的错误是( B )

A 文档副作用 B 数据副作用 C 编码副作用 D 设计副作用 3. 在软件生存周期中, 时间长, 困难大的阶段是( D )

A 需求分析 B 编码 C 测试 D 维护

4. 软件维护困难的主要原因是( C )

A 费用低 B 人员少 C 开发方法的缺陷 D 维护难

5. 产生软件维护的副作用, 是指( C )

A 开发时的错误 B 隐含的错误 C 因修改软件而造成的错误D 运行时误操作

三.名词解释

1. 校正性维护:满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的;

2. 适应性维护:对程序使用期间发现的程序错误进行诊断和改正的过程,配合变化了的环境进行修改软件的活动;

3. 完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作;

4. 预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。

5. 软件可维护性:维护人员理解、改正、改动或改进这个软件的难易程度。

6. 软件维护的副作用:(1)编码副作用。在使用程序设计语言修改原代码时可能引入的错误;(2)数据副作用。在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。数据副作用是修改软件信息结构导致的错误。但它可以通过详细的设计文档加以控制;(3)文档副作用。如果对可执行软件的修改没有反映在文档中,就会产生文档副作用;

四. 问答题

1. 维护有那些类型? 其内容:(1)校正性维护;(2)适应性维护;(性维护;(4)预防性维护;

3)完善

软件工程第六版期末总复习

一、名词解释与问答

1、SA ——结构化分析方法

2、画数据流图应注意什么事项?

(1)数据流名称只能是名词或是名词短语;

(2)每个加工至少有一个输入数据和一个输出数据流,反映出此加工数据的来 源与加工的结果;

(3)编号:某个加工分解成一张数据流图时,上层图为父类,下层图为子类; 父图与子图的平衡:子图的输入输出数据流同父类相应的输入输出数据流必须一致;

(4)注意数据流图的易理解性;

3、什么是软件生存周期?它有那几个活动?

一个软件从提出开发要求开始直到该软件报废为止的整个时期。

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

4、什么是数据流图?作用是什么?其中的基本符号表示什么含义?

以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。

箭头,表示数据流 数据流是数据在系统内传播的路径,由一组成分固定的数据项组成;

圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工;

双杆,表示数据存储 指暂时保存的数据; 方框,数据源点或终点 软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中;

什么是数据字典 简述数据字典与数据流图的关系. 答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用. 数据流

图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分) 简述编码风格的重要性. 答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量.

简述软件测试的任务、目的与类型。

答:软件测试是一个为了寻找软件错误而运行程序的过程。

目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现 的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试 主要分为白盒测试和黑盒测试两大类。

可行性分析的目的和主要任务是什么?

答:可行性分析的目的不是解决问题,而是确定问题是否值得去解决。

主要任务是从下面几方面研究每种解法的可行性:技术可行性,经济可行性,操作可行 性,社会可行性,抉择可行性。

需求分析的目的和主要任务是什么?

答:进行需求分析是为了准确地回答“系统必须做什么”这个问题,决定可以做什么不做什 么。需求分析的主要任务是描述系统的功能需求、性能需求、数据需求、可靠性/可用性需求、出错处理需求、接口需求、约束条件、其他需求。

软件维护的目的和主要任务是什么?维护的类型有哪些?

答:软件维护是软件生命周期中最后一个、持续时间最长的阶段。

主要任务是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件,目的是提高软件的可靠性、可用性,延长软件的寿命。维护的类型有:改正性(错误)、适应性(环境)、完善性(功能)、预防性(新产品)

什么是耦合?模块的耦合包括哪些类型?

答:耦合是对一个软件结构内不同模块之间互连程度的度量。

模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容 耦合,标记耦合,无耦合/非直接耦合

什么是内聚?模块的内聚包括哪些类型?

答:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念

的自然扩展模块的内聚包括以下几种类型:低内聚—偶然内聚,逻辑内聚,时间内聚 中内聚—过程内聚,通信内聚; 高内聚—顺序内聚,功能内聚

什么是编码风格?为什么要强调编码风格?

答:编码风格包括以下内容:程序内部良好的文档(注释)、数据说明、语句构造、输入输出和效率保障等。因为编码风格对软件的可读性、可维护性、可靠性、可用性很重要,所以要强调编码风格。

二、综合应用题

1、用PAD图描述下面问题的控制结构。

有一个表A(1)、A(2)、....A(n),按递增顺序排列。给定一个Key值,在表中用折半法查找。若找到,将表位置i送入X,否则将零送到x,同时将key值插入表中。 算法:

置初值H=1(表头),T=N(表尾)。 置i=[(H+T)/2](取整)

若Key=A(i),则找到,i送到x;若Key>A(i),则Key在表的后半部分,i+1送入H;若KeyT为止。

查不到时,将A(i),......A(N)移到A(i+1)......A(N+1),Key值送入A(i)中。

四、填空题

1:结构化方法是一种面向数据流的开发方法。又结构化分析、_结构化程序设计 ___、构成

2:为了减少软件开发费用,缩短软件开发周期、减少软件内部潜在的错误,可 以减少程序复杂性,以提高软件的简单性和___可理解性________。

3:结构化程序设计方法是使用_____三种基本控制结构___构造程序。

4:与编码风格有关的因素有数据说明、语句构造、输入输出、效率等,其中还 有一个重要的因素是___源程序文档化_______.

5:结构化程序设计方法是提倡开发人员的组织形式是__主程序员组

6:增量模型在开发过程中以一系列增量方式开发系统,忽略某些阶段的细节, 从而尽早产生__工作软件_____

7:数据流图仅反映系统必须完成的逻辑功能,所以它是一种_____功能____模型

判断题:

1. 在进行总体设计时应加强模块间的联系。( N )

2. 系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系

统流程图使用。( N )

3. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( N )

4. 在程序调试时,找出错误的位置和性质比改正该错误更难。( Y )

5. 以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计

方法之一。( Y )

6. 如果通过软件测试没有发现错误,则说明软件是正确的。( N )

7. 快速原型模型可以有效地适应用户需求的动态变化。( Y )

8. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软

件产品。( Y )

9. 集成测试主要由用户来完成。( N )

10. 软件危机完全是由于硬件问题引起的。( N )

Warnier方法也是一种面向数据结构的设计方法,其逻辑更严格.(×) PAD图在设置了五种基本控制结构后,还允许递归调用. (×) 为了加快软件维护作业的进度,应尽可能增加维护人员的数目.(×)

当验收测试通过,软件开发就完成了.(×) 完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×)

第二章:可行性研究

1:可行性研究实质上是一次简化,压缩了的

2:可行性研究的三个方面是、、和行性)

1. __数据流图________和__数据字典___共同构成系统的逻辑模型。

1:技术可行性要研究的问题之一是( D )

A:存在侵权否 B:成本效益问题 C:运行方式可行否 D:技术风险问题 2:研究硬件资源的有效性是进行( A )研究的一方面

A:技术可行性 B:经济可行性 C:社会可行性 D:操作可行性

三:名词解释

1.可行性研究 :可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程;

2.技术可行性:对待开发的系统进行功能、性能和限制条件的分析,确定在现有的资源条件下,技术风险有多大,系统能否实现;

3.经济可行性:这个系统的经济效益能超过它的开发成本吗?

4.社会可行性:实用性怎样

四.问答题

1.可行性研究的任务是什么:可行性研究最根本的任务是对以后的行动方针提出建议。

2.可行性研究有那些步骤:(1)复查系统规模和目标;(2)研究目前正在使用的系统;(3)导出新系统的高层逻辑模型;(4)进一步定义问题;(5)导出和评价供选择的解法;(6)推荐行动方针;(7)草拟开发计划;(8)书写文档提交审查;

3.可行性研究的目的.:可行性研究的目的不是解决问题,而是确定问题是否值得

去解决;

五、数据流图的基本符号:(1)正方形(或立方体)表示数据的源点或终点;

(2)圆角矩形(或圆形)代表变换数据的处理;(3)开口矩形(或两条平行横线)代表数据存储;(4)箭头表示数据流,即特定数据的流动方向。 数据流图的作用:

1、便于用户表达功能需求和数据需求及其联系;

2、便于两类人员共同理解现行系统和规划系统的框架;

3、清晰表达数据流的情况;

4、有利于系统建模。

什么是数据流图:数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。

六、数据字典:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合;数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息;

七、成本/效益分析方法是可行性研究的一项重要内容,是客户组织负责人从经济角度判断是否继续投资于这项工程的主要依据;

应考虑:①货币的时间价值;②投资回收期;③纯收入;④投资回收率 成本估计有:①代码行技术;②任务分解技术;③自动估计成本技术

第三章:需求分析

一. 填空题

1.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是(功能)需求

3.数据字典中,一般不出现的条件是( D )

A数据流 B数据存储 C加工 D源点与终点

8. 需求分析阶段不适用于描述加工逻辑的工具是( D )

A结构化语言 B判定表 C判定树 D流程图

四. 简答题

1. 什么是需求分析? 该阶段的基本任务是什么:需求分析是发现、求精、建模、

规格说明和复审的过程;准确定义未来系统目标,确定为了满足用户的需要系统必须做什么;

2.简述结构化分析的步骤:(1)系统分析员应该从不同的角度抽象出目标系统的特性;(2)使用精确的表示方法构造系统的模型;(3)验证模型是否满足用户对目标系统的需求;(3)在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型;

第四章:

第五章:总体设计

一. 填空题

1.在软件概要设计阶段, 建立软件结构后, 还应该为每个模块写一份处理说明和 (接口说明)

2. 两个模块都使用同一张表, 模块的这种耦合称为

3.一个模块内部各程序段都在同一张表上操作, 这个模块的内聚性称为聚 )

4.软件结构是以为基础而组成的一种控制层次结构

5.反映软件结构的基本形态特征是

6.一个模块把数值作为参数传送给另一个模块, 这种耦合方式称为

7.两个模块通过全程变量相互作用, 这种耦合方式称为

8.一个模块的作用范围指的集合

9.一个模块的控制范围指的集合

10.结构化设计以为基础映射成软件结构

11.为了防止软件概要设计的错误传播到开发后续阶段,在概要设计文档完成以后, 要进行( 软件评审 )

5. 耦合性:耦合是指一个模块与其它模块之间的联系,又称为块间联系,是模块之间相对独立性的度量;

6. 内聚性:内聚是指模块内部各个成分之间的关系,又称为块内联系,是模块功能相对强度的度量;

7. 模块的控制范围:一个模块的控制范围是指该模块本身及其所属的(直接或间接调用的)所有模块的集合;

8. 模块的作用范围:受该模块内一个判定影响的所有模块的集合; 9. 软件结构:软件结构图;

10.模块:在软件中,通常把用一个名字就可以调用的一段程序称为模块;

3. 模块的耦合性, 内聚性包括那些内容? 其含义:(1)低耦合:非直接耦合,数据耦合,标记耦合;(2)中耦合:控制耦合,外部耦合;(3)高耦合:公共耦合,内容耦合;(4)低内聚:偶然内聚,逻辑内聚,时间内聚;(5)中内聚:过程内聚,通讯内聚;(6)高内聚:顺序内聚,功能内聚;

4.为了提高模块的独立性, 模块内部最好是( C )

A 逻辑内聚 B 时间内聚 C 功能内聚 D 通信内聚

5.为了提高模块的独立性, 模块之间最好是( D )

A 公共耦合 B 控制耦合 C 内容耦合 D 数据耦合

6. 结构化设计方法在软件开发中, 用于( B )

A 测试用例设计 B 软件概要设计 C 程序设计 D 软件详细设计

7. 划分模块时, 一个模块的( A )

A 作用范围应该在其控制范围之内 B 控制范围应该在其作用范围之内

C 作用范围与控制范围互相不包含 D 作用范围与控制范围不受任何限制

第六章:

一. 填空题

1. 结构化程序设计方法的要点是使用 精地构造算法或程序

2.结构化分析的基本思想是采用(自顶向下逐步分解)方法,能有效的控制系统的复杂性

3.当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时, 其加工逻辑用(判定表或判定树)描述较好.

4.数据流图中有四种符号元素,它们是(数据流,加工,数据存储,数据源点和终

点)

3. 在详细设计阶段, 一种历史悠久, 使用最广泛的描述程序逻辑结构的工具是

4. 结构化程序设计技术指导人们用良好的思想方法开发的程序

5. 详细描述处理过程常用的三种工具是图形, 语言和

6. 详细设计的目标不仅是逻辑上正确的实现每个模块的功能, 还应该使设计出的处理过程 ( 清晰易读 )

7. 在详细设计阶段,除了对模块内的算法进行设计, 还应该对模块内的进行设计

2. 结构化设计方法是一种面向( A )的设计方法

A 数据流 B 数据结构 C 数据库 D 程序

1. 结构化程序设计主要强调的是( C )

A 程序的效率 B 程序的执行速度 C 程序的易读性 D 程序的规模

2. 详细设计的任务是确定每个模块的( A )

A 算法 B 功能 C 调用关系 D 输入输出数据

3. 结构化程序设计的一种基本方法是( D )

A 筛选法 B 递归法 C 迭代法 D 逐步求精法

4. 程序的三种基本控制结构是( B )

A过程,子程序和分程序

C 递归, 堆栈和队列 B 顺序, 选择和重复 D 调用, 返回和转移

5. 程序的三种基本控制结构的共同特点是( D )

A 不能嵌套使用

C 已经用硬件实现

3. 详细设计主要使用那一个描述工具:程序流程图,盒图,PAD图,判定表,判定树。

4.结构化程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序B只能用来写简单程序 D只有一个入口和一个出口

时结构华的;

第七章:实现

1. 为了提高程序的易读性, 同时减少错误, 提高软件开发效率, 编码时注意养成良好的 ( 程序设计风格 )

1. 软件测试程序不在机器上运行, 而是采用人工检测和计算机辅助分析检测的手段称( 静态 )测试.

2. 用等价类划分法设计一个测试用例时, 使其覆盖尚未被覆盖的合理等价类

3. 用等价类划分法设计一个测试用例时, 使其覆盖不合理等价类

4. 在单元测试时, 需要为被测试模块设计

5. 在集成测试时有两种测试方法, 它们是

6. 软件测试是为了而执行程序的过程

7. 运行被测试程序的方法称为测试

8. 动态测试中, 主要测试软件功能的方法称为法

9. 运行测试用例, 使得被测试程序中每个判定分支至少执行一次, 这种逻辑覆盖标准称为( 判定覆盖 )

1.软件测试中, 白盒法是通过分析程序的( B )来设计测试用例的

A 应用范围 B 内部逻辑 C 功能 D 输入数据

2 . 黑盒法是根据程序的( C ) 来设计测试用例的

A 应用范围 B 内部逻辑 C 功能 D 输入数据

3. 为了提高软件测试的效率, 应该( D ).

A 随机地选取测试数据

B 取一切可能的输入数据作为测试数据

C 在完成编码以后制定软件的测试计划

D 选择发现错误可能性大的数据作为测试用例

7. 下列几种逻辑覆盖标准中, 查错能力最强的是( D )

8.A 语句覆盖 B 判定覆盖 C 条件覆盖 D 条件组合覆盖

8. 在黑盒测试中, 着重检查输入条件组合的方法是( D )

A 等价类划分法 B 边界值分析法 C 错误推测法 D 因果图法

9. 软件测试过程中的集成测试主要是为了发现( B )阶段的错误

A 需求分析 B 概要设计 C 详细设计 D 编码

10. 不属于白盒测试的技术是( D )

A 路径覆盖 B 判定覆盖 C 循环覆盖 D 边界值分析

11. 确认测试以( A )文挡作为测试的基础

A 需求规格说明书 B 设计说明书 C 源程序 D 开发计划

2. 与选择编程语言无关的因素是( C )

A 软件开发的方法 B 软件执行的环境

C 程序设计风格 D 软件开发人员的知识

3. 源程序文档化要求在每个模块之前加序言性注释, 该注释内容不应该有( B )

A 模块的功能 B 语句的功能 C 模块的接口 D 开发历史

1. 在结构化程序设计思想提出之前, 程序设计中曾强调程序的效率, 现在人们更重视程序的( D )

A 技巧性 B 保密性 C 一致性 D 可理解性

4. 提高程序效率的根本途径并非在于( D )

A 选择良好的设计方法 B 选择良好的数据结构

C 选择良好的算法 D 对程序语句作调整

5. 为了提高易读性, 源程序内部应该加功能性注释, 用于说明( B )

A 模块总的功能 B 程序段或语句的功能

C 模块参数的用途 D 数据的用途

1. 软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为A 。

A、改正性维护 B、适应性维护

C、完善性维护 D、预防性维护

三. 名词解释

1. 编码:所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序;

2. 程序设计风格:所谓程序设计风格是指书写源程序的习惯、程序代码的逻辑

结构与习惯的编程技术。从软件工程要求出发,程序设计风格应包括以下要素: ① 源程序文档化 ② 数据说明 ③ 语句构造 ④ 输入输出

 白盒测试技术:逻辑覆盖和基本路径覆盖

 黑盒测试技术:等价类划分、边界测试、错误推测、因果图

 软件测试步骤:单元测试、集成测试和确认测试

四. 简答题

1. 在项目开发时, 选择程序设计语言通常考虑那些因素:人的思维和解题方式;人和计算机通信的方式和质量;其他人阅读和理解程序的难易程度;

2. 什么是程序设计风格? 应该在那些方面注意培养良好的设计风格? (1)程序内部的文档; (2)数据说明; (3)语句构造; (4)输入输出;(5)效率;

第八章:维护

一. 填空题

1. 为了识别和纠正软件在运行中的错误而进行的维护称为维护

2. 在软件维护中, 因修改软件而导致出现的错误或其它情况称为用 )

3. 维护阶段是软件生存周期中时间最长的阶段, 也是花费精力和费用的阶段

4. 在软件交付使用后, 由于在软件开发过程中产生的错误没有完全彻底在开发阶段发现, 必然有一部分隐含错误带到( 维护 )阶段

5. 采用手工方法开发软件只有程序而无文挡, 这是一种维护

6. 所有的软件维护申请报告要按规定方式提出, 该报告也称报告

二. 选择题

1为了增加软件功能和性能而进行的软件修改维护过程是( C )

A 校正性维护 B 适应性维护 C 完善性维护 D 预防性维护

2. 维护中, 因修改全局或公共数据而引起的错误是( B )

A 文档副作用 B 数据副作用 C 编码副作用 D 设计副作用 3. 在软件生存周期中, 时间长, 困难大的阶段是( D )

A 需求分析 B 编码 C 测试 D 维护

4. 软件维护困难的主要原因是( C )

A 费用低 B 人员少 C 开发方法的缺陷 D 维护难

5. 产生软件维护的副作用, 是指( C )

A 开发时的错误 B 隐含的错误 C 因修改软件而造成的错误D 运行时误操作

三.名词解释

1. 校正性维护:满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的;

2. 适应性维护:对程序使用期间发现的程序错误进行诊断和改正的过程,配合变化了的环境进行修改软件的活动;

3. 完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作;

4. 预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。

5. 软件可维护性:维护人员理解、改正、改动或改进这个软件的难易程度。

6. 软件维护的副作用:(1)编码副作用。在使用程序设计语言修改原代码时可能引入的错误;(2)数据副作用。在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。数据副作用是修改软件信息结构导致的错误。但它可以通过详细的设计文档加以控制;(3)文档副作用。如果对可执行软件的修改没有反映在文档中,就会产生文档副作用;

四. 问答题

1. 维护有那些类型? 其内容:(1)校正性维护;(2)适应性维护;(性维护;(4)预防性维护;

3)完善


相关内容

  • 计算机导论学习心得体会
  • 计算机导论学习心得体会 大一第二学期的时候开始接触niit 的课程,平时虽然一点作业都没有,但是我上课的时候不是那么认真听课的人,所以课后总是要花时间来看看和理解老师上课的例子,在这个学期中,我们主要学习了c++和java ,都是刚刚开始接触到面向对象的语言中来,由于对一些面向对象的特性不熟悉,毕竟 ...

  • 生命科学导论期末考试 复习提纲(精华版)
  • 生命科学导论 第一章 绪论 1.[填空题]生命的本质特征 ①新陈代谢 包括物质代谢和能量代谢 ②生长.发育和繁殖 生物经历了从小到大过程,表现细胞数量增加 ③遗传.变异与适应 ④应激性和适应性 3.本世纪人类面临的挑战有哪些方面? 人口膨胀.粮食短缺.环境污染.能源危机.疾病.生态平衡遭到破坏 4. ...

  • 深圳大学课程教学大纲_16959
  • 附件四 深圳大学课程教学大纲 课程编号: 23151928 课程名称: IBM大型主机系统导论 开课院系: 计算机与软件学院 制订(修订) 人: 朱映映, 张滇 审核人: 批准人: 2013 年 9 月 1 日制(修) 订 课程名称: IBM大型主机系统导论 英文名称: Introduction t ...

  • 系统工程导论期末论文
  • 摘要 随着生活水平的提高,人们对手表的需求已不仅限于计时的需要,而是集计时.多功能.时尚.价值身份于一体.近几年,随着我国经济形势的进一步看好和加入世贸对需求量的拉动,手表尤其是中高档手表的需求量不断增加,但是我国的手表市场要健康发展还面临很多困难和挑战,因此我国手表市场还有相当大的发展潜力. 关键 ...

  • 谢勇士--网络工程导论论文
  • <网络工程导论>课程论文 --课程学习心得体会及个人职业生涯规划 学校名称: 专业班级: 学生姓名: 指导老师: 计算机科学与技术系 前 言 网络工程专业的出现的背景是从上一世纪九十年代,计算机网络技术极其应用得到迅猛发展的背景下提出的,从专业定名.培养目标和专业课程设置都反映处是面向网 ...

  • [转]振动相关经典书籍
  • 1  传统教材及其更新 对我国振动教学的影响影响很大的国外教材当推Timoshenko等的<工程中的振动问题>(S. Timoshenko, S. H. Young, W. Weaver. Vibration Problems in Engineering (4th ed.). John ...

  • 通信工程导论课程报告
  • 通信工程导论课程报告 一.通信工程专业方向的认识: 通信工程专业方向主要指光纤通信.无线通信.网络与交换.多媒体通信四个方向 1光纤通信: □ 已成为一种最主要的信息传输技术,迄今尚未发现可以取代它的更好的技术.即使是在全球通信行业处于低迷时期,光纤通信的发展也从未停滞过.从现代通信的发展趋势来看, ...

  • 计算机科学导论与参考文献的对比
  • 计算机科学导论与参考文献的对比 一.<计算机科学概论(第9版) > 作者: 本书涉及计算机科学的方方面面,介绍了计算机硬件.软件.数据组织和计算理论等四个方面的内容,包括编码及计算机体系结构的基本原理.操作系统.计算机网络.算法.程序设计语言.数据结构和数据库.人工智能以及计算理论等.本 ...

  • 学科导论论文
  • 学科导论论文 XX (西南财经大学XX学院) 引言 刚开始来到西南财经大学,学习信息管理与信息系统专业,一时不知道努力的方向,也不知道未来发展.就业的方向.经过一学期的导论课学习,我对自己所学的专业以及将来的就业方向有了更多的了解.该专业培养具备现代化管理学理论基础.计算机科学技术知识及应用能力,掌 ...