大学计算机基础_第8章 软件工程基础)_第1页
大学计算机基础_第8章 软件工程基础)_第2页
大学计算机基础_第8章 软件工程基础)_第3页
大学计算机基础_第8章 软件工程基础)_第4页
大学计算机基础_第8章 软件工程基础)_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8章章 软件工程基础软件工程基础 8.1 软件工程的基本概念软件工程的基本概念 8.2 结构化分析方法结构化分析方法8.3 软件设计软件设计8.4 软件测试软件测试8.5 程序的调试程序的调试二级大纲之三二级大纲之三-软件工程基础软件工程基础l 软件工程基本概念,软件生命周期概念,软件工软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。具与软件开发环境。 l 结构化分析方法,数据流图,数据字典,软件需结构化分析方法,数据流图,数据字典,软件需求规格说明书。求规格说明书。 l 结构化设计方法,总体设计与详细设计。结构化设计方法,总体设计与详细设计。 l 软件测试的方法,白盒测试与黑

2、盒测试,测试用软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试例设计,软件测试的实施,单元测试、集成测试和系统测试。和系统测试。 l 程序的调试,静态调试与动态调试。程序的调试,静态调试与动态调试。 本章重点内容本章重点内容l软件的定义及分类软件的定义及分类l软件生命周期的概念软件生命周期的概念l软件工程的定义、原理、目标及原则软件工程的定义、原理、目标及原则l数据流图、数据字典、软件需求规格说数据流图、数据字典、软件需求规格说明书明书l软件设计的基本原理与原则软件设计的基本原理与原则l白盒测试和黑盒测试白盒测试和黑盒测试8.1软件工程的基本概念软件工程的基

