第17章 软件工程基础讲稿.docx

上传人:b****3 文档编号:5424533 上传时间:2022-12-16 格式:DOCX 页数:13 大小:30.93KB
下载 相关 举报
第17章 软件工程基础讲稿.docx_第1页
第1页 / 共13页
第17章 软件工程基础讲稿.docx_第2页
第2页 / 共13页
第17章 软件工程基础讲稿.docx_第3页
第3页 / 共13页
第17章 软件工程基础讲稿.docx_第4页
第4页 / 共13页
第17章 软件工程基础讲稿.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

第17章 软件工程基础讲稿.docx

《第17章 软件工程基础讲稿.docx》由会员分享,可在线阅读,更多相关《第17章 软件工程基础讲稿.docx(13页珍藏版)》请在冰豆网上搜索。

第17章 软件工程基础讲稿.docx

第17章软件工程基础讲稿

第十七章软件工程基础

大纲要点:

1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。

2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。

3.结构化设计方法,总体设计与详细设计。

4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。

5.程序的调试,静态调试与动态调试。

重要考点:

1.软件工程的一些基本概念以及他们之间的关系

2.结构化分析方法中的数据流图,数据树,数据表;软件规格说明书的特点

3.结构设计方法中的概要设计和详细设计

4.静态测试和动态测试

17.1软件工程的基本概念

知识点1软件工程的定义

(1)计算机软件是包括程序、数据及相关文档的完整集合;软件分为系统软件和应用软件。

(2)软件危机是在计算机软件的开发和维护过程中所遇到的一系列严重问题,主要包括成本、质量以及生产效率三个方面的严重问题。

(3)软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。

软件工程正是为了应对软件危机而制定的一套科学开发软件的方法。

【经典题解】

1、下面描述中,不属于软件危机表现的是_________

A)软件过程不规范

B)软件开发生产率低

C)软件质量难以控制

D)软件成本不断提高

【答案】A

【解析】此题主要考查软件危机的特点,软件危机主要表现在成本、质量、生产率等问题,软件工程正是为了应对软件危机。

2、软件按功能可以分为:

应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是___________

A)编辑软件

B)操作系统

C)教务管理系统

D)浏览器

【答案】B

【解析】此题主要考查软件的分类,所谓系统软件,指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合。

3、软件按功能可以分为:

应用软件、系统软件和支撑软件(或工具软件),下面属于应用软件的是____________

A)编译程序B)操作系统C)教务管理系统D)汇编程序

【答案】C

【解析】此题主要考查软件的分类,所谓应用软件,用于解决某类具体问题而开发的程序的集合,供多用户使用。

4、软件是___________、数据和文档的集合。

【答案】程序

【解析】此题主要考查软件的概念。

知识点2软件生命周期的定义

(1)软件产品从提出、实现、使用维护到停止使用退役的过程称为软件的生命周期。

(2)软件生命周期三个阶段:

软件定义、软件开发、运行维护,过程如下表17-1所示:

表17-1软件生命周期的三阶段

时期

阶段

任务

文档

软件定义

问题定义

理解用户要求,划清工作范围

计划任务书

可行性分析

可行性方案及代价

需求分析

软件系统的目标及应完成的工作

需求规格说明书

软件开发

概要设计

系统的逻辑设计

概要设计说明书

详细设计

系统的模块设计

详细设计说明书

软件编码

编写程序代码

程序、数据、详细注释

软件测试

单元测试,综合测试

测试后的软件、测试大纲、测试方案与结果

软件维护

软件维护

运行和维护

维护后的软件

【经典题解】

1、软件生命周期是指__________

A)软件产品从提出、实现、使用维护到停止使用退役的过程

B)软件从需求分析、设计、实现到测试完成的过程

C)软件的开发过程

D)软件的运行维护过程

【答案】A

【解析】此题主要考查软件生命周期的概念,软件产品从提出、实现、使用维护到停止使用退役的过程称为软件的生命周期。

2、软件生命周期可分为定义阶段,开发阶段和维护阶段。

详细设计属于__________

A)定义阶段

B)开发阶段

C)维护阶段

D)上述三个阶段

【答案】B

【解析】此题主要考查软件开发阶段的具体任务,它包括概要设计、详细设计、软件编码和软件测试四个任务。

3、软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中________阶段产生“软件需求规格说明书”。

【答案】需求分析

【解析】此题主要考查需求分析阶段的具体任务,它包括给出软件系统的目标及应完成的工作,所有的内容以软件需求规格说明书的形式给出。

知识点3软件工程的目标与基本原则

(1)目标:

在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。

(2)基本原则:

抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

17.2结构化的分析方法

知识点4结构化分析方法的实质

结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。

结构化分析方法着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

知识点5结构化分析的常用工具

(1)常用工具有:

数据流图、数据字典、判定树、判定表。

(2)数据流图:

描述数据处理过程的工具,全称DataFlowDiagram,简称DFD。

