《二级C语言第3章软件工程基础.ppt》由会员分享,可在线阅读,更多相关《二级C语言第3章软件工程基础.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3章章 软件工程基础软件工程基础3.1 3.1 软件工程基本概念软件工程基本概念3.2 3.2 结构化分析方法结构化分析方法3.3 3.3 结构化设计方法结构化设计方法3.4 3.4 软件测试软件测试3.5 3.5 程序的调试程序的调试1.1.软件定义与软件特点软件定义与软件特点 2.软件危机与软件工程软件危机与软件工程3.软件工程过程与软件生命周期软件工程过程与软件生命周期4.软件工程的目标和与原则软件工程的目标和与原则3.1 软件工程基本概念软件工程基本概念 软件定义与软件特点软件定义与软件特点 计算机软件是包括程序、数据及相关文档的完整集合。计算机软件是包括程序、数据及相关文档的完整
2、集合。软件的特点包括:软件的特点包括:(1 1)软件是一种逻辑实体;)软件是一种逻辑实体;(2 2)软件的生产与硬件不同,它没有明显的制作过程;)软件的生产与硬件不同,它没有明显的制作过程;(3 3)软件在运行、使用期间不存在磨损、老化问题;)软件在运行、使用期间不存在磨损、老化问题;(4 4)软件的开发、运行对计算机系统具有依赖性,受计算)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;机系统的限制,这导致了软件移植的问题;(5 5)软件复杂性高,成本昂贵;)软件复杂性高,成本昂贵;(6 6)软件开发涉及诸多的社会因素。)软件开发涉及诸多的社会因素。软件危
3、机与软件工程软件危机与软件工程软软件件危危机机泛泛指指在在计计算算机机软软件件开开发发和和维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题,主主要要表表现现为为成成本本、质质量量、生产率等问题。生产率等问题。软件工程定义:软件工程定义:软件工程是应用于计算机软件的定义、开发和维护的软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。(一整套方法、工具、文档、实践标准和工序。(GB)软件工程是建立并使用完善的工程化原则,以较经济软件工程是建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一的手段获得能在实际机器上有效
4、运行的可靠软件的一系列方法。(系列方法。(Fritz Bauer)将系统化的、规范的、可度量的方法应用于软件的开将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。发、运行和维护的过程,即将工程化应用于软件中。(IEEE)软软件件工工程程包包括括3个个要要素素:方方法法(完完成成软软件件工工程程项项目目的的技技术术手手段段)、工工具具(支支持持软软件件的的开开发发、管管理理、文文档档生生成成)和过程(支持软件开发的各环节的控制、管理)。和过程(支持软件开发的各环节的控制、管理)。软件工程过程软件工程过程软件工程过程是把输入转化为输出的一组彼此相关的资源和
5、活动.软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。基于这个层面,软件工程过程通常包含4种基本活动:(1)Plan软件规格说明;(2)Do软件开发;(3)Check软件确认;(4)Action软件演进。从软件开发的观点,软件工程过程就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)软件生命周期软件生命周期软软件件生生命命周周期期:软软件件产产品品从从提提出出、实实现现、使使用用维维护护到到停停止止使使用用退役的过程。退役的过程。软软件件生生命命周周期期三三个个阶阶段段:软
6、软件件定定义义、软软件件开开发发、运运行行维维护护,主主要活动阶段是:要活动阶段是:(1 1)可行性研究与计划制定;)可行性研究与计划制定;(2 2)需求分析;)需求分析;(3 3)软件设计;)软件设计;(4 4)软件实现;)软件实现;(5 5)软件测试;)软件测试;(6 6)运行和维护。)运行和维护。软件工程的目标和与原则软件工程的目标和与原则目目标标:在在给给定定成成本本、进进度度的的前前提提下下,开开发发出出具具有有有有效效性性、可可靠靠性性、可可理理解解性性、可可维维护护性性、可可重重用用性性、可可适适应应性性、可可移移植植性性、可可追追踪踪性性和和可可互互操操作作性性且且满满足足用用
7、户户需求的产品。需求的产品。基基本本目目标标:付付出出较较低低的的开开发发成成本本;达达到到要要求求的的软软件件功功能能;取取得得较较好好的的软软件件性性能能;开开发发软软件件易易于于移移植植;需需要要较低的费用;能按时完成开发,及时交付使用。较低的费用;能按时完成开发,及时交付使用。基基本本原原则则:抽抽象象、信信息息隐隐蔽蔽、模模块块化化、局局部部化化、确确定定性、一致性、完备性和可验证性。性、一致性、完备性和可验证性。软件工程的理论和技术性研究的内容软件工程的理论和技术性研究的内容软软件件工工程程的的理理论论和和技技术术性性研研究究的的内内容容主主要要包包括括:软软件件开发技术和软件工程
8、管理。开发技术和软件工程管理。软软件件开开发发技技术术包包括括:软软件件开开发发方方法法学学、开开发发过过程程、开开发发工工具和软件工程环境。具和软件工程环境。软软件件工工程程管管理理包包括括:软软件件管管理理学学、软软件件工工程程经经济济学学、软软件件心理学等内容。心理学等内容。v软软件件管管理理学学包包括括人人员员组组织织、进进度度安安排排、质质量量保保证证、配配置管理、项目计划等。置管理、项目计划等。软件开发工具与软件开发环境软件开发工具与软件开发环境软件开发工具软件开发工具软件开发方法的有效实施必须得到相应工具的支持,软件开发方法的有效实施必须得到相应工具的支持,否则方法将难以有效实施
9、。否则方法将难以有效实施。软件开发环境软件开发环境软件开发环境或软件工程环境是全面支持软件开发软件开发环境或软件工程环境是全面支持软件开发全过程的软件工具集合。这些软件工具按照一定的全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。阶段和各项任务的完成。计算机辅助软件工程(计算机辅助软件工程(CASE)CASE将各种软件工具、开发机器和一个存放开发将各种软件工具、开发机器和一个存放开发过程信息的中心数据库组合起来,形成软件工程环过程信息的中心数据库组合起来,形成软件工程环境。境。软软件件开开
10、发发方方法法是是软软件件开开发发过过程程所所遵遵循循的的方方法法和和步步骤骤,其其目目的的在在于于有有效效得得到到一一些些工工作作产产品品,即即程程序序和和文文档档,并并且且满足质量要求。满足质量要求。软件开发方法包括分析方法、设计方法和程序设计方法软件开发方法包括分析方法、设计方法和程序设计方法结构化分析方法结构化分析方法需求分析需求分析软软件件需需求求是是指指用用户户对对软软件件在在功功能能,行行为为,性性能能,设设计计约约束束等等方面的期望方面的期望.IEEEIEEE定义:定义:用户解决问题或达到目标所需的条件或权能用户解决问题或达到目标所需的条件或权能系系统统或或系系统统部部件件要要满
11、满足足合合同同、标标准准、规规范范或或其其他他正正式式规定文档所需具有的条件或权能;规定文档所需具有的条件或权能;一种反映一种反映 、所描述的条件或职能的文档说明。所描述的条件或职能的文档说明。需求分析阶段的工作需求分析阶段的工作需需求求获获取取需需求求分分析析编编写写需需求求规规格格说说明明书书需需求求评评审审需求分析方法需求分析方法需求分析方法有需求分析方法有 (1 1)结构化需求分析方法;)结构化需求分析方法;面面向向数数据据流流(SAStructured(SAStructured analysis),analysis),面面向向数数据据结结构构(JSDJackson(JSDJackso
12、n system system development development method),method),面面向向数数据据结结构构的的结结构构化化数数据据系系统统开开发发方方法法(DSSDData(DSSDData structured system development method)structured system development method)(2 2)面面向向对对象象的的分分析析的的方方法法(OOAObject-Oriented OOAObject-Oriented method)method)。从需求分析建立的模型的特性来分从需求分析建立的模型的特性来分 静态分析静
13、态分析 动态分析动态分析结构化分析方法结构化分析方法结构化分析方法的实质:着眼于数据流,自顶向下,结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具字典为主要工具,建立系统的逻辑模型。建立系统的逻辑模型。结构化分析的常用工具结构化分析的常用工具 (1 1)数据流图()数据流图(DFDData Flow Diagram)DFDData Flow Diagram)(2 2)数据字典)数据字典(DD)(DD)(3 3)判定树)判定树 (4 4)判定表)判定表 数据流图描述数据处理过程的工具,是需求理
14、解的逻辑模型的描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。图形表示,它直接支持系统的功能建模。图形元素图形元素建立数据流图的步骤:建立数据流图的步骤:由外向里:先画系统的输入输出,再画系统的外部由外向里:先画系统的输入输出,再画系统的外部自顶向下:顺序完成顶层、中间层、底层数据流图自顶向下:顺序完成顶层、中间层、底层数据流图逐层分解。逐层分解。数据字典数据字典数据字典是结构化分析的核心数据字典是结构化分析的核心数据字典的作用是对数据字典的作用是对DFDDFD中出现的被命名的图形元素的中出现的被命名的图形元素的确切解释确切解释通常数据字典包含的信息有:名称、
15、别名、何处使用通常数据字典包含的信息有:名称、别名、何处使用/如何使用、内容描述、补充信息等如何使用、内容描述、补充信息等在数据字典的编制过程中,常使用定义方式描述数据在数据字典的编制过程中,常使用定义方式描述数据结构结构需求分析阶段的最后成果需求分析阶段的最后成果-软件需求规格说明书软件需求规格说明书软件需求规格说明书的特点:软件需求规格说明书的特点:(1 1)正确性;)正确性;(2 2)无岐义性;)无岐义性;(3 3)完整性;)完整性;(4 4)可验证性;)可验证性;(5 5)一致性;)一致性;(6 6)可理解性;)可理解性;(7 7)可追踪性。)可追踪性。3.3 结构化设计方法结构化设计
16、方法软软件件设设计计是是开开发发阶阶段段最最重重要要的的步步骤骤,是是将将需需求求准准确确地地转化为完整的软件产品或系统的唯一途径。转化为完整的软件产品或系统的唯一途径。从从工工程程管管理理角角度度来来看看,软软件件设设计计分分为为概概要要设设计计和和详详细细设计。设计。概要设计概要设计:确定软件体系结构确定软件体系结构,系统级接口系统级接口,全局数据结构或全局数据结构或 数据库模式数据库模式.详细设计详细设计:确立模块的实现算法和局部数据结构确立模块的实现算法和局部数据结构.衡量软件模块独立性的标准衡量软件模块独立性的标准衡衡量量软软件件模模块块独独立立性性使使用用耦耦合合性性和和内内聚聚性
17、性两两个个定定性性的的度度量量标准。标准。在在程程序序结结构构中中各各模模块块的的内内聚聚性性越越强强,则则耦耦合合性性越越弱弱。优优秀秀软件应高内聚,低耦合。软件应高内聚,低耦合。功能内聚功能内聚 非直接耦合非直接耦合 序列内聚序列内聚 数据耦合数据耦合 通信内聚通信内聚 标记耦合标记耦合 内聚内聚 过程内聚过程内聚 耦合耦合 控制耦合控制耦合 时间内聚时间内聚 外部耦合外部耦合 逻辑内聚逻辑内聚 公共耦合公共耦合 偶然内聚偶然内聚 内容耦合内容耦合软件概要设计的基本任务软件概要设计的基本任务(1 1)设计软件系统结构;)设计软件系统结构;(2 2)数据结构及数据库设计;)数据结构及数据库设
18、计;(3 3)编写概要设计文档;)编写概要设计文档;(4 4)概要设计文档评审。)概要设计文档评审。常用的软件设计工具是结构图(常用的软件设计工具是结构图(SCStructure Chart)SCStructure Chart)。结结构构图图的的基基本本形形式式:基基本本形形式式、顺顺序序形形式式、重重复复形形式式、选选择择形式。形式。结结构构图图有有四四种种模模块块类类型型:传传入入模模块块、传传出出模模块块、变变换换模模块块和和协调模块。协调模块。典型的数据流类型有两种:典型的数据流类型有两种:变换型和事务型变换型和事务型。变变换换型型系系统统结结构构图图由由输输入入、中中心心变变换换、输
19、输出出三三部部分分组成。组成。事事务务型型数数据据流流的的特特点点是是:接接受受一一项项事事务务,根根据据事事务务处处理理的的特特点点和和性性质质,选选择择分分派派一一个个适适当当的的处处理理单单元元,然后给出结果。然后给出结果。面向数据流的设计方法面向数据流的设计方法详细设计是为软件结构图中的每一个模块确定实现详细设计是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。算法和数据结构的细节。常见的过程设计工具有:图形工具(程序流程图常见的过程设计工具有:图形工具(程序流程图,N-S,PAD,HIPO
20、,N-S,PAD,HIPO)、表格工具(判定表)、语言工)、表格工具(判定表)、语言工具(具(PDLPDL)。)。详细设计详细设计3.4 软件测试软件测试软软件件测测试试定定义义:使使用用人人工工或或自自动动手手段段来来运运行行或或测测定定某某个个系系统统的的过过程程,其其目目的的在在于于检检验验它它是是否否满满足足规规定定的需求或是弄清预期结果与实际结果之间的差别。的需求或是弄清预期结果与实际结果之间的差别。软件测试的目的:软件测试的目的:发现错误而执行程序的过程。发现错误而执行程序的过程。一一个个好好的的测测试试用用例例是是指指很很可可能能找找到到迄迄今今为为止止尚尚未未发发现现的的错错误
21、误的的用用例例;一一个个成成功功的的测测试试是是发发现现了了至至今今尚尚未发现的错误的测试。未发现的错误的测试。软件测试方法:软件测试方法:静态测试和动态测试。静态测试和动态测试。静静态态测测试试包包括括代代码码检检查查、静静态态结结构构分分析析、代代码码质质量量度度量量。不实际运行软件,主要通过人工进行。不实际运行软件,主要通过人工进行。动动态态测测试试:是是基基本本计计算算机机的的测测试试,主主要要包包括括白白盒盒测测试试方方法法和黑盒测试方法。和黑盒测试方法。白白盒盒测测试试:在在程程序序内内部部进进行行,主主要要用用于于完完成成软软件件内内部部操操作作的验证。主要方法有逻辑覆盖、基本基
22、路径测试。的验证。主要方法有逻辑覆盖、基本基路径测试。黑黑盒盒测测试试:主主要要诊诊断断功功能能不不对对或或遗遗漏漏、界界面面错错误误、数数据据结结构构或或外外部部数数据据库库访访问问错错误误、性性能能错错误误、初初始始化化和和终终止止条条件件错错,用用于于软软件件确确认认。主主要要方方法法有有等等价价类类划划分分法法、边边界界值值分分析析法法、错误推测法、因果图等。错误推测法、因果图等。软件测试方法软件测试方法软件测试过程一般按软件测试过程一般按4 4个步骤进行:个步骤进行:单元测试单元测试-模块测试模块测试集成测试集成测试-增量与非增量方式增量与非增量方式验收测试验收测试验证软件的功能和性
23、能是否满验证软件的功能和性能是否满足需求足需求系统测试系统测试软件测试过程软件测试过程驱动模块被测单元桩模块桩模块程程序序调调试试的的任任务务是是诊诊断断和和改改正正程程序序中中的的错错误误,主主要在开发阶段进行。要在开发阶段进行。程序调试的基本步骤:程序调试的基本步骤:(1 1)错误定位;)错误定位;(2 2)修改设计和代码,以排除错误;)修改设计和代码,以排除错误;(3 3)进行回归测试,防止引进新的错误。)进行回归测试,防止引进新的错误。35 程序的调试程序的调试软软件件调调试试可可分分表表静静态态调调试试和和动动态态调调试试。静静态态调调试试主主要要是是指指通通过过人人的的思思维维来来分分析析源源程程序序代代码码和和排排错错,是是主主要要的的设设计计手手段段,而而动动态态调调试试是是辅辅助助静静态态调调试试。主要调试方法有:主要调试方法有:(1 1)强行排错法;)强行排错法;(2 2)回溯法;)回溯法;(3 3)原因排除法。)原因排除法。软件调试的方法软件调试的方法