如何进行软件详细设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何进行软件详细设计
软件详细设计的任务是,是为软件结构图中的每个模块确定所采用的算法和块内数据结构,用某种选定的表达工具给出清晰
的描述,表达工具可以自由选择,但工具必须具有描述过程细节
的能力,而且能够有利于程序员在编程时便于直接翻译成程序设
计语言的源程序。
程序流程图、盒图、PAD图、HIPU图、PDL语言等等都是完成详细设计的工具,选择合适的工具并且正确地使用是十分重要
的。面向数据结构设计方法(Jackson方法)是进行详细设计的形
式化方法。
在软件详细设计阶段,将生成详细设计说明书,为每个模块确定采用的算法,确定每个模块使用的数据结构,确定每个模块
的接口细节。在软件详细设计结束时,软件详细设计说明书通过
复审的形成形成正式文档,作为下一个阶段的工作依据。
在概要设计阶段,已经确定了软件系统的总体结构,给出了软件系统中各个组成模块的功能和模块间的接口。作为软件设计
的饿第二步,软件详细设计就是在软件概要设计的基础上,考虑
如何实现定义的软件系统,直到对系统中的每个模块给出了足够
详细的过程描述。在软件详细设计以后,程序员将仍旧根据详细
设计的过程编写出实际的程序代码。因此,软件详细设计的结果
基本上决定了最终的程序代码质量。
详细设计的基本任务
(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3)对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(4)其他设计:根据软件系统的类型,还可能要进行以下设计:①代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。②输入/输出格式设计。
③人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
(5)编写详细设计说明书。
(6)评审。对处理过程的算法和数据库的物理结构都要评审。
结构化程序设计方法
详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”,详细
设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。过程设计中采用的典型方法是结构化程序设计(简称SP)方法,最早是由E.W.Dijkstra在60年代中期提出的,它是实现详细设计目标的关键技术之一。
结构化程序设计方法的基本要点是:
1. 采用自顶向下,逐步求精的程序设计方法
在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。
2. 使用三种基本控制结构构造程序
任何程序都可由顺序、选择、重复三种基本控制结构构造。
主程序员组的组织形式指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。
详细设计描述法
详细描述处理过程常用三种工具:图形、表格和语言。本节主要介绍结构化程序流程图、盒图和问题分析图三种图形工具。
程序流程图程序流程图又称为程序框图,它是使用最广泛的一种描述程序逻辑结构的工具。PAD图PAD图指问题分析图(Problem Analysis Diagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。
过程设计语言
过程设计语言(Problem Design Language,简称PDL),也称程序描述语言(Problem Descripition Language),又称为伪码。它是一种用于描述算法设计和处理细节的语言。
用PDL表示的程序结构一般有以下几种:
(1)顺序结构:采用自然语言描述。
(2)选择结构:
1、IF-ELSE结构
IF 条件IF 条件
处理S1 或处理S
ELSE
处理S2 ENDIF
ENDIF
2、IF-ORIF-ELSE结构
IF 条件1
处理S2
ORIF 条件2
处理S2
.
.
.
ELSE 处理Sn
ENDIF
3、CASE 结构
CASE OF
CASE(1)
处理S1
CASE(2)
处理S2
.
.
.
ELSE 处理Sn
ENDCASE
(3)重复结构:
1、FOR结构
FOR i=1 TO n
循环体
ENDFOR
2、WHILE结构
WHILE 条件
循环体
ENDWHILE
3、UNTIL结构
REPEAT
循环体
UNTIL条件
(4)出口结构:
1、ESCAPE结构(退出本层结构) WHILE 条件
处理S1
ESCAPE L IF 条件
处理S2
ENDWHILE
L:……
2、CYCLE结构(循环内部进入循环的下一次)
L:WHILE 条件
处理S1
CYCLE L IF 条件
处理S2
ENDWHILE
(5)模块定义与调用:
1、模块定义
PROCEDURE 模块名(参数)
.
.
RETURN
END
2、模块调用
CALL 模块名(参数)
(6)数据定义:
DECLARE 属性变量名……
属性有:字符、整型、实型、双精度、指针、数组、结构等类型。
(7)输入/输出:
GET(输入变量表)
PUT(输出变量表)
现以xx系统主控模块详细设计为例,说明如何用PDL来描述。PROCEDURE 模块名( )
清屏;
显示xx系统用户界面;
PUT(“请输入用户口令:”);
GET(password);
IF password< >系统口令
提示警告信息;
退出运行
ENDIF
显示本系统主菜单;
WHILE(true)
接收用户选择ABC;