ch03软件工程基础ppt课件

上传人:ZJ****1 文档编号:56912566 上传时间:2018-10-17 格式:PPT 页数:115 大小:711KB
返回 下载 相关 举报
ch03软件工程基础ppt课件_第1页
第1页 / 共115页
ch03软件工程基础ppt课件_第2页
第2页 / 共115页
ch03软件工程基础ppt课件_第3页
第3页 / 共115页
ch03软件工程基础ppt课件_第4页
第4页 / 共115页
ch03软件工程基础ppt课件_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《ch03软件工程基础ppt课件》由会员分享,可在线阅读,更多相关《ch03软件工程基础ppt课件(115页珍藏版)》请在金锄头文库上搜索。

1、二级公共基础知识,第3章 软件工程基础,2,内容提要,软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。 结构化分析方法,数据流图,数据字典,软件需求规格说明书。 结构化设计方法,总体设计与详细设计。 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 程序的调试,3.1 软件工程基本概念,4,3.1.1 软件定义与软件特点,1软件的定义和组成 定义: 计算机软件(Software)是计算机系统中与硬件相互依赖的另一部分。 组成: 程序 数据 文档 国标(GB)定义 与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及

2、数据。,5,3.1.1 软件定义与软件特点(续),2软件的特点 软件是一种逻辑实体,而不是具体的物理实体,具有抽象性 软件没有明显的制造过程。对软件的质量控制,必须在软件开发方面下功夫 软件不存在老化问题,但存在退化问题,必须要修改和维护 对计算机系统有着依赖性软件移植的问题 软件复杂性高,开发和维护成本高 软件开发涉及诸多社会因素,6,3.1.1 软件定义与软件特点(续),3软件的分类 应用软件 系统软件 操作系统 数据库管理系统 设备驱动程序 支撑软件,7,3.1.2 软件危机与软件工程,1软件危机 软件工程源自于软件危机 主要表现: 软件需求的增长得不到满足 软件开发成本和进度无法控制

3、软件质量难以保证 软件不可维护或维护程度非常低 软件成本不断提高 软件开发生产效率的提高赶不上硬件的发展和应用需求的增长 归结为成本、质量和生产率等问题,8,3.1.2 软件危机与软件工程,2软件工程的产生与定义 软件工程学工程学的新兴领域 定义: 国标(GB):应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。 德国人Fritz Bauer:软件工程是建立并使用完善的工程化原则,以较经济的手段获取能在实际机器上有效运行的可靠软件的一系统方法。 IEEE:将系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,即将工程应用于软件中。 主要思想:在软件开发过程中

4、需要应用工程化原则的重要性,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 软件工程过程与软件生命周期,定义阶段 制定计划:”能做吗?“ 需求分析:“做什么?” 开发阶段: 软件设计:“如何做?”,分为概要设计和详细设计两个阶段。 软件实现:“

5、实现”,编码。 软件测试:”做的怎么样?“ 运行维护阶段 使用,不断维护,13,3.1.4 软件工程的目标与原则,1软件工程的目标 成功的项目: 成本 功能 移植 维护费用 按时 及时交付 目标: 在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品,14,3.1.4 软件工程的目标与原则,2软件工程学的范畴,15,3.1.4 软件工程的目标与原则,3软件工程的原则 抽象 信息隐蔽 模块化 局部化,确定性 一致性 完备性 可验证性,16,3.1.5 软件开发工具与软件开发环境,1软件开发工具 协助开发人员

6、进行软件开发活动所使用的软件或环境 需求分析工具、设计工具、编码工具、排错工具、测试工具等。 2软件开发环境 全面支持软件开发全过程的软件工具的集合 计算机辅助软件工程:CASE,3.2 结构化分析方法,18,3.2.1 需求分析与需求分析方法,1需求分析 定义: 任务:导出目标系统的逻辑模型,解决“做什么”的问题 全面理解用户的各项要求 准确地表达各项要求 主要工作: 需求获取 需求分析 编写需求规格说明书 需求审评,19,3.2.1 需求分析与需求分析方法,2需求分析方法 结构化分析方法 面向数据流的结构化分析方法(SA) 面向数据结构的Jackson方法(JSD) 面向数据结构的结构化数