图17-1为一个具体的数据流图实例——飞机票预定系统,其中:

矩形表示数据输入的源点和输出的终点;椭圆形表示加工,输入数据在这里进行变换,产生输出;箭头表示数据流。

图17-1飞机票预定系统数据流图

(4)数据字典:

对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。

数据字典是结构化分析的核心

例如:

学生——出生年月、生源地、家庭住址、联系电话、父母姓名、父母单位、父母联系方式、系别、学号。

(5)判定树:

从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。

(6)判定表:

与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。

知识点6软件需求说明书的特点

结构化分析的最终成果即是软件需求说明书,它的特点有:

正确性、无岐义性、完整性、可验证性、一致性、可理解性、可追踪性。

其中,正确性是最重要的。

【经典题解】

1、数据流图(DFD图)是_________

A)软件概要设计的工具

B)软件详细设计的工具

C)结构化方法的需求分析工具

D)面向对象方法的需求分析工具

【答案】C

【解析】此题主要考查结构化分析的常用工具。

结构化分析的最终成果即是软件需求说明书。

17.3结构化设计方法

知识点7结构化设计的特点

软件设计是用比较抽象概括的方式确定目标系统如何完成预定的任务。

在软件设计中应遵循的的基本原理:

(1)模块:

在程序设计中,可完成特定功能的代码段称为模块。

(2)模块独立性:

每个模块只完成系统要求的独立的子功能,与其他模块的联系尽量少。

①内聚性:

指一个模块内部各个元素间彼此结合的紧密程度的度量。

②耦合性:

指模块间相互连接的紧密程度的度量。

模块设计的基本原则(模块独立性原则):

高内聚,低耦合。

从工程管理角度来看,结构化设计分为:

概要设计和详细设计。

概要设计的主要任务:

设计软件系统结构;设计数据结构及数据库;编写概要设计文档;概要设计文档评审。

详细设计的主要任务是为软件结构图中的每一个模块确定实现算法和局部设计结构,用某种选定的工具表示算法和数据结构的细节。

常见的设计工具有:

程序流程图(PFD)、盒图、PAD图、过程设计语言(PDL)。

知识点8程序流程图

(1)通常由矩形、菱形和箭头组成;其中,菱形表示判断,矩形表示运算或者开始、结束。

(2)它以图形的方式详细描述了程序的开发过程。

(3)特点简洁、明了。

【经典题解】

1、软件设计中划分模块的一个准则是___________

A)低内聚低耦合

B)高内聚低耦合

C)低内聚高耦合

D)高内聚高耦合

【答案】B

【解析】此题主要考查模块设计的基本原则(即模块独立性原则):

高内聚,低耦合。

2、下列选项中不属于结构化程序设计原则的是__________

A)可封装

B)自顶向下

C)模块化

D)逐步求精

【答案】A

3、软件详细设计产生的图如下:

  

 该图是__________

 A)N-S图

 B)PAD图

 C)程序流程图

 D)E-R图

【答案】C

4、耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是__________

A)提高耦合性降低内聚性有利于提高模块的独立性

B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素之间彼此结合的紧密程度

D)内聚性是指模块间互相连接的紧密程度

【答案】B

【解析】此题主要考查模块设计的基本原则(也叫模块独立性原则):

高内聚,低耦合。

17.4软件测试

知识点9软件测试的概念

(1)软件测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

(2)软件测试工作一般不由开发人员完成。

(3)软件测试的目的:

发现软件中的错误。

(4)软件测试过程一般按4个步骤进行:

单元测试、集成测试、验收测试(确认测试)和系统测试。

知识点10软件测试的方法

(1)从是否需要执行被测试软件的角度,软件测试的方法分为:

静态测试和动态测试。

①静态测试包括代码检查、静态结构分析、代码质量度量。

不实际运行软件,主要通过人工进行。

②动态测试:

是基于计算机的测试

(2)按照功能划分,软件测试的方法分为:

白盒测试方法和黑盒测试方法。

①白盒测试:

在程序内部进行,主要用于完成软件内部操作的验证。

主要方法有逻辑覆盖、基本路径测试。

②黑盒测试:

主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错,用于软件确认。

主要方法有等价类划分法、边界值分析法、错误推测法、因果图等。

【经典题解】

1、软件测试的目的是______________

A)评估软件的可靠性

B)发现并改正程序中的错误

C)改正程序中的错误

D)发现程序中的错误

【答案】D

【解析】此题主要考查软件测试的目的:

发现软件中的错误。

17.5软件的调试

知识点11软件调试的概念

(1)程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。

(2)程序调试的基本步骤:

错误定位;修改设计和代码,以排除错误;进行回归测试,防止引进新的错误。

(3)主要调试方法:

强行排错法、回溯法、原因排除法。

【经典题解】

1、软件(程序)调试的任务是___________

A)诊断和改正程序中的错误

