《软件工程基础》PPT课件

上传人:工**** 文档编号:579062645 上传时间:2024-08-25 格式:PPT 页数:32 大小:354.87KB
返回 下载 相关 举报
《软件工程基础》PPT课件_第1页
第1页 / 共32页
《软件工程基础》PPT课件_第2页
第2页 / 共32页
《软件工程基础》PPT课件_第3页
第3页 / 共32页
《软件工程基础》PPT课件_第4页
第4页 / 共32页
《软件工程基础》PPT课件_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《《软件工程基础》PPT课件》由会员分享,可在线阅读,更多相关《《软件工程基础》PPT课件(32页珍藏版)》请在金锄头文库上搜索。

1、全国计算机等级考试全国计算机等级考试公共基础知识公共基础知识第3章 软件工程基础软件工程基础 3.1 软件工程基本概念软件工程基本概念1、软件的相关概念、软件的相关概念 计算机软件是包括计算机软件是包括程序程序、数据数据及及相关文档相关文档的完的完整集合。整集合。软件的特点包括:软件的特点包括:软件是一种软件是一种逻辑实体逻辑实体; 软软件件的的生生产产与与硬硬件件不不同同,它它没没有有明明显显的的制制作作过程;过程; 软软件件在在运运行行、使使用用期期间间不不存存在在磨磨损损、老老化化问问题;题; 软件的开发、运行对计算机系统具有依赖性,受计软件的开发、运行对计算机系统具有依赖性,受计算机系

2、统的限制,这导致了软件移植的问题;算机系统的限制,这导致了软件移植的问题; 软件复杂性高,成本昂贵;软件复杂性高,成本昂贵; 软件开发涉及诸多的社会因素。软件开发涉及诸多的社会因素。软件分类:软件分类:软件按功能分为软件按功能分为应用软件应用软件、系统软件系统软件、支撑软件支撑软件(或(或工具软件工具软件)。)。 2、软件危机与软件工程、软件危机与软件工程 所谓所谓软件危机软件危机是泛指在计算机软件的开发和维护是泛指在计算机软件的开发和维护过程中所遇到的一系列过程中所遇到的一系列严重问题严重问题。软件危机可以。软件危机可以归结为成本、质量、生产率等问题。归结为成本、质量、生产率等问题。软件工程

3、源自软件危机。软件工程源自软件危机。软件工程软件工程是应用于计算机软件的是应用于计算机软件的定义定义、开发开发和和维维护护的一整套方法、工具、文档、实践标准和工序。的一整套方法、工具、文档、实践标准和工序。软件工程的主要思想软件工程的主要思想是将工程化原则运用到软件开是将工程化原则运用到软件开发过程,它包括发过程,它包括3个要素:个要素:方法方法、工具工具和和过程过程。软件工程过程包含软件工程过程包含4种种基本活动基本活动:(1)P(Plan)软件规格说明。规定软件的功软件规格说明。规定软件的功能及其运行时的限制。能及其运行时的限制。(2)D(Do)软件开发。产生满足规格说明的软件开发。产生满

4、足规格说明的软件。软件。(3)C(Check)软件确认。确认软件能够满足软件确认。确认软件能够满足用户提出的要求。用户提出的要求。(4)A(Action)软件演进。为满足客户的软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。变更要求,软件必须在使用的过程中演进。软软件件生生命命周周期期:软软件件产产品品从从提提出出、实实现现、使使用维护到停止使用退役的过程。用维护到停止使用退役的过程。 软件生命周期三个阶段:软件生命周期三个阶段:软件定义软件定义软件开发软件开发运行维护运行维护3、软件生命周期、软件生命周期软件生命周期的主要活动阶段软件生命周期的主要活动阶段如下图:如下图: 可行性

5、研究可行性研究初步项目计划初步项目计划需求分析需求分析概要设计概要设计详细设计详细设计实现实现测试测试维护维护使用使用退役退役定义定义阶段开发开发阶段维护维护阶段4、软件工程的目标和与原则、软件工程的目标和与原则(1)软件工程目标软件工程目标:在给定成本、进度的前提下,开发出:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。户需求的产品。(2)软件工程需要达到的基本目标应是软件工程需要达到的基本目标应是

