《软件工程与及软件测试》课程期末复习资料_第1页
《软件工程与及软件测试》课程期末复习资料_第2页
《软件工程与及软件测试》课程期末复习资料_第3页
《软件工程与及软件测试》课程期末复习资料_第4页
《软件工程与及软件测试》课程期末复习资料_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件工程与软件测试》课程

期末复习资料

《软件工程与软件测试》课程讲稿章节目录及知识点:

第1章概述

(1)了解软件的定义

(2)了解软件危机的产生

(3)了解软件工程的定义

第2章软件过程

(1)掌握软件过程的定义

(2)掌握软件生命周期的几个阶段

(3)掌握瀑布模型、快速原型模型、软件开发模型的基本过

程,了解其优缺点

(4)掌握增量模型、螺旋模型、喷泉模型的基本过程,了解

其优缺点

第3章可行性研究

(1)了解可行性研究的目的与任务

(2)掌握系统流程图

(3)掌握数据流图

(4)掌握数据字典

(5)了解成本-效益分析的方法

第4章软件需求分析

(1)了解需求分析的任务

(2)掌握需求获取的常用方法

(3)掌握结构化分析方法

(4)熟练使用需求分析图形工具

第5章软件总体设计

(1)了解软件设计和总体设计的定义

(2)掌握模块化、抽象和信息隐蔽和局部化的原理

(3)掌握模型快独立性和衡量标准

(4)掌握软件结构设计准则

(5)熟练使用软件结构设计图形工具

(6)掌握结构化设计方法

第6章软件详细设计

(1)了解详细设计的目标和任务

(2)掌握程序流程图、盒图等程序设计工具的使用

(3)掌握程序判定表、判定树等程序设计工具的使用

(4)掌握人机界面设计的原则和方法

第7章软件编码

(1)掌握程序设计语言的选择准则

(2)掌握程序设计风格要点

第8章软件测试

(1)掌握软件测试的目标和原则

(2)掌握几种软件测试方法的定义

(3)掌握语句覆盖、判定覆盖等逻揖覆盖方法

(4)掌握条件覆盖、条件组合覆盖等逻辑覆盖方法

(5)掌握循环测试和基本路径测试基本方法

(6)掌握等价类划分的方法

(7)掌握边界值分析、错误推测和因果图的原理和方法

(8)掌握单元测试方法

(9)掌握集成测试方法

(10)掌握确认测试和系统测试方法

(11)掌握软件调试的方式

第9章软件维护

(1)了解软件维护定义

(2)掌握软件维护过程

(3)掌握软件可维护定义和方法

(4)了解软件维护中存在的问题

第10章面向对象方法学

(1)了解面向对象方法定义

(2)掌握面向对象的基本概念

(3)掌握对象、类及类之间关系

(4)掌握统一建模语言UML

第11章面向对象的分析

(1)掌握面向对象的分析过程

(2)掌握建立用例模型方法

(3)掌握建立对象模型方法

(4)掌握建立顺序图和通信图方法

(5)掌握建立状态图和活动图方法

(6)掌握建立物理实现模型方法

第12章面向对象的设计与实现

(1)掌握面向对象的设计准则和启发式规则

(2)掌握问题与子系统和人机监护子系统

(3)掌握任务管理子系统和数据管理子系统

(4)掌握服务设计方法

(5)掌握关联设计方法

(6)掌握面向对象设计优化方法

(7)掌握面向对象系统实现方法

、客观部分:(单项选择、多项选择)

(一)、单项选择

1模块独立性是由内聚性耦合性来度量的,其中内聚性是

()

A.模块间的联系程度

B.模块的功能强度

C.信息隐藏程度

D.接口的复杂程度

★考核知识点:模块独立性

参见讲稿章节:5.3

附L1.1:(考核知识点解释)

模块的独立性是指软件系统中每个模块只涉及软件要求

的具体的子功能,而和软件系统中其它的模块的接口是简单

的。

模块的独立性可以从两个方面来度量:耦合衡量不同模块

彼此间相互依赖的紧密程度。耦合要低,即每个模块和其他

模块之间的关系要简单。内聚衡量一个模块内部各个元素之

间彼此结合的紧密程度的度量。内聚要高,每个模块完成一

个相对独立的特定子功能。

模块耦合性类型包括:无直接耦合、数据耦合、标记耦合、

控制耦合、公共环境耦合、内容耦合,它们之间依次耦合性