7、据系统开发方法(DSSD) 面向对象分析方法(OOA) 静态分析方法 动态分析方法,20,3.2.2 结构化分析方法,1关于结构化分析方法 结构化程序设计理论在需求分析阶段的运用 面向数据流进行需求分析的方法 自顶向下、逐层分解 主要工具:数据流图、数据字典,21,3.2.2 结构化分析方法,2结构化分析的常用工具 数据流图(DFD) 数据字典 判定树 判定表,22,3.2.2 结构化分析方法,数据流图,23,3.2.2 结构化分析方法,数据流图:基本图形元素,24,3.2.2 结构化分析方法,数据流图:分层数据流图,25,3.2.2 结构化分析方法,2结构化分析的常用工具 数据字典 结构化分

8、析方法的核心 对数据流图中出现的被命名的图形元素的确切解释判定树 判定树 判定表,26,3.2.3 软件需求规格说明书,需求分析阶段的最后成果 作用: 便于用户、开发人员进行理解和交流; 反映出用户问题的结构,可以作为软件开发工作的基础和依据; 作为确认测试和验收的依据。 主要内容 概述、数据描述、功能描述、性能描述、参考文献、附录 特点: 正确性;无歧义性;完整性;可验证性;一致性;可理解性;可修改性;可追踪性。,3.3 结构化设计方法,28,3.3.1 软件设计的基本概念,1软件设计的基础 开发阶段:设计、实现(编码)和测试 需求分析:主要解决“做什么”问题 软件设计:主要解决“怎么做”问

9、题,29,3.3.1 软件设计的基本概念,1软件设计的基础 重要性:主要内容: 结构设计、数据设计、接口设计、过程设计 步骤: 概要设计和详细设计,30,3.3.1 软件设计的基本概念,2软件设计的基本原理 抽象 一种思维工具 抽出事物本质的共同特点,不考虑细节 模块化 模块 模块化 信息隐蔽 每个模块的实现细节对于其它模块来说是隐蔽的 模块独立性 每个模块只涉及软件要求的具体的子功能和软件系统中其它的模块的接口是简单的 衡量指标:耦合性、内聚性,31,3.3.1 软件设计的基本概念,内聚性 度量一个模块功能强度的一个相对指标。 一个模块只做一件事 7种类型,32,3.3.1 软件设计的基本概

10、念,耦合性 度量模块之间的相互联系程度 取决于接口的复杂程度、调用方式、哪些信息通过接口 模块连接方式有7种,构成耦合性的7种类型,33,3.3.2 概要设计,1概要设计的基本任务 系统结构设计 主要任务:划分为模块 数据结构和数据库的设计 实现需求定义和规格说明过程中提出的数据对象的逻辑表示 编写概要设计文档 概要设计说明书、数据库设计说明书、用户手册和集成测试计划。 概要设计的评审 对概要设计文档中给出的设计方案可行性、正确性、有效性、一致性等进行审核,34,3.3.2 概要设计(续),2软件结构图 用来表示软件结构 基本图符,35,3.3.2 概要设计(续),两个附加符号,36,3.3.

11、2 概要设计(续),系统结构图(SC)中的模块 原子模块 4种类型的模块,37,3.3.2 概要设计(续),结构图的形态特征 深度、宽度、扇出、扇入,38,3.3.2 概要设计(续),3面向数据流的设计方法 数据流图(DFD):需求分析工具 系统结构图(SC):概要设计工作 主要任务:数据流图变换成结构图 数据流的类型 变换流 事务流,39,3.3.2 概要设计(续),变换流 数据流图:取得数据、变换数据、给出数据,40,3.3.2 概要设计(续),变换流 系统的结构图:输入、中心变换、输出,41,3.3.2 概要设计(续),事务流 数据流图,42,3.3.2 概要设计(续),事务流 系统的结