6、:付出较低的开发:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成发的软件易于移植;需要较低的维护费用;能按时完成开发,及时交付使用。开发,及时交付使用。(3)软件工程原则软件工程原则:抽象抽象、信息隐蔽信息隐蔽、模块化模块化、局部化局部化、确定性确定性、一致性一致性、完备性完备性和和可验证性可验证性。5、软件开发工具与软件开发环境、软件开发工具与软件开发环境(1)软件开发工具软件开发工具软件开发工具的完善和发展将促使软件开发方法的进步和软件开发工具的完善和发展将促使软件开发方法的进步

7、和完善,促进软件开发的高速度和高质量。软件开发工具完善,促进软件开发的高速度和高质量。软件开发工具的发展是从单项工具的开发逐步向集成工具发展的,软的发展是从单项工具的开发逐步向集成工具发展的,软件开发工具为软件工程方法提供了自动的或半自动的软件开发工具为软件工程方法提供了自动的或半自动的软件支撑环境。件支撑环境。(2)软件开发环境)软件开发环境 软件开发环境(或称软件工程环境)是全面支持软件开发软件开发环境(或称软件工程环境)是全面支持软件开发全过程的软件工具的集合。全过程的软件工具的集合。计算机辅助软件工程(计算机辅助软件工程(CASE,Computer Aided Software Eng

8、ineering)将各种软件工具、开发机器和将各种软件工具、开发机器和一个存放开发过程信息的中心数据库组合起来,形成软一个存放开发过程信息的中心数据库组合起来,形成软件工程环境。它将极大降低软件开发的技术难度并保证件工程环境。它将极大降低软件开发的技术难度并保证软件开发的质量。软件开发的质量。3.2 结构化分析方法结构化分析方法 结构化方法的结构化方法的核心核心和和基础基础是是结构化程序设计理论结构化程序设计理论。 1、需求分析需求分析方法有:需求分析方法有:(1)结构化需求分析方法;)结构化需求分析方法;(2)面向对象的分析方法。)面向对象的分析方法。需求分析的需求分析的任务任务就是导出目标

9、系统的逻辑模型,解就是导出目标系统的逻辑模型,解决决“做什么做什么”的问题。的问题。需求分析一般分为需求分析一般分为需求获取需求获取、需求分析需求分析、编写需求编写需求规格说明书规格说明书和和需求评审需求评审四个步骤进行。四个步骤进行。2 结构化分析方法结构化分析方法 结构化分析方法是结构化程序设计理论在结构化分析方法是结构化程序设计理论在软件需求软件需求分析阶段分析阶段的应用。的应用。结构化分析方法的结构化分析方法的实质实质:着眼于数据流,:着眼于数据流,自顶向下,自顶向下,逐层分解逐层分解,建立系统的处理流程,以数据流图和,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的数据

10、字典为主要工具,建立系统的逻辑模型逻辑模型。结构化分析的结构化分析的常用工具常用工具:(1)数据流图;)数据流图;(2)数据字典;)数据字典;(3)判定树;)判定树;(4)判定表。)判定表。 2 结构化分析方法结构化分析方法 数据流图数据流图:描述数据处理过程的工具,是需求理:描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统功能解的逻辑模型的图形表示,它直接支持系统功能建模。建模。下图是数据流图的基本图形元素:下图是数据流图的基本图形元素:数据流图数据流图下图是一个数据流图的示例:下图是一个数据流图的示例:数据字典:数据字典: 对对所所有有与与系系统统相相关关的的数数据据

11、元元素素的的一一个个有有组组织织的的列列表表,以以及及精精确确的的、严严格格的的定定义义,使使得得用用户户和和系系统统分分析析员员对对于于输输入入、输输出出、存存储储成成分分和和中中间间计计算算结结果有共同的理解。果有共同的理解。数据字典的作用数据字典的作用是对数据流图中出现的被命名的图是对数据流图中出现的被命名的图形元素的确切解释。形元素的确切解释。数据字典是结构化分析方法的数据字典是结构化分析方法的核心核心。 判定树:判定树:从问题定义的文字描述中分清哪些是判从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中定的条件,哪些是判定的结论,根据描述材料中的连接词找出判

