详细设计是软件工程中软件开发步骤之一,主要任务是对概要设计进行细化,设计模块的实现算法、局部数据结构及接口实现细节,形成满足用户需求的软件系统产品。其目标是为开发人员提供具体实现指南,内容涵盖算法设计、类设计、界面设计和数据库设计 [2-4]。
该阶段采用结构化程序设计法与Jackson方法,前者遵循自顶向下原则构建程序,后者通过分析输入/输出数据结构推导程序框架。常用工具包括程序流程图、PAD图和PDL语言,其中PDL语言可视化程度较低 [1-2]。输出成果包含详细设计文档、界面原型及数据库脚本,文档需确保准确性、清晰性和完整性 [3]。
详细设计与概要设计构成软件开发设计阶段,前者基于后者进行低层次实现设计,需遵循系统设计的架构与模块划分规范。两者需依序完成并通过文档评审,详细设计方案不得影响概要设计框架 [2] [4]。
主要任务
播报编辑
详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
方法
播报编辑
基本要求要点
(1).用顺序方式对过程分解,确定各部分的执行顺序。
(2).用选择方式对过程分解,确定某个部分的执行条件。
(3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。
Jackson 方法
设计步骤
描述方法
a.程序流程图
b.PAD图
C.过程设计语言
设计工具
播报编辑
表示工具
详细设计的表示工具有图形工具和语言工具。
1.图形工具
利用图形工具可以把过程的细节用图形描述出来。
(1)程序流程图。程序流程图又称为程序框图,是使用最广泛然而也是用得最混乱的一种描述程序逻辑结构的工具。它用方框表示一个处理步骤,菱形表示一个逻辑条件,箭头表示控制流向。其优点是:结构清晰,易于理解,易于修改。缺点是:只能描述执行过程而不能描述有关的数据。
(3)PAD图。PAD是一种改进的图形描述方式,可以用来取代程序流程图,比程序流程图更直观,结构更清晰。最大的优点是能够反映和描述自顶向下的历史和过程。PAD提供了5种基本控制结构的图示,并允许递归使用。
PAD的特点有:使用PAD符号设计出的程序代码是结构化程序代码;PAD所描绘的程序结构十分清晰;用PAD图表现程序的逻辑易读、易懂和易记;容易将PAD图转换成高级语言源程序自动完成;即可以表示逻辑,也可用来描绘数据结构;支持自顶向下方法的使用。
2.表格工具
可以用一张表来描述过程的细节,在这张表中列出了各种可能的操作和相应的条件。
3.语言工具
有伪码和PDL(Program Design Language)等。
PDL。PDL也可称为伪码或结构化语言,它用于描述模块内部的具体算法,以便开发人员之间比较精确地进行交流。语法是开放式的,其外层语法是确定的,而内层语法则不确定。外层语法描述控制结构,它用类似于一般编程语言控制结构的关键字表示,所以是确定的。内层语法描述具体操作,考虑到不同软件系统的实际操作种类繁多,内层语法因而不确定,它可以按系统的具体情况和不同的设计层次灵活选用,实际上任意英语语句都可用来描述所需的具体操作。用它来描述详细设计,工作量比画图小,又比较容易转换为真正的代码。
PDL的优点:可以作为注释直接插在源程序中;可以使用普通的文本编辑工具或文字处理工具产生和管理;已经有自动处理程序存在,而且可以自动由PDL生成程序代码。
基本任务
播报编辑
(6)评审。对处理过程的算法和数据库的物理结构都要评审。
区别
根据工作性质和内容的不同,软件设计分为概要设计和详细设计。概要设计实现软件的总体设计、模块划分、用户界面设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现用户界面设计、数据结构设计的细化,等等。
联系
概要设计是详细设计的基础,必须在详细设计之前完成,概要设计经复查确认后才可以开始详细设计。概要设计,必须完成概要设计文档,包括系统的总体设计文档、以及各个模块的概要设计文档。每个模块的设计文档都应该独立成册。
详细设计必须遵循概要设计来进行。详细设计方案的更改,不得影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。和概要设计一样,每个模块的详细设计文档都应该独立成册。
概要设计里面的数据库设计应该重点在描述数据关系上,说明数据的来龙去脉,在这里应该结合我们的一下结果数据,说明这些结果数据的源点,我们这样设计的目 的和原因。详细设计里的数据库设计就应该是一份完善的数据结构文档,就是一个包括类型、命名、精度、字段说明、表说明等内容的数据字典。
概要设计里的功能应该是重点在功能描述,对需求的解释和整合,整体划分功能模块,并对各功能模块进行详细的图文描述,应该让读者大致了解系统做完后大体的 结构和操作模式。详细设计则是重点在描述系统的实现方式,各模块详细说明实现功能所需的类及具体的方法函数,包括涉及到的sql语句等。
说明书
播报编辑
1、引言
1.1、编写目的 说明编写这份详细设计说明书的目的,指出预期的读者。
1.2、背景说明:
a. 待开发软件系统的名称;
1.3、定义 列出本文件中用到专门术语的定义和外文首字母组词的原词组。
1.4、参考资料
列出有关的参考资料,如:
b. 属于本项目的其他已发表的文件;
c. 本文件中各处引用到的文件资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
2、程序系统的结构
3、程序1(标识符)设计说明
从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层 模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。
3.1、程序描述
3.2、功能
3.3、性能
说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求。
3.4、输入项
3.5、输出项
给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、数量和频度,输出媒体、对输出图形及符号的说明、安全保密条件等等。
3.6、算法
3.7、流程逻辑
3.8、接口
3.9、存储分配
根据需要,说明本程序的存储分配。
3.10、注释设计
说明准备在本程序中安排的注释,如:
a. 加在模块首部的注释;
b. 加在各分枝点处的注释;
c. 对各变量的功能、范围、缺省条件等所加的注释;
d. 对使用的逻辑所加的注释等等。
3.11、限制条件
说明本程序运行中所受到的限制条件。
3.12、测试计划
3.13、尚未解决的问题
说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。
4、程序2(标识符)设计说明
用类似F.3的方式,说明第2个程序乃至第N个程序的设计考虑。