详细设计怎么写
在大多数软件项目中,要末不作详细设计,要么开发完成后再补详细设计文档,质量也不容乐观,文档与系统往往不能同步,使详细设计文档完全流于形式,对工作没有起到实际的帮助。
那到底应不应该写详细设计文档呢,怎么使详细设计文档起到他应有的作用呢,下面就让我们来认识一下详细设计及写详细设计文档的好处和问题。
· 什么是详细设计
详细设计是相对概要设计而言的,是瀑布开发流程的一个重要环节,在概要设计的高层设计的基础上,从逻辑上实现了每一模块的功能,是编码阶段的主要参考资料,是从高层到低层、逐步精化思想的具体实现。
详细设计文档的内容包括各个模块的算法设计, 接口设计, 数据结构设计,交互设计等。必须写清楚各个模块/接口/公共对象的定义,列明各个模块程序的各种执行条件与期望的运行效果,还要正确处理各种可能的异常。
· 为什么要作详细设计
在开发过程中,由需求及设计不正确、不完整所导致的问题是项目进度拖延、失败的一个主要因素,而软件系统的一个重要特性就是需求和设计的不断构建和改进,在写详细设计文档过程中, 详细设计实际上是对系统的一次逻辑构建,可以有效验证需求的完整性及正确性。
如果不写详细设计文档,一般就从概设直接进入编码阶段,这时开发人员所能参考的资料就是需求规格说明书及页面原型、数据库设计等,不能直接进行开发,需要进行信息的沟通,把页面原型不能体现的设计讲清楚,这样既容易遗忘,也容易发生问题,详细设计文档可以作为需求人员、总体设计人员与开发人员的沟通工具,把静态页面无法体现的设计体现出来,包含整体设计对模块设计的规范,体现对设计上的一些决策,例如选用的算法,对一些关键问题的设计考虑等等,使开发人员能快速进入开发,提高沟通效率,减少沟通问题。
对于系统功能的调整,后期的维护,详设文档提供了模块设计上的考虑、决策,包括模块与整体设计的关系、模块所引用的数据库设计、重要操作的处理流程、重要的业务规则实现设计等等信息,提供了对模块设计的概述性信息,阐明了模块设计上的决策,配合代码注释,可以相对轻松读懂原有设计。
· 存在的问题
要由专门的人写,是比较麻烦的,也是很需要时间的,会对进度造成压力,也容易形成工作瓶颈,使设计人员负担过重,而开发人员无事可作。对于现在一般的以数据库为中心的管理系统而言,这个工作始终是要作的,区别只不过是不是形成专门文档,形成文档可能会多花一两周时间,但相对于规避的风险和问题来说,也是值得的,另外由于现在高级语言的流行,所以更详细的设计应该直接体现在代码的设计上,而文档则只体现设计上的一些决策,协调整体设计与模块设计的关系,把页面原型所不能体现的设计情况文档化,所以所花费的时间是有限的。
设计内容容易过细,但设计阶段是不能考虑特别清楚地,时间也不允许。
对于这个问题,一个对策是上边所提到的,文档只体现设计上的决策,页面原型所不能反映的信息,详细设计只体现总体设计对模块设计的一些考虑,例如对功能的数据库设计等等,而具体的实现实现,则到代码中再去实现,相关的设计也仅体现在代码中。
需求、设计需要不断的被更新、构建,则设计文档需要不断的重新调整,文档的维护需要跟上,否则文档和系统的同步就很难得到保障了,且造成多余的工作量。文档的内容易流于形势,质量糟糕,不能成为开发人员的参考手册,一是要建立起相关制度,如有修改,先改文档,后作开发,从工作流程上切实保障文档与系统的同步,二是要规范文档质量,对文档该写什么,不该写什么,标准是什么,粒度是什么,语法应该如何组织,有明确的标准和考虑,同时,建立审计文档评审、审核制度,充分保障系统的使用。
· 应该如何写详细设计文档
下面讨论如何写出一个符合要求、实用的详细设计文档。
首先是文档的内容,根据项目和团队的不同,详细设计文档的内容也有所不同,一般说来,粒度不宜过细,不能代替开发人员的设计和思考,但要把有关设计的决策考虑进去,包括与其他模块、整体设计的关系、操作的处理流程,对业务规则的设计考虑等,有一个标准为,凡是页面原型、需求规格说明书所不能反映的设计决策,而开发人员又需要了解的,都要写入文档。
其次是文档所面向的读者,主要为模块开发人员、后期维护人员,模块开发人员通过详细设计文档和页面原型来了解所开发的功能,后期维护人员通过实际系统、模块代码、详细设计文档来了解一个功能。
再有就是谁来写文档,因为文档主要考虑的是设计上的决策,所以写文档的人应该为负责、参加设计的技术经理、资深程序员,根据团队情况和项目规模、复杂度的不同,也有所不同。
还需要保证文档的可读性、准确性、一致性,要建立严格的文档模板及标准,保证文档的可读性及准确性,同时建立审核及设计评审制度,来保障设计及文档的质量,另外在工作流程中要强调,要先设计、先写文档,再进行开发。
分享到:
相关推荐
对日软件开发中的详细设计要求 在软件开发过程中,详细设计是一个非常重要的步骤,对于软件的质量和效率产生了直接的影响。因此,需要对软件开发中的详细设计要求进行详细的描述和解释。 1. 设计レビューガイド付...
《Lyra Resource Platform》详细设计说明书是一份针对网络信息体系结构课程作业的文档,旨在对项目进行详细设计,明确系统架构,并详细介绍各个模块,为后续的实现和测试提供指导。本设计说明书的目标读者包括项目...
详细设计说明书 本文档是标准化的详细设计文档,旨在描述快乐买网上商城项目的详细设计。该文档的目的是描述系统的详细设计,包括系统功能简介、系统详细设计简述、在 SSH 框架下各个模块的分层结构。 系统功能...
系统详细设计文档是软件开发过程中的重要组成部分,它在概要设计的基础上,深入阐述系统各个模块的功能、接口、数据结构、算法以及实现细节,为后续的编码和测试提供明确的指导。以下将以“会员系统详细设计”为例,...
用EXCEL完成详细设计功能的描述,每一个EXCEL文档对一个功能模块进行详细设计,详细设计里包括了封面,功能逻辑,画面,数据库操作,方法,提示等。有一定参考价值
在软件开发过程中,详细设计说明书、需求规格说明书和测试计划是至关重要的三个文档,它们构成了软件工程的基础框架,确保项目的顺利进行。 首先,详细设计说明书是软件开发过程中的一个重要环节,它是在概要设计...
### 功能详细设计文档知识点解析 #### 一、文档基本信息 - **文档名称**:功能详细设计文档(参考模板) - **所属项目**:LKOA6.0 - **项目类型**:新产品开发 - **文档类型**:设计文件/详细设计说明书 - **版本...
【功能模块详细设计模板】 在系统开发过程中,功能模块的详细设计是至关重要的一步,它为开发者提供了清晰的实现指南。以下是对给定文件中提到的功能模块进行的详细设计解析: 1. **客户端** - **用户注册**: ...
3.3 组件设计 - J2EE WEB APPLICATION 13 3.3.1 MVC 框架 – Struts 13 3.3.2 日志 14 3.3.3 BAPI代理结构 15 3.3.4 销售商用户信息组件和安全组件 16 3.3.5 页面表现框架 17 3.3.6 车辆列表功能 18 3.3.7 车辆订购...
在软件开发过程中,详细设计是至关重要的一个环节。它是在概要设计的基础上,对软件系统的各个组成部分进行具体的、深入的设计,包括数据结构、算法选择、界面设计、模块接口定义等。详细设计说明书则是记录这些设计...
系统详细设计文档是软件开发过程中的关键文档,它在概要设计之后,编码之前完成,目的是为软件开发人员提供清晰的、具体的操作指南。本文档主要涵盖了以下关键知识点: 1. **引言**: - **背景**:这部分通常介绍...
"CSCI详细设计1" 本文档详细介绍了CSCI详细设计1的技术架构和实现细节,该系统是一个音乐分享平台,旨在提供高质量的音乐体验和推荐服务。下面是该系统的技术架构和实现细节: 功能模块 1. 歌手模块:该模块负责...
基于python实现的CNN卷积神经网络手写数字识别项目源码+详细注释+数据集(毕业设计&期末大作业),个人经导师指导并认可通过的高分毕业设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目...
### Web项目详细设计文档知识点解析 #### 一、引言 **1.1 编写目的** 本文档旨在为Web项目的开发提供详细的指导方案,帮助初学者和开发团队明确项目的设计思路和技术细节,确保项目的顺利实施。通过详细的文档...
对日项目详细设计书文档 分为以下表 表紙,目次,変更履歴,概要・処理フロー,モジュール一覧,QA1画面モジュール仕様,QA2画面モジュール仕様,申請画面モジュール仕様,承認画面モジュール仕様,帳票モジュール...
《JSP网上购物系统详细设计说明书》旨在详细阐述网上购物系统的功能、设计原则以及各模块的实现方案。本文档由杨寅撰写,适用于开发人员、项目管理人员和测试人员阅读,旨在为《网上购物系统》项目的实施提供清晰的...
8. **测试计划**:详细设计应包括全面的测试计划,包括单元测试、集成测试和系统测试,以确保所有功能的正确性和性能优化。 9. **文档编写**:良好的文档是项目成功的关键,包括设计文档、用户手册和技术文档,方便...
详细设计是编码阶段的依据,确保开发者按照预定的计划进行编程,避免因理解偏差导致的问题。同时,详细设计也有助于团队间的沟通,减少后期修改和维护的成本。 在软件工程中,这三个文档共同构成了一个完整的软件...
### 详细设计参考资料知识点 #### 一、详细设计的基本任务及其描述方法 ##### 1. 详细设计的基本任务 详细设计阶段是软件开发过程中至关重要的一步,它关注于软件内部的具体实现细节。在这个阶段,主要任务包括但...
java写的连连看小游戏,包含详细功能说明的设计报告.zipjava写的连连看小游戏,包含详细功能说明的设计报告.zipjava写的连连看小游戏,包含详细功能说明的设计报告.zipjava写的连连看小游戏,包含详细功能说明的设计...