1、如何进行软件详细设计软件详细设计的任务是,是为软件结构图中的每个模块确定所采用的算法和块内数据结构,用某种选定的表达工具给出活晰的描述,表达工具可以自由选择,但工具必须具有描述过程细节的能力,而且能够有利于程序员在编程时便于直接翻译成程序设计语言的源程序。程序流程图、盒图、PADSPADS、HIPUHIPU图、PDLPDL语言等等都是完成详细设计的工具,选择合适的工具并且正确地使用是十分重要的。面向数据结构设计方法(JacksonJackson方法)是进行详细设计的形式化方法。在软件详细设计阶段,将生成详细设计说明书,为每个模块确定采用的算法,确定每个模块使用的数据
2、结构,确定每个模块的接口细节。在软件详细设计结束时,软件详细设计说明书通过复审的形成形成正式文档,作为下一个阶段的工作依据。在概要设计阶段,已经确定了软件系统的总体结构,给出了软件系统中各个组成模块的功能和模块间的接口。作为软件设计的饿第二步,软件详细设计就是在软件概要设计的基础上,考虑如何实现定义的软件系统,直到对系统中的每个模块给出了足够详细的过程描述。在软件详细设计以后,程序员将仍旧根据详细设计的过程编写出实际的程序代码。因此,软件详细设计的结果基本上决定了最终的程序代码质量。详细设计的基本任务(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个
3、模块处理过程的详细算法描述出来。(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。(3)对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。(4)其他设计:根据软件系统的类型,还可能要进行以下设计:代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。输入/输出格式设计。人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。(5)
4、编写详细设计说明书。(6)评审。对处理过程的算法和数据库的物理结构都要评审。结构化程序设计方法详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。过过程设计”,详细程设计中采用的典型方法是结构化程序设计(简称SP)方法,最早是由E.W.Dijkstra在60年代中期提出的,它是实现详细设计目标的关键技术之一。结构化程序设计方法的基本要点是:1.采用自顶向下,逐步求精的程序设计方法在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。2.使用三种基本控制结构构造程序
5、任何程序都可由顺序、选择、重复三种基本控制结构构造。主程序员组的组织形式指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。详细设计描述法详细描述处理过程常用三种工具:图形、表格和语言。本节主要介绍结构化程序流程图、盒图和问题分析图三种图形工具。程序流程图程序流程图又称为程序框图,它是使用最广泛的一种描述程序逻辑结构的工具。PAD图PAD图指问题分析图(ProblemAnaly
6、sisDiagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。过程设计语言过程设计语言(ProblemDesignLanguage,简称PDL),也称程序描述语言(ProblemDescripitionLanguage),又称为伪码。它是一种用于描述算法设计和处理细节的语言。用PDL表示的程序结构一般有以下几种:(1)顺序结构:采用自然语言描述。(2)选择结构:1、IF-ELSE结构IF条件IF条件处理S1或处理SELSE处理S2ENDIFENDIF2、IF-ORIF-ELSE结构IF条
7、件1处理S2ORIF条件2处理S2ELSE处理SnENDIF3、CASE结构CASEOFCASE(1)处理S1CASE(2)处理S2ELSE处理SnENDCASE(3)重复结构:1、FOR结构FORi=1TOn循环体ENDFOR2、WHILE结构WHILE条件循环体ENDWHILE3、UNTIL结构REPEAT循环体UNTIL条件(4)出口结构:1、ESCAPE结构(退出本层结构)WHILE条件处理S1ESCAPELIF条件处理S2ENDWHILEL:2、CYCLE结构(循环内部进入循环的下一次
8、)L:WHILE条件处理S1CYCLELIF条件处理S2ENDWHILE(5)模块定义与调用:1、模块定义PROCEDURE模块名(参数)RETURNEND2、模块调用CALL模块名(参数)(6)数据定义:DECLARE属性变量名属性有:字符、整型、实型、双精度、指针、数组、结构等类型。(7)输入/输出:GET(输入变量表)PUT(输出变量表)现以xx系统主控模块详细设计为例,说明如何用PDL来描述。PROCEDURE模块名()清屏;显示xx系统用户界面;PUT(请输入用户口令:”;)GET(password);IFp
9、assword系统口令提示警告信息;退出运行ENDIF显示本系统主菜单;WHILE(true)接收用户选择ABC;IFABC=退出”Break;ENDIF调用相应下层模块完成用户选择功能;ENDWHILE清屏;RETURNEND从以上例子可以看到PDL的总体结构与一般程序完全相同。外语法同相应程序语言一致,内语法使用自然语言,易编写,易理解,也很容易转换成源程序。Jackson方法Jackson方法是面向数据结构的设计方法。Jackson方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构Jackson设计步骤Jackson方法一般通过以下五个步骤来完成设计:(1)分析并确定输