由低到高,模块独立性由强到弱。

模块内聚类型包括:偶然内聚、逻辑内聚、时间内聚、通信

内聚、顺序内聚、功能内聚,它们之间依次内聚性由低至高,

模块独立性由弱至强。

2.成本/效益分析是()的一项重要内容

A.可行性研究

B.需求分析

C软件测试

D.软件维护

[答案]:A

★考核知识点:可行性研究-成本/效益分析

参考讲稿章节:3.1.3.5

附1.1.2(考核知识点解释):

可行性研究的目的就是用最小的代价在尽可能短的时间

内确定问题是否能够解决。需要明确,这个阶段不是解决用

户提出的问题,而是确定这个问题是否值得去解决。

可行性研究的主要任务是,首先需要进一步分析和澄清问

题定义,在问题定义阶段初步确定的规模和目标,如果是正

确的就进一步加以肯定,如果有错误就应该及时改正,如果

对目标系统有任何约束和限制,也必须把它们清楚地列举出

来。

在澄清了问题定义之后,分析员应该导出系统的逻辑模型。

然后从系统逻辑模型出发,探索若干种可供选择的主要解法,

也就是系统实现方案。分析每种解法可行性和利弊,从而判

定系统的目标和规模是否现实,系统完成后带来的效益是否

达到值得投资开发这个系统的程度。

可行性的研究实际上是一次大大简化了的系统分析和系

统设计的过程,即以抽象的方式进行分析和研究。

成本-效益分析的目的是从经济角度评价开发一个新的软

件项目是否可行,从而帮助客户正确地作出是否投资于这项

开发工程的决定。

3.软件开发模型不包括()

A.瀑布模型

B.用例模型

C.增量模型

D.螺旋模型

★考核知识点:软件开发模型

参见讲稿章节:2.3、2.4

附LL3:(考核知识点解释)

经典的软件开发模型有瀑布模型、快速原型模型、增量模

型、螺旋模型、喷泉模型等。

瀑布模型也称生存周期模型或线性顺序模型,是WXoyce

于1970年首先提出来的。它是将软件生存周期各个活动规

定为依线性顺序连接的若干阶段的模型。

快速原型(rapidprototype)是快速建立起来的可以在计算

机上运行的程序,它所能完成的功能往往是最终产品能完成

的功能的一个子集。

增量模型也称为渐增模型,是瀑布模型的顺序特征和快速

原型法的迭代特征相结合的产物,是一种非整体开发的模型。

螺旋模型加入了瀑布模型与增量模型都忽略了的风险分

析,即将两种模型结合起来,弥补了两种模型的不足。螺旋

模型是一种迭代模型,它把开发过程分为几个螺旋周期,每

迭代一次,螺旋线就前进一周。它是一种风险驱动的模型。

基本思想:使用原型及其他方法来尽量降低风险。简单理解,

在每个阶段之前都增加了风险分析过程的快速原型模型。

喷泉模型是典型的面向对象生命周期模型。以用户需求为

动力,以对象作为驱动的模型,适合面向对象的开发方法。

(二)、多项选择

L结构化程序设计所使用的结构有()

A.顺序

B.选择

C.重复

D.GOTO

★考核知识点:结构化程序设计

参考讲稿章节:6.1

附121(考核知识点解释):

结构程序设计的概念最早是由E.W.Dijkstra在1965年召

开的IFIP(国际信息处理联合会)会议上提出的,他指出:

“可以从高级语言中取消GOTO语句”,“程序的质量与程序

中所包含的GOTO语句的数量成反比”。1966年,Bohm和

Jacopini证明了程序设计语言中,只用3种基本控制结构就

能实现任何单入口、单出口的程序。这3种基本的控制结构

是顺序、选择和循环。

结构化程序设计经典定义:“如果一个程序的代码块仅

仅通过顺序、选择和循环这3种基本控制结构进行连接,并

且每个代码块只有一个入口和一个出口,则称这个程序是结

构化的J

2.面向对象系统的逻辑设计模型划分为若干部分,分别对应

组成目标系统的()。

A.问题域子系统

B.人机交互子系统

C.任务管理子系统

D.数据管理子系统

★考核知识点:面向对象的系统设计

参考讲稿章节:12.2

附122(考核知识点解释):

面向对象系统的逻辑设计模型可以划分为4部分,分别

对应组成目标系统的4个子系统。分别是:问题域子系统、