12、定条件之间的从属关系、并列关的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。系、选择关系,根据它们构造判定树。判判定定表表:与与判判定定树树相相似似,当当数数据据流流图图中中的的加加工工要要依依赖赖于于多多个个逻逻辑辑条条件件的的取取值值,即即完完成成该该加加工工的的一一组组动动作作是是由由于于某某一一组组条条件件取取值值的的组组合合而而引引发发的的,使用判定表描述比较适宜。使用判定表描述比较适宜。 3、软件需求规格说明书软件需求规格说明书是软件需求规格说明书是需求分析阶段的最后成需求分析阶段的最后成果果,是软件开发中的重要文档之一。,是软件开发中的重要文档之一。软

13、件需求规格说明书的软件需求规格说明书的特点:特点:(1)正确性;)正确性;(2)无歧义性;)无歧义性;(3)完整性;)完整性;(4)可验证性;)可验证性;(5)一致性;)一致性;(6)可理解性;)可理解性;(7)可追踪性。)可追踪性。3.3 结构化设计方法结构化设计方法 1、软件设计的基础、软件设计的基础需求分析需求分析主要解决主要解决“做什么做什么”的问题,而的问题,而软件设软件设计计主要解决主要解决“怎么做怎么做”的问题。的问题。软件设计主要内容包括:软件设计主要内容包括:软件结构设计软件结构设计、数据设计数据设计、接口设计接口设计、过程设计过程设计。(按技术观点划分)(按技术观点划分)软

14、件设计分两步完成,即软件设计分两步完成,即概要设计概要设计和和详细设计详细设计。(按工程管理角度划分)(按工程管理角度划分)3.3 结构化设计方法结构化设计方法 1、软件设计的基础、软件设计的基础软件设计的基本原理包括:软件设计的基本原理包括:抽象抽象、模块化模块化、信息信息隐蔽隐蔽和和模块独立化模块独立化。模块的模块的耦合性耦合性和和内聚性内聚性是衡量软件的模块独立性是衡量软件的模块独立性的的两个定性指标两个定性指标。内聚性内聚性:是一个模块内部各个元素间彼此结合的:是一个模块内部各个元素间彼此结合的紧密程度的度量。紧密程度的度量。耦合性耦合性:是模块间互相连接的紧密程度的度量。:是模块间互

15、相连接的紧密程度的度量。一个设计良好的软件系统应具有一个设计良好的软件系统应具有高内聚、低耦合高内聚、低耦合的特征。的特征。2、总体设计(概要设计)和详细设计、总体设计(概要设计)和详细设计 (1)总体设计(概要设计)总体设计(概要设计)软件概要设计的软件概要设计的基本任务基本任务是:是:1)设计软件系统结构;)设计软件系统结构;2)数据结构及数据库设计;)数据结构及数据库设计;3)编写概要设计文档;)编写概要设计文档;4)概要设计文档评审。)概要设计文档评审。常用的软件结构设计工具是常用的软件结构设计工具是结构图结构图,也称,也称程序结程序结构图。构图。经常使用的结构图有四种模块类型:经常使

16、用的结构图有四种模块类型:传入模块传入模块、传出模块传出模块、变换模块变换模块和和协调模块协调模块。(1)总体设计(概要设计)总体设计(概要设计)程序结构图的基本图符:程序结构图的基本图符:模块用一个矩形表示,箭头表示模块间的调用关模块用一个矩形表示,箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。还可用带实心块调用过程中来回传递的信息。还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据信息。表示传递的是数据信息。程序结构图的有关术语程序结构图的有关术语u

