`
geelong
  • 浏览: 117230 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

详细设计文档 转

阅读更多

在大多数软件项目中,要末不作详细设计,要么开发完成后再补详细设计文档 ,质量也不容乐观,文档与系统往往不能同步,使详细设计文档 完 全流于形式,对工作没有起到实际的帮助。

那到底应不应该写详细设计文档 呢,怎么使详细设计文档 起到他应有的作用呢,下面就让我们来认识一下详细 设计及写详细设计文 档 的好处和问题。

·             什么是详细设计

详细设计是相对概要设计而言的,是瀑布开发流程的一个重要环节,在概要设计的高层设计的基础上,从逻辑上实现了 每一模块的功能,是编码阶段的主要参考资料,是从高层到低层、逐步精化思想的具体实现。

详细设计文档 包括各个模块的算法设计, 接口设计, 数据结构设计,交互设计等 。必须写清楚各个模块 / 接口 / 公共对象的定义,列明各个模块程序的 各种执行条件与期望的运行效果,还要正确处理各种可能的异 常。

·             为什么要作详细设计

在开发过程中,由需求及设计不正确、不完整所导致的问题是项目进度拖延、失败的一个主要因素,而软件系统的一个 重要特性就是需求和设计的不断构建和改进,在写详细设计文档 过程中, 详细设计实际上是对系统的一次逻辑构建,可以有效验证需求的完整性及正确性。

如果不写详细设计文档 ,一般就从概设直接进入编码阶段,这时开发人员所能参考的资料就是需求规格说明书及页面 原型、数据库设计等,不能直接进行开发,需要进行信息的沟通,把页面原型不能体现的设计讲清楚,这样既容易遗忘,也容易发生问题,详细设计文档 可以 作为需求人员、总体设计人员与开发人员的沟通工具,把静态页面无法体现的设计体现出来, 包含 整体设计对模 块设计的规范,体现对设计上的一些决策,例如选用的算法,对一些关键问题的设计考虑等等,使开发人员能快速进入开发,提高沟通效率,减少沟通问题。


      对于系统功能 的调整,后期的维护,详设文档提供了模块设计上的考虑、决策,包括模块与整体设计的关系、模块所引用的数据库设计、重要操作的处理流程、重要的业务规则实 现设计等等信息,提供了对模块设计的概述性信息,阐明了模块设计上的决策,配合代码注释,可以相对轻松读懂原有设计。

·             存在的问题

要由专门的人写,是比较麻烦的,也是很需要时间的,会对进度造成压力,也容易形成工作瓶颈,使设计人员负担过 重,而开发人员无事可作。对于现在一般的以数据库为中心的管理系统而言,这个工作始终是要作的,区别只不过是不是形成专门文档,形成文档可能会多花一两周 时间,但相对于规避的风险和问题来说,也是值得的,另外由于现在高级语言的流行,所以更详细的设计应该直接体现在代码的设计上,而文档则只体现设计上的一 些决策,协调整体设计与模块设计的关系,把页面原型所不能体现的设计情况文档化,所以所花费的时间是有限的。

设计内容 容易过细,但设计阶段是不能考虑特别清楚地,时间也不允许。
对于这个问题,一个对策是上边所 提到的,文档只体现设计上的决策,页面原型所不能反映的信息,详细设计只体现总体设计对模块设计的一些考虑,例如对功能的数据库设计等等,而具体的实现实 现,则到代码中再去实现,相关的设计也仅体现在代码中。
   
需求、设计需要不断的被更新、构建,则设计文档需要不断的重新调整,文档的维护需要跟上,否则文档和系统的同步 就很难得到保障了,且造成多余的工作量。文档的内容 易流于形势,质量糟糕,不能成为开发人员的参考手册,一是要建立起相关制度,如有修改,先改文档,后作开发,从工 作流程上切实保障文档与系统的同步,二是要规范文档质量,对文档该写什么,不该写什么,标准是什么,粒度是什么,语法应该如何组织,有明确的标准和考虑, 同时,建立审计文档评审、审核制度,充分保障系统的使用。

 

·             应该如何写详细设计文档

下面讨论如何写出一个符合要求、实用的详细设计文档

首先是文档的内容 ,根据项目和团队的不同,详细设计文档内容 也有所不同,一般说来,粒度不宜过细,不能 代替开发人员的设计和思考,但要把有关设计的决策考虑进去,包括与其他模块、整体设计的关系、操作的处理流程,对业务规则的设计考虑等,有一个标准为,凡 是页面原型、需求规格说明书所不能反映的设计决策,而开发人员又需要了解的,都要写入文档。

       其次是文档所面向的读者,主要为模块开发人员、后期维护人员,模块开发人员通过详细设计文档 和页 面原型来了解所开发的功能,后期维护人员通过实际系统、模块代码、详细设计文档 来了解一个功能。

   再有就是谁来写文档,因为文档主要考虑的是设计上的决策,所以写文档的人应该为负责、参加设计的技术经理、资深程序员,根据团队情况和项目 规模、复杂度的不同,也有所不同。

   还需要保证文档的可读性、准确性、一致性,要建立严格的文档模板及标准,保证文档的可读性及准确性,同时建立审核及设计评审制度,来保障设 计及文档的质量,另外在工作流程中要强调,要先设计、先写文档,再进行开发。

分享到:
评论

相关推荐

    详细设计文档模板——参考

    详细设计文档则是这一阶段的产物,它详细描述了系统的各个模块如何实现,以及它们之间的交互关系。下面我们将深入探讨详细设计文档的模板及其重要性。 一、详细设计文档概述 详细设计文档,又称为系统设计规格书,...

    详细设计文档模板

    在创建详细设计文档时,可能用到的工具有: 1. **Microsoft Word**:用于编写文档,支持丰富的格式化和排版。 2. **Visio**:绘制流程图、状态机、类图等,帮助可视化设计。 3. **UML工具**:如Enterprise ...

    华为详细设计文档-可做设计文档的模版

    【华为详细设计文档】是华为公司内部制定的一种规范化的设计文档模板,主要用于软件开发过程中的详细设计阶段。这种文档详尽地描述了系统各个组件的功能、接口、运行环境以及设计方法,确保开发工作按照预设的标准...

    igmp snooping proxy 详细设计文档

    ### igmp snooping proxy 详细设计文档 #### 背景与概述 随着网络技术的发展,多播(Multicast)作为一种高效的数据传输方式被广泛应用在视频会议、在线教育、流媒体服务等领域。然而,在传统的局域网(LAN)环境...

    信息系统详细设计文档

    《信息系统详细设计文档》是关于企业信息化管理的重要资料,涵盖了营销管理、凭证管理、人力资源管理和银行管理等多个关键领域的详细设计内容。这份文档旨在为企业的IT系统建设提供全面、深入的指导,确保系统的高效...

    工作流详细设计(word)+数据库设计文档(pdm).rar

    在这个烟草公司的案例中,详细设计文档可能涵盖了烟草生产、销售、库存管理等各个业务环节的流程。 - **工具**:Word文档常用于编写流程描述、逻辑和规则,便于非技术人员理解。它可能包含流程图、活动描述、接口...

    俄罗斯方块源码和详细设计文档MFC实现

    《俄罗斯方块源码与详细设计文档:MFC实现解析》 俄罗斯方块,这款经典游戏自1984年诞生以来,以其简洁的游戏规则和无穷的挑战性吸引了全球无数玩家。本文将深入探讨如何使用Microsoft Foundation Classes (MFC)...

    pl/0编译器详细设计文档

    《PL/0 编译器详细设计文档》深入解析 PL/0 是一种简单的编程语言,主要用于教学和编译原理的研究。这篇详细设计文档主要涵盖了PL/0语言的文法结构、语句类型以及编译器的设计思路。文档旨在帮助学生理解和实现一个...

    软件设计文档的写法

    本文将详细介绍如何编写软件设计文档,并涵盖测试文档的编写方法。 首先,我们来了解软件设计文档的主要组成部分: 1. **项目背景**:这部分应包含项目的起因、目标和预期的用户群体。简述为什么需要开发这个软件...

    数据库设计文档(PDF)

    这份“数据库设计文档(PDF)”提供了一个详细的学习资源,涵盖了数据库设计的基础理论、最佳实践和实际案例,对于理解数据库设计理念和技术具有重要意义。 首先,数据库设计通常包括需求分析、概念设计、逻辑设计...

    mysql生成表设计文档

    在数据库设计过程中,生成表设计文档是非常重要的一环,这有助于团队理解数据库结构、规范和关系,便于开发、维护和协作。本文将详细介绍如何利用MySQL生成对应的Word文档,以及“db2doc”这个工具在这一过程中的...

    数据库设计文档大全经典

    "数据库设计文档大全经典"这个压缩包文件集成了丰富的数据库设计知识,是学习和参考的宝贵资源。以下将从多个方面详细阐述其中可能涵盖的重要知识点。 1. **数据库设计基础**: - **关系数据库理论**:包括关系...

    数据结构设计文档.doc

    数据结构设计文档是软件开发过程中不可或缺的一部分,尤其是在构建数据库系统时。本文档以"网上花店数据库设计"为例,详细阐述了数据库设计的各个阶段,包括外部设计、结构设计和运用设计,旨在确保项目的顺利进行并...

    C#多媒体播放器+设计文档+开发文档

    对于多媒体播放器,设计文档可能详细描述了如何组织代码以实现高效播放,以及如何处理多媒体文件的加载、解码和渲染。此外,可能还包括了UI设计,如按钮布局、颜色方案、交互逻辑等。 【开发文档】提供了项目的开发...

    概要设计实例文档

    这份"概要设计实例文档"压缩包包含了两个关键文件:《概要设计说明书实例.doc》和《概要设计文档最佳实例.doc》,这些文档对开发者来说无疑是宝贵的参考资料。 概要设计,也称为初步设计或高层设计,主要目标是将...

    20个软件开发常用设计文档大全下载.zip

    以下是对标题"20个软件开发常用设计文档大全下载"和描述中提及的知识点的详细解释,以及对常见设计文档的概述。 1. **需求规格说明书**:这是项目开始时的基石,详细描述了用户的需求和期望,包括功能需求和非功能...

    数据库设计文档一键生成工具(支持多数据源).zip

    首先,数据库设计文档是记录数据库结构、关系、逻辑和物理设计的详细文件,对于团队协作和项目维护至关重要。这些文档通常包括ER图(实体关系图)、数据表定义、索引设计、约束条件以及业务规则等。手动创建这些文档...

    界面设计文档模板--软件设计模板

    一份详细的界面设计文档是确保设计质量、沟通设计思路和指导开发人员实现的关键工具。这份“界面设计文档模板”提供了一个框架,帮助设计者系统地记录和阐述设计决策。 0.1 文档目的 该文档的主要目的是为项目的...

    俄罗斯方块(带设计文档)

    在设计文档中,会详细阐述如何构建游戏窗口,绘制方块,以及实现旋转、移动等功能。 3. **游戏逻辑**:《俄罗斯方块》的核心在于方块的生成、下落、消除行和得分计算。这些都需要严谨的算法支持。例如,方块的生成...

    OpenStack+HA高可用详细设计文档.pdf

    在详细设计文档中,OpenStack平台高可用性的构建和部署是核心议题。首先,文档提及了OpenStack环境架构,强调了针对计算存储一体的场景下,平台由两种类型的节点组成:一种是Controller-network-node,它运行包括...

Global site tag (gtag.js) - Google Analytics