您好,欢迎访问三七文档
软件工程安徽职业技术学院信息工程系孙街亭2020/3/30SoftwareEngineering2020/3/302结束返回第5讲详细设计5.1详细设计的任务与原则5.2结构化程序设计5.3过程设计工具5.4用户界面设计5.5数据库设计5.6接口设计5.7详细设计说明书第5章详细设计2020/3/303结束返回5.1详细设计的任务与原则详细设计以概要设计阶段的工作为基础的,但又不同于概要设计,主要表现为以下两个方面:(1)在概要设计阶段,数据项和数据结构以比较抽象的方式描述,而详细设计阶段则应在此基础上给出足够详细的描述。(2)详细设计要提供关于算法的更多的细节。例如:概要设计可以声明一个模块的作用是对一个表进行排序,详细设计则要确定使用哪种排序算法。在详细设计阶段为每个模块增加了足够的细节后,程序员才能够以相当直接的方式进行下一阶段的编程工作。5.1.1详细设计的任务(1)为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述。(2)确定每一模块使用的数据结构。(3)确定模块接口的细节。(4)为每一个模块设计出一组测试用例。(5)编写详细设计说明书。第5章详细设计5.1详细设计的任务与原则2020/3/3042020/3/304结束返回5.1.2详细设计的原则(1)模块的逻辑描述正确可靠、清晰易读。(2)选择适当的描述工具来对各模块的算法进行描述。(3)采用结构化程序设计方法,改善控制结构,降低程序复杂度,提高程序的可读性、可测试性和可维护性。第5章详细设计5.1详细设计的任务与原则2020/3/305结束返回2020/3/306结束返回5.2结构化程序设计第5章详细设计1.结构化程序设计的概念结构化程序设计(SP,StructuredProgramming)方法是由Dijkstra等人于1972年提出的,用于指导人们用良好的思维方式开发出正确又易于理解的程序。EdsgerWybeDijkstra结构化程序设计是一种良好的程序设计技术和方法,它采用自顶向下、逐步细化的设计方法和单入口、单出口的控制结构。Bohm和Jacopini在1966年就证明了结构化程序定理:任何程序结构都可以用顺序、选择和循环这3种基本结构及其组合来实现。5.2结构化程序设计第5章详细设计2.结构化程序设计的原则(1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序。(2)选用的控制结构只准许有一个入口和一个出口。(3)复杂结构应该用基本控制结构进行组合嵌套来实现。(4)严格控制GOTO语句的使用。5.2结构化程序设计第5章详细设计5.2结构化程序设计第5章详细设计例,打印A、B、C3个数中最小值的程序。5.2结构化程序设计第5章详细设计5.2结构化程序设计第5章详细设计3.结构化程序设计的优点(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,可以显著提高软件开发的成功率和生产率。(2)先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构。(3)使用单入口单出口的控制结构而不使用GOTO语句,使得程序的静态结构和它的动态执行情况比较一致。5.2结构化程序设计第5章详细设计2020/3/3012结束返回(4)控制结构有确定的逻辑模式,编写程序代码只限于使用很少几种直截了当的方式。(5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。(6)程序的逻辑结构清晰,有利于程序正确性验证。5.2结构化程序设计第5章详细设计2020/3/3014结束返回5.3过程设计工具第5章详细设计过程设计工具程序流程图N-S图PAD图PDL语言判定表、判定树描述程序模块处理过程的工具称为过程设计工具,主要有图形、表格和语言三大类。1.程序流程图程序流程图(ProgramFlowChart)又称为程序框图,是一种描述程序的控制结构流程和指令执行情况的有向图。它是历史最悠久,使用最广泛的过程描述方法。第5章详细设计5.3过程设计工具2020/3/3016结束返回程序流程图中的符号起止端点输入/输出一般处理准备或预处理预定义处理条件判断循环上界循环下界文件或文档外接内接流程线虚线省略线并行方式注解或注释第5章详细设计5.3过程设计工具2020/3/3017结束返回A(1)顺序型B几个连续的加工按先后顺序排列。expFTAB(2)选择型由某个判断式的取值决定选择两个加工中的一个。第5章详细设计5.3过程设计工具2020/3/3018结束返回(3)当型循环当循环控制条件成立时,重复执行特定的加工。expFTS(4)直到型循环重复执行特定的加工,直到循环控制条件成立时止。expFTS第5章详细设计5.3过程设计工具2020/3/3019结束返回(5)多分支选择型列出多种加工情况,根据控制变量的取值,选择执行其一。exp=1FTS1exp=2exp=nS2TSnTFF第5章详细设计5.3过程设计工具第5章详细设计2020/3/3021结束返回程序流程图示例程序流程图示例:2.盒图(N-S图)Nassi和Shneiderman出于要有一种不允许违背结构化程序设计精神的图形工具考虑,提出了盒图,又称为N-S图。盒图没有箭头,因此不允许随意转移控制。使用盒图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。第5章详细设计5.3过程设计工具2020/3/3023结束返回顺序型AB选择型BpFTApFTAp=1=2…=nA1A2…Andowhile(p)Sdountil(p)S当型循环直到型循环多分支选择型第5章详细设计5.3过程设计工具第5章详细设计盒图示例:3.PAD图问题分析图(PAD,ProblemAnalysisDiagram),1973年由日本日立公司发明,已得到一定程度的应用。它用二维树形结构图来表示程序的控制流,将这种图翻译成程序代码比较容易。第5章详细设计5.3过程设计工具2020/3/3026结束返回直到型循环WhilePSUntilPS当型循环ABABpAp顺序型选择型A1pA2An=1=2=n多分支选择型第5章详细设计5.3过程设计工具第5章详细设计PAD图示例:2020/3/3028结束返回PAD图表达的软件过程呈树形结构,它即克服了传统的流程图不能清晰表现程序结构的缺点,又不像N-S图那样受到把全部程序约束在一个方框内的限制,这就是它的优势所在。第5章详细设计5.3过程设计工具4.判定表在数据处理中,有时数据流的加工需要依赖于多个逻辑条件的取值,就是说完成这一加工的一组动作是由一组条件取值的组合而引发的。这时使用判定表来描述比较合适。判定表通常由四部分组成:左上部分列出所有的条件,左下部分为所有可能的操作,右上部分表示各种条件组合的一个矩阵,右下部分是对应每种条件组合应有的操作。第5章详细设计5.3过程设计工具第5章详细设计例,商店业务处理系统中“检查发货单”判定表5.3过程设计工具5.判定树判定树是判定表的变种,它能清晰地表达复杂的条件组合与所对应的操作之间的关系。判定树的优点在于它无须任何说明,一眼就能看出其含义,易于理解和使用。第5章详细设计5.3过程设计工具第5章详细设计商店业务处理系统中“检查发货单”判定树5.3过程设计工具2020/3/3033结束返回PDL是一种用于描述功能模块的算法设计和加工细节语言,称为过程设计语言。它是一种伪代码(PseudoCode)。PDL-----关键词+自然语言第5章详细设计6.PDL(ProcessDesignLanguage)语言5.3过程设计工具PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。因此,一般说来PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。第5章详细设计5.3过程设计工具2020/3/3035结束返回IF条件THEN程序块/伪代码语句组;ELSE程序块/伪代码语句组;ENDIF选择型结构第5章详细设计5.3过程设计工具2020/3/3036结束返回DOWHILE条件描述程序块/伪代码语句组;ENDDOREPEATUNTIL条件描述程序块/伪代码语句组;ENDREP重复型结构第5章详细设计5.3过程设计工具2020/3/3037结束返回步长重复型结构DOFOR下标=下标表,表达式程序块/伪代码语句组;ENDFOR第5章详细设计5.3过程设计工具2020/3/3038结束返回多分支选择结构CASEOFcase变量名;WHENcase条件1SELECT程序块/伪代码语句组;WHENcase条件2SELECT程序块/伪代码语句组;……DEFAULT:缺省或错误case:程序块/伪代码语句组;ENDCASE第5章详细设计5.3过程设计工具例,商店业务处理系统中“检查发货单”的伪代码。if发货单金额超过$500thenif欠款超过了60天then在偿还欠款前不予批准else(欠款未超期)发批准书,发货单endifelse(发货单金额未超过$500)if欠款超过60天then发批准书,发货单及赊欠报告else(欠款未超期)发批准书,发货单endifendif第5章详细设计5.3过程设计工具IFtheinvoiceexceeds$500THENIFtheaccounthasanyinvoicemorethan60daysoverdueTHENtheconfirmationpendingresolutionofthedebtELSEissueconfirmationandinvoiceENDIFELSEIFtheaccounthasanyinvoicemorethan60daysoverdueTHENissueconfirmation,invoiceandwritemessageoncreditactionreportELSEissueconfirmationandinvoiceENDIFENDIF第5章详细设计5.3过程设计工具2020/3/3041结束返回PDL的特点:提供全部结构化控制结构和模块特征。能对PDL正文进行结构分割,使之变得易于理解。有数据说明机制,包括简单的(如变量和数组)与复杂的(如链表和层次结构)数据结构。有子程序定义与调用机制,用以表达各种方式的接口说明。为了区别关键字,规定关键字一律大写,其它单词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,以利于人们可把主要精力放在描述算法的逻辑上。第5章详细设计5.3过程设计工具加工逻辑描述工具的选择:a.对于不太复杂的判断逻辑,使用判定树比较好;b.对于复杂的判断逻辑,使用判定表比较好;c.若一个处理逻辑既包含了一般的顺序执行动作,又包含了判断或循环逻辑,则使用PDL语言比较好。第5章详细设计5.3过程设计工具用户界面是用户和计算机交互的重要途径,用户可以通过屏幕窗口与计算机进行对话,向计算机输入有关数据,控制计算机的处理过程并将处理结果反馈给用户。因此,界面设计必须从用户操作方便的角度来考虑,与用户共同协商界面的内容和形式。5.4.1用户界面设计的“黄金规则”TheoMandel在1997年提出了界面设计的3条“黄金规则”:1.界面应置于用户控制之下。2.减少用户的记忆负担。3.保持界面风格的一致性。这些规则实际上构成了指导用户界面设计活动的基本原则。第5章详细设计5.4用户界面设计5.4.2用户界面设计过程用户界面设计是一个不断的迭代过程,可以用类似软件生命周期中的螺旋模型来表示。用户界面设计过程包括4个活动过程:1.用户、任务和环境分析。2.界面设计。3.界面构造(实现)。4.界面确认。第5章详细设计5.4用户界面设计第5章详细
本文标题:第5讲-详细设计.
链接地址:https://www.777doc.com/doc-4633181 .html