计算机二级公共基础软件工程.ppt
计算机二级 公共基础,软件工程基础知识,大纲要求,1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。3.结构化设计方法,总体设计与详细设计。4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。5.程序的调试,静态调试与动态调试。,软件工程基本概念,计算机软件是包括程序、数据及相关文档的完整集合。软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。,软件工程基本概念,软件工程概念的出现源于软件危机。软件危机主要表现在成本、质量、生产率等问题。,软件工程基本概念,软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。软件工程包括3个要素:方法、工具和过程。,软件工程基本概念,软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:(1)P(plan)软件规格说明;(2)D(do)软件开发;(3)C(check)软件确认;(4)A(action)软件演进。,软件工程基本概念,软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的过程。,软件工程基本概念,软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:(1)可行性研究与计划制定;(2)需求分析;(3)软件设计;(4)软件实现;(5)软件测试;(6)运行和维护。,软件工程基本概念,软件工程基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发软件易于移植;需要较低的费用;能按时完成开发,及时交付使用。,软件工程基本概念,软件工程基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。,软件工程基本概念,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。,软件工程基本概念,软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境。,软件工程基本概念,软件开发工具包括:需求分析工具、设计工具、编码工具、排错工具和测试工具等。,软件工程基本概念,软件工程环境(软件开发环境):计算机辅助软件工程(CASE:Computer Aided Software Engineering),软件工程基本概念,软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。,软件工程基本概念,软件管理学包括人员组织、进度安排、质量保证、配置管理、项目计划等。,结构化分析方法,需求分析方法包括:1)结构化分析方法;2)面向对象的分析方法。,结构化分析方法,结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解、建立系统的处理流程,以数据流图、数据字典、判定树和判定表为主要工具,建立系统的逻辑模型。,结构化分析方法,数据流图(DFD Data Flow Diagram):就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。,结构化分析方法,数据字典是结构化分析方法的核心,数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间结果有共同的理解。,结构化分析方法,软件需求规格说明书的特点:(1)正确性;(2)无岐义性;(3)完整性;(4)可验证性;(5)一致性;(6)可理解性;(7)可追踪性。,结构化设计方法,从技术观点来看,结构化设计包括软件结构设计、过程设计、数据设计、接口设计。软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。,结构化设计方法,从工程管理角度来看,结构化设计可以分为:概要设计和详细设计。,结构化设计方法,结构化设计方法的基本原理:抽象化模块化信息隐蔽模块独立,结构化设计方法,衡量软件模块的独立性,使用耦合性和内聚性两个定性的度量标准。在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。,结构化设计方法,概要设计基本任务:(1)设计软件系统结构;(2)数据结构及数据库设计;(3)编写概要设计文档;(4)概要设计文档评审。,结构化设计方法,常用的软件结构设计工具是结构图;在程序结构图中,模块用一个矩形表示,矩形内注明模块功能和名字;箭头表示模块间的调用关系。可以用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。,结构化设计方法,结构图的形式:基本形式顺序形式重复形式选择形式,结构化设计方法,结构图模块类型:传入模块传出模块变换模块协调模块,结构化设计方法,典型的数据流类型有两种:变换型和事务型。,结构化设计方法,详细设计为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。,结构化设计方法,详细设计常用工具:图形工具(程序流程图、PAD Problem Analysis Diagram)表格工具(判定表)语言工具(PDL Procedure Design Language),软件测试,软件测试的指用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。简单地说,软件测试的目的是尽可能多地发现程序中的错误。,软件测试,软件测试方法:静态测试和动态测试。静态测试包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。动态测试是基本计算机的测试,主要包括白盒测试方法和黑盒测试方法。,软件测试,白盒测试:在程序内部进行,主要用于完成软件内部操作的验证。主要方法有逻辑覆盖、基本基路径测试。黑盒测试:主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错误等,用于软件确认。主要方法有等价类划分法、边界值分析法、错误推测法、因果图等。,软件测试,软件测试过程一般按4个步骤进行:单元测试(模块测试)集成测试验收测试(确认测试)系统测试,程序调试,程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。,程序调试,程序调试的基本步骤:(1)错误定位;(2)修改设计和代码,以排除错误;(3)进行回归测试,防止引进新的错误。,程序调试,软件调试可分为静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的设计手段。,程序调试,动态调试用来辅助静态调试。主要调试方法有:1)强行排错法;2)回溯法;3)原因排除法。,例题:,软件生命周期中所花费用最多的阶段是 A)详细设计 B)软件编码 C)软件测试 D)软件维护,答案:D,例题:,下列叙述中,不属于软件需求规格说明书的作用的是 A)便于用户、开发人员进行理解和交流 B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 C)作为确认测试和验收的依据 D)便于开发人员进行需求分析,答案:D,例题:,下列不属于软件工程的3个要素的是 A)工具 B)过程 C)方法 D)环境,答案:D,例题:,软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展,答案:C,例题:,软件设计中,有利于提高模块独立性的一个准则是 A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合,答案:C,例题:,下列不属于结构化分析的常用工具的是 A)数据流图 B)数据字典 C)判定树 D)PAD图,答案:D,例题:,通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为。,软件生命周期,例题:,软件的 设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。,概要,