




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程基础1 软件工程基础2 第3章 软件工程基础软件工程基础 软件工程基础3 3.1 软件工程基本概念软件工程基本概念 1、软件的相关概念、软件的相关概念 计算机软件是包括计算机软件是包括程序程序、数据数据及及相关文档相关文档的完的完 整集合。整集合。 软件的特点包括:软件的特点包括: 软件是一种软件是一种逻辑实体逻辑实体; 软件的生产与硬件不同,它没有明显的制作软件的生产与硬件不同,它没有明显的制作 过程;过程; 软件在运行、使用期间不存在磨损、老化问软件在运行、使用期间不存在磨损、老化问 题;题; 软件工程基础4 软件的开发、运行对计算机系统具有依赖性,受软件的开发、运行对计算机系统具
2、有依赖性,受 计算机系统的限制,这导致了软件移植的问题;计算机系统的限制,这导致了软件移植的问题; 软件复杂性高,成本昂贵;软件复杂性高,成本昂贵; 软件开发涉及诸多的社会因素。软件开发涉及诸多的社会因素。 软件分类:软件分类: 软件按功能分为软件按功能分为应用软件应用软件、系统软件系统软件、支撑软件支撑软件 (或(或工具软件工具软件)。)。 软件工程基础5 2、软件危机与软件工程、软件危机与软件工程 所谓所谓软件危机软件危机是泛指在计算机软件的开发和维护是泛指在计算机软件的开发和维护 过程中所遇到的一系列过程中所遇到的一系列严重问题严重问题。软件危机可以。软件危机可以 归结为成本、质量、生产
3、率等问题。归结为成本、质量、生产率等问题。 软件工程源自软件危机。软件工程源自软件危机。 软件工程软件工程是应用于计算机软件的是应用于计算机软件的定义定义、开发开发和和维维 护护的一整套方法、工具、文档、实践标准和工序。的一整套方法、工具、文档、实践标准和工序。 软件工程基础6 软件工程的主要思想软件工程的主要思想是将工程化原则运用到软件开是将工程化原则运用到软件开 发过程,它包括发过程,它包括3个要素:个要素:方法方法、工具工具和和过程过程。 软件工程过程包含软件工程过程包含4种种基本活动基本活动: (1)P(Plan)软件规格说明。规定软件的软件规格说明。规定软件的 功能及其运行时的限制。
4、功能及其运行时的限制。 (2)D(Do)软件开发。产生满足规格说明的软件开发。产生满足规格说明的 软件。软件。 (3)C(Check)软件确认。确认软件能够满软件确认。确认软件能够满 足用户提出的要求。足用户提出的要求。 (4)A(Action)软件演进。为满足客户的软件演进。为满足客户的 变更要求,软件必须在使用的过程中演进。变更要求,软件必须在使用的过程中演进。 软件工程基础7 软件生命周期软件生命周期:软件产品从提出、实现、:软件产品从提出、实现、 使用维护到停止使用退役的过程。使用维护到停止使用退役的过程。 软件生命周期三个阶段:软件生命周期三个阶段: 软件定义软件定义 软件开发软件开
5、发 运行维护运行维护 3、软件生命周期、软件生命周期 软件工程基础8 软件生命周期的主要活动阶段软件生命周期的主要活动阶段 如下图:如下图: 可行性研究可行性研究 初步项目计划初步项目计划 需求分析需求分析 概要设计概要设计 详细设计详细设计 实现实现 测试测试 维护维护 使用使用 退役退役 定义定义 阶段 开发开发 阶段 维护维护 阶段 软件工程基础9 4、软件工程的目标和与原则、软件工程的目标和与原则 (1)软件工程目标软件工程目标:在给定成本、进度的前提下,开发出:在给定成本、进度的前提下,开发出 具有有效性、可靠性、可理解性、可维护性、可重用性、具有有效性、可靠性、可理解性、可维护性、
6、可重用性、 可适应性、可移植性、可追踪性和可互操作性且满足用可适应性、可移植性、可追踪性和可互操作性且满足用 户需求的产品。户需求的产品。 (2)软件工程需要达到的基本目标应是软件工程需要达到的基本目标应是:付出较低的开发:付出较低的开发 成本;达到要求的软件功能;取得较好的软件性能;开成本;达到要求的软件功能;取得较好的软件性能;开 发的软件易于移植;需要较低的维护费用;能按时完成发的软件易于移植;需要较低的维护费用;能按时完成 开发,及时交付使用。开发,及时交付使用。 (3)软件工程原则软件工程原则:抽象抽象、信息隐蔽信息隐蔽、模块化模块化、局部化局部化、 确定性确定性、一致性一致性、完备
7、性完备性和和可验证性可验证性。 软件工程基础10 5、软件开发工具与软件开发环境、软件开发工具与软件开发环境 (1)软件开发工具软件开发工具 软件开发工具的完善和发展将促使软件开发方法的进步和软件开发工具的完善和发展将促使软件开发方法的进步和 完善,促进软件开发的高速度和高质量。软件开发工具完善,促进软件开发的高速度和高质量。软件开发工具 的发展是从单项工具的开发逐步向集成工具发展的,软的发展是从单项工具的开发逐步向集成工具发展的,软 件开发工具为软件工程方法提供了自动的或半自动的软件开发工具为软件工程方法提供了自动的或半自动的软 件支撑环境。件支撑环境。 (2)软件开发环境)软件开发环境 软
8、件开发环境(或称软件工程环境)是全面支持软件开发软件开发环境(或称软件工程环境)是全面支持软件开发 全过程的软件工具的集合。全过程的软件工具的集合。 计算机辅助软件工程(计算机辅助软件工程(CASE,Computer Aided Software Engineering)将各种软件工具、开发机器和将各种软件工具、开发机器和 一个存放开发过程信息的中心数据库组合起来,形成软一个存放开发过程信息的中心数据库组合起来,形成软 件工程环境。它将极大降低软件开发的技术难度并保证件工程环境。它将极大降低软件开发的技术难度并保证 软件开发的质量。软件开发的质量。 软件工程基础11 3.2 结构化分析方法结构
9、化分析方法 结构化方法的结构化方法的核心核心和和基础基础是是结构化程序设计理论结构化程序设计理论。 1、需求分析 需求分析方法有:需求分析方法有: (1)结构化需求分析方法;)结构化需求分析方法; (2)面向对象的分析方法。)面向对象的分析方法。 需求分析的需求分析的任务任务就是导出目标系统的逻辑模型,解就是导出目标系统的逻辑模型,解 决决“做什么做什么”的问题。的问题。 需求分析一般分为需求分析一般分为需求获取需求获取、需求分析需求分析、编写需求编写需求 规格说明书规格说明书和和需求评审需求评审四个步骤进行。四个步骤进行。 软件工程基础12 2 结构化分析方法结构化分析方法 结构化分析方法是
10、结构化程序设计理论在结构化分析方法是结构化程序设计理论在软件需求软件需求 分析阶段分析阶段的应用。的应用。 结构化分析方法的结构化分析方法的实质实质:着眼于数据流,:着眼于数据流,自顶向下,自顶向下, 逐层分解逐层分解,建立系统的处理流程,以数据流图和,建立系统的处理流程,以数据流图和 数据字典为主要工具,建立系统的数据字典为主要工具,建立系统的逻辑模型逻辑模型。 结构化分析的结构化分析的常用工具常用工具: (1)数据流图;)数据流图; (2)数据字典;)数据字典; (3)判定树;)判定树; (4)判定表。)判定表。 软件工程基础13 2 结构化分析方法结构化分析方法 数据流图数据流图:描述数
11、据处理过程的工具,是需求理:描述数据处理过程的工具,是需求理 解的逻辑模型的图形表示,它直接支持系统功能解的逻辑模型的图形表示,它直接支持系统功能 建模。建模。 下图是数据流图的基本图形元素:下图是数据流图的基本图形元素: 加工数据流存储文件源、潭 软件工程基础14 数据流图数据流图 下图是一个数据流图的示例:下图是一个数据流图的示例: 软件工程基础15 数据字典:数据字典: 对所有与系统相关的数据元素的一个有组织的列对所有与系统相关的数据元素的一个有组织的列 表,以及精确的、严格的定义,使得用户和系统表,以及精确的、严格的定义,使得用户和系统 分析员对于输入、输出、存储成分和中间计算结分析员
12、对于输入、输出、存储成分和中间计算结 果有共同的理解。果有共同的理解。 数据字典的作用数据字典的作用是对数据流图中出现的被命名的图是对数据流图中出现的被命名的图 形元素的确切解释。形元素的确切解释。 数据字典是结构化分析方法的数据字典是结构化分析方法的核心核心。 软件工程基础16 判定树:判定树:从问题定义的文字描述中分清哪些是判从问题定义的文字描述中分清哪些是判 定的条件,哪些是判定的结论,根据描述材料中定的条件,哪些是判定的结论,根据描述材料中 的连接词找出判定条件之间的从属关系、并列关的连接词找出判定条件之间的从属关系、并列关 系、选择关系,根据它们构造判定树。系、选择关系,根据它们构造
13、判定树。 判定表:判定表:与判定树相似,当数据流图中的加工要与判定树相似,当数据流图中的加工要 依赖于多个逻辑条件的取值,即完成该加工的一依赖于多个逻辑条件的取值,即完成该加工的一 组动作是由于某一组条件取值的组合而引发的,组动作是由于某一组条件取值的组合而引发的, 使用判定表描述比较适宜。使用判定表描述比较适宜。 软件工程基础17 3、软件需求规格说明书 软件需求规格说明书是软件需求规格说明书是需求分析阶段的最后成需求分析阶段的最后成 果果,是软件开发中的重要文档之一。,是软件开发中的重要文档之一。 软件需求规格说明书的软件需求规格说明书的特点:特点: (1)正确性;)正确性; (2)无歧义
14、性;)无歧义性; (3)完整性;)完整性; (4)可验证性;)可验证性; (5)一致性;)一致性; (6)可理解性;)可理解性; (7)可追踪性。)可追踪性。 软件工程基础18 3.3 结构化设计方法结构化设计方法 1、软件设计的基础、软件设计的基础 需求分析需求分析主要解决主要解决“做什么做什么”的问题,而的问题,而软件设软件设 计计主要解决主要解决“怎么做怎么做”的问题。的问题。 软件设计主要内容包括:软件设计主要内容包括: 软件结构设计软件结构设计、数据设计数据设计、接口设计接口设计、过程设计过程设计。 (按技术观点划分)(按技术观点划分) 软件设计分两步完成,即软件设计分两步完成,即概
15、要设计概要设计和和详细设计详细设计。 (按工程管理角度划分)(按工程管理角度划分) 软件工程基础19 3.3 结构化设计方法结构化设计方法 1、软件设计的基础、软件设计的基础 软件设计的基本原理包括:软件设计的基本原理包括:抽象抽象、模块化模块化、信息信息 隐蔽隐蔽和和模块独立化模块独立化。 模块的模块的耦合性耦合性和和内聚性内聚性是衡量软件的模块独立性是衡量软件的模块独立性 的的两个定性指标两个定性指标。 内聚性内聚性:是一个模块内部各个元素间彼此结合的:是一个模块内部各个元素间彼此结合的 紧密程度的度量。紧密程度的度量。 耦合性耦合性:是模块间互相连接的紧密程度的度量。:是模块间互相连接的
16、紧密程度的度量。 一个设计良好的软件系统应具有一个设计良好的软件系统应具有高内聚、低耦合高内聚、低耦合 的特征。的特征。 软件工程基础20 2、总体设计(概要设计)和详细设计、总体设计(概要设计)和详细设计 (1)总体设计(概要设计)总体设计(概要设计) 软件概要设计的软件概要设计的基本任务基本任务是:是: 1)设计软件系统结构;)设计软件系统结构; 2)数据结构及数据库设计;)数据结构及数据库设计; 3)编写概要设计文档;)编写概要设计文档; 4)概要设计文档评审。)概要设计文档评审。 常用的软件结构设计工具是常用的软件结构设计工具是结构图结构图,也称,也称程序结程序结 构图。构图。 经常使
17、用的结构图有四种模块类型:经常使用的结构图有四种模块类型:传入模块传入模块、 传出模块传出模块、变换模块变换模块和和协调模块协调模块。 软件工程基础21 (1)总体设计(概要设计)总体设计(概要设计) 程序结构图的基本图符:程序结构图的基本图符: 模块用一个矩形表示,箭头表示模块间的调用关模块用一个矩形表示,箭头表示模块间的调用关 系。在结构图中还可以用带注释的箭头表示模系。在结构图中还可以用带注释的箭头表示模 块调用过程中来回传递的信息。还可用带实心块调用过程中来回传递的信息。还可用带实心 圆的箭头表示传递的是控制信息,空心圆箭心圆的箭头表示传递的是控制信息,空心圆箭心 表示传递的是数据信息
18、。表示传递的是数据信息。 一般模块数据信息控制信息 软件工程基础22 程序结构图的有关术语程序结构图的有关术语 u深度深度:表示控制的层数。:表示控制的层数。 u上级模块、从属模块上级模块、从属模块:上、下两层模块:上、下两层模块a和和b,且有,且有 a调用调用b,则,则a是上级模块,是上级模块,b是从属模块。是从属模块。 u宽度宽度:整体控制跨度(最大模块数的层)的表示。:整体控制跨度(最大模块数的层)的表示。 u扇入扇入:调用一个给定模块的模块个数。:调用一个给定模块的模块个数。 u扇出扇出:一个模块直接调用的其他模块数。:一个模块直接调用的其他模块数。 u原子模块原子模块:树中位于叶子结
19、点的模块。:树中位于叶子结点的模块。 软件工程基础23 结构图的基本形式:结构图的基本形式:基本形式、顺序形式、重复形基本形式、顺序形式、重复形 式、选择形式。式、选择形式。 面向数据流的设计方法面向数据流的设计方法: 面向数据流的设计就是将数据流图变换成结构图。面向数据流的设计就是将数据流图变换成结构图。 典型的数据流类型有两种:典型的数据流类型有两种:变换型变换型和和事务型事务型。 变换型系统结构图由输入、中心变换、输出三部分变换型系统结构图由输入、中心变换、输出三部分 组成。组成。 事务型数据流的特点是:接受一项事务,根据事务事务型数据流的特点是:接受一项事务,根据事务 处理的特点和性质
20、,选择分派一个适当的处理单元,处理的特点和性质,选择分派一个适当的处理单元, 然后给出结果。然后给出结果。 软件工程基础24 (2)详细设计)详细设计 详细设计是为软件结构图中的每一个模块确定实现详细设计是为软件结构图中的每一个模块确定实现 算法和局部数据结构,用某种选定的表达工具表算法和局部数据结构,用某种选定的表达工具表 示算法和数据结构的细节。示算法和数据结构的细节。 详细设计的任务详细设计的任务是确定实现算法和局部数据结构,是确定实现算法和局部数据结构, 不同于编码或编程。不同于编码或编程。 常用的过程设计(即详细设计)工具有以下几种:常用的过程设计(即详细设计)工具有以下几种: 图形
21、工具:图形工具:程序流程图程序流程图、N-S(方盒图)、(方盒图)、PAD (问题分析图)(问题分析图)和和HIPO(层次图(层次图+输入输入/处理处理/输输 出图)。出图)。 表格工具:表格工具:判定表判定表。 语言工具:语言工具:PDL(伪码):(伪码):过程设计语言,它是用过程设计语言,它是用 正文形式表示数据和处理过程的设计工具。正文形式表示数据和处理过程的设计工具。 软件工程基础25 3.4 软件测试软件测试 1、软件测试定义:使用人工或自动手段来运行、软件测试定义:使用人工或自动手段来运行 或测定某个系统的过程,其目的在于检验它是否或测定某个系统的过程,其目的在于检验它是否 满足规
22、定的需求或是弄清预期结果与实际结果之满足规定的需求或是弄清预期结果与实际结果之 间的差别。间的差别。 软件测试的目的软件测试的目的:尽可能地多:尽可能地多发现程序中的错误发现程序中的错误, 不能也不可能证明程序没有错误。不能也不可能证明程序没有错误。 2、软件测试方法:、软件测试方法:静态测试静态测试和和动态测试动态测试。 静态测试静态测试包括代码检查、静态结构分析、代码质包括代码检查、静态结构分析、代码质 量度量。不实际运行软件,主要通过人工进行。量度量。不实际运行软件,主要通过人工进行。 动态测试动态测试:是基于计算机的测试,主要包括:是基于计算机的测试,主要包括白盒白盒 测试方法测试方法
23、和和黑盒测试方法黑盒测试方法。 软件工程基础26 (1)白盒测试)白盒测试 白盒测试方法白盒测试方法也称为也称为结构测试结构测试或或逻辑驱动测试逻辑驱动测试。它。它 是根据软件产品的内部工作过程,检查内部成分,是根据软件产品的内部工作过程,检查内部成分, 以确认每种内部操作符合设计规格要求。以确认每种内部操作符合设计规格要求。 白盒测试的基本原则:白盒测试的基本原则:保证所测模块中每一独立路保证所测模块中每一独立路 径至少执行一次;保证所测模块所有判断的每一径至少执行一次;保证所测模块所有判断的每一 分支至少执行一次;保证所测模块每一循环都在分支至少执行一次;保证所测模块每一循环都在 边界条件
24、和一般条件下至少各执行一次;验证所边界条件和一般条件下至少各执行一次;验证所 有内部数据结构的有效性。有内部数据结构的有效性。 白盒测试法的测试用例白盒测试法的测试用例是根据程序的内部逻辑来设是根据程序的内部逻辑来设 计的,计的,主要用软件的单元测试主要用软件的单元测试,主要方法有主要方法有逻辑逻辑 覆盖覆盖、基本路径测试基本路径测试等。等。 软件工程基础27 (2)黑盒测试)黑盒测试 黑盒测试方法黑盒测试方法也称为也称为功能测试功能测试或或数据驱动测试数据驱动测试。黑。黑 盒测试是对软件已经实现的功能是否满足需求进盒测试是对软件已经实现的功能是否满足需求进 行测试和验证。行测试和验证。 黑盒
25、测试主要诊断功能不对或遗漏、接口错误、数黑盒测试主要诊断功能不对或遗漏、接口错误、数 据结构或外部数据库访问错误、性能错误、初始据结构或外部数据库访问错误、性能错误、初始 化和终止条件错误。化和终止条件错误。主要方法有主要方法有等价类划分法等价类划分法、 边界值分析法边界值分析法、错误推测法错误推测法等。等。 黑盒测试是程序功能的测试,黑盒测试是程序功能的测试,主要用软件的确认测主要用软件的确认测 试。试。 软件工程基础28 3、软件测试过程、软件测试过程 软件测试过程一般按软件测试过程一般按4个步骤进行:个步骤进行: 单元测试单元测试 集成测试集成测试 验收测试(确认测试)验收测试(确认测试
26、) 系统测试系统测试 (1)单元测试)单元测试 单元测试是对软件设计的最小单位单元测试是对软件设计的最小单位模块(程序模块(程序 单元)进行正确性检测的测试。单元)进行正确性检测的测试。 单元测试的目的单元测试的目的是发现各模块是发现各模块内部内部可能存在的各种可能存在的各种 错误。错误。 软件工程基础29 (1)单元测试)单元测试 单元测试的单元测试的依据是依据是详细设计说明书和源程序详细设计说明书和源程序。单元。单元 测试的技术可以采用静态分析和动态测试。对动测试的技术可以采用静态分析和动态测试。对动 态测试通常以白盒测试为主,辅之以黑盒测试。态测试通常以白盒测试为主,辅之以黑盒测试。 在
27、进行单元测试时,要用一些辅助模块去模拟与被在进行单元测试时,要用一些辅助模块去模拟与被 测模块相联系的其他模块,即为被测模块设计和测模块相联系的其他模块,即为被测模块设计和 搭建搭建驱动模块驱动模块和和桩模块桩模块。 驱动模块驱动模块相当于被测模块的主程序,它接收测试数相当于被测模块的主程序,它接收测试数 据,并传给被测模块,输出实际测试结果;据,并传给被测模块,输出实际测试结果; 桩模块桩模块是模拟其他被调用模块,不必将子模块的所是模拟其他被调用模块,不必将子模块的所 有功能带入。有功能带入。 软件工程基础30 (2)集成测试)集成测试 集成测试集成测试是测试和组装软件的过程。它是把模块在是测试和组装软件的过程。它是把模块在 按照设计要求组装起来的同时进行测试,按照设计要求组装起来的同时进行测试,主要目主要目 的是发现与接口有关的错误。的是发现与接口有关的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国监控用电话光端机项目创业计划书
- 中国夹竹桃项目创业计划书
- 中国口腔种植系统项目创业计划书
- 中国可见光通信项目创业计划书
- 中国聚和支付项目创业计划书
- 中国金钻蔓绿绒项目创业计划书
- 中国能量外科器械项目创业计划书
- 中国高精度GNSS项目创业计划书
- 2025年部编版语文六年级下册第一次月考测试题及答案(共两套)
- 安全教育知识考试题及答案
- 核医学检查技术知到智慧树章节测试课后答案2024年秋山东第一医科大学
- 分泌性中耳炎-3
- 中考英语688高频词大纲词频表
- 一年级下册口算题卡大全(口算练习题50套直接打印版)
- MOOC 电磁场与波-华中科技大学 中国大学慕课答案
- 国开电大专科《管理英语1》机考总题库
- 99S203 消防水泵接合器安装图集
- 桥牌队式赛记分表
- 生物结业考试试卷
- KP高压电缆附件样本
- (完整版)应急预案演练台帐
评论
0/150
提交评论