12、构图:,43,3.3.2 概要设计(续),实施要点与设计过程 分析、确认数据流图的类型,区分是事务型还是变换型 说明数据流的边界 数据流图映射为程序结构 根据设计准则把数据流转换成程序结构图,44,3.3.2 概要设计(续),变换分析 确定数据流图是否具有变换特性 确定输入流和输出流的边界,划分出输入、变换和输出,独立出变换中心 第一级分解 按上述步骤如出现事务流的映射方式对各个子流进行逐级分解,直至分解到基本功能; 对每个模块写一个简要的说明 利用软件的设计原则对软件结构透一步转化 事务分析 与变换分析类似 主要差别:映射方法不同,45,3.3.2 概要设计(续),4.设计准则 提高模块独立

13、性 深度、宽度、扇度和扇出适度 使模块的作用域在该模块的控制域内 应减少模块的接口和界面的复杂性 设计成单入口、单出口的模块 设计功能可预测的模块,46,3.3.3 详细设计,详细设计的任务: 确定实现算法和局部数据结构 不同于编码或编程 详细设计的常用工具: 图形工具:程序流程图、N-S、PAD和HIPO 表格工具:判定表; 语言工具:PDL(伪码),47,3.3.3 详细设计(续),程序流程图 图形元素: 方框:处理步骤 菱形:逻辑条件 箭头:控制流 5种控制结构 顺序型 选择型 先判断重复型 后判断重复型 多分支选择型。,48,3.3.3 详细设计(续),程序流程图,49,3.3.3 详

14、细设计(续),N-S图 流程图:随意性与灵活性 N-S图:限制了随意的控制转移,保证了程序的良好结构 5种基本控制结构:,50,3.3.3 详细设计(续),N-S图,51,3.3.3 详细设计(续),N-S图 特点: 每个构件具有明确的功能域 控制转移必须遵守结构化设计要求; 易于确定局部数据和(或)全局数据的作用域 易于表达嵌套关系和模块的层次结构,52,3.3.3 详细设计(续),PAD图 PAD问题分析图,Problem Analysis Diagram 表现程序逻辑结构的图形工具 5种基本控制结构,53,3.3.3 详细设计(续),PAD图,54,3.3.3 详细设计(续),PAD图

15、特征 结构清晰,结构化程度高 易于阅读 程序的纵线数等于程序的层次数 程序执行从PAD图最左主干线上端结点开始,自上而下、自左向右依次执行,程序终止于最左主干线,55,3.3.3 详细设计(续),PDL(伪码) PDL过程设计语言,Program Design Language 混合语言,类似编程语言 常用词汇: 顺序: 条件:IFTHENELSEETIDIF 循环:DOWHILEENDDO 循环:REPEAT UNTILENDREPEAT 分支:CASE OFWHENSELECTWHENSELECTENDCASE PDL特征: 有为结构化构成元素、数据说明和模块化特征提供的关键词语法; 处理

16、部分的描述采用自然语言语法 可以说明简单和复杂的数据结构 支持各种接口描述的子程序定义和调用技术。,3.4 软件测试,57,3.4.1 软件测试的目的,检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别 Grenford J.Myers观点: 测试是程序的执行过程,目的在于发现错误 一个好的测试用例在于能发现至今未发现的错误 一个成功的测试是发现了至今未发现的错误的测试,58,3.4.2 软件测试的准则,所有测试都应追溯到需求 严格执行测试计划,排除测试的随意性 充分注意测试中的群集现象 程序员应避免检查自己的程序 穷举测试不可能 妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便,59,3.4.3 软件测试技术与方法综述,1静态测试与动态测试 静态测试 人工评审软件文档或程序,借以发现其中的错误 主要方法:代码检查、静态结构分析、代码质量度量 动态测试 上机测试 关键:设计高效、合理的测试用例 分两类:白盒测试方法和黑盒测试方法,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号