人机交互子系统、任务管理子系统、数据管理子系统。

二、主观部分:

(一)、名词解释

1.软件工程

★考核知识点:软件工程的定义

参考讲稿章节:1.3

附2.1.1(考核知识点解释):

软件工程是指导计算机软件开发和维护的一门工程学科,采

用工程的概念、原理、技术和方法来开发和维护软件。

2.软件过程

★考核知识点:软件过程

参考讲稿章节:2.1

附2.1.2(考核知识点解释):

软件过程(softwareprocess)是为了获得高质量所需要完成

的一系列任务的框架,它规定了完成多项任务的工作步骤。

3.软件生命周期

★考核知识点:软件生命周期

参考讲稿章节:2.2

附2.L3(考核知识点解释):

软件生命周期是指某一软件项目被提出来并着手实现开始

直到该软件报废或停止使用为止的生命周期,又称软件生存

期。

4.数据流图

★考核知识点:数据流图

参考讲稿章节:3.3

附2.1.4(考核知识点解释):

数据流图(DataFlowDiagram,DFD)用于表示系统逻辑模型

的一种工具,它以直观的图形清晰地描述了系统数据的流动

和处理过程。数据流图是系统逻辑功能的图形展示。

5.数据字典

★考核知识点:数据字典

参考讲稿章节:3.4

附2.1.5(考核知识点解释):

数据字典是关于数据的信息集合,也是对数据流图包含的所

有元素的定义的集合。

6.模块

★考核知识点:软件设计的概念和原理

参见讲稿章节:5.2

附2.1.6:(考核知识点解释)

模块,又称“组件”,是软件结构的基础,是软件元素,是能

够单独命名、独立完成一定功能的程序语句的集合。

7.静态测试

★考核知识点:软件测试方法

参见讲稿章节:8.2

附2.1.7:(考核知识点解释)

静态测试,就是静态分析,指被测程序不在机器上运行,对

模块的源代码进行研读,查找错误或收集一些度量数据,检

测只进行特性分析。

8.动态测试

★考核知识点:软件测试方法

参见讲稿章节:8.2

附2.1.8:(考核知识点解释)

动态测试是指通过运行程序发现错误。

9.黑盒测试

★考核知识点:软件测试方法

参见讲稿章节:8.2

附2.1.9:(考核知识点解释)

黑盒测试,也称功能测试或数据驱动测试。它不考虑程序内

部结构和处理过程。把被测程序看成一个黑盒子,只在软件

接口处进行测试。测试者只知道该程序输入和输出之间的关

系或程序的功能,依靠能够反映这一关系和程序功能的需求

规格说明书考虑确定测试用例和推断测试结果的正确性,检

查程序是否满足功能要求黑盒测试被用来证实软件功能的

正确性和可操作性。

10.白盒测试

★考核知识点:软件测试方法

参见讲稿章节:8.2

附2.1.10:(考核知识点解释)

白盒测试,也称结构测试或逻辑驱动测试。白盒测试法与黑

盒测试法不同,测试人员将程序视为一个透明的白盒子,测

试人员需了解程序的内部结构和处理过程。以检查处理过程

的细节为基础,要求对程序的结构特性做到一定程度的覆盖,

对程序中的所有逻辑路径进行测试,并检验内部控制结构是

否有错,确定实际的运行状态与预期的状态是否一致。

11.集成测试

★考核知识点:集成测试

参见讲稿章节:8.9

附2.L11:(考核知识点解释)

集成测试是在单元测试基础上,将所有模块按要求组装成一

个完整的系统而进行的测试。集成测试用于组装软件的一种

系统的技术,是要把模块按照设计要求组装起来的同时进行

测试,用以发现和接口相联系的问题。

12.确认测试

★考核知识点:确认测试

参见讲稿章节:8.10

附2.L12:(考核知识点解释)

确认测试,又称为有效性测试或验收测试,是从质量的角度,

在功能、性能、可靠性、易用性等方面对软件做全面的质量

检测。

13.系统测试

★考核知识点:系统测试

参见讲稿章节:8.10

附2.1.13:(考核知识点解释)

系统测试是将经过单元测试、集成测试、确认测试以后的软

件,作为计算机系统中的一个组成部分,需要与系统中的硬

件、外部设备、支持软件、数据及操作人员结合起来,在实

际运行环境下对计算机系统进行一系列的严格有效的测试

来发现软件的潜在问题,以保证各组成部分不仅单独的正常