17、深度深度:表示控制的层数。:表示控制的层数。u上级模块、从属模块上级模块、从属模块:上、下两层模块:上、下两层模块a和和b,且有,且有a调用调用b,则,则a是上级模块,是上级模块,b是从属模块。是从属模块。u宽度宽度:整体控制跨度(最大模块数的层)的表示。:整体控制跨度(最大模块数的层)的表示。u扇入扇入:调用一个给定模块的模块个数。:调用一个给定模块的模块个数。u扇出扇出:一个模块直接调用的其他模块数。:一个模块直接调用的其他模块数。u原子模块原子模块:树中位于叶子结点的模块。:树中位于叶子结点的模块。结构图的基本形式:结构图的基本形式:基本形式、顺序形式、重复形基本形式、顺序形式、重复形式

18、、选择形式。式、选择形式。面向数据流的设计方法面向数据流的设计方法:面向数据流的设计就是将数据流图变换成结构图。面向数据流的设计就是将数据流图变换成结构图。典型的数据流类型有两种:典型的数据流类型有两种:变换型变换型和和事务型事务型。变换型系统结构图由输入、中心变换、输出三部分变换型系统结构图由输入、中心变换、输出三部分组成。组成。事务型数据流的特点是:接受一项事务,根据事务事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。然后给出结果。 (2)详细设计)详细设计详细设计是为软件结构图中的每一个

19、模块确定实现详细设计是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。示算法和数据结构的细节。详细设计的任务详细设计的任务是确定实现算法和局部数据结构,是确定实现算法和局部数据结构,不同于编码或编程。不同于编码或编程。常用的过程设计(即详细设计)工具有以下几种:常用的过程设计(即详细设计)工具有以下几种:图形工具:图形工具:程序流程图程序流程图、N-S(方盒图)、(方盒图)、PAD(问题分析图)(问题分析图)和和HIPO(层次图(层次图+输入输入/处理处理/输输出图)。出图)。表格工具:表格工具:判定

20、表判定表。语言工具:语言工具:PDL(伪码):(伪码):过程设计语言,它是用过程设计语言,它是用正文形式表示数据和处理过程的设计工具。正文形式表示数据和处理过程的设计工具。3.4 软件测试软件测试1、软件测试定义:使用人工或自动手段来运行、软件测试定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之满足规定的需求或是弄清预期结果与实际结果之间的差别。间的差别。软件测试的目的软件测试的目的:尽可能地多:尽可能地多发现程序中的错误发现程序中的错误,不能也不可能证明程序没有错误。不能也不可能证明程

21、序没有错误。2、软件测试方法:、软件测试方法:静态测试静态测试和和动态测试动态测试。静态测试静态测试包括代码检查、静态结构分析、代码质包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。量度量。不实际运行软件,主要通过人工进行。动态测试动态测试:是基于计算机的测试,主要包括:是基于计算机的测试,主要包括白盒白盒测试方法测试方法和和黑盒测试方法黑盒测试方法。 (1)白盒测试)白盒测试白盒测试方法白盒测试方法也称为也称为结构测试结构测试或或逻辑驱动测试逻辑驱动测试。它。它是根据软件产品的内部工作过程,检查内部成分,是根据软件产品的内部工作过程,检查内部成分,以确认每种内部操

22、作符合设计规格要求。以确认每种内部操作符合设计规格要求。白盒测试的基本原则:白盒测试的基本原则:保证所测模块中每一独立路保证所测模块中每一独立路径至少执行一次;保证所测模块所有判断的每一径至少执行一次;保证所测模块所有判断的每一分支至少执行一次;保证所测模块每一循环都在分支至少执行一次;保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。有内部数据结构的有效性。白盒测试法的测试用例白盒测试法的测试用例是根据程序的内部逻辑来设是根据程序的内部逻辑来设计的,计的,主要用软件的单元测试主要用软件的单元测试,主要方法有主要

23、方法有逻辑逻辑覆盖覆盖、基本路径测试基本路径测试等。等。(2)黑盒测试)黑盒测试黑盒测试方法黑盒测试方法也称为也称为功能测试功能测试或或数据驱动测试数据驱动测试。黑。黑盒测试是对软件已经实现的功能是否满足需求进盒测试是对软件已经实现的功能是否满足需求进行测试和验证。行测试和验证。黑盒测试主要诊断功能不对或遗漏、接口错误、数黑盒测试主要诊断功能不对或遗漏、接口错误、数据结构或外部数据库访问错误、性能错误、初始据结构或外部数据库访问错误、性能错误、初始化和终止条件错误。化和终止条件错误。主要方法有主要方法有等价类划分法等价类划分法、边界值分析法边界值分析法、错误推测法错误推测法等。等。黑盒测试是程

