计算机二级考试公共基础 PPT课件_第1页
计算机二级考试公共基础 PPT课件_第2页
计算机二级考试公共基础 PPT课件_第3页
计算机二级考试公共基础 PPT课件_第4页
计算机二级考试公共基础 PPT课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1,二级公共基础知识,第3章软件工程基础,2,内容提要,软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。结构化分析方法,数据流图,数据字典,软件需求规格说明书。结构化设计方法,总体设计与详细设计。软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。程序的调试,3,3.1软件工程基本概念,4,3.1.1软件定义与软件特点,1软件的定义和组成定义:计算机软件(Software)是计算机系统中与硬件相互依赖的另一部分。组成:程序数据文档国标(GB)定义与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。,5,2软件的特点软件是一种逻辑实体,而不是具体的物理实体,具有抽象性软件没有明显的制造过程。对软件的质量控制,必须在软件开发方面下功夫软件不存在老化问题,但存在退化问题,必须要修改和维护对计算机系统有着依赖性软件移植的问题软件复杂性高,开发和维护成本高软件开发涉及诸多社会因素,6,3软件的分类应用软件系统软件操作系统数据库管理系统设备驱动程序支撑软件,7,3.1.2软件危机与软件工程,1软件危机软件工程源自于软件危机主要表现:软件需求的增长得不到满足软件开发成本和进度无法控制软件质量难以保证软件不可维护或维护程度非常低软件成本不断提高软件开发生产效率的提高赶不上硬件的发展和应用需求的增长归结为成本、质量和生产率等问题,8,3.1.2软件危机与软件工程,2软件工程的产生与定义软件工程学工程学的新兴领域定义:国标(GB):应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。德国人FritzBauer:软件工程是建立并使用完善的工程化原则,以较经济的手段获取能在实际机器上有效运行的可靠软件的一系统方法。IEEE:将系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,即将工程应用于软件中。主要思想:在软件开发过程中需要应用工程化原则的重要性,9,3.1.2软件危机与软件工程,2软件工程的产生与定义软件工程3个要素:方法工具过程,10,3.1.3软件工程过程与软件生命周期,1软件工程过程P(Plan)软件规格说明D(Do)软件开发C(Check)软件确认A(Action)软件演进,11,3.1.3软件工程过程与软件生命周期,软件产品从提出、实现、使用维护、停止使用到退役的过程3个阶段6个阶段工作,12,3.1.3软件工程过程与软件生命周期,定义阶段制定计划:”能做吗?“需求分析:“做什么?”开发阶段:软件设计:“如何做?”,分为概要设计和详细设计两个阶段。软件实现:“实现”,编码。软件测试:”做的怎么样?“运行维护阶段使用,不断维护,13,3.1.4软件工程的目标与原则,1软件工程的目标成功的项目:成本功能移植维护费用按时及时交付目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品,14,3.1.4软件工程的目标与原则,2软件工程学的范畴,15,3.1.4软件工程的目标与原则,3软件工程的原则抽象信息隐蔽模块化局部化,确定性一致性完备性可验证性,16,3.1.5软件开发工具与软件开发环境,1软件开发工具协助开发人员进行软件开发活动所使用的软件或环境需求分析工具、设计工具、编码工具、排错工具、测试工具等。2软件开发环境全面支持软件开发全过程的软件工具的集合计算机辅助软件工程:CASE,17,3.2结构化分析方法,18,3.2.1需求分析与需求分析方法,1需求分析定义:任务:导出目标系统的逻辑模型,解决“做什么”的问题全面理解用户的各项要求准确地表达各项要求主要工作:需求获取需求分析编写需求规格说明书需求审评,19,2需求分析方法结构化分析方法面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)面向对象分析方法(OOA)静态分析方法动态分析方法,20,3.2.2结构化分析方法,1关于结构化分析方法结构化程序设计理论在需求分析阶段的运用面向数据流进行需求分析的方法自顶向下、逐层分解主要工具:数据流图、数据字典,21,2结构化分析的常用工具数据流图(DFD)数据字典判定树判定表,22,数据流图,23,数据流图:基本图形元素,24,数据流图:分层数据流图,25,2结构化分析的常用工具数据字典结构化分析方法的核心对数据流图中出现的被命名的图形元素的确切解释判定树判定树判定表,26,3.2.3软件需求规格说明书,需求分析阶段的最后成果作用:便于用户、开发人员进行理解和交流;反映出用户问题的结构,可以作为软件开发工作的基础和依据;作为确认测试和验收的依据。主要内容概述、数据描述、功能描述、性能描述、参考文献、附录特点:正确性;无歧义性;完整性;可验证性;一致性;可理解性;可修改性;可追踪性。,27,3.3结构化设计方法,28,3.3.1软件设计的基本概念,1软件设计的基础开发阶段:设计、实现(编码)和测试需求分析:主要解决“做什么”问题软件设计:主要解决“怎么做”问题,29,3.3.1软件设计的基本概念,1软件设计的基础重要性:主要内容:结构设计、数据设计、接口设计、过程设计步骤:概要设计和详细设计,30,3.3.1软件设计的基本概念,2软件设计的基本原理抽象一种思维工具抽出事物本质的共同特点,不考虑细节模块化模块化信息隐蔽每个模块的实现细节对于其它模块来说是隐蔽的模块独立性每个模块只涉及软件要求的具体的子功能和软件系统中其它的模块的接口是简单的衡量指标:耦合性、内聚性,31,3.3.1软件设计的基本概念,内聚性度量一个模块功能强度的一个相对指标。一个模块只做一件事7种类型,32,3.3.1软件设计的基本概念,耦合性度量模块之间的相互联系程度取决于接口的复杂程度、调用方式、哪些信息通过接口模块连接方式有7种,构成耦合性的7种类型,33,3.3.2概要设计,1概要设计的基本任务系统结构设计主要任务:划分为模块数据结构和数据库的设计实现需求定义和规格说明过程中提出的数据对象的逻辑表示编写概要设计文档概要设计说明书、数据库设计说明书、用户手册和集成测试计划。概要设计的评审对概要设计文档中给出的设计方案可行性、正确性、有效性、一致性等进行审核,34,2软件结构图用来表示软件结构基本图符,35,3.3.2概要设计(续),系统结构图(SC)中的模块4种类型的模块,36,3.3.2概要设计(续),结构图的形态特征深度、宽度、扇出、扇入,37,3.3.2概要设计(续),3面向数据流的设计方法数据流图(DFD):需求分析工具系统结构图(SC):概要设计工作主要任务:数据流图变换成结构图数据流的类型变换流事务流,38,3.3.2概要设计(续),变换流数据流图:取得数据、变换数据、给出数据,39,3.3.2概要设计(续),事务流数据流图,40,3.3.2概要设计(续),实施要点与设计过程分析、确认数据流图的类型,区分是事务型还是变换型说明数据流的边界数据流图映射为程序结构根据设计准则把数据流转换成程序结构图,41,3.3.2概要设计(续),变换分析确定数据流图是否具有变换特性确定输入流和输出流的边界,划分出输入、变换和输出,独立出变换中心第一级分解按上述步骤如出现事务流的映射方式对各个子流进行逐级分解,直至分解到基本功能;对每个模块写一个简要的说明利用软件的设计原则对软件结构透一步转化事务分析与变换分析类似主要差别:映射方法不同,42,3.3.2概要设计(续),4.设计准则提高模块独立性深度、宽度、扇度和扇出适度使模块的作用域在该模块的控制域内应减少模块的接口和界面的复杂性设计成单入口、单出口的模块设计功能可预测的模块,43,3.3.3详细设计,详细设计的任务:确定实现算法和局部数据结构不同于编码或编程详细设计的常用工具:图形工具:程序流程图、N-S、PAD和HIPO表格工具:判定表;语言工具:PDL(伪码),44,3.3.3详细设计(续),程序流程图图形元素:方框:处理步骤菱形:逻辑条件箭头:控制流5种控制结构顺序型选择型先判断重复型后判断重复型多分支选择型,45,3.3.3详细设计(续),N-S图流程图:随意性与灵活性N-S图:限制了随意的控制转移,保证了程序的良好结构5种基本控制结构:,46,3.3.3详细设计(续),N-S图特点:每个构件具有明确的功能域控制转移必须遵守结构化设计要求;易于确定局部数据和(或)全局数据的作用域易于表达嵌套关系和模块的层次结构,47,3.3.3详细设计(续),PAD图PAD问题分析图,ProblemAnalysisDiagram表现程序逻辑结构的图形工具5种基本控制结构,48,3.3.3详细设计(续),PAD图特征结构清晰,结构化程度高易于阅读程序的纵线数等于程序的层次数程序执行从PAD图最左主干线上端结点开始,自上而下、自左向右依次执行,程序终止于最左主干线,49,3.3.3详细设计(续),PDL(伪码)PDL过程设计语言,ProgramDesignLanguage混合语言,类似编程语言常用词汇:顺序:条件:IFTHENELSEETIDIF循环:DOWHILEENDDO循环:REPEATUNTILENDREPEAT分支:CASEOFWHENSELECTWHENSELECTENDCASEPDL特征:有为结构化构成元素、数据说明和模块化特征提供的关键词语法;处理部分的描述采用自然语言语法可以说明简单和复杂的数据结构支持各种接口描述的子程序定义和调用技术。,50,3.4软件测试,51,3.4.1软件测试的目的,检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别GrenfordJ.Myers观点:测试是程序的执行过程,目的在于发现错误一个好的测试用例在于能发现至今未发现的错误一个成功的测试是发现了至今未发现的错误的测试,52,3.4.2软件测试的准则,所有测试都应追溯到需求严格执行测试计划,排除测试的随意性充分注意测试中的群集现象程序员应避免检查自己的程序穷举测试不可能妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便,53,3.4.3软件测试技术与方法综述,1静态测试与动态测试静态测试人工评审软件文档或程序,借以发现其中的错误主要方法:代码检查、静态结构分析、代码质量度量动态测试上机测试关键:设计高效、合理的测试用例分两类:白盒测试方法和黑盒测试方法,54,2白盒测试方法与测试用例设计也称结构测试或逻辑驱动测试测试用例是根据程序的内部逻辑来设计主要用于单元测试基本原则保证所测模块中每一个独立路径至少执行一次保证所测模块所有判断的每一个分支至少执行一次保证所测模块每一个循环都在边界条件和一般条件至少执行一次验证所有内部数据结构的有效性主要方法:逻辑覆盖、基本路径测试,55,逻辑覆盖测试程序中的逻辑:判断、分支、条件可分为:语句覆盖:每一个语句都能执行一次路径覆盖:所有的可能路径都至少经历一次判定覆盖:每个判定至少都获得一次“真值”和“假值”的机会条件覆盖:每个判定中每个条件都获得一次“真”和“假”的机会判断-条件覆盖:判定中的每个条件都能取得各种可能的“真”和“假”值,并且使每个判定都能取到“真”和“假”两种结果强度顺序语句覆盖路径覆盖判定覆盖条件覆盖判定-条件覆盖,56,基本路径测试根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试,57,3黑盒测试方法与测试用例设计也称功能测试或数据驱动测试对软件已经实现的功能是否满足需求进行测试和验证根据程序的功能说明来设计测试用例主要用于确认测试主要方法等价类划分法边界值分析法错误推测法,58,等价类划分法有效等价类无效等价类边界值分析法大量的错误是发生在输入或输出范围的边界上错误推测法根据经验或直觉推测程序易出错的地方,59,3.4.4软件测试的实施,60,3.4.4软件测试的实施(续),1单元测试对象:针对程序模块,进行正确性检验的测试目的:发现各模块内部可能存在的各种差错依据:从程序的内部结构出发设计测试用例,其依据是详细的设计说明书和源程序方法:以白盒测试为主,辅以黑盒测试,61,3.4.4软件测试的实施(续),2集成测试任务:把模块在按照设计要求组装起来的同时进行测试目的:发现与接口有关的错误依据:集成测试的依据是概要设计说明书内容:软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试方式:非增量方式组装与增量方式组装。,62,3.4.4软件测试的实施(续),3确认测试又称有效性测试目的:验证软件的功能和性能及其它特性是否与用户的要求一致依据:软件需求规格说明书方法:黑盒测试法,63,4系统测试任务:在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试目的:在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方依据:需求分析规格说明来设计内容:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试,64,3.5程序的调试,65,3.5.1基本概念,任务:诊断和改正程序中的错误时机:调试主要在开发阶段进行,66,3.5.1基本概念(续),1.基本步骤错误定位、纠正错误、回归测试,67

温馨提示

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

评论

0/150

提交评论