运行,而且在系统各部分统一协调下也能正常运行。

系统测试不同于切能测试。功能测试主要是验证软件功能是

否符合用户需求,并不考虑各种环境及非功能问题,如安全

性、可靠性、性能等,而系统测试是在更大范围内进行的测

试,着重对系统的性能、特性进行测试。

14.封装

★考核知识点:面向对象基本概念

参见讲稿章节:10.2

附2.1.14:(考核知识点解释)

封装指把对象的属性和操作结合成一个独立的系统单位,并

尽可能隐藏对象的内部细节,又称信息隐藏。通过对象的封

装特性,用户只能看到对象封装界面上的信息,对象内部对

用户是隐蔽的,有效地实现了模块化功能。封装的目的是将

对象的使用者与设计者分开。

15.构件

★考核知识点:构件

参见讲稿章节:11.6

附2.L15:(考核知识点解释)

构件是一个相对独立的可装配的物理块,一般作为一个独立

的文件存在。构件具有确定的接口,相互之间可以调用,构

件之间存在依赖关系。构件定义了一个系统的功能,一个构

件是一个或多个类的实现。

(二)、简答

1.简述软件危机的表现形式,产生软件危机的原因,软件危

机的解决途径

★考核知识点:软件危机

参见讲稿章节:1.2

附221(考核知识点解释):

软件危机是指在计算机软件的开发和维护过程中所遇到的

一系列严重问题。

软件危机的表现形式:

1)对软件开发成本和研制进度的估计常常很不精确。

2)“已完成”的软件不能满足用户要求。

3)软件产品质量差,可靠性得不到保证。

4)软件产品可维护性差。

5)软件成本在计算机系统总成本中所占的比例逐年上升。

6)软件开发生产率提高的速度,远远跟不上计算机应用

速度普及深入的趋势。

产生软件危机的原因:

1)软件是计算机系统中的逻辑部件,软件产品往往规模

庞大,结构复杂。

2)软件开发的管理困难。

3)软件开发费用不断增加,维护费用急剧上升,直接威胁

计算机应用的扩大。

4)软件开发技术落后。

5)生产方式落后。

6)开发工具落后,生产效率提高缓慢。

软件危机的解决途径:

1)首先应该对计算机软件有一个正确的认识,彻底清除

“软件就是程序”的错误观念。

2)要使用好的开发技术和方法,并且要不断研究探索更

好更有效的技术和方法。尽快消除在计算机系统早期发展阶

段形成的一些错误观念和作法。

3)要有良好的组织、严密的管理,各类人员要相互配合,

共同完成任务。充分认识软件开发不是某种个体劳动的神秘

技巧。

2.简述软件工程的基本目标。

★考核知识点:软件工程

参见讲稿章节:1.3

附222:(考核知识点解释)

软件工程是指导计算机软件开发和维护的一门工程学科,采

用工程的概念、原理、技术和方法来开发和维护软件。

软件工程的宗旨是为了提高软件生产率、降低生产成本,

以较小的代价获得高质量的软件产品。

软件工程的基本目标包括

1)付出较低的开发成本

2)达到用户要求的全部软件功能

3)取得较好的软件性能

4)具有较好的易用性、可重用性和可移植性

5)需要较低的维护费用,较高的可靠性

6)能按时完成开发工作,及时交付用户使用

3.什么是软件的生命周期?典型的软件生命周期包括哪些阶

段?软件生命周期中软件开发时期包含哪些阶段?并简述

各阶段的主要任务。

★考核知识点:软件生命周期

参见讲稿章节:2.2

附223:(考核知识点解释)

软件生命周期是借用工程中产品生命周期的概念而得

来的,是指某一软件项目被提出来并着手实现开始直到该软

件报废或停止使用为止的生命周期,又称软件生存期。

软件的生命周期一般分为软件定义、软件开发和软件运

行三个时期。

软件定义时期一般有问题定义、可行性研究和需求分析

三个阶段;软件开发时期有概要设计、详细设计、编码和单

元测试、综合测试阶段;软件维护时期完成运行维护阶段。

软件开发时期通常由下述4个阶段组成:概要设计、详

细设计、编码和单元测试、综合测试。其中前两个阶段又称

为系统设计,后两个阶段又称为系统实现。

(1)概要设计又称为总体设计、初步设计、逻辑设计或

高层设计。这个阶段是要概括地回答“怎样实现目标系统?二

