软件工程基础.ppt
《软件工程基础.ppt》由会员分享,可在线阅读,更多相关《软件工程基础.ppt(115页珍藏版)》请在三一文库上搜索。
1、二级公共基础知识 第3章 软件工程基础 内容提要 n软件工程基本概念,软件生命周期概念, 软件工具与软件开发环境。 n结构化分析方法,数据流图,数据字典, 软件需求规格说明书。 n结构化设计方法,总体设计与详细设计。 n软件测试的方法,白盒测试与黑盒测试, 测试用例设计,软件测试的实施,单元测 试、集成测试和系统测试。 n程序的调试 2 3.1 软件工程基本概念 3.1.1 软件定义与软件特点 n1软件的定义和组成 n定义: n计算机软件(Software)是计算机系统中与硬件相 互依赖的另一部分。 n组成: n程序 n数据 n文档 n国标(GB)定义 n与计算机系统的操作有关的计算机程序、规
2、程、规 则,以及可能有的文件、文档及数据。 4 3.1.1 软件定义与软件特点(续) n2软件的特点 n软件是一种逻辑实体,而不是具体的物理实体 ,具有抽象性 n软件没有明显的制造过程。对软件的质量控制 ,必须在软件开发方面下功夫 n软件不存在老化问题,但存在退化问题,必须 要修改和维护 n对计算机系统有着依赖性软件移植的问题 n软件复杂性高,开发和维护成本高 n软件开发涉及诸多社会因素 5 3.1.1 软件定义与软件特点(续) n3软件的分类 n应用软件 n系统软件 n操作系统 n数据库管理系统 n设备驱动程序 n n支撑软件 6 3.1.2 软件危机与软件工程 n1软件危机 n软件工程源自
3、于软件危机 n主要表现: n软件需求的增长得不到满足 n软件开发成本和进度无法控制 n软件质量难以保证 n软件不可维护或维护程度非常低 n软件成本不断提高 n软件开发生产效率的提高赶不上硬件的发展和应用需求的增长 n归结为成本、质量和生产率等问题 7 3.1.2 软件危机与软件工程 n2软件工程的产生与定义 n软件工程学工程学的新兴领域 n定义: n国标(GB):应用于计算机软件的定义、开发和维护的一整 套方法、工具、文档、实践标准和工序。 n德国人Fritz Bauer:软件工程是建立并使用完善的工程化原 则,以较经济的手段获取能在实际机器上有效运行的可靠软件 的一系统方法。 nIEEE:将
4、系统的、规范的、可度量的方法应用于软件开发、 运行和维护的过程,即将工程应用于软件中。 n主要思想:在软件开发过程中需要应用工程化原则的 重要性 8 3.1.2 软件危机与软件工程 n2软件工程的产生与定义 n软件工程3个要素: n方法 n工具 n过程 9 3.1.3 软件工程过程与软件生命周期 n1软件工程过程 nP(Plan)软件规格说明 nD(Do)软件开发 nC(Check)软件确认 nA(Action)软件演进 10 3.1.3 软件工程过程与软件生命周期 n软件产品从提出、实 现、使用维护、停止 使用到退役的过程 n3个阶段 n6个阶段工作 11 3.1.3 软件工程过程与软件生命
5、周期 n定义阶段 n制定计划:”能做吗?“ n需求分析:“做什么?” n开发阶段: n软件设计:“如何做?”,分为概要设计和详细设计两 个阶段。 n软件实现:“实现”,编码。 n软件测试:”做的怎么样?“ n运行维护阶段 n使用,不断维护 12 3.1.4 软件工程的目标与原则 n1软件工程的目标 n成功的项目: n成本 n功能 n移植 n维护费用 n按时 n及时交付 n目标: n在给定成本、进度的前提下,开发出具有有效性、可靠性、可 理解性、可维护性、可重用性、可适应性、可移植性、可追踪 性和可互操作性且满足用户需求的产品 13 3.1.4 软件工程的目标与原则 2软件工程学的范畴 14 3
6、.1.4 软件工程的目标与原则 n3软件工程的原则 n抽象 n信息隐蔽 n模块化 n局部化 n确定性 n一致性 n完备性 n可验证性 15 3.1.5 软件开发工具与软件开发环境 n1软件开发工具 n协助开发人员进行软件开发活动所使用的软件 或环境 n需求分析工具、设计工具、编码工具、排错工 具、测试工具等。 n2软件开发环境 n全面支持软件开发全过程的软件工具的集合 n计算机辅助软件工程:CASE 16 3.2 结构化分析方法 3.2.1 需求分析与需求分析方法 n1需求分析 n定义: n任务:导出目标系统的逻辑模型,解决“做什么”的问题 n全面理解用户的各项要求 n准确地表达各项要求 n主
7、要工作: n需求获取 n需求分析 n编写需求规格说明书 n需求审评 18 3.2.1 需求分析与需求分析方法 n2需求分析方法 n结构化分析方法 n面向数据流的结构化分析方法(SA) n面向数据结构的Jackson方法(JSD) n面向数据结构的结构化数据系统开发方法(DSSD ) n面向对象分析方法(OOA) n静态分析方法 n动态分析方法 19 3.2.2 结构化分析方法 n1关于结构化分析方法 n结构化程序设计理论在需求分析阶段的运用 n面向数据流进行需求分析的方法 n自顶向下、逐层分解 n主要工具:数据流图、数据字典 20 3.2.2 结构化分析方法 n2结构化分析的常用工具 n数据流
8、图(DFD) n数据字典 n判定树 n判定表 21 3.2.2 结构化分析方法 n数据流图 22 3.2.2 结构化分析方法 n数据流图:基本图形元素 23 3.2.2 结构化分析方法 n数据流图:分层数据流图 24 3.2.2 结构化分析方法 n2结构化分析的常用工具 n数据字典 n结构化分析方法的核心 n对数据流图中出现的被命名的图形元素的确切解释 判定树 n判定树 n判定表 25 3.2.3 软件需求规格说明书 n需求分析阶段的最后成果 n作用: n便于用户、开发人员进行理解和交流; n反映出用户问题的结构,可以作为软件开发工作的基 础和依据; n作为确认测试和验收的依据。 n主要内容
9、n概述、数据描述、功能描述、性能描述、参考文献、 附录 n特点: n正确性;无歧义性;完整性;可验证性; 一致性;可理解性;可修改性;可追踪性。 26 3.3 结构化设计方法 3.3.1 软件设计的基本概念 n1软件设计的基础 n开发阶段:设计、实现(编码)和测试 n需求分析:主要解决“做什么”问题 n软件设计:主要解决“怎么做”问题 28 3.3.1 软件设计的基本概念 n1软件设计的基础 n重要性: n主要内容: n结构设计、数据设计、接口设计、过程设计 n步骤: n概要设计和详细设计 29 3.3.1 软件设计的基本概念 n2软件设计的基本原理 n抽象 n一种思维工具 n抽出事物本质的共
10、同特点,不考虑细节 n模块化 n模块 n模块化 n信息隐蔽 n每个模块的实现细节对于其它模块来说是隐蔽的 n模块独立性 n每个模块只涉及软件要求的具体的子功能和软件系统中其它的 模块的接口是简单的 n衡量指标:耦合性、内聚性 30 3.3.1 软件设计的基本概念 n内聚性 n度量一个模块功能强度的一个相对指标。 n一个模块只做一件事 n7种类型 31 3.3.1 软件设计的基本概念 n耦合性 n度量模块之间的相互联系程度 n取决于接口的复杂程度、调用方式、哪些信息 通过接口 n模块连接方式有7种,构成耦合性的7种类型 32 3.3.2 概要设计 n1概要设计的基本任务 n系统结构设计 n主要任
11、务:划分为模块 n数据结构和数据库的设计 n实现需求定义和规格说明过程中提出的数据对象的逻辑表示 n编写概要设计文档 n概要设计说明书、数据库设计说明书、用户手册和集成测试计 划。 n概要设计的评审 n对概要设计文档中给出的设计方案可行性、正确性、有效性、 一致性等进行审核 33 3.3.2 概要设计(续) n2软件结构图 n用来表示软件结构 n基本图符 34 3.3.2 概要设计(续) n两个附加符号 35 3.3.2 概要设计(续) n系统结构图(SC)中的模块 n原子模块 n4种类型的模块 36 3.3.2 概要设计(续) n结构图的形态特征 n深度、宽度、扇出、扇入 37 3.3.2
12、概要设计(续) n3面向数据流的设计方法 n数据流图(DFD):需求分析工具 n系统结构图(SC):概要设计工作 n主要任务:数据流图变换成结构图 n数据流的类型 n变换流 n事务流 38 3.3.2 概要设计(续) n变换流 n数据流图:取得数据、变换数据、给出数据 39 3.3.2 概要设计(续) n变换流 n系统的结构图:输入、中心变换、输出 40 3.3.2 概要设计(续) n事务流 n数据流图 41 3.3.2 概要设计(续) n事务流 n系统的结构图: 42 3.3.2 概要设计(续) n实施要点与设计过程 n分析、确认数据流图的类型,区分是事务型还 是变换型 n说明数据流的边界
13、n数据流图映射为程序结构 n根据设计准则把数据流转换成程序结构图 43 3.3.2 概要设计(续) n变换分析 n确定数据流图是否具有变换特性 n确定输入流和输出流的边界,划分出输入、变换和输 出,独立出变换中心 n第一级分解 n按上述步骤如出现事务流的映射方式对各个子流进行 逐级分解,直至分解到基本功能; n对每个模块写一个简要的说明 n利用软件的设计原则对软件结构透一步转化 n事务分析 n与变换分析类似 n主要差别:映射方法不同 44 3.3.2 概要设计(续) n4.设计准则 n提高模块独立性 n深度、宽度、扇度和扇出适度 n使模块的作用域在该模块的控制域内 n应减少模块的接口和界面的复
14、杂性 n设计成单入口、单出口的模块 n设计功能可预测的模块 45 3.3.3 详细设计 n详细设计的任务: n确定实现算法和局部数据结构 n不同于编码或编程 n详细设计的常用工具: n图形工具:程序流程图、N-S、PAD和HIPO n表格工具:判定表; n语言工具:PDL(伪码) 46 3.3.3 详细设计(续) n程序流程图 n图形元素: n方框:处理步骤 n菱形:逻辑条件 n箭头:控制流 n5种控制结构 n顺序型 n选择型 n先判断重复型 n后判断重复型 n多分支选择型。 47 3.3.3 详细设计(续) n程序流程图 48 3.3.3 详细设计(续) N-S图 流程图:随意性与灵活性 N
15、-S图:限制了随意的控制转移,保证了程序的良好结构 5种基本控制结构: 49 3.3.3 详细设计(续) N-S图 50 3.3.3 详细设计(续) nN-S图 n特点: n每个构件具有明确的功能域 n控制转移必须遵守结构化设计要求; n易于确定局部数据和(或)全局数据的作用域 n易于表达嵌套关系和模块的层次结构 51 3.3.3 详细设计(续) nPAD图 nPAD问题分析图,Problem Analysis Diagram n表现程序逻辑结构的图形工具 n5种基本控制结构 52 3.3.3 详细设计(续) nPAD图 53 3.3.3 详细设计(续) nPAD图 n特征 n结构清晰,结构化
16、程度高 n易于阅读 n程序的纵线数等于程序的层次数 n程序执行从PAD图最左主干线上端结点开始,自上 而下、自左向右依次执行,程序终止于最左主干线 54 3.3.3 详细设计(续) nPDL(伪码) nPDL过程设计语言,Program Design Language n混合语言,类似编程语言 n常用词汇: n顺序: n条件:IFTHENELSEETIDIF n循环:DOWHILEENDDO n循环:REPEAT UNTILENDREPEAT n分支:CASE OFWHENSELECTWHENSELECT ENDCASE nPDL特征: n有为结构化构成元素、数据说明和模块化特征提供的关键词语
17、法; n处理部分的描述采用自然语言语法 n可以说明简单和复杂的数据结构 n支持各种接口描述的子程序定义和调用技术。 55 3.4 软件测试 3.4.1 软件测试的目的 n检验它是否满足规定的需求或是弄清预期 结果与实际结果之间的差别 nGrenford J.Myers观点: n测试是程序的执行过程,目的在于发现错误 n一个好的测试用例在于能发现至今未发现的错 误 n一个成功的测试是发现了至今未发现的错误的 测试 57 3.4.2 软件测试的准则 n所有测试都应追溯到需求 n严格执行测试计划,排除测试的随意性 n充分注意测试中的群集现象 n程序员应避免检查自己的程序 n穷举测试不可能 n妥善保存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 基础
链接地址:https://www.31doc.com/p-3302030.html