1详细设计Ø详细设计的任务Ø概要设计和详细设计的区别与联系Ø详细设计概述Ø面向数据流的详细设计方法2详细设计的任务①确定每个模块的具体算法。②确定每个模块的内部数据结构及数据库的物理结构。③确定模块接口的具体细节。④为每个模块设计一组测试用例。⑤编写文档,参加复审。3概要设计和详细设计的区别Ø实现目标不同概要设计实现软件的总体设计、模块划分、用户界面设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现用户界面设计、数据结构设计的细化,等等。Ø内容要求不同概要设计,必须完成概要设计文档,包括系统的总体设计文档、以及各个模块的概要设计文档。每个模块的设计文档都应该独立成册。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。和概要设计一样,每个模块的详细设计文档都应该独立成册。4概要设计和详细设计的区别Ø数据库设计不同概要设计里面的数据库设计应该重点在描述数据关系上,说明数据的来龙去脉,在这里应该结合我们的一下结果数据,说明这些结果数据的源点,我们这样设计的目的和原因。详细设计里的数据库设计就应该是一份完善的数据结构文档,就是一个包括类型、命名、精度、字段说明、表说明等内容的数据字典。Ø功能设计不同概要设计里的功能应该是重点在功能描述,对需求的解释和整合,整体划分功能模块,并对各功能模块进行详细的图文描述,应该让读者大致了解系统作完后大体的结构和操作模式。详细设计则是重点在描述系统的实现方式,各模块详细说明实现功能所需的类及具体的方法函数,包括涉及到的sql语句等5主要任务:编写详细设计说明书为此,设计人员应:(1)确定每个模块的算法,用工具表达算法的过程,写出模块的详细过程性描述。(2)确定每一模块的数据及数据库结构。(3)确定模块接口细节。(4)准备测试用例。详细设计是编码的先导。详细设计概述6详细设计工具:(1)图形工具流程图N-S图(盒图)问题分析图(PAD)(2)语言工具(3)表格工具详细设计概述71.程序流程图程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本符号:(a)一般处理框;(b)输入/输出框;(c)判断框;(d)流程线;(e)起止框(a)(b)(c)(d)(e)详细设计概述8开始结束详细设计概述9程序流程图的优点:对程序的控制流程描述直观、清晰,使用灵活,便于阅读和掌握。程序流程图的缺点:①可以随心所欲地使用流程线,容易造成程序控制结构的混乱,与结构化程序设计的思想相违背。②难以描述逐步求精的过程,容易导致程序员过早考虑程序的控制流程,而忽略程序全局结构的设计。③难以表示系统中的数据结构。详细设计概述102.N-S图N-S图又称为盒图,是为了保证结构化程序设计而由Nassi和Shneiderman共同提出的一种图形工具。n使用矩形框表示清晰地表达结构中的嵌套及模块的层次关系。特点:没有流程线,不可能随意转移控制详细设计概述11图5.1N-S图中基本控制结构的表示符号(a)顺序结构;(b)分支结构;(c)多分支CASE结构;(b)(d)while-do结构;(e)do-until结构;(f)调用模块A值1…值2值nCASE1部分CASE2部分…CASEn部分CASE条件(c)(b)S1S2IF条件TFS2S1(a)while循环条件while-do部分(d)until条件do-until部分(e)(f)A详细设计概述12N-S图的问题当所描述的程序嵌套层次较多时,N-S图的内层方框会越画越小影响可读性不易修改详细设计概述13详细设计的原则详细设计阶段应遵循下列原则:(1)将保证程序的清晰度放在首位。结构清晰的程序易于理解和修改,会大大减少错误发生的机率,除了对执行效率有严格要求的实时系统外,通常在详细设计过程中应优先考虑程序的清晰度,而将程序的效率放在第二位。详细设计概述14(2)设计过程中应采用逐步细化的实现方法。从体系结构设计到详细设计,是一个细化模块描述的过程,由粗到细、分步进行的细化有助于保证所生成程序的可靠性,在详细设计中特别适合采用逐步细化的方法。在对程序进行细化的过程中,还应同时对数据描述进行细化。详细设计概述(3)选择适当的表达工具。图形工具便于设计人员与用户的交流,而PDL语言便于将详细设计的结果转换为源程序。设计人员应根据具体情况选择适当的表达工具。15详细设计说明书详细设计说明书是详细设计阶段最重要的技术文档。Ø体系结构设计说明书侧重于软件结构的规定Ø详细设计说明书侧重于对模块实现具体细节的描述。详细设计说明书可以看作是在体系结构设计说明书所确定的系统总体结构的基础上,对其中各个模块实现过程的进一步描述和细化。详细设计概述16(1)引言:用于说明编写本说明书的目的、背景,定义所用到的术语和缩略语,以及列出文档中所引用的参考资料等。(2)总体设计:用于给出软件系统的体系结构图。(3)模块描述:依次对各个模块进行详细的描述,主要包括模块的功能和性能,实现模块功能的算法,模块的输入及输出,模块接口的详细信息等。详细设计说明书包括的内容详细设计概述17面向数据流的详细设计方法面向数据流的详细设计方法关键技术:(1)设计过程中采用了自顶向下,逐步细分的方法。(2)采用DO-UNTIL循环结构和多分支选择结构(DO-CASE)两种补充结构。18(1)设计过程中采用了自顶向下,逐步细分的方法:面向数据流的设计:Ø自顶向下Ø逐步细分的方法面向数据流的详细设计方法19Ø在体系结构设计中,将需要处理的问题分解细化为一个由多个模块组成的层次结构的软件系统Ø在详细设计中,将系统中的每个模块逐步分解细化为一系列的具体处理步骤面向数据流的详细设计方法20所有模块的实现都只采用单入口、单出口的三种基本控制结构在面向数据流的详细设计中,为了保证程序结构的清晰度,通常限制只能采用三种基本控制结构来构造程序:u顺序结构u选择结构(IF-THEN-ELSE型)uDO-WHILE循环结构面向数据流的详细设计方法21图5.3三种基本控制结构的流程图(a)顺序结构;(b)选择结构;(c)DO-WHILE循环结构FTFT(a)(b)(c)面向数据流的详细设计方法22(2)采用DO-UNTIL循环结构和多分支选择结构(DO-CASE)两种补充结构。Ø只允许使用三种基本控制结构的详细设计通常被称为经典的结构程序设计,Ø而加入了两种补充结构的详细设计则被称为扩展的结构程序设计。Ø面向数据流的详细设计中并非完全禁止GOTO语句的使用,例如限制在同一控制结构内部的GOTO语句并不会破坏程序的结构化特点。面向数据流的详细设计方法23图5.4两种补充结构的流程图(a)DO-UNTIL循环结构;(b)多分支选择结构FT(a)CASE1CASE2…CASEnDOCASE(b)面向数据流的详细设计方法24优点:Ø自顶向下、逐步细分保证了程序的可靠性Ø而基本控制结构的使用则保证了程序的清晰易懂缺点:Ø程序结构的清晰往往要以存储容量的增加和运行效率的降低为代价面向数据流的详细设计方法25【课堂练习】设计进销存系统的程序流程图。26【课堂小结】l详细设计的任务。l概念设计与详细设计的区别。l详细设计过程中用到的方法。l面向数据流的设计方法。【课后作业】l进销存管理系统的详细设计说明书设计。