《软件技术基础教程》(徐士良版)全套PPT电子课件教案-第7章应用软件设计与开发技术.ppt_第1页
《软件技术基础教程》(徐士良版)全套PPT电子课件教案-第7章应用软件设计与开发技术.ppt_第2页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

第7章 应用软件设计与开发技术,7.1 软件工程概述 7.2 结构化分析方法 7.3 结构化设计方法 7.4 测试与调试基本技术,7.1 软件工程概述,7.1.1 软件工程的概念 软件工程是指采用工程的概念、原理、技术和方法指导软件的开发与维护。 软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。在软件研制开发过程中,若能严格遵循软件工程的方法论,便可提高软件开发的成功率,减少软件开发和维护中出现的问题。,7.1.2 软件生命周期 某一软件从被提出并着手开始实现,直到软件完成其使命为止的全过程被划分为一些阶段,并称这一全过程为软件生命周期。 通常,软件生命周期包括八个阶段:问题定义、可行性研究、需求分析、系统设计、详细设计、编码、测试和运行维护。,为使各时期的任务更明确,又可以分为以下三个时期: 1软件定义期 (1)问题定义 (2)可行性研究 可行性研究的目的是进一步研究上一阶段所定义的问题是否可解。,(3)需求分析 在这个阶段中,根据可行性研究阶段提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么。,2软件开发期 (1)系统设计 这一阶段任务是划分出构成系统的各物理元素以及设计出软件的结构 。 (2)详细设计 详细设计的任务是对系统作出精确的描述,以便在编码阶段可直接将这一描述用程序设计语言编制成程序。,(3)编码 编码是将系统设计与详细设计阶段中的结果翻译成用某种程序设计语言书写的程序。 (4)测试 测试的目的是要尽量发现程序中的错误,但绝不能证明程序的正确性。 3软件维护期,7.1.3 应用软件开发的原则和方法 1. 应用软件开发的基本原则 (1)自顶向下的系统结构开发原则 (2)模块化结构开发原则,2应用软件的开发方法 (1)非自动形式的开发方法 系统流程图法 结构化分析方法 结构化设计方法 数据结构法 层次输入处理输出方法,(2)半自动形式的开发方法 软件需求工程法 问题说明语言/分析器 3自动形式的系统开发方法,7.2 结构化分析方法,7.2.1 sa方法的特点 1分解和抽象 2文档的规范化 3面向用户 4系统的逻辑设计和物理设计分开进行,7.2.2 数据流程图 1数据流程图的概念 图7.2所示的是一个描述研究生从入学到毕业的业务活动的数据流程图。,2数据流程图的组成符号 一般来说,数据流程图由四种基本成分构成:数据流、数据处理、数据存储和外部实体。 它们的符号如图7.3所示。,3画数据流程图的方法 (1)自顶向下逐层分解方法 (2)由外向里逐渐深化方法,7.2.3 数据字典 数据字典是结构化分析方法的另一个重要工具。 数据字典主要是给数据流程图中的每一个数据流名、文件名以及处理名建立一个条目,在这些条目中给出各名字的定义。,在数据字典中,通常有四种类型的条目。 1基本数据项条目 2数据流条目 3文件条目 4加工条目 (即数据处理条目),7.2.4 功能说明 功能说明又称为“小说明”,它是对数据流程图中每个加工的详细描述,从而也是结构化分析的主要工具之一。,1结构化语言 结构化语言是介于形式语言与自然语言之间的一种语言。 在结构化语言中,使用顺序结构、选择结构和循环结构来描述加工处理中的各种功能操作。,2判定树 判定树又称决策树,它是一种图形工具。在判定树中,树根在最左边,它是判定的起点;后面依次是各个分支,每一个分支中包括表示问题的条件和根据该条件所做的行动。 例如,图7.4所示的是组织春游活动的一棵判定树,它根据天气情况以及交通工具来决定春游地点。,3判定表 判定表是判定树的表格形式。 例如,图7.4所示的判定树用判定表表示,如图7.5所示。,4三种表达方式的比较 表7.1是这三种表达工具的比较。,7.3 结构化设计方法,7.3.1 sd方法的特点 结构化设计(structured design,sd)方法采取“分解”的手段来控制系统的复杂性,即把一个大型系统分解成若干个相对独立、功能单一的模块。,7.3.2 结构图 1结构图 结构图(structured chart,sc)的基本元素是模块,一般用矩形框表示。 结构图将一个系统分解为若干个模块,每个模块可以看成一个“黑盒”,在图中表示它的层次、构成和相互之间的关系。,一般来说,结构图包括以下四种成分。 (1)模块 模块用矩形框表示,矩形框中标明模块的名称,它反映该模块的功能。 (2)调用 在结构图中,用带有箭头的连线表示模块之间的调用关系。,(3)模块间信息传递 在结构图中,用一些带有圆圈的小箭头来表示模块之间的通信,即模块调用时数据或控制信息的传递,箭头的方向表示传递的方向。 (4)辅助符号 在结构图中,有时还要用到一些辅助符号。,2.由数据流程图导出结构图 sd方法实际上是面向数据流程图的,即它的工作对象实际上是在sa方法中形成的数据流程图。 因此,可以由数据流程图来导出结构图。 (1)变换型 (2)事务型,7.3.3 模块独立性的评价 评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。,(1)耦合 耦合模块之间的耦合反映了模块的独立性,也反映了系统分解后的复杂程度。 数据耦合 同构耦合 控制耦合 公用耦合 内容耦合,(2)内聚 内聚是对一个模块内部元素之间功能上相互联系强度的测量。 功能内聚 序列内聚 通信内聚 过程内聚 时间内聚 逻辑内聚 偶然内聚,7.4 测试与调试基本技术,7.4.1 测试 1测试的基本概念 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。,测试具有以下三个重要特征。 (1)测试的挑剔性 (2)完全测试的不可能性 (3)测试的经济性,2测试的过程 程序的测试一般按三种方式进行:静态分析,动态测试和自动测试。 (1)程序的静态分析 静态分析指不执行程序,而只人工对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。,(2)程序的动态分析 程序的动态分析是使用测试用例在计算机上运行程序,使程序在运行过程中暴露错误。 (3)自动测试工具 自动测试工具实际上是人们编制的用于测试的软件,并用它来代替人工测试。,3测试的层次 (1)模块测试 模块测试又称单元测试。 模块测试的目标是发现局部模块的逻辑与功能上的错误和缺陷。 它主要对以下几个方面进行测试。, 模块接口 局部数据结构 重要路径 错误处理的能力 i/o错,(2)整体测试 整体测试的目标是尽量暴露模块测试时不能暴露的结构错误,如一个模块是否破坏了另一个模块的功能,数据通过接口时是否会丢失,能否产生主功能以及误差是否有积累等。 整体测试可分为渐增式与非渐增式两种。,非渐增式的整体测试是将经过单独测试的所有模块连接到一起进行测试。 渐增式的整体测试往往是与模块测试同步进行的,即在对模块逐步装配的过程中同时进行。 “自顶向下”渐增式测试 “自底向上”渐增式测试,(3)高级测试 功能测试 系统测试 验收测试 安装测试,4测试的方法 对程序进行测试需要使用一些数据,每进行一次测试,就需要一组测试数据,这些测试数据通常称为测试用例。 (1)白箱法 白箱测试是根据对程序内部逻辑结构的分析来选取测试用例。, 语句覆盖 语句覆盖准则是企图用足够多的测试用例,使程序中的每个语句都执行一遍,以便尽可能多地发现程序中的错误。, 分支覆盖 分支覆盖准则也称为判定覆盖准则。 条件覆盖 条件覆盖准则是通过执行足够多的测试用例,使每个判定中的每个条件都能取得两种不同的结果(“真”与“假”)。, 组合条件覆盖 组合条件覆盖准则要求通过足够多的测试用例,使每个判定中各条件的各种可能组合至少出现一次。,(2)黑箱法 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。 等价分类法 等价分类法是把所有可能的输入数据(有效的和无效的)划分成若干等价类,使每一类中的一个典型数据在测试中的作用与这一类中所有其他数据的作用相同。, 边值分析法 边值分析着眼于使该等价类的边界情况成为测试的主要目标来选取测试用例。 因果图法 因果图法是设计测试用例的一种系统方法,有助于测试人员系统地选择高效的测试用例。,错误推测法 错误推测法也称猜错法,它无一定之规可循,在很大程度上是凭经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写测试用例。 (3)综合策略,7.4.2 调试 调试也称排错 。 一般的调试过程分为错误侦查、错误诊断和改正错误。 1调试技术 常用的调试技术有以下五种。 (1)输出存储器内容。 (2)在程序中插入调试语句。,(3)利用调试用例,迫使程序逐个通过所有可能出现的执行路径,系统地排除“无错”的程序分支,逐步缩小检查的范围。 (4)经静态分析、动态测试或自动测试,都会得到大量与程序错误有关的信息,这些信息都可在调试时加以利用。 (5)借助调试工具。,2调试策略 (1)试探法 (2)回溯法 (3)对分查找法 (4)归纳法 (5)演绎法,7.5 软件开发新技术,7.5.1 原型方法 原型法将软件开发过程分为以下四个步骤。 (1)确定用户的基本要求 (2)开发初始原型 (3)实现并运行原型 (4)修改并完善原型,7.5.2 瀑布模型 瀑布模型规定

温馨提示

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

评论

0/150

提交评论