资源预览内容
第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
第9页 / 共41页
第10页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
周周 苏苏 教授教授Zsmail.Zsmail.hzhz. .zjzj. .cncnQQ: 81505050QQ: 81505050软件工程学教程软件工程学教程第二版第二版第第5 5章章 软件详细设计软件详细设计n n结构化构造结构化构造n n图形设计工具图形设计工具n n伪码与程序设计语言伪码与程序设计语言 ( (PDL)PDL)n n各种详细设计工具的比较各种详细设计工具的比较n n详细设计文件与复审详细设计文件与复审第第5 5章章 软件详细设计软件详细设计n n概要设计完成了程序的总体结构设计,规定了各概要设计完成了程序的总体结构设计,规定了各 个模块的功能及各模块之间的相互联系,再进一步个模块的功能及各模块之间的相互联系,再进一步 ,要考虑每个模块内部的算法问题,要考虑每个模块内部的算法问题n n从软件开发的工程化观点来看,在使用程序设计从软件开发的工程化观点来看,在使用程序设计 语言编写程序以前,需要对算法的逻辑关系进行分语言编写程序以前,需要对算法的逻辑关系进行分 析,并给出清晰的表达,使之成为编码的依据析,并给出清晰的表达,使之成为编码的依据n n这一步工作不仅编码工作容易多了,而且给软件这一步工作不仅编码工作容易多了,而且给软件 的维护带来了很多的方便的维护带来了很多的方便5.1 5.1 概概 述述n n在理想情况下,详细设计需要的过程描述应当用在理想情况下,详细设计需要的过程描述应当用自然语言来表达,但是,自然语言不具有单义性,自然语言来表达,但是,自然语言不具有单义性,必须使用更有约束性的方式来表示过程细节必须使用更有约束性的方式来表示过程细节n n为了把概要设计期间简明、无歧义的一般处理步为了把概要设计期间简明、无歧义的一般处理步骤的描述转换成为准确的、结构过程描述,需要使骤的描述转换成为准确的、结构过程描述,需要使用设计描述工具用设计描述工具数据描述数据描述软件的结构描述软件的结构描述软件的程序过程描述软件的程序过程描述图图5-1 5-1 工具的类别工具的类别 5.1 5.1 概概 述述n n过程规格说明的工具称为详细设计工具,分为过程规格说明的工具称为详细设计工具,分为n n图形工具图形工具把过程的细节表示成一个把过程的细节表示成一个“ “图图” ”的组成部分,在的组成部分,在这个图上,逻辑构造用具体的图形来表示这个图上,逻辑构造用具体的图形来表示n n列表工具列表工具用一个表来表示过程的细节,这个表列出了各用一个表来表示过程的细节,这个表列出了各种操作及其相应的条件。换句话说,描述了输入、处理和输出信种操作及其相应的条件。换句话说,描述了输入、处理和输出信息息n n语言工具语言工具用类语言来表示过程的细节,这种类语言很接用类语言来表示过程的细节,这种类语言很接近于编程语言近于编程语言n n设计工具应当表现出控制的流程、处理功能、数据的组设计工具应当表现出控制的流程、处理功能、数据的组织以及实现的细节织以及实现的细节5.2 5.2 结构化构造结构化构造n n详细设计的基础在详细设计的基础在6060年代初期开始奠定和充实的。年代初期开始奠定和充实的。6060年年代后期,提出了一组逻辑构造,利用这组逻辑构造可以构代后期,提出了一组逻辑构造,利用这组逻辑构造可以构 成任何程序。这组构造强调成任何程序。这组构造强调“维持一定的功能域维持一定的功能域”。也就。也就是说,每个构造有一个预定的逻辑结构,每个构造都从顶是说,每个构造有一个预定的逻辑结构,每个构造都从顶 部进入并从底部离去部进入并从底部离去n n顺序构造是实现任何一个算法的基本处理步骤顺序构造是实现任何一个算法的基本处理步骤n n条件构造根据某种逻辑条件的出现而选择相应的处理步骤条件构造根据某种逻辑条件的出现而选择相应的处理步骤n n重复构造则是为循环而设置的重复构造则是为循环而设置的n n这三种构造是结构程序设计这三种构造是结构程序设计软件工程领域中的一种重要软件工程领域中的一种重要 方法方法的基础的基础n n结构程序设计是一种设计程序的技术,是结构程序设计是一种设计程序的技术,是软件工程领域软件工程领域中的一种重要方法,中的一种重要方法,它采用自顶向下、逐步求精的设计方它采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构法和单入口单出口的控制结构n n提出这些结构化构造的目的是限制软件的过程设计,减提出这些结构化构造的目的是限制软件的过程设计,减少程序的复杂性,从而提高软件的可读性、可测试性和可少程序的复杂性,从而提高软件的可读性、可测试性和可维护性维护性n n任何一个程序,不管它的应用领域或者技术复杂性如何任何一个程序,不管它的应用领域或者技术复杂性如何,都可以仅仅用顺序、条件和重复这三种结构化构造来设,都可以仅仅用顺序、条件和重复这三种结构化构造来设计和实现计和实现5.2 5.2 结构化构造结构化构造5.3 5.3 图形设计工具图形设计工具n n详细设计中的图形设计工具有详细设计中的图形设计工具有n n程序流程图程序流程图 ( (框图框图) )n n方块图方块图 ( (NS)NS)n nHIPOHIPO图图n nPADPAD图图n n这些图形工具提供了极好的图形样式,使得可以这些图形工具提供了极好的图形样式,使得可以方便地描述过程的细节方便地描述过程的细节5.3.1 5.3.1 程序流程图程序流程图n n流程图独立于各种程序设计语言,比较直观、清晰,易流程图独立于各种程序设计语言,比较直观、清晰,易于学习掌握。然而,它也是经常被误用的一种方法于学习掌握。然而,它也是经常被误用的一种方法n n为使流程图能描述结构化程序,限制流程图只能由几种为使流程图能描述结构化程序,限制流程图只能由几种基本控制结构组成,或者说任一程序流程图都应能由几种基本控制结构组成,或者说任一程序流程图都应能由几种基本控制结构嵌套而成基本控制结构嵌套而成n nGB1526-89GB1526-89信息处理信息处理数据流程图、程序流程图、系数据流程图、程序流程图、系统流程图、程序网络图和系统资源图的文件编制符号及约统流程图、程序网络图和系统资源图的文件编制符号及约定中对程序流程图的符号做出了规定定中对程序流程图的符号做出了规定图图5-2 5-2 基本控制结构基本控制结构图图5-3 5-3 嵌套构造嵌套构造 图图5-4 5-4 标准程序流程图符号标准程序流程图符号 5.3.1 5.3.1 程序流程图程序流程图n n通常,当需要从一组嵌套的循环构造或者嵌套的条件构通常,当需要从一组嵌套的循环构造或者嵌套的条件构 造中离去时,只简单地采用结构化构造有可能使效率降低造中离去时,只简单地采用结构化构造有可能使效率降低 ,甚至沿着离去路径使所有逻辑测试复杂化,从而使软件,甚至沿着离去路径使所有逻辑测试复杂化,从而使软件 的控制流程变得模糊不清,增加了出错的可能性,并且对的控制流程变得模糊不清,增加了出错的可能性,并且对 可读性和可维护性也有不良影响。这时,可以有两种选择可读性和可维护性也有不良影响。这时,可以有两种选择 :n n重新设计程序流程,使得在控制流程的嵌套部位不需要出现重新设计程序流程,使得在控制流程的嵌套部位不需要出现 离去分支离去分支n n有控制地采用非结构化的构造;也就是说,设计成有限制地有控制地采用非结构化的构造;也就是说,设计成有限制地 从嵌套流程中往外分支从嵌套流程中往外分支图图5-5 5-5 一个结构化流程图一个结构化流程图 5.3.2 5.3.2 方块图方块图 ( (N-S)N-S)n n是一种强制使用结构化构造的图示工具,具有下是一种强制使用结构化构造的图示工具,具有下列特点列特点n n明确规定功能域明确规定功能域 ( (即某一具体构造的功能范围即某一具体构造的功能范围) ) ,并,并且很直观地从图形表示中看出来且很直观地从图形表示中看出来n n不可能随意分支或转移不可能随意分支或转移n n可以很容易地确定局部数据和可以很容易地确定局部数据和 ( (或或) ) 全程数据的作用全程数据的作用域域n n容易表示出递归结构容易表示出递归结构图图5-6 5-6 方块图表示的结构化构造方块图表示的结构化构造 图图5-7 5-7 方块图方块图 5.3.3 5.3.3 HIPOHIPO图图n n( (层次加输入层次加输入- -处理处理- -输出输出) ) 是根据是根据IBMIBM公司研制的软件设计公司研制的软件设计 与文件编制技术发展而来的一种图示工具与文件编制技术发展而来的一种图示工具n n在概要设计、详细设计、设计评审、测试和维护的不同在概要设计、详细设计、设计评审、测试和维护的不同 阶段,都可以使用阶段,都可以使用HIPOHIPO图对设计进行描述图对设计进行描述n nHIPOHIPO图的最重要的特征是它能够表示输入图的最重要的特征是它能够表示输入/ /输出数据输出数据 ( (外外 部数据和内部数据流程部数据和内部数据流程) ) 与软件的过程之间的关系与软件的过程之间的关系n n完整的一组完整的一组HIPOHIPO图由下列各部分组成图由下列各部分组成n n层次图层次图 ( (HH图图) ) :以层次方框形式表达程序主功能模块与次功:以层次方框形式表达程序主功能模块与次功 能模块的关系能模块的关系n n高层高层IPOIPO图:针对图:针对HH图中的主功能模块和次功能模块,描述图中的主功能模块和次功能模块,描述 其输入,处理功及输出等其输入,处理功及输出等n n低层低层IPOIPO图:给出图:给出HH图中最低层次的具体设计图中最低层次的具体设计2.22.2 数据编数据编 辑模块辑模块2.12.1 数据输数据输 入模块入模块3.13.1 开票数开票数 据模块据模块3.13.1 开票开票 模块模块3.33.3 发票登发票登 记模块记模块4.14.1 事务报事务报 表模块表模块4.24.2 顾客报顾客报 表模块表模块4.34.3 余额报余额报 表模块表模块3.1.13.1.1 进货进货3.1.23.1.2 付款付款3.1.33.1.3 贷调整贷调整3.1.43.1.4 借调整借调整2.02.0 每月发票处理每月发票处理3.03.0 事务处理事务处理4.04.0 报表生成准备报表生成准备1.01.0 订单处理子系统订单处理子系统图图5-8 5-8 订单处理的订单处理的H H图图 5.3.3 5.3.3 HIPOHIPO图图n n在画在画HH图时要注意几个问题图时要注意几个问题n n根据经验,一般每层画根据经验,一般每层画3-103-10个功能模块为宜个功能模块为宜n n对于画到第几层为止则无统一标准,视具体情况而定对于画到第几层为止则无统一标准,视具体情况而定n n画高层画高层IPOIPO时,从时,从HH层第一层开始画,按自上而下,从左到层第一层开始画,按自上而下,从左到右的顺序画出右的顺序画出HH图中每个方框图中每个方框 ( (除最底层外除最底层外) ) 的的IPOIPO图。在图。在IPOIPO图上给出哪些是输入,处理的功能是什么,输出什么图上给出哪些是输入,处理的功能是什么,输出什么n n为了避免规模和维护上的复杂性问题,大多数项目的为了避免规模和维护上的复杂性问题,大多数项目的HIPOHIPO图只深入到某一层图只深入到某一层图图5-9 5-9 每月发票处理的每月发票处理的 IPOIPO 5.3.4 5.3.4 PADPAD图图n nPAD PAD ( (问题分析图问题分析图) ) 是一种用于软件详细设计的表是一种用于软件详细设计的表 达形式达形式n n综合流程图、综合流程图、WarnierWarnier图、方块图和伪码等技术的图、方块图和伪码等技术的 一些特点一些特点n n以二维树的形式描述程序的逻辑以二维树的形式描述程
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号