《第三章软件工程精选文档.ppt》由会员分享,可在线阅读,更多相关《第三章软件工程精选文档.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章软件工程第三章软件工程本讲稿第一页,共四十四页3.1 软件工程的基本概念软件工程的基本概念 软件软件:与计算机系统的操作有关的计算机程序、与计算机系统的操作有关的计算机程序、规程、文件、文档、数据。规程、文件、文档、数据。软件工程的定义:软件工程是应用于计算机软软件工程的定义:软件工程是应用于计算机软件的定义、开发和维护的一套方法、工具、文档实件的定义、开发和维护的一套方法、工具、文档实践标准和工序。践标准和工序。软件工程是指导计算机软件开发和维护的一门软件工程是指导计算机软件开发和维护的一门学科,它应用计算机科学、数学和管理科学等原理,学科,它应用计算机科学、数学和管理科学等原理,以及
2、借鉴传统工程的原则和方法,来创建软件,从以及借鉴传统工程的原则和方法,来创建软件,从而达到提高质量、降低成本的目的。而达到提高质量、降低成本的目的。本讲稿第二页,共四十四页软件工程的三要素:方法、工具、过程软件工程的三要素:方法、工具、过程 软件工程的过程:软件工程的过程:软件工程的过程:软件工程的过程:指把输入转化为输出的一组彼此相关的资源和指把输入转化为输出的一组彼此相关的资源和活动。活动。软件生命周期:软件生命周期:指将软件产品从提出、实现、使用维护到停止使指将软件产品从提出、实现、使用维护到停止使指将软件产品从提出、实现、使用维护到停止使指将软件产品从提出、实现、使用维护到停止使用的过
3、程用的过程用的过程用的过程 本讲稿第三页,共四十四页软件工程的目标软件工程的目标软件工程的原则软件工程的原则 软件开发工具及环境软件开发工具及环境本讲稿第四页,共四十四页3.2 结构化分析方法结构化分析方法3.2.1 结构化分析方法概述传统软件工程中的需求分析方法主要包括原型化分析方法和结构化分析方法等。结构化分析方法是结构化程序设计理论在软件需结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。求分析阶段的运用。结构化分析方法的实质是基于数据流,自顶向下,逐层分解,建立系统的处理流程。本讲稿第五页,共四十四页3.2.2 结构化分析的常用工具 符符 号号含含 义义数据的源点或终点数据的
4、源点或终点数据流数据流或数据存储数据存储加工加工 (1 1)数据流图数据流图数据流图的基本符号数据流图的基本符号本讲稿第六页,共四十四页图图3-2 工资计算系统的顶层数据流图工资计算系统的顶层数据流图本讲稿第七页,共四十四页符符 号号含含 义义由数据由数据A A和和B B共同变换为数据共同变换为数据C C由数据由数据A A变换为数据变换为数据B B和数据和数据C C由数据由数据A A或或B B,或者数据,或者数据A A和和B B共同变换为数据共同变换为数据C C由数据由数据A A变换为数据变换为数据B B或或C C,或者同时变换为数据,或者同时变换为数据B B和和C C由数据由数据A A或或B
5、 B其中之一变换为数据其中之一变换为数据C C由数据由数据A A变换为数据变换为数据B B或或C C其中之一其中之一数据流与加工中常见关系的符号表示本讲稿第八页,共四十四页(2 2)数据字典)数据字典数据字典中的基本符号及其含义数据字典中的基本符号及其含义数据字典中的基本符号及其含义数据字典中的基本符号及其含义符符符符 号号号号含含含含 义义义义说说说说 明明明明=表示定义为表示定义为表示定义为表示定义为用于对用于对用于对用于对=左边的条目进行确切的定义左边的条目进行确切的定义左边的条目进行确切的定义左边的条目进行确切的定义+表示与关系表示与关系表示与关系表示与关系X=a+bX=a+b表示表示
6、表示表示X X由由由由a a和和和和b b共同构成共同构成共同构成共同构成|,表示或关系表示或关系表示或关系表示或关系X=a|bX=a|b与与与与X=a,bX=a,b等价,表示等价,表示等价,表示等价,表示X X由由由由a a或或或或b b组成组成组成组成()()表示可选项表示可选项表示可选项表示可选项X=(a)X=(a)表示表示表示表示a a可以在可以在可以在可以在X X中出现,也可以不出现中出现,也可以不出现中出现,也可以不出现中出现,也可以不出现 表示重复表示重复表示重复表示重复大括号中的内容重复大括号中的内容重复大括号中的内容重复大括号中的内容重复0 0到多次到多次到多次到多次mnmn
7、表示规定次数的重复表示规定次数的重复表示规定次数的重复表示规定次数的重复重复的次数最少重复的次数最少重复的次数最少重复的次数最少mm次,最多次,最多次,最多次,最多n n次次次次“”“”表示基本数据元素表示基本数据元素表示基本数据元素表示基本数据元素“”“”中的内容是基本数据元素,不可再分中的内容是基本数据元素,不可再分中的内容是基本数据元素,不可再分中的内容是基本数据元素,不可再分.连接符连接符连接符连接符Month=1.12Month=1.12表示表示表示表示monthmonth可取可取可取可取1 11212中的任意值中的任意值中的任意值中的任意值*表示注释表示注释表示注释表示注释两个星号
8、之间的内容为注释信息两个星号之间的内容为注释信息两个星号之间的内容为注释信息两个星号之间的内容为注释信息本讲稿第九页,共四十四页(3)判定树(4)判定表本讲稿第十页,共四十四页3.2.3 软件需求规格说明书需求规格说明书应包括如下主要内容:需求规格说明书应包括如下主要内容:1)概述)概述2)数据描述)数据描述3)功能描述)功能描述4)性能描述)性能描述5)参考文献)参考文献6)附录)附录本讲稿第十一页,共四十四页3.3 结构化设计方法结构化设计方法软件设计可以采用多种方法,如结构软件设计可以采用多种方法,如结构化设计方法、面向数据结构的设计方法、化设计方法、面向数据结构的设计方法、面向对象的设
9、计方法等。面向对象的设计方法等。结构化软件设计可以分为总体设计和结构化软件设计可以分为总体设计和详细设计两个阶段。详细设计两个阶段。本讲稿第十二页,共四十四页3.3.1总体总体设计1总体设计阶段的主要任务及其内容总体设计阶段的主要任务及其内容总体设计阶段的主要任务及其内容总体设计阶段的主要任务及其内容总体设计阶段的主要任务是把系统的功能需求分配给软总体设计阶段的主要任务是把系统的功能需求分配给软总体设计阶段的主要任务是把系统的功能需求分配给软总体设计阶段的主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图,如图所示。件结构,形成软件的模块结构图,如图所示。件结构,形成软件的模块结构
10、图,如图所示。件结构,形成软件的模块结构图,如图所示。本讲稿第十三页,共四十四页2总体设计的表示形式及其内容(结构图)产生最佳解的一般结构产生最佳解的一般结构本讲稿第十四页,共四十四页3 3面向数据流的设计方法面向数据流的设计方法(1 1)变换型数据流图)变换型数据流图本讲稿第十五页,共四十四页(2)事物型数据流图事物型数据流图事物型数据流图事物型数据流图事物型数据流图本讲稿第十六页,共四十四页3.3.2 详细设计详细设计以总体设计阶段的工作为基础,但又不详细设计以总体设计阶段的工作为基础,但又不同于总体设计阶段,主要表现为以下两个方面。同于总体设计阶段,主要表现为以下两个方面。(1)在总体设
11、计阶段,数据项和数据结构以比较抽象的方式描述。(2)详细的设计模块包含实现对应的总体设计模块所需要的处理逻辑,主要有:详细的算法,数据表示和数据结构,实施的功能和使用的数据之间的关系。常用的过程设计工具如下:本讲稿第十七页,共四十四页3种基本的控制结构种基本的控制结构1 1程序流程图(程序流程图(PFD)本讲稿第十八页,共四十四页N-S图的基本符号图的基本符号2N-SN-S图图图图本讲稿第十九页,共四十四页PAD图的基本符号图的基本符号3PADPAD图图图图本讲稿第二十页,共四十四页3.4 软软 件件 测测 试试3.4.1 软件测试方法1白盒测试白盒测试白盒测试又称为结构测试或逻辑驱动测试,此
12、方法白盒测试又称为结构测试或逻辑驱动测试,此方法白盒测试又称为结构测试或逻辑驱动测试,此方法白盒测试又称为结构测试或逻辑驱动测试,此方法是将测试对象比作一个打开的盒子,它允许测试人员利用是将测试对象比作一个打开的盒子,它允许测试人员利用是将测试对象比作一个打开的盒子,它允许测试人员利用是将测试对象比作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构和相关信息来设计或选择测试用例,程序内部的逻辑结构和相关信息来设计或选择测试用例,程序内部的逻辑结构和相关信息来设计或选择测试用例,程序内部的逻辑结构和相关信息来设计或选择测试用例,对穿过软件的逻辑路径进行测试,可以在不同点检查程序对穿过软件的逻
13、辑路径进行测试,可以在不同点检查程序对穿过软件的逻辑路径进行测试,可以在不同点检查程序对穿过软件的逻辑路径进行测试,可以在不同点检查程序的状态,以确定实际状态与预期状态是否一致。的状态,以确定实际状态与预期状态是否一致。的状态,以确定实际状态与预期状态是否一致。的状态,以确定实际状态与预期状态是否一致。本讲稿第二十一页,共四十四页2黑盒测试黑盒测试黑盒测试方式是在已知产品应该具有黑盒测试方式是在已知产品应该具有的功能的情况下,通过测试来检验是否每的功能的情况下,通过测试来检验是否每个功能都能正常使用的测试方法。个功能都能正常使用的测试方法。本讲稿第二十二页,共四十四页3.4.2 测试用例的设计
14、测试用例的设计1白盒测试的测试用白盒测试的测试用例设计例设计(1)语句覆盖选择足够的测试用例使得程序中每个语句至少都能被执行一次。语句覆盖语句覆盖 本讲稿第二十三页,共四十四页(2)判定覆盖判定覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。(3)条件覆盖条件覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。本讲稿第二十四页,共四十四页(4)判定/条件覆盖判定/条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行一次。即要求各个判断的所有可能
15、的条件取值组合至少执行一次。(5)路径覆盖 执行足够的测试用例,使程序中所有可能的路径都至少经历一次。本讲稿第二十五页,共四十四页2黑盒测试的测试用例设计黑盒测试的测试用例设计(1 1)等价分类法)等价分类法等价分类法是一种黑盒测试技术。它的基本等价分类法是一种黑盒测试技术。它的基本思想是把输入数据划分成若干个等价类,在每个等思想是把输入数据划分成若干个等价类,在每个等价类中选取一组作为该等价类的测试用例。价类中选取一组作为该等价类的测试用例。(2 2)边界值分析法)边界值分析法 对各种输入、输出范围的边界情况设计测试用对各种输入、输出范围的边界情况设计测试用例的方法。例的方法。(3 3)错误
16、猜测法)错误猜测法 推测程序中可能存在的各种错误,从而有推测程序中可能存在的各种错误,从而有针对的编写检查错误的例子。针对的编写检查错误的例子。本讲稿第二十六页,共四十四页3 3测试方案的建立与实施测试方案的建立与实施测试方案的建立与实施测试方案的建立与实施软件测试过程的一般步骤:软件测试过程的一般步骤:软件测试过程的一般步骤:软件测试过程的一般步骤:(1 1 1 1)单元测试)单元测试)单元测试)单元测试(2 2 2 2)集成测试)集成测试)集成测试)集成测试 (3 3 3 3)验收测试)验收测试)验收测试)验收测试(4 4 4 4)系统测试)系统测试)系统测试)系统测试 功能测试功能测试
17、性能测试性能测试 操作测试操作测试 配置测试配置测试 外部接口测试外部接口测试 安全测试安全测试本讲稿第二十七页,共四十四页3.5 程序的调试程序的调试3.5.1 静态调试静态调试3.5.2 动态调试动态调试本讲稿第二十八页,共四十四页典型考题分析典型考题分析 本讲稿第二十九页,共四十四页(1)下面不属于软件工程的下面不属于软件工程的3个要素的是个要素的是_。A.工具工具B.过程过程C.方法方法D.环境环境答案答案:D本讲稿第三十页,共四十四页(2)在结构化方法中,用数据流程图在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段)作为描述工具的软件开发阶段是是_。A.可行性分析可行
18、性分析B.需求分析需求分析C.详细设计详细设计D.程序编码程序编码 答案答案:B本讲稿第三十一页,共四十四页(3)程序流程图(程序流程图(PFD)中的箭头代表的)中的箭头代表的是是_。A.数据流数据流B.控制流控制流C.调用关系调用关系D.组成关系组成关系答案答案:B本讲稿第三十二页,共四十四页(4)在软件开发中,下面任务不属于设计阶在软件开发中,下面任务不属于设计阶段的是段的是_。A.数据结构设计数据结构设计B.给出系统模块结构给出系统模块结构C.定义模块算法定义模块算法D.定义需求并建立系统模型定义需求并建立系统模型答案答案:D本讲稿第三十三页,共四十四页(5)面向对象的设计方法与传统的的
19、面向过程面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是的方法有本质不同,它的基本原理是_。A.模拟现实世界中不同事物之间的联系模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而使用现实世界的概念抽象地思考问题从而自然地解决问题自然地解决问题D.鼓励开发者在软件开发的绝大部分中都用鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考实际领域的概念去思考答案答案:C本讲稿第三十四页,共四十四页(6)在结构化方法中,软件功能分解属于下在结构化方法中,软件功能分解属于下列软件开发
20、中的阶段是列软件开发中的阶段是_。A.详细设计详细设计B.需求分析需求分析C.总体设计总体设计D.编程调试编程调试 答案答案:C本讲稿第三十五页,共四十四页(7)软件调试的目的是软件调试的目的是_。A.发现错误发现错误B.改正错误改正错误C.改善软件的性能改善软件的性能D.挖掘软件的潜能挖掘软件的潜能答案答案:B本讲稿第三十六页,共四十四页(8)下列不属于软件调试技术的是下列不属于软件调试技术的是_。A.强行排错法强行排错法B.集成测试法集成测试法C.回溯法回溯法D.原因排除法原因排除法答案答案:B本讲稿第三十七页,共四十四页(9)下列叙述中,不属于软件需求规格说明下列叙述中,不属于软件需求规
21、格说明书的作用的是书的作用的是_。A.便于用户、开发人员进行理解和交流便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件反映出用户问题的结构,可以作为软件开发工作的基础和依据开发工作的基础和依据C.作为确认测试和验收的依据作为确认测试和验收的依据D.便于开发人员进行需求分析便于开发人员进行需求分析 答案答案:D本讲稿第三十八页,共四十四页(10)需求分析阶段的任务是确定需求分析阶段的任务是确定_。A.软件开发方法软件开发方法B.软件开发工具软件开发工具C.软件开发费用软件开发费用D.软件系统功能软件系统功能答案答案:D本讲稿第三十九页,共四十四页(11)下列不属于结构化分析
22、的常用工具的是下列不属于结构化分析的常用工具的是_。A.数据流图数据流图B.数据字典数据字典C.判定树判定树D.PAD图图答案答案:D本讲稿第四十页,共四十四页(12)在软件工程中,白箱测试法可用于测在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是试程序的内部结构。此方法将程序看做是_。A.循环的集合循环的集合B.地址的集合地址的集合C.路径的集合路径的集合D.目标的集合目标的集合答案答案:C本讲稿第四十一页,共四十四页(13)下面不属于软件设计原则的是下面不属于软件设计原则的是_。A.抽象抽象B.模块化模块化C.自底向上自底向上D.信息隐蔽信息隐蔽 答案答案:C本讲稿第四十二页,共四十四页(14)数据流图用于抽象描述一个软件的逻辑模型,数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是的图符不属于数据流图合法图符的是_。A.控制流控制流B.加工加工C.数据存储数据存储D.源和潭源和潭答案答案:A本讲稿第四十三页,共四十四页(15)软件工程研究的内容主要包括:软件工程研究的内容主要包括:_技术和软件工程管理。技术和软件工程管理。答案答案:软件开发:软件开发本讲稿第四十四页,共四十四页