软件工程课件第5章.ppt_第1页
软件工程课件第5章.ppt_第2页
软件工程课件第5章.ppt_第3页
软件工程课件第5章.ppt_第4页
软件工程课件第5章.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 详细设计,5.1 结构程序设计 5.2 详细设计的工具 5.3 程序复杂程度的定量度量 5.4 小结,在软件的总体设计中,已经将系统划分为多个模块,并将它们按一定规律组装在一块,并将它们按照一定的原则组装起来,同时确定了每个模块的功能及模块与模块之间的外部接口。 详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程。,详细设计的基本任务,1、为每个模块进行详细的算法设计。 2、为模块内的数据结构进行设计。 3、对数据库进行物理设计,即确定数据库的物理结构。 4、其他设计:根据软件系统的类型,还可以要进行以下设计: (1)代码设计。 (2)输入/输出格式设计。 (3)人机对话设计。

2、 5、编写详细设计说明书。 6、评审。对处理过程的算法和数据库的物理结构都要评审。,5.1 结构程序设计,处理过程设计中采用的典型方法是结构化程序设计(简称SP)方法,最早由E.W.Dijkstra在60年代中期提出的。详细设计并不是具体地编程序,而是已经细化成很容易地从中产生程序的图纸。因此详细设计的结果基本决定了最终程序的质量。为了提高软件的质量,延长软件的生存期,软件的可测试性、可维护性是重要保障。而可测试性、可维护性与程序的易读性有很大关系。,详细设计的目标不仅是逻辑上正确在实现每个模块的功能,还应使设计出的处理过程清晰易读。结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的

3、思想方法开发易于理解、易于验证的程序。 采用自顶向下、逐步求精的程序设计方法 使用三种基本控制结构构造程序 主程序员组的组织形式,5.2 详细设计的工具,详细描述处理过程常用三种工具:图形、表格和语言。 5.2.1程序流程图 5.2.2盒图(N-S图) 5.2.3问题分析图PAD图 5.2.4判定表 5.2.5判定树 5.2.6过程设计语言(PDL)。,过程设计,从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。这就是过程设计的任务。,在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过

4、程规格说明的工具叫做详细设计工具,它可以分为以下三类: 图形工具 表格工具 语言工具,5.2.1程序流程图,程序流程图又称程序框图,它是历史最悠久、使用最广泛的一种描述程序逻辑结构的工具。 流程图的优点是直观清晰、易于使用,是开发者普遍采用的工具,但是它有严重缺点: 可以随心所欲地画控制流程线的流向,容易造成非结构化的程序结构。编码时势必不加限制地使用GOTO语句,导致基本控制块多入口多出口,这样会使软件质量受到影响,与软件设计的原则相违背。 流程图不易反映逐步求精的过程,往往反映的是最后的结果。 不易表示数据结构。,程序流程图,程序流程图也称为程序框图,程序流程图使用五种基本控制结构是:,示

5、例,5.2.2 盒图N-S图,1973年,Nassi和Shneiderman发表了题为“结构化程序的流程图技术”的文章,提出用方框图(block diagram)来代替传统的流程图,引起了人们的重视,根据这两位创始人的名字,许多人把它简称为NS图(NS chart)。 NS的主要特色,就是只能描述结构化程序所允许的标准结构,根本取消了表现诸如含有GOTO语句的非标准结构的手段。 优点是:所有的程序结构均用方框来表示,无论并列或者嵌套,程序的结构清晰可见。而且,由于它只能表达结构化的程序逻辑,使应用NS图来描述软件设计的人不得不遵守结构化程序设计的规定。久而久之,就可自然地养成良好的程序设计风格

6、。不足的是:当程序内嵌套的层数增多时,内层的方块越画越小,不仅会增加画图的困难,并将使图形的清晰性受到影响。,盒图N-S图,N-S图也叫做盒图。五种基本控制结构由五种图形构件表示。,示例,N-S图的嵌套定义形式,5.2.3 问题分析图(PAD),PAD图是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。PAD图的控制流程为自上而下,从左往右地执行。优点: 清晰地反映了程序的层次结构。 支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。 易读易写,使用方便。 支持结构化的程序设计原理。 可自动生成程序。,PAD也设置了五种基本控制结构的图

7、式,并允许递归使用。,问题分析图(PAD),PAD描述的示例,对应于增量型循环结构 for i := n1 to n2 step n3 do在PAD中有相应的循环控制结构,PAD的扩充控制结构,5.2.4判定表,判定表用于表示程序的静态逻辑 在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理 要求将程序流程图中的多分支判断都改成两分支判断 能够清晰地表示复杂的条件组合与应做的动作之间的对应关系,无多分支判断结构,5.2.5 判定树,判定树是判定表的变种也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。 优点在于,它的形式简单到不需要任何说明,一眼说可以看出其含义 易于

8、掌握和理解,5.2.6过程设计语言(Process Design Language ,PDL),也称程序描述语言(Program Description Language ,PDL),又称为伪码(pseudo code)。属于文字形式的表达工具。它并非真正的代码,也不能在计算机上执行,但形式上与代码相似。它是一种用于描述模块算法设计和处理细节的语言。PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和模块接口,而它表示实际操作和条件的内层语法又是灵活自由的,使用自然语言的词汇。,PDL 特 点,所有关键字都有固定语法,以便提供结构化控制结构、数据说明和模块的特征。 描述处理过程的说明性

9、语言没有严格的语法。 具有数据说明机制,包括简单的与复杂的数据说明。 具有模块定义和调用机制,因此开发人员应根据系统编程所用的语种,说明PDL表示的有关程序结构。,5.3 程序复杂程度的定量度量,程序图(program graph)是一种简化了的流程图。流程图中的各种框(包括加工框,判断框,等等),在程序图中都被简化为一个用圆圈表示的结点。从图论的观点看,它是一个可以用GN,E来表示的有向图。其中N表示结点,可以取代流程图中的各种框;E代表有向边,用以指明程序的流程。 在对结构复杂性进行度量的时候,我们感兴趣的仅是程序的流程,并不关心各个框的细节。程序图保留了控制流的全部轨迹,舍弃了不需要的内容,从而使画面更加简洁,更好地适应了这种工作的需要。在软件测试中,借助程序图来设计测试用例,能了解不同的测试数据对被测程序各种路径的复盖情况。 程序图可以由流程图导出,也可直接由PAD图或代码等其它详细设计表达工具变换获得。,5.3.1 McCabe方法,环形复杂度的计算方法 根据T.McCabe进行的研究,一个程序的环形复杂度(cyclomatic complexity)取决于它的程序图包含的判定结点的数量。我们知道,每一判定都联系着一个分支(选择)或者循环结构。这两种结构越多,程序的复杂度就越高。McCabe定义了一个函数V(G),并用它来表示程序的

温馨提示

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

评论

0/150

提交评论