3、本概念 8.1.1软件定义与软件特点软件定义与软件特点 8.1.2软件危机与软件工程软件危机与软件工程8.1.3软件工程的目标与原则软件工程的目标与原则8.1.4软件工程过程与软件生命周期软件工程过程与软件生命周期8.1.5软件开发工具与软件开发环境软件开发工具与软件开发环境 8.1.1软件定义与软件特点软件定义与软件特点 软件(软件(Software ) 是能够完成预定功能和性是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档要的数据,加上描述程序的操作和使用的文档 。 可简明表述为:可简明表述为

4、: 软件程序数据文档软件程序数据文档如如:系统处理的数据、帮助文档等。系统处理的数据、帮助文档等。软件的定义软件的定义n 软件是一种逻辑实体,而不是物理实体,具有抽软件是一种逻辑实体,而不是物理实体,具有抽象性象性 n 软件没有明显的制作过程软件没有明显的制作过程 n 软件在运行、使用期间不存在磨损、老化问题软件在运行、使用期间不存在磨损、老化问题 n 软件的功能依赖于硬件和软件的运行环境以及人软件的功能依赖于硬件和软件的运行环境以及人们对它的操作们对它的操作 n 软件开发复杂性高、周期长、成本昂贵软件开发复杂性高、周期长、成本昂贵 n 软件开发涉及许多的社会因素软件开发涉及许多的社会因素 8

5、.1.1软件定义与软件特点软件定义与软件特点 软件的特点软件的特点n 系统软件系统软件 是为扩大计算机系统的功能,充分利用系统资是为扩大计算机系统的功能,充分利用系统资源,提高计算机使用效率,方便用户使用计算机源,提高计算机使用效率,方便用户使用计算机而开发的软件。例如,操作系统、数据库管理系而开发的软件。例如,操作系统、数据库管理系统、编辑程序、语言处理系统等统、编辑程序、语言处理系统等 。n 应用软件应用软件 基于系统软件之上,为解决用户特定问题而开发基于系统软件之上,为解决用户特定问题而开发的软件。例如:文字处理软件的软件。例如:文字处理软件Word、图形处理软、图形处理软件件Photo

6、shop等。等。 n 支撑软件支撑软件 (工具软件)(工具软件)介于系统软件和应用软件之间,协助用户开发软介于系统软件和应用软件之间,协助用户开发软件的工具型软件,又称为软件开发环境例如:微件的工具型软件,又称为软件开发环境例如:微软公司的软公司的Visual Studio.NET等。等。 8.1.1软件定义与软件特点软件定义与软件特点 软件分类(三类)软件分类(三类)8.1.2 软件危机与软件工程软件危机与软件工程 是指计算机软件在它的开发和维护过程中所遇是指计算机软件在它的开发和维护过程中所遇到的一系列严重问题。其中,到的一系列严重问题。其中,软件开发与维护的方软件开发与维护的方法不正确法

7、不正确是产生软件危机的是产生软件危机的主要原因主要原因。 什么是软件危机?什么是软件危机?什么是软件工程?什么是软件工程?国家标准(国家标准(GB)中指出:是指应用于计算机)中指出:是指应用于计算机软件的定义、开发和维护的一整套方法、工具、文软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。档、实践标准和工序。软件工程由软件工程由方法、工具方法、工具和和过程过程三部分组成三部分组成(三要素三要素)n 方法:方法:完成软件开发各项任务的技术手段;完成软件开发各项任务的技术手段;n 工具:工具:能够自动或半自动支持软件开发、管理、文能够自动或半自动支持软件开发、管理、文档生成的开发平

8、台、开发语言等开发工具。档生成的开发平台、开发语言等开发工具。n 过程:过程:支持软件开发的各个环节的控制、管理过程支持软件开发的各个环节的控制、管理过程8.1.2 软件危机与软件工程软件危机与软件工程 软件工程的组成软件工程的组成8.1.3 软件工程的目标与原则软件工程的目标与原则在给定成本、进度的前提条件下,开发出具在给定成本、进度的前提条件下,开发出具有有有效性、可修改性、可靠性、可礼节性、可有效性、可修改性、可靠性、可礼节性、可维护性、可重用性、可适应性、可移植性、可维护性、可重用性、可适应性、可移植性、可追踪性回答、可互操作性且满足用户需求的追踪性回答、可互操作性且满足用户需求的产产

9、品。品。 软件工程的目标软件工程的目标8.1.3 软件工程的目标与原则软件工程的目标与原则 为达到软件工程的目标,在软件开发过为达到软件工程的目标,在软件开发过程中必须程中必须遵循抽象、信息隐蔽、模块化、局遵循抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证性部化、确定性、一致性、完备性、可验证性等工程原则。等工程原则。 软件工程的原则软件工程的原则8.1.4软件工程过程与软件生命周期软件工程过程与软件生命周期是指为了是指为了获得高质量软件所需要完成的一系列获得高质量软件所需要完成的一系列彼此相关的活动彼此相关的活动,它规定了完成各项任务的工作,它规定了完成各项任务的工作步骤。步

10、骤。软件工程过程通常包含四种基本的过程软件工程过程通常包含四种基本的过程:l 软件规格说明软件规格说明(规定软件的功能及其运行的限制规定软件的功能及其运行的限制 )l 软件开发软件开发(生产满足规格说明的软件)(生产满足规格说明的软件)l 软件确认软件确认(确认软件能满足用户提出的要求)(确认软件能满足用户提出的要求)l 软件演进软件演进(为满足用户变更要求,(为满足用户变更要求,软件必须在使软件必须在使用过程中演进。用过程中演进。 )什么是软件工程过程?什么是软件工程过程?是指将软件产品或软件系统是指将软件产品或软件系统从设计、投入使从设计、投入使用到被淘汰的全过程用到被淘汰的全过程,又称为

11、,又称为软件生存周期软件生存周期。 8.1.4软件工程过程与软件生命周期软件工程过程与软件生命周期什么是软件的生命周期什么是软件的生命周期软件生命周期分为三个时期软件生命周期分为三个时期(每个时期分为若干阶段)每个时期分为若干阶段)n软件计划(定义)期软件计划(定义)期:又分为三个阶段。:又分为三个阶段。n软件开发期软件开发期:又分为四个阶段。:又分为四个阶段。n运行维护期运行维护期:运行维护阶段。:运行维护阶段。问题定义问题定义软件定义期软件定义期 软件实现软件实现运行维护运行维护可行性研究可行性研究需求分析需求分析 退役退役详细设计详细设计软件测试软件测试概要设计概要设计软件开发期软件开发

12、期运行维护期运行维护期软软件件生生命命周周期期的的划划分分图图示示8.1.4软件工程过程与软件生命周期软件工程过程与软件生命周期8.1.5 软件开发工具与软件开发环境软件开发工具与软件开发环境 用来用来辅助软件开发、运行、维护、管理、辅助软件开发、运行、维护、管理、支持支持等活动过程中的等活动过程中的软件软件称为软件开发工具。称为软件开发工具。软件开发工具软件开发工具是指支持软件产品开发和维护而使用的是指支持软件产品开发和维护而使用的一一组软件组软件,它由,它由软件工具集软件工具集和和环境集成机制环境集成机制(即(即为工具集成和软件开发、维护和管理提供统一为工具集成和软件开发、维护和管理提供统

13、一的支持的支持 )组成。)组成。 软件开发环境软件开发环境8.2 结构化分析方法结构化分析方法8.2.1需求分析需求分析8.2.2结构化分析方法结构化分析方法8.2.3数据流图数据流图8.2.4数据字典数据字典8.2.5软件规格说明书软件规格说明书8.2.1 需求分析需求分析是指用户对是指用户对目标软件目标软件系统在系统在功能、行为、性功能、行为、性能、设计约束能、设计约束等方面的等方面的期望期望。需求分析分为四个阶段需求分析分为四个阶段 需求获取、需求分析、编写需求规格说明书、需求获取、需求分析、编写需求规格说明书、需求评审需求评审需求分析的方法(一般分为两类)需求分析的方法(一般分为两类)

14、 结构化分析结构化分析方法和方法和面向对象的分析面向对象的分析方法方法两类。两类。什么软件需求分析什么软件需求分析8.2.2 结构化分析方法结构化分析方法是一种简单实用、应用广泛的分析方法是一种简单实用、应用广泛的分析方法 。 SA方法的基本思想和步骤方法的基本思想和步骤是采用是采用“分解分解”(模块化)和(模块化)和“抽象抽象”(抽抽取事物最基本的特性和行为、忽略非基本的细取事物最基本的特性和行为、忽略非基本的细节节。)。)的的基本手段基本手段,自顶向下逐层分解,使复,自顶向下逐层分解,使复杂的问题有效地被控制。杂的问题有效地被控制。 SA方法方法利用结构化程序设计的思想,满足结构化利用结构