24、序功能的测试,黑盒测试是程序功能的测试,主要用软件的确认测主要用软件的确认测试。试。 3、软件测试过程、软件测试过程软件测试过程一般按软件测试过程一般按4个步骤进行:个步骤进行:单元测试单元测试集成测试集成测试验收测试(确认测试)验收测试(确认测试)系统测试系统测试(1)单元测试)单元测试单单元元测测试试是是对对软软件件设设计计的的最最小小单单位位模模块块(程程序序单元)进行正确性检测的测试。单元)进行正确性检测的测试。单单元元测测试试的的目目的的是是发发现现各各模模块块内内部部可可能能存存在在的的各各种种错误。错误。(1)单元测试)单元测试单元测试的单元测试的依据是依据是详细设计说明书和源程

25、序详细设计说明书和源程序。单元。单元测试的技术可以采用静态分析和动态测试。对动测试的技术可以采用静态分析和动态测试。对动态测试通常以白盒测试为主,辅之以黑盒测试。态测试通常以白盒测试为主,辅之以黑盒测试。在进行单元测试时,要用一些辅助模块去模拟与被在进行单元测试时,要用一些辅助模块去模拟与被测模块相联系的其他模块,即为被测模块设计和测模块相联系的其他模块,即为被测模块设计和搭建搭建驱动模块驱动模块和和桩模块桩模块。驱动模块驱动模块相当于被测模块的主程序,它接收测试数相当于被测模块的主程序,它接收测试数据,并传给被测模块,输出实际测试结果;据,并传给被测模块,输出实际测试结果;桩模块桩模块是模拟

26、其他被调用模块,不必将子模块的所是模拟其他被调用模块,不必将子模块的所有功能带入。有功能带入。(2)集成测试)集成测试集成测试集成测试是测试和组装软件的过程。它是把模块在是测试和组装软件的过程。它是把模块在按照设计要求组装起来的同时进行测试,按照设计要求组装起来的同时进行测试,主要目主要目的是发现与接口有关的错误。的是发现与接口有关的错误。集成测试的集成测试的依据是依据是总体设计说明书。总体设计说明书。集成测试所涉及的集成测试所涉及的内容内容包括:包括:软件单元的接口测试软件单元的接口测试全局数据结构测试全局数据结构测试边界条件和非法输入的测试等边界条件和非法输入的测试等(3)确认测试)确认测

27、试确认测试的任务是验证软件的功能和性能及其他特确认测试的任务是验证软件的功能和性能及其他特性是否满足需求规格说明中确定的各种需求,以性是否满足需求规格说明中确定的各种需求,以及软件配置是否完全、正确。及软件配置是否完全、正确。(4)系统测试)系统测试系统测试是将通过确认测试的软件,作为整个基于系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素组合在一支持软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进起,在实际运行(使用)环境下对计算机系统进行一系列的

28、集成测试和确认测试。行一系列的集成测试和确认测试。 3.5 程序的调试程序的调试程序调试的程序调试的任务是诊断和改正程序中的错误任务是诊断和改正程序中的错误,主要,主要在开发阶段进行。(注意与软件测试区分)在开发阶段进行。(注意与软件测试区分)程序调试的基本步骤:(程序调试的基本步骤:(1)错误定位;()错误定位;(2)修改)修改设计和代码,以排除错误;(设计和代码,以排除错误;(3)进行回归测试,)进行回归测试,防止引进新的错误。防止引进新的错误。软件调试可分为静态调试和动态调试。静态调试主软件调试可分为静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错,要是指通过人的思维来分析源程序代码和排错,是主要的调试手段,而动态调试是辅助静态调试。是主要的调试手段,而动态调试是辅助静态调试。对软件主要的对软件主要的调试方法可以采用调试方法可以采用:(:(1)强行排错)强行排错法;(法;(2)回溯法;()回溯法;(3)原因排除法。)原因排除法。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号