二级C语言第3章软件工程基础

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

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!