15、化程序设计的思想,满足结构化程序设计的特点。程序设计的特点。结构化分析结构化分析(SA,Structured Analysis)方法方法8.2.2 结构化分析方法结构化分析方法 2 1 3 A 1.1 1.2 1.3 2.1 2.2A: 学生信息管理系统学生信息管理系统1: 学生信息管理学生信息管理2: 院系信息管理院系信息管理3: 课程信息管理课程信息管理1.1:学生信息增加学生信息增加1.2:学生信息删除学生信息删除1.3:学生信息查询:学生信息查询2.1:院系信息增加院系信息增加2.2:院系信息修改院系信息修改 图图8.2 分解和抽象分解和抽象 结构化分析方法举例结构化分析方法举例8.2

16、.3 数据流图数据流图是是描述描述系统中系统中数据流程的图形数据流程的图形工具,它工具,它标识标识了一个系统的逻辑了一个系统的逻辑输入输入和逻辑和逻辑输出输出,以及把逻,以及把逻辑输入转换成逻辑输出所需的加工处理。辑输入转换成逻辑输出所需的加工处理。图图8.3 数据流图的图形符号数据流图的图形符号外部实体外部实体数据流数据流加工加工数据存储数据存储数据流图数据流图(Data Flow Diagram,简称,简称DFD) 8.2.3 数据流图数据流图学生学生学生处学生处各院系各院系学生信息文件学生信息文件 修修改改查询查询查询结查询结果果 报表报表查询条查询条件件 建建档档统统计计登记登记修改信

17、息修改信息统计要统计要求求图图8.4 学生信息管理系统数据流图学生信息管理系统数据流图数数据据流流图图应应用用举举例例 8.2.3 数据流图数据流图DFD中的中的数据流数据流可分为:可分为: 变换流变换流、事务流事务流两种两种数据流图的类型(两种)数据流图的类型(两种)取得取得数据数据变换变换数据数据输出输出数据数据图图8.5 变换型数据流图变换型数据流图图图8.6 事务型数据流图事务型数据流图事务事务中心中心活动活动流流1活动活动流流3活动活动流流2输入流输入流 8.2.4 数据字典数据字典数据字典中有数据字典中有4种类型的条目:种类型的条目:数据流、数据数据流、数据项、数据存储和加工。项、

