1、考试需知:考试内容及安排第一章 算法与数据结构第二章 程序设计基础第三章 软件工程基础第四章 数据库设计基础1234考试内容基本数据结构与算法基本数据结构与算法程序设计基础程序设计基础软件工程基础软件工程基础数据库设计基础数据库设计基础内容内容2007/92008/42009/92010/4101082128461284610281056 7 通过工作原理了解,熟悉计算机内部执行功能的基本意义。为理解程序打下基础,特别理解计算机是机器。v 指令的集合。(解释指令)v 通过硬件控制系统自动完成某一功能。v 通过一系列代码实现。8v 计算机本身仅能识别二进制代码“0”、“1”。v 编程最直接、最低
2、级的就是机器语言。v 为解决机器语言难理解、记忆等问题。出现符号语言。v 为使编程接近自然语言,出现高级语言。如C、PASCAL、FORTRAN等。v 为配合高级语言编程,出现了开发工具,提高效率、减轻劳动量。如VB、VC、PB、Delphi、VFP等。因此VFP不是编程语言。9v 不管什么形式编写代码,最终都应将代码翻译成机器语言,这就是编译程序的工作。不同的语言有不同的编译器。v 程序控制是一种逻辑控制。因此,严谨的逻辑思维是一个 程序员必备的基本素质。v 用程序实现某一功能。有许多方法。具体用哪种完全取决 于程序员个人的思维方式。因此,程序是脑力劳动的结晶,从某种意义上,编程又是一门艺术
3、。v 程序的特殊性决定了程序的复杂性,且与实现功能的复杂 性密切相关成正比。因此为使复杂的、智力的编程工作规 范化、科学化,便出现了各种编程设计方法。如结构化编 程方法、面向对象的程序设计方法等。10v 不管用什么方法编程,不管编程者智力程度如何,不管 采用什么样的编程语言和方法,程序最终完成的功能稳 定、可靠、实用、易维护和安全等是程序的最终目标,也是程序员的追求。v 程序设计是一个复杂艰巨的过程。编写代码仅是程序设 计的一部分。必须先有思想,再有方法,然后才是编写 代码,且要经过许多反复,不可急功近利。11v 程序设计语言指的是用来编写程序的语言。v 人与计算机交流要使用语言,以便让计算机
4、工作,计算 机也通过语言把结果告诉用计算机的人“人机对 话”。v 人与计算机交流的语言非平常人与人之间交流的语言,是专门的语言程序设计语言。v 程序设计语言是计算机系统软件的重要组成部分。12v 执行程序设计的语言有很多,可分高级语言和低级语言,区别在于接近自然语言的程度v 高级语言一般与具体的计算机硬件无关,比较接近人类 自然语言的语法习惯及数学表达形式。v 用高级语言编写的源程序不能被机器直接执行,需通过 编译成解释程序的翻译才可被机器执行(机器语言)。13第三章 软件工程基础二级公共基础知识二级公共基础知识返回14内容内容1、软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2
5、、结构化分析方法,数据流图,数据字典,软件需求规格说明书。3、结构化设计方法,总体设计与详细设计。4、软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。5、程序的调试,静态调试与动态调试。15(一)基本概念(一)基本概念 v 软件工程:软件工程:软件工程软件工程是指应用计算机科学、数学及管理是指应用计算机科学、数学及管理 科学等原理,以工程化的原则和方法来解决软件问题的科学等原理,以工程化的原则和方法来解决软件问题的 工程。其目的是提高软件生产率、提高软件质量、降低工程。其目的是提高软件生产率、提高软件质量、降低 软件成本。软件成本。v 软件危机:
6、软件危机:是指在计算机软件开发和维护过程中所遇到的是指在计算机软件开发和维护过程中所遇到的一系列严重的问题。一系列严重的问题。主要表现在:成本、质量、生产率等问题。主要表现在:成本、质量、生产率等问题。16l软件计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。程序程序 程序人员开发的程序人员开发的 可执行的指令(语句)序列。可执行的指令(语句)序列。数据数据 使程序能正常操纵信息的数据结构使程序能正常操纵信息的数据结构相关文档相关文档 机器可执行的程序和数据机器可执行的程序和数据机器不能执行的,与软件开发、运行、维护、使用等有关的文档机器不能执行的,与软件开发、运行
7、、维护、使用等有关的文档17软件的特点包括:软件的特点包括:(1)软件是一种逻辑实体;)软件是一种逻辑实体;(2)软件的生产与硬件不同,它没有明显的制作过程;)软件的生产与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;)软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,受计算机)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;系统的限制,这导致了软件移植的问题;(5)软件复杂性高,成本昂贵;)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。)软件开发涉及诸多的社会因素。软件按功
8、能分为:软件按功能分为:应用软件、系统软件、支撑软件(或工具软件)。应用软件、系统软件、支撑软件(或工具软件)。18v软件生命周期软件生命周期将软件产品从提出、实现、使用维护到停止使用退役的过将软件产品从提出、实现、使用维护到停止使用退役的过程称为程称为软件生命周期。软件生命周期。分为分为软件定义软件定义、软件开发软件开发及及软件运行维护软件运行维护3 3个时期个时期。维护维护是是持续时间最长,花费代价最大的一个时期,软件工程学的持续时间最长,花费代价最大的一个时期,软件工程学的一个目的就是一个目的就是提高软件的可维护性,降低维护代价提高软件的可维护性,降低维护代价。6 6个活动阶段:个活动阶
9、段:q 可行性研究与计划制定可行性研究与计划制定:确定系统的总体目标。参加人:确定系统的总体目标。参加人员有用户、项目负责人和系统分析员,产生文档有可行员有用户、项目负责人和系统分析员,产生文档有可行性分析报告、项目计划书等。性分析报告、项目计划书等。q 需求分析需求分析:确定系统的逻辑模型。参加人员有用户、项:确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。产生文档为需求规格说明书,目负责人和系统分析员。产生文档为需求规格说明书,其作用其作用:(:(1 1)便于用户、开发人员进行理解交流;()便于用户、开发人员进行理解交流;(2 2)反映用户问题的结构,可以作为软件开发工作的基础
10、和反映用户问题的结构,可以作为软件开发工作的基础和依据;(依据;(3 3)作为确认测试和验收的依据。)作为确认测试和验收的依据。19q 软件设计软件设计:包括软件结构设计、数据设计、接口设计和过:包括软件结构设计、数据设计、接口设计和过程设计。其中程设计。其中结构设计结构设计是定义软件系统各部件之间的关系;是定义软件系统各部件之间的关系;数据设计数据设计是将分析时创建的模型转化为数据结构的定义;是将分析时创建的模型转化为数据结构的定义;接口设计接口设计是描述软件内部、软件和操作系统之间及软件与是描述软件内部、软件和操作系统之间及软件与人之间如何通信;人之间如何通信;过程设计过程设计则是把系统结
11、构部件转换成软则是把系统结构部件转换成软件的过程性描述。软件设计分件的过程性描述。软件设计分概要设计概要设计和和详细设计详细设计。参加。参加人员有系统分析员和高级程序员。产生的文档有设计规格人员有系统分析员和高级程序员。产生的文档有设计规格说明书。说明书。q 编码编码:编程。高级程序员和程序员产生源程序清单。:编程。高级程序员和程序员产生源程序清单。q 测试测试:由另一部门的高级程序员或系统分析员产生软件测:由另一部门的高级程序员或系统分析员产生软件测试计划和软件测试报告。试计划和软件测试报告。q 运行维护运行维护20可行性研究可行性研究与计划制定与计划制定需求分析需求分析软件设计软件设计实现
12、实现测试测试运行和维护运行和维护确定系统的总体目标确定系统的总体目标需求规格说明书需求规格说明书概要设计说明书概要设计说明书详细设计说明书详细设计说明书 测试计划初稿测试计划初稿完成程序代码完成程序代码用户手册用户手册单元测试计划单元测试计划检验软件检验软件测试分析报告测试分析报告可行性研究可行性研究与计划制定与计划制定需求分析需求分析概要设计概要设计实现实现测试测试退役退役详细设计详细设计使用使用维护维护定义阶段定义阶段开发阶段开发阶段维护阶段维护阶段21v 软件工程三要素软件工程三要素 方法方法:完成软件工程项目的技术手段。:完成软件工程项目的技术手段。工具工具:支持软件的开发、管理、文档
13、生成。:支持软件的开发、管理、文档生成。过程过程:支持软件开发的各个环节的控制、管理。:支持软件开发的各个环节的控制、管理。v 软件工程的理论和技术研究的内容软件工程的理论和技术研究的内容软件开发技术软件开发技术和和软件工程管理软件工程管理。v 软件工程的目标软件工程的目标在给定的成本、进度的前提下,开发出具有有效性、可靠在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可适应性、可移植性、可追踪性、可理解性、可维护性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。性和可互操作性且满足用户需求的产品。软件工程鼓励研制和采用各种先进的软件开发方法、工具软件
14、工程鼓励研制和采用各种先进的软件开发方法、工具和环境。和环境。22v软件工具和软件开发环境软件工具和软件开发环境软件工具软件工具(CASE)CASE):用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件。软件开发环境软件开发环境:支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成。软件工程的基本原则:软件工程的基本原则:抽象、信息隐蔽、模块化、局部化(抽象、信息隐蔽、模块化、局部化(模块间松散,模模块间松散,模块内内聚性强块内内聚性强)、确定性、一致性、完备性和可验证性。)、确定性、一致性、完备性和可验证性。23需求分析与结构化分析方法l需求分析的方法结构化分析方法结构化分
15、析方法面向对象的分析方法面向对象的分析方法面向数据流的结构化方法面向数据流的结构化方法(SA)面向数据结构面向数据结构Jackson方法方法(JSD)面向数据结构的结构化数据系统开发方面向数据结构的结构化数据系统开发方法法(DSSD)24结构化分析常用工具结构化分析常用工具:(1)数据流图数据流图(2)数据字典数据字典(3)判定树判定树(4)判定表判定表结构化分析方法的实质结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具处理流程,以数据流图和数据字典为主要工具,建立系统建立系统的逻辑模型。的逻
16、辑模型。25数据流图(数据流图(DFD):描述数据处理过程的工具,是需求理解的逻辑模型的图形表描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统功能建模。示,它直接支持系统功能建模。26建立数据流图的步骤:建立数据流图的步骤:(1)由外向里;)由外向里;(2)自顶向下:顶层、中间层、低层数据流图;)自顶向下:顶层、中间层、低层数据流图;(3)逐层分解;)逐层分解;2728数据字典数据字典(DD):存储文件存储文件”存折存折”的的DD定义定义:对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义
17、,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。同的理解。数据字典是各类数据描述的集合,它通常包括数据字典是各类数据描述的集合,它通常包括5个部分:个部分:即数据项、数据结构、数据流、数据存储、和处理过程。即数据项、数据结构、数据流、数据存储、和处理过程。数据字典是结构化分析的核心。数据字典是结构化分析的核心。29判定树:判定树:当数据流图中的当数据流图中的加工加工依赖于多个逻辑时,可以使用判定树来描述。依赖于多个逻辑时,可以使用判定树来描述。从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结从
18、问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。关系、选择关系,根据它们构造判定树。30判定表:判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。引发的,使用判定表描述比较适宜。31软件需求规格说明书,其作用软件需求规格说明书,其
19、作用:(1)便于用户、开发人员进行理解交流;)便于用户、开发人员进行理解交流;(2)反映用户问题的结构,可以作为软件开发工作的基)反映用户问题的结构,可以作为软件开发工作的基 础和依据;础和依据;(3)作为确认测试和验收的依据。)作为确认测试和验收的依据。软件需求规格说明书的特点:软件需求规格说明书的特点:(1)正确性;)正确性;(2)无岐义性;)无岐义性;(3)完整性;)完整性;(4)可验证性;)可验证性;(5)一致性;)一致性;(6)可理解性;)可理解性;(7)可追踪性。)可追踪性。需求分析结束时产生:需求分析结束时产生:(1)DFD、DD、判定树、判定表、判定树、判定表(2)软件需求规格
20、说明书)软件需求规格说明书32(二)结构化分析方法(二)结构化分析方法 v 基本思想基本思想将系统分析看成工程项目,有计划、有步骤地进行工作。将系统分析看成工程项目,有计划、有步骤地进行工作。v 开发策略开发策略自顶向下,逐层分解自顶向下,逐层分解v 分析结果分析结果一套分层的数据流图一套分层的数据流图(DFD)DFD):用来描述数据流从输入到输出用来描述数据流从输入到输出的变换流程的变换流程一个数据字典一个数据字典(DD)DD):用来描述用来描述DFDDFD中的每个数据流、文件以中的每个数据流、文件以及组成数据流或文件的数据项及组成数据流或文件的数据项一组小说明(加工逻辑说明):用来描述每个
21、基本加工的一组小说明(加工逻辑说明):用来描述每个基本加工的加工逻辑加工逻辑33(三(三)结构化设计方法、总体设计和详细设计结构化设计方法、总体设计和详细设计 v 结构化设计方法结构化设计方法 结构图:结构图:q 基本成分基本成分:模块、调用、输入输出数据:模块、调用、输入输出数据q 模块用矩形表示,模块间用线段连接,表示调用关系,模块用矩形表示,模块间用线段连接,表示调用关系,输入输出数据可写在调用线段的旁边输入输出数据可写在调用线段的旁边 数据流的类型数据流的类型q 变换流变换流q 事务流事务流34结构化设计方法、概要设计和详细设计l软件设计软件设计 软件设计的基本目标是用比较抽象概括的方
22、式确定目标系统如何完成软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件设计是确定系统的物理模型。预定的任务,软件设计是确定系统的物理模型。软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软件产品或系统的唯一途径。件产品或系统的唯一途径。l从技术观点来看,软件设计包括软件结构设计、数据设计、从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。接口设计、过程设计。结构设计:定义软件系统各主要部件之间的关系。结构设计:定义软件系统各主要部件之间的关系。数据设计:将分析时创建的模型转化
23、为数据结构的定义。数据设计:将分析时创建的模型转化为数据结构的定义。接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信。通信。过程设计:把系统结构部件转换成软件的过程描述。过程设计:把系统结构部件转换成软件的过程描述。l从工程管理角度来看:概要设计和详细设计。从工程管理角度来看:概要设计和详细设计。35软件设计的基本原理:软件设计的基本原理:(1)抽象)抽象 (2)模块化)模块化 (3)信息隐蔽)信息隐蔽 (4)模块独立化)模块独立化 内聚性:内聚性:耦合性:耦合性:在程序结构中各模块的内聚性越强,则耦合性越弱。在程
24、序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。优秀软件应高内聚,低耦合。36v 概要设计概要设计 设计原则设计原则q 分解分解协调原则协调原则q 自顶向下的原则自顶向下的原则q 信息屏蔽、抽象的原则信息屏蔽、抽象的原则q 一致性原则一致性原则q 明确性原则明确性原则q 模块间的耦合度尽可能小,模块内部组合尽可能紧模块间的耦合度尽可能小,模块内部组合尽可能紧凑(内聚性高)凑(内聚性高)q 模块的扇入和扇出系数合理模块的扇入和扇出系数合理q 模块的规模适当模块的规模适当37结构图(结构图(SC):概要设计概要设计(软件结构设计软件结构设计)的工具的工具:模块用一个矩形表示,箭
25、头表示模块间的调用关系。模块用一个矩形表示,箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。回传递的信息。还可用带实心圆的箭头表示传递的是控制信息,空心圆箭还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据。心表示传递的是数据。38结构图的基本形式:结构图的基本形式:基本形式、顺序形式、重复形式、选择形式。基本形式、顺序形式、重复形式、选择形式。结构图有四种模块类型:结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块。传入模块、传出模块、变换模块和协调模块。39需求分析需求分
26、析逻辑模型逻辑模型数据流图数据流图概要设计概要设计系统结构图系统结构图物理模型物理模型概要设计的方法概要设计的方法:典型的数据流类型有两种:变换型和事务型。典型的数据流类型有两种:变换型和事务型。变换型数据流系统结构图变换型数据流系统结构图事务型数据流系统结构图事务型数据流系统结构图40v 详细设计详细设计 根本目标:根本目标:确定应用怎样具体的实现所要求的系统,不是具体的确定应用怎样具体的实现所要求的系统,不是具体的编写程序,而是要设计程序的编写程序,而是要设计程序的“蓝图蓝图”自顶向下的原则。自顶向下的原则。此阶段的结果基本上决定了最终的程序代码的质量。此阶段的结果基本上决定了最终的程序代
27、码的质量。包括内容:包括内容:q 代码设计代码设计q 输入设计输入设计q 输出设计输出设计q 处理过程设计处理过程设计q 用户界面设计用户界面设计q 安全控制设计安全控制设计41过程设计工具过程设计工具:图形工具图形工具:程序流程图、程序流程图、NS图、图、表格工具:判定表表格工具:判定表语言工具:语言工具:(伪码伪码)程序流程图程序流程图:4243NS图:图:44图:图:(伪码):(伪码):45(四(四)软件测试软件测试 v 意义目的意义目的为了发现错误;为了发现错误;希望能以最少人力和时间发现潜在各种错误和缺陷;希望能以最少人力和时间发现潜在各种错误和缺陷;保证系统质量和可靠性的关键步骤。
28、保证系统质量和可靠性的关键步骤。v 测试方法测试方法 人工测试人工测试 机器测试机器测试提问:提问:测试能否发测试能否发现程序中的所有错现程序中的所有错误?误?答案:答案:不能。不能。46v 白盒测试白盒测试结构测试结构测试将软件看成透明的白盒,根据程序的内部结构和逻辑结构来将软件看成透明的白盒,根据程序的内部结构和逻辑结构来设计测试例子,对程序的路径和过程进行测试,检查是否满设计测试例子,对程序的路径和过程进行测试,检查是否满足设计的要求足设计的要求v 黑盒测试黑盒测试功能测试功能测试将软件看成黑盒子,在完全不考虑软件内部结构和特性的情将软件看成黑盒子,在完全不考虑软件内部结构和特性的情况下
29、,测试软件的外部特性况下,测试软件的外部特性v 软件测试的实施软件测试的实施单元测试(模块测试):白盒测试法单元测试(模块测试):白盒测试法组装测试(集成测试)组装测试(集成测试)确认测试:检查软件产品是否符合需求定义,黑盒测试法确认测试:检查软件产品是否符合需求定义,黑盒测试法系统测试系统测试47v 适合于适合于黑盒测试黑盒测试的测试方案:的测试方案:主要有:主要有:等价类划分、边界值分析法、错误推测法、因果等价类划分、边界值分析法、错误推测法、因果图图四种。四种。v 适合于适合于白盒测试白盒测试的测试方案:的测试方案:主要有主要有逻辑覆盖测试、基本路径测试逻辑覆盖测试、基本路径测试法。法。
30、逻辑覆盖法包括:逻辑覆盖法包括:语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定定/条件覆盖、条件组合覆盖。条件覆盖、条件组合覆盖。48(五(五)程序调试程序调试 v 任务任务根据测试时发现的错误,找出原因和具体位置,进行改正根据测试时发现的错误,找出原因和具体位置,进行改正由程序开发人员来进行,谁开发的程序就由谁来进行调试由程序开发人员来进行,谁开发的程序就由谁来进行调试方法:方法:q 强行排错法强行排错法q 回溯法回溯法q 原因排除法原因排除法(演绎、归纳、二分法(演绎、归纳、二分法)程序调试程序调试是根据错误的迹象确定程序中的错误的确
31、切性质、原因和位置,对程序进行修改,排除这个错误。49v 静态调试静态调试通过人的思维来分析源程序代码和排错,是主要的调试手段。v 动态调试动态调试辅助静态调试。50例题讲解例题讲解v 为了提高测试的效率,应该(为了提高测试的效率,应该(D D )A)A)随机选取测试数据随机选取测试数据 B)B)取一切可能的输入数据作为测试数据取一切可能的输入数据作为测试数据 C)C)在完成编码以后制定软件的测试计划在完成编码以后制定软件的测试计划 D)D)选择发现错误可能性大的数据作为测试数据选择发现错误可能性大的数据作为测试数据v 软件生命周期中所花费用最多的阶段是(软件生命周期中所花费用最多的阶段是(D
32、 D )A)A)详细设计详细设计 B)B)软件编码软件编码 C)C)软件测试软件测试 D)D)软件维护软件维护51v 下列叙述中,不属于软件需求规格说明书的作用的是下列叙述中,不属于软件需求规格说明书的作用的是(D D )A)A)便于用户、开发人员进行理解和交流便于用户、开发人员进行理解和交流 B)B)反映出用户问题的结构,可以作为软件开发工作的基反映出用户问题的结构,可以作为软件开发工作的基 础和依据础和依据 C)C)作为确认测试和验收的依据作为确认测试和验收的依据 D)D)便于开发人员进行需求分析便于开发人员进行需求分析v 下列不属于软件工程的下列不属于软件工程的3 3个要素的是(个要素的
33、是(D D ))工具工具 )过程过程 )方法方法 )环境环境v 软件设计包括软件的结构、数据接口和过程设计,其中软软件设计包括软件的结构、数据接口和过程设计,其中软 件的过程设计是指(件的过程设计是指(B B )A)A)模块间的关系模块间的关系 B)B)系统结构部件转换成软件的过程描述系统结构部件转换成软件的过程描述 C)C)软件层次结构软件层次结构D)D)软件开发过程软件开发过程52v 检查软件产品是否符合需求定义的过程称为检查软件产品是否符合需求定义的过程称为()确认测试确认测试 )集成测试集成测试 )系统测试系统测试 )单元测试单元测试v 数据流图用于抽象描述一个软件的逻辑模型,数据流图
34、由数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列不属于数据流图合法图符一些特定的图符构成。下列不属于数据流图合法图符 的是的是()控制流控制流 )加工加工 )存储文件存储文件 )源和潭源和潭v 开发软件所需高成本和产品的低质量之间有着尖锐矛盾的开发软件所需高成本和产品的低质量之间有着尖锐矛盾的这种现象称作这种现象称作(B B )A)A)软件投机软件投机 B)B)软件危机软件危机 C)C)软件工程软件工程 D)D)软件产生软件产生53v 下面不属于软件设计原则的是下面不属于软件设计原则的是()抽象抽象 )模块化模块化 )自底向上自底向上 )信息隐蔽信息隐蔽v 开发大型
35、软件时,产生困难的根本原因是开发大型软件时,产生困难的根本原因是(A A )A A)大系统的复杂性大系统的复杂性 B B)人员知识不足人员知识不足 C C)客观世界千变万化客观世界千变万化 D D)时间紧、任务重时间紧、任务重v 软件工程的出现是由于(软件工程的出现是由于()A)A)程序设计方法学的影响程序设计方法学的影响 B)B)软件产业化的需要软件产业化的需要 C)C)软件危机的出现软件危机的出现 D)D)计算机的发展计算机的发展54v在数据流图在数据流图(DFD)DFD)中,带有名字的箭头表示中,带有名字的箭头表示(D D )A)A)模块之间的调用关系模块之间的调用关系 B)B)程序的组
36、成成分程序的组成成分 C)C)控制程序的执行顺序控制程序的执行顺序 D)D)数据的流向数据的流向v 下列不属于结构化设计的常用工具的是(下列不属于结构化设计的常用工具的是(D D )A)A)数据流图数据流图 B)B)数据字典数据字典 C)C)判定树判定树 D)PADD)PAD图图v 在软件生产过程中,需求信息的给出是(在软件生产过程中,需求信息的给出是(D D )A)A)程序员程序员 B)B)项目管理者项目管理者 C)C)软件分析设计人员软件分析设计人员 D)D)软件用户软件用户55v 模块独立性是软件模块化所提出的要求,衡量模块独立性模块独立性是软件模块化所提出的要求,衡量模块独立性 的度量
37、标准则是模块的(的度量标准则是模块的(C C )A)A)抽象和信息隐蔽抽象和信息隐蔽 B)B)局部化和封装化局部化和封装化 C)C)内聚性和耦合性内聚性和耦合性 D)D)激活机制和控制方法激活机制和控制方法v 软件开发的结构化生命周期方法将软件生命周期划分成(软件开发的结构化生命周期方法将软件生命周期划分成(A A)A)A)定义阶段、开发定义阶段、开发阶段阶段、运行维护、运行维护 B)B)设计阶段、编程阶段、测试阶段设计阶段、编程阶段、测试阶段 C)C)总体设计、详细设计、编程调试总体设计、详细设计、编程调试 D)D)需求分析、功能定义、系统设计需求分析、功能定义、系统设计56 下列下列工具是
38、需求分析常用工具的是(工具是需求分析常用工具的是(D D ))PADPAD )PFD PFD )N-SN-S)DFDDFDv 在软件工程中,白箱测试法可用于测试程序的内部结构。在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是(此方法将程序看做是(A A )A)A)路径的集合路径的集合 B)B)循环的集合循环的集合 C)C)目标的集合目标的集合 D)D)地址的集合地址的集合v 完全不考虑程序的内部结构和内部特征,而只是根据程序完全不考虑程序的内部结构和内部特征,而只是根据程序 功能导出测试用例的测试方法是(功能导出测试用例的测试方法是(A A )A)A)黑箱测试法黑箱测试法
39、B)B)白箱测试法白箱测试法 C)C)错误推测法错误推测法 D)D)安装测试法安装测试法57v 下列选项中,模块间耦合度最低的是(下列选项中,模块间耦合度最低的是(C C )A)A)数据耦合数据耦合 B)B)同构耦合同构耦合 C)C)非直接耦合非直接耦合 D)D)内容耦合内容耦合v 软件工程过程通常包含软件工程过程通常包含4 4种基本活动,其中软件开发是(种基本活动,其中软件开发是(A A )A)DA)DB)PB)P C)C C)C D)AD)Av 下列不属于软件调试技术的是(下列不属于软件调试技术的是(B B )A)A)强行排错法强行排错法 B)B)集成测试法集成测试法 C)C)回溯法回溯法
40、 D)D)原因排除法原因排除法P(PlanP(Plan)-)-软件规格说明软件规格说明D(DoD(Do)-)-软件开发软件开发C(CheckC(Check)-)-软件确认软件确认A(ActionA(Action)-)-软件演进软件演进58v 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为(代替传统的程序流程图,通常也把这种图称为(B B )A)PADA)PAD图图 B)N-SB)N-S图图 C)C)结构图结构图 D)D)数据流图数据流图v 软件复杂性度量的参数包括(软件复杂性度量的参数包括
41、(B B )A)A)效率效率 B)B)规模规模 C)C)完整性完整性 D)D)容错性容错性v 下列叙述中,正确的是(下列叙述中,正确的是(D D )A)A)软件就是程序清单软件就是程序清单 B)B)软件就是存放在计算机中的文件软件就是存放在计算机中的文件 C)C)软件应包括程序清单及运行结果软件应包括程序清单及运行结果 D)D)软件包括程序、数据和文档软件包括程序、数据和文档v 软件设计中,有利于提高模块独立性的一个准则是(软件设计中,有利于提高模块独立性的一个准则是(C C )A)A)低内聚低耦合低内聚低耦合 B)B)低内聚高耦合低内聚高耦合 C)C)高内聚低耦合高内聚低耦合 D)D)高内聚
42、高耦合高内聚高耦合59v 下列的方法中,不属于结构化分析方法的是(下列的方法中,不属于结构化分析方法的是(D D )A)A)面向数据流的结构化分析方法面向数据流的结构化分析方法 B)B)面向数据结构的面向数据结构的JacksonJackson方法方法 C)C)面向数据结构的结构化数据系统开发方法面向数据结构的结构化数据系统开发方法 D)D)面向对象的分析方法面向对象的分析方法v 详细设计的结果基本决定了最终程序的(详细设计的结果基本决定了最终程序的(C C )A)A)代码的规模代码的规模 B)B)运行速度运行速度 C)C)质量质量 D)D)可维护性可维护性v 下列不属于静态测试方法的是(下列不
43、属于静态测试方法的是(B B )A)A)代码检查代码检查 B)B)白盒法白盒法 C)C)静态结构分析静态结构分析 D)D)代码质量度量代码质量度量v 在软件生命周期中,能准确地确定软件系统必须做什么和必在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(须具备哪些功能的阶段是(D D )A A)概要设计概要设计 B B)详细设计详细设计 C C)可行性分析可行性分析 D D)需求分析需求分析60v程序流程图(程序流程图(PFDPFD)中的箭头代表的是(中的箭头代表的是(B B )A A)数据流数据流 B B)控制流控制流 C C)调用关系调用关系 D D)组成关系组成关
44、系v在结构化方法中,软件功能分解属于下列软件开发在结构化方法中,软件功能分解属于下列软件开发中的阶段是(中的阶段是(C C )A A)详细设计详细设计 B B)需求分析需求分析C C)概要设计概要设计 D D)编程调试编程调试v 软件调试的目的是(软件调试的目的是(B B )A A)发现错误发现错误 B B)改正错误改正错误 C C)改善软件的性能改善软件的性能 D D)挖掘软件的潜能挖掘软件的潜能61v 软件需求分析阶段的工作,可以分为四个方面:需求获取,软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及(需求分析,编写需求规格说明书,以及(B B )A
45、A)阶段性报告阶段性报告 B B)需求评审需求评审 C C)总结总结 D D)都不正确都不正确v 通常,将软件产品从提出、实现、使用维护到停止使用退通常,将软件产品从提出、实现、使用维护到停止使用退 役的过程称为役的过程称为【1 1】。【答案】【答案】:软件生命周期软件生命周期v 耦合和内聚是评价模块独立性的两个主要标准,其中耦合和内聚是评价模块独立性的两个主要标准,其中 【2 2】反映了模块内各成分之间的联系。反映了模块内各成分之间的联系。【答案】【答案】:内聚内聚v 软件工程研究的内容主要包括:软件工程研究的内容主要包括:【3 3】技术和软件工程管理。技术和软件工程管理。【答案】【答案】:
46、软件开发软件开发62v Jackson Jackson结构化分析方法是英国的结构化分析方法是英国的M.JacksonM.Jackson提出的,它是提出的,它是一种面向一种面向【4 4】的分析方法。的分析方法。【答案】【答案】:数据结构数据结构v数据流的类型有数据流的类型有【6 6】和事务型。和事务型。【答案】【答案】:变换型变换型v 软件危机出现于软件危机出现于6060年代末,为了解决软件危机,人们提出年代末,为了解决软件危机,人们提出 了了【7 7】的原理来设计软件,这就是软件工程诞生的基的原理来设计软件,这就是软件工程诞生的基 础。础。【答案】【答案】:工程学工程学v 软件开发环境是全面支
47、持软件开发全过程的软件开发环境是全面支持软件开发全过程的【8 8】集合。集合。【答案】【答案】:软件工具软件工具63v 测试的目的是暴露错误,评价程序的可靠性;而测试的目的是暴露错误,评价程序的可靠性;而【9 9】的的 目的是发现错误的位置并改正错误。目的是发现错误的位置并改正错误。【答案】【答案】:软件调试软件调试v 软件维护活动包括以下几类:改正性维护、适应性维护、软件维护活动包括以下几类:改正性维护、适应性维护、【1010】维护和预防性维护。维护和预防性维护。【答案】【答案】:完善性完善性v 软件结构是以软件结构是以【1111】为基础而组成的一种控制层次结构。为基础而组成的一种控制层次结
48、构。【答案】【答案】:模块模块v 为了便于对照检查,测试用例应由输入数据和预期的为了便于对照检查,测试用例应由输入数据和预期的 【1212】两部分组成。两部分组成。【答案】【答案】:输出结果输出结果v 软件工程包括软件工程包括3 3个要素,分别为方法、工具和个要素,分别为方法、工具和【1313】。【答案】【答案】:过程过程 v 软件工程的出现是由于软件工程的出现是由于【1414】的出现提出的。的出现提出的。【答案】【答案】:软软件危机件危机64v 单元测试又称模块测试,一般采用单元测试又称模块测试,一般采用 【1515】测试。测试。【答案】【答案】:白盒动态白盒动态v 软件的软件的【1616】
49、设计又称为总体结构设计,其主要设计又称为总体结构设计,其主要 任务是建立软件系统的总体结构。任务是建立软件系统的总体结构。【答案】【答案】:概要概要v 软件是程序、数据和软件是程序、数据和【1717】的集合。的集合。【答案】【答案】:文档文档v 对软件是否能达到用户所期望的要求的测试称为对软件是否能达到用户所期望的要求的测试称为 【1818】。【答案】【答案】:确认测试确认测试(或验收测试或验收测试)v 质量保证策略大致分为三个阶段:以检测为重、质量保证策略大致分为三个阶段:以检测为重、【1919】和以新产品开发为重。和以新产品开发为重。【答案】【答案】:以过程管理为重以过程管理为重65l为了
50、提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序l软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护l下列叙述中,不属于软件需求规格说明书的作用的是A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析l下列不属于软件工程的3个要素的是)工具)过程)方法)环境例题讲解66l软件设计包括软件的结构、数据、接口和过程设计,其中软件的过程设计是指A)模块间的关系B)系统结构部件转换