B)尽可能多地发现程序中的错误

C)发现并改正程序中的所有错误

D)确定程序中错误的性质

【答案】A

【解析】此题主要考查软件调试的目的:

诊断和改正程序中的错误。

综合自测

一、选择题

1.结构化程序设计的基本原则不包括__________

A)多态性B)自顶向下C)模块化D)逐步求精

2.软件是指_________

A)程序                        B)程序和文档

C)算法加数据结构              D)程序、数据和相关文档的集合

3.下列选项中不属于软件生命周期开发阶段任务的是________。

A)软件测试 B)概要设计 C)软件维护 D)详细设计

4.下列描述中正确的是__________

A)软件工程只是解决软件项目的管理问题

B)软件工程主要解决软件产品的生产率问题

C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

D)软件工程只是解决软件开发中的技术问题

5.下列叙述中正确的是__________

A)软件交付使用后还需要进行维护

B)软件一旦交付使用就不需要再进行维护

C)软件交付使用后其生命周期就结束

D)软件维护是指修复程序中被破坏的指令

6.下列描述中正确的是__________

A)程序就是软件

B)软件开发不受计算机系统的限制

C)软件既是逻辑实体,又是物理实体

D)软件是程序、数据与相关文档的集合

7.数据流图中带有箭头的线段表示的是__________

A)控制流

C)模块调用

B)事件驱动

D)数据流

8.在软件开发中,需求分析阶段可以使用的工具是________

 A)N-S图

B)DFD图

C)PAD图

D)程序流程图

9.在软件开发中,需求分析阶段产生的主要文档是________

A)可行性分析报告

B)软件需求规格说明书

C)概要设计说明书

D)集成测试计划

10.程序流程图中带有箭头的线段表示的是__________

A)图元关系B)数据流C)控制流D)调用关系

11.软件设计中模块划分应遵循的准则是__________

A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合

12.在结构化程序设计中,模块划分的原则是_________

A)各模块应包括尽量多的功能

B)各模块的规模应尽量大

C)各模块之间的联系应尽量紧密

D)模块内具有高内聚度、模块间具有低耦合度

13.下列选项中不符合良好程序设计风格的是________。

A)源程序要文档化 B)数据说明的次序要规范化

C)避免滥用goto语句 D)模块设计要保证高耦合、高内聚

14.从工程管理角度,软件设计一般分为两步完成,它们是________。

A)概要设计与详细设计 B)数据设计与接口设计

C)软件结构设计与数据设计 D)过程设计与数据设计

15.两个或两个以上模块之间关联的紧密程度称为___________

A)耦合度

B)内聚度

C)复杂度

D)数据传输特性

16.在软件设计中,不属于过程设计工具的是____________

A)PDL(过程设计语言)   B)PAD图   C)N-S图   D)DFD图

17.为了使模块尽可能独立,要求____________

A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

18.下面叙述中错误的是___________

A)软件测试的目的是发现并改正错误

B)对被调试的程序进行“错误定位”是程序调试的必要步骤

C)程序调试通常也称为Debug

D)软件测试应严格执行测试计划,排除测试的随意性

19.下列叙述中正确的是_________

A)软件测试的主要目的是发现程序中的错误

B)软件测试的主要目的是确定程序中错误的位置

C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作

D)软件测试是证明软件没有错误

20.下列叙述中正确的是____________

A)软件测试应该由程序开发者来完成

B)程序经调试后一般不需要再测试

C)软件维护只包括对程序代码的维护

D)以上三种说法都不对

21.下列对于软件的描述中正确的是__________

A)软件测试的目的是证明程序是否正确

B)软件测试的目的是使程序运行结果正确

C)软件测试的目的是尽可能多地发现程序中的错误

D)软件测试的目的是使程序符合结构化原则

22.软件调试的目的是__________

A)发现错误                    B)改正错误

C)改善软件的性能              D)验证软件的正确性

二、填空题

1、软件工程三要素包括方法、工具和过程,其中,___________支持软件开发的各个环节。

2、软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。

编码和测试属于_____阶段。

3、软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是_______。

4、程序流程图中的菱形框表示的是__________

5、软件测试可分为白盒测试和黑盒测试。

基本路径测试属于__________测试。

6、按照软件测试的一般步骤,集成测试应在___________测试之后进行。

7、测试用例包括输入集和__________值集。

8、在两种基本测试方法中,_______测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。

9、程序测试分为静态分析和动态测试,其中_______是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

10、________的任务是诊断和改正程序中的错误。

综合自测参考答案

一、选择题

1.A2.D3.C4.C5.A6.D7.D8.B9.B10.C

11.B12.D13.D14.A15.A16.D17.B18.A19.A20.D

21.C22.B

二、填空题

1.过程

2.开发阶段

3.正确性

4.判断或条件

5.白盒

6.单元

7.输出

8.路劲覆盖

9.静态分析

10.程序调试

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1