18、数据存储和加工。数据流图必须与数据字典数据流图必须与数据字典(Data Dictionary)配套使用配套使用,才能完整地描述软件需求。,才能完整地描述软件需求。什么是数据字典什么是数据字典数据字典用于描述数据流的内容。数据字典用于描述数据流的内容。 8.2.4 数据字典数据字典数据字典应用举例数据字典应用举例例如:例如:某教务系统的学生成绩库文件的某教务系统的学生成绩库文件的数据字典数据字典描述如下描述如下:文件名:文件名:学生成绩库学生成绩库记录定义:记录定义:学生成绩学生成绩 = 学号学号+姓名姓名+课程代码课程代码+成成绩绩+必修必修|选修选修学号:学号:由由6位数字组成位数字组成姓名

19、:姓名:24个汉字个汉字课程代码:课程代码:8位字符串位字符串成绩:成绩:13位十进制整数位十进制整数文件组织:文件组织:以学号为关键字递增排列以学号为关键字递增排列 8.2.5软件需求规格说明书软件需求规格说明书是需求分析阶段的最后成果,是软件开发过是需求分析阶段的最后成果,是软件开发过程的重要文档之一。其程的重要文档之一。其主要特点如下:主要特点如下:u 正确性正确性 u 无岐义性无岐义性 u 完整性完整性 u 可验证性可验证性 u 一致性一致性 u 可理解性可理解性 u 可追踪性可追踪性 什么是软件需求规格说明书什么是软件需求规格说明书8.3 软件设计软件设计8.3.1软件设计概述软件设

20、计概述8.3.2总体设计总体设计8.3.3详细设计详细设计8.3.1 软件设计概述软件设计概述 软件设计是开发阶段最重要的步骤。软件设计是开发阶段最重要的步骤。u从从工程管理工程管理的角度:可分为的角度:可分为概要设计概要设计和和详细详细设计设计两部分。两部分。u从从技术观点技术观点的角度,可分为软件的角度,可分为软件结构设计、结构设计、数据设计、接口设计数据设计、接口设计和和过程设计过程设计4个步骤。个步骤。需求需求说明说明书书总体设总体设计计软件软件结构结构复审复审详细设计详细设计模块模块描述描述可接受可接受设计设计说明说明书书修改修改修改修改复审复审图图8.7 软件设计流程图软件设计流程

21、图软件设计的基本原理和原则软件设计的基本原理和原则l 模块化模块化l 抽象抽象l 信息隐藏与封装信息隐藏与封装l 模块独立性模块独立性:指模块间的:指模块间的耦合耦合和模块的和模块的内聚内聚。u耦合:耦合:模块之间互相连接的模块之间互相连接的紧密程度紧密程度。 u内聚:内聚:一个模块内部各个元素彼此结合的紧密一个模块内部各个元素彼此结合的紧密程度程度 结论:结论:模块模块独立性独立性比较比较强强的模块应是的模块应是高内聚低耦高内聚低耦合合的模块。的模块。8.3.1 软件设计概述软件设计概述 8.3.2 总体设计总体设计l设计软件系统结构设计软件系统结构(简称软件结构简称软件结构)l数据结构及数

22、据库设计数据结构及数据库设计l编写概要设计文档编写概要设计文档l 评审评审总体设计的基本任务总体设计的基本任务总体设计(也称概要设计)有四个主要任务总体设计(也称概要设计)有四个主要任务8.3.3 详细设计详细设计 n为每个模块进行详细的为每个模块进行详细的算法设计算法设计。n为模块内的为模块内的数据结构进行设计数据结构进行设计。 n 对数据结构进行对数据结构进行物理设计物理设计,即确定数据库的,即确定数据库的物理结构。物理结构。n 根据软件系统的类型,进行根据软件系统的类型,进行代码、输入代码、输入/输出输出格式、人机对话等设计格式、人机对话等设计。n 编写编写详细设计详细设计说明书说明书。

