【项目名称】
详细设计说明书
文件状态:
[√] 草稿
[ ] 正式发布
[ ] 正在修改
文件标识:
DWR-WRALM-DS-DTDS
当前版本:
X.Y
作者:
完成日期:
Year-Month-Day
版 本 历 史
版本/状态
作者
参与者
起止日期
备注
1 文档介绍
1.1 文档目的
提示:说明编写这份详细设计的目的。
1.2 读者对象
提示:指出预期的读者。详细设计的读者一般包括项目主管、开发人员、测试人员以及维护人员等。
1.3 参考文档
提示:列出本文档的所有参考文献(可以是非正式出版物),如:
a.本项目的经核准的计划任务书或合同、上级机关的批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。
列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。作者,文献名称,出版单位(或归属单位),日期等。
格式例如:
[1] 许新宜、王浩、甘泓等,华北地区宏观经济水资源规划理论与方法,黄河水利出版社,1997.10。
1.4 术语与缩写解释
缩写、术语
解 释
DWR
水资源所
WRALM
水资源配置模型
DN
设计 design
DTDS
详细设计 detail design
2 体系结构设计
[说明:设计人员应根据产品规格说明书,在充分了解了规格之后,再设计产品的体系结构。主要描述两部分内容:
1、 体系总体结构设计:描绘体系结构图,结构图中描述纵向结构与横向结构的集成关系,即模块在哪一(些)层中,每一层都有哪些模块,并配以简要说明,为什么要这么设计,有什么好处。
2、 纵向结构:描述体系如何分层,为什么这样分层,每层的具体功能如何划分,与其它层之间的关系。
3、 横向划分:如果体系较大,体系分为哪些子系统,每个子系统又有哪些模块,如不需分子系统可以描述有哪些模块,为什么要这样划分,各个子系统或模块之间的关系等等
4、 应该清楚地得到一张
]
2.1 体系总体结构设计
2.1.1 体系总体设计结构图
[制作体系总体设计结构图,明确各个子系统及层次关系]
2.1.2 设计说明
[对体系结构图进行说明,描述各层及各子系统/模块之间的关系,说明这样设计的理由及好处等]
2.2 纵向结构(N层)设计
2.2.1 纵向(N层)结构图
[多层设计结构图,明确各层之间的关系]
2.2.2 结构图说明
[对多层设计的说明,描述各层的主要内容功能及各层的关系,说明这样设计的理由及好处等]
2.2.3 第1层说明
[对每层进行详细的描述]
2.2.4 第2层说明
….
2.2.5 第N层说明
2.3 横向结构(子系统/模块)设计
2.3.1 横向结构图
[各个子系统/模块之间结构及关系]
2.3.2 结构图说明
[对子系统/模块图的说明,说明为什么要这样设计,及这样设计的好处]
2.3.3 子系统/模块1说明
[详细说明]
2.3.4 子系统/模块2说明
….
2.3.5 子系统/模块N说明
3 .net(java)工程设计
[描述并实现程序员本系统的工程及各个文件的功能说明,此工程可直接交给程序员进行下一步功能实现]
4 界面的设计
[此部分可根据《产品规格说明书》的相关部分来进行界面的实现设计,主要对用于界面的关系、流程、所用到的控件、图标、图形等资源进行]
4.1 界面关系图和工作流程图
[关于绘制界面,可为系统建立所有的工程项目,及在.net中制作界面,并定义好各个组件、界面元素的名称等,这样可将工程直接给到程序员,进行下一步功能实现,但此处要求将其界面copy过来,以形成完整文档.另外一个原因是进行此类画图可能非常耗时耗力。]
4.2 主界面
[(1)绘制主界面的视图;
(2)说明主界面中所有对象的功能和操作方式]
4.3 各子界面
[(1)绘制子界面的视图;
(2)说明子界面中所有对象的功能和操作方式]
4.4 界面资源
4.4.1 图标
4.4.2 图形
4.4.3 界面表现组件
4.5 美学设计(美工进行指导)
5 模块设计
[模块设计是重中之重,直接关系到如何实现,此处作为重点进行描述.
此部分设计也应以实际.net工程项目的形式将各个模块设计好,给出每个类的名称、成员、各个含数等等,这样可以直接给到程序员进行实现。但此处要求的文档描述也同样要写清楚。]
5.1 模块命名规则
[模块设计人员确定本软件的模块命名规则(例如类、函数、变量等),确保模块设计文档的风格与代码的风格保持一致,此部分可参看相关命名规范文档。]
5.2 模块汇总
5.2.1 模块汇总表
[这里模块是指相对独立的软件设计单元,例如对象类、函数包等等]
子系统A
模块名称
功能简述
…
子系统B
模块名称
功能简述
…
5.2.2 模块关系图
[可用UML图及其它图描述其间的关系,并配以说明文字]
5.2.3 子系统A的模块设计
5.2.3.1 模块A-1
[如果认为此处以表格形式不太好写,可自行编排格式,但要至少包含表格中的各个项。]
模块名称
对应文件
说明对应工程文件中的哪些文件等
功能描述
接口与属性
提示:用专业的设计(开发)工具来设计本模块的接口与属性,说明函数功能、输入参数、输出参数、返回值等。此处粘贴即可。如UML图
数据结构
与算法
提示:不论是采用经典的还是专用的数据结构与算法,都应该作必要的描述。不仅用于指导程序的实现,还可以让人们清楚地了解该对象类是如何设计的。
补充说明
5.2.3.2 模块A-n
模块名称
对应文件
说明对应工程文件中的哪些文件等
功能描述
接口与属性
提示:用专业的设计(开发)工具来设计本模块的接口与属性,说明函数功能、输入参数、输出参数、返回值等。此处粘贴即可。如UML图
数据结构
与算法
提示:不论是采用经典的还是专用的数据结构与算法,都应该作必要的描述。不仅用于指导程序的实现,还可以让人们清楚地了解该对象类是如何设计的。
补充说明
6 数据库设计
[略去]
7 打包设计
[描述对于最终交付成果的安装程序要求,安装步骤、注册表、安装目录、程序组、快捷方式、其它相关要求]
8 其它设计
[描述本文档上述未包含的描述内容]
9 附属文件清单及文件
[列出与详细设计相关的所有文件的清单,包括数据库设计、界面设计、UML设计、.net或java工程文件等等所有文件清单,并整理到一个目录下,放入VSS相应目录下]
详细设计说明
一、 详细设计的目的与意义。
1、详细设计是针对需求,在代码实现之前的工作,它既是对代码实现工作的指导,又是对需求的进一步从软件角度的深化。
2、以前我们几乎没有设计,或者说有,也远远不够,这部分工作相当于建筑业的图纸设计。
3、搞好设计工作是研发工作重要的一环,在我们自己的研发过程中是必须的一环。
4、设计大部分靠的是经验,过去的项目经验,过去的积累对于设计工作的意义非常重大,注重日常项目经验的积累,是提高设计水平必经之路。
二、 针对我们自己的研发过程,设计都有哪些内容。
每个组织都有自己的设计要求,我们也不例外。设计主要有以下几个部分组成:
1、 体系设计
A、体系设计也可以叫做架构设计,软件越大,这部分重要性越明显。主要部分主要是各子系统如何组织以及如何协调工作。这种设计在目前的情况下(当然以后还要继续发展)以分层的体系是较为合适:
l 系统如何分层,分成三层(表现层、业务逻辑层、数据持久层)还是更多层。
l 各个层之间的如何通讯。
l 可借鉴的一些设计模式,如用得最多的MVC模式等。
B、子系统(或模块)设计,解决有系统要划分为哪些子系统,每个子系统又有哪些小功能模块,这些子系统(小模块)之间如何协作等。这部分可以认为是传统的设计。
C、横向(子系统)与纵向(分层)的关系。相当于软件的每个模块都处在哪个子系统,都在哪一层中。
2、 功能模块设计
对于每个子系统的所有功能模块,分重点、分缓急地设计其所包含的包、类、接口等等,以及其内部与外部的接合部分设计等等,应尽量细化,以方便实现。
3、 数据库及算法设计
此部分内容略。
4、 界面设计
对于c/s与b/s界面设计在实际操作过程中是不大相同的。b/s界面设计大部分归于美工效果,而c/s设计大部分在于设计及程序员。
界面设计要考虑主界面或首页面、子页面、弹出窗体、每个页面的每个元素的大小、位置、形状、美学设计等等。从操作角度来看应考虑如何操作最方便,从美学角度来看应考虑如何设计最美观,从业务角度来看应考虑业务具体要求。等等。
5、 打包设计
也是非常重要的部分,c/s可以打包,b/s也同样可以打包,.net程序可以打包,java程序同样也可以打包。程序安装实际是给用户的第一感觉,同时也是实施的重要步骤,打包的好坏直接关系到实施的难度、技术要求等等。
这部分主要有安装步骤、注册表、安装目录、程序组、快捷方式、其它相关要求等等。
三、 与其它过程的关系
1、设计的主要依据:
《产品规格说明书》、相关数据库等各个方面的设计文档、交流与沟通的结果。
2、作为代码实现的主要依据。
四、 设计人员与程序员的工作关系
1、设计人员负责解释设计思路、设计细节等,并指导程序员的代码实现,对于难度较大的代码部分应由设计人员编码实现。
2、测试并检验程序员实现是否符合设计,并提出修改意见等。
五、 详细设计的文档要求。
1、详细设计说明书
2、UML文档
3、所建立的项目(project )文档,并交给程序员进行实现。