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