23、n 评审评审。详细设计的具体任务详细设计的具体任务8.4软件测试软件测试8.4.1软件测试的基本概念软件测试的基本概念8.4.2软件测试的方法软件测试的方法 8.4.3测试用例设计测试用例设计 8.4.4软件测试的实施软件测试的实施8.4.1 软件测试的基本概念软件测试的基本概念为发现为发现程序中的程序中的错误错误而而执行程序执行程序的过程。的过程。软件测试的基本思想软件测试的基本思想:根据软件开发各阶段的规格说明和程序的根据软件开发各阶段的规格说明和程序的内部结构而精心内部结构而精心设计出一批测试用例设计出一批测试用例,并利用,并利用测试用例测试用例来运行程序来运行程序,以,以发现发现程序程

24、序错误错误的过程。的过程。 软件测试的定义软件测试的定义8.4.2软件测试的方法软件测试的方法 l 静态测试:静态测试:不实际运行被测程序不实际运行被测程序,而只是静态,而只是静态地检查程序代码、界面或文档中可能存在的错地检查程序代码、界面或文档中可能存在的错误的过程。误的过程。l 动态测试动态测试,实际运行被测程序实际运行被测程序,输入相应的测,输入相应的测试数据,检查实际输出结果和预期结果是否相试数据,检查实际输出结果和预期结果是否相符的过程。符的过程。 静态测试与动态测试静态测试与动态测试8.4.2软件测试的方法软件测试的方法就是就是为测试而设计的数据为测试而设计的数据,由由测试输入数据

25、测试输入数据和和预期的输出结果预期的输出结果两部分组成。两部分组成。动态测试动态测试的关键是设计高效、合理的测试用例。的关键是设计高效、合理的测试用例。测试用例的设计方法测试用例的设计方法(一般分为两类):(一般分为两类): 白盒测试方法白盒测试方法和和黑盒测试方法黑盒测试方法。 什么是测试用例什么是测试用例8.4.2软件测试的方法软件测试的方法白盒测试方法白盒测试方法u 白盒测试(白盒测试(也称结构测试或逻辑驱动测试):也称结构测试或逻辑驱动测试):它是它是知道产品内部工作过程知道产品内部工作过程,通过测试来,通过测试来检测检测产品内部动作产品内部动作是否按照规格说明书的规定正常是否按照规格

26、说明书的规定正常进行,按照程序进行,按照程序内部的结构内部的结构测试程序,检验程测试程序,检验程序中的序中的每条通路每条通路是否都有能按预定要求正确工是否都有能按预定要求正确工作,而不管它的功能。作,而不管它的功能。 白盒测试的主要方法白盒测试的主要方法有有逻辑覆盖测试、基本逻辑覆盖测试、基本路径测试路径测试等等,主要用于软件内部操作的验证。主要用于软件内部操作的验证。8.4.2软件测试的方法软件测试的方法u黑盒测试(黑盒测试(也称功能测试或数据驱动测试),它也称功能测试或数据驱动测试),它是在是在已知产品已知产品所应具有的所应具有的功能功能,通过测试来检测,通过测试来检测每个每个功能是否都能

27、正常使用功能是否都能正常使用。在测试时,只检查。在测试时,只检查程序功能是否按照需求规格说明书的规定正常使程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文的输出信息,并且保持外部信息(如数据库或文件)的完整性。件)的完整性。黑盒测试方法黑盒测试方法主要有主要有等价类划分法、边界值分析法、等价类划分法、边界值分析法、因果图、错误推测法因果图、错误推测法等,等,主要用于软件确认测试主要用于软件确认测试。黑盒测试方法黑盒测试方法8.4.4软件测试的实施软件测试的实施软件从编码结束到交付用户使用,需要经过软件从编码结束到交付用户使用,需要经过4 个步个步骤骤。 软件测试的实施步骤软件测试的实施步骤系统测试系统测试确认测试(验收)确认测试(验收)单元测试(模块)单元测试(模块)集成测试(组装)集成测试(组装)8.5 程序的调试程序的调试8.5.1程序调试的基本概念程序调试的基本概念8.5.2程序的调试方法程序的调试方法 8.5.3程序的静态调试程序的静态调试 8.5.4程序的动态调试程序的动态调试 8.5.1 程序调试的基本概念程序调试的基本概念程序调试(也称排错或纠错)程序调试(也称排错或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论