主要任务是将需求转变为软件的表示形式。开发人员要把确

定的各项功能需求转换成需求的体系结构,即从需求规格说

明书导出软件结构图(体系结构设计),确定由哪些模块组成

以及模块之间的关系(接口设计、组件设计),同时还要设计

该项目的应用系统的总体数据结构和数据库结构(数据库设

计),撰写出总体设计说明书。

(2)详细设计也称为模块设计、物理设计或低层设计,

详细设计阶段的任务是要回答“应该怎样具体地实现这个系

统?“,为概要设计阶段得到的软件结构图中的每个模块完

成的功能进行具体描述、内部特征,要把功能描述转变为精

确的、结构化的过程描述,即确定实现模块功能所需要的算

法和数据结构,并用相应的详细设计工具表示出来,撰写软

件的详细设计说明书。

(3)编码和单元测试这个阶段的关键任务将软件设计

转换成程序代码,写出正确的,容易理解、容易维护的程序

模块。程序员应该根据目标系统的性质和实际环境,选取一

种适当的高级程序设计语言(必要时用汇编语言),把详细设

计的结果翻译成用选定的语言书写的程序,并且仔细测试编

写出的每一个模块。最终提交源程序、详尽的程序说明和单

元测试报告。

(4)测试是开发时期的最后一个阶段,是保证软件质量

的重要手段。这个阶段的关键任务是通过各种类型的测试

(及相应的调试)使软件达到预定的要求。最基本的测试是

集成测试和验收测试。必要时还可以再通过现场测试或平行

运行等方法对目标系统进一步测试检验。集成测试是根据设

计的软件结构,把经过单元测试检验的模块按某种选定的策

略装配起来,在装配过程中对程序进行必要的测试。验收测

试则是按照规格说明书的规定(通常在需求分析阶段确定),

由用户(或在用户积极参加下)对目标系统进行验收。最终

提交测试计划、详细测试方案以及实际测试结果等。

4.简述软件模块设计准则。

★考核知识点:软件结构设计准则

参见讲稿章节:5.4

附224:(考核知识点解释)

软件模块设计需要遵循的准则如下:

1)降低模块之间的耦合性,提高模块的内聚性。

2)模块结构的深度、宽度、扇出和扇入应适当

3)模块的作用范围应该在控制范围内

4)模块接口设计要简单,以便降低复杂程度和冗余度

5)设计功能可预测并能得到验证的模块

6)适当划分模块规模,以保持其独立性

5.有哪些常用的黑盒测试方法?有哪些常用的白盒测试方

法?

★考核知识点:白盒测试、黑盒测试

参见讲稿章节:8.3-87

附225:(考核知识点解释)

用黑盒技术设计测试用例一般有等价类划分、边界值分

析、错误推测和因果图4种方法。

常用的白盒测试方法包括逻辑覆盖测试法、循环测试法、

基本路径测试法。在逻辑覆盖法中大致又可以分为:语句覆

盖、判定覆盖、条件覆盖、判定条件覆盖和条件组合覆盖。

6,什么是类,什么是对象,类和对象是什么关系?

★考核知识点:面向对象的基本概念,对象、类及类之间关

参见讲稿章节:10.2、10.3

附226:(考核知识点解释)

类是具有相同属性和操作的一组相似对象(实体)的集

合。也就是说,类是对具有相同属性和行为的一个或多个对

象的描述,通常在这种描述中也包括对怎样创建该类的新对

象的说明。类为属于该类的全部对象提供了统一的抽象描述。

同类的对象具有相同的属性和方法。

对象是对问题域中客观存在的事物的抽象,是一组属性

和在这些属性上的操作的封装体。

在应用领域中有意义的、与所要解决的问题有关系的任

何事物都可以作为对象,它既可以是具体的物理实体的抽象,

也可以是人为的概念,或者是任何有明确边界和意义的东西。

由于客观世界中的实体通常都既具有静态的属性,又具

有动态的行为,因此,面向对象方法学中的对象是由描达该

对象属性的数据以及可以对这些数据施加的所有操作封装

在一起构成的统一体。

类给出了属于该类的全部对象的抽象定义,而对象则是

符合这种定义的一个实体。

因此,对象又称为是类的一个“实例(Instance)",类又

称为是对象的“模板(Template)"o

另外,类是静态的,类的语义和类之间的关系在程序执

行之前已经定义,但对象是动态的,在程序执行过程中可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论