`
gdpglc
  • 浏览: 93838 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

尴尬的概要设计文档

阅读更多
一般软件开发可分为如下阶段。
1.需求分析
2.概要设计
3.详细设计
4....

其中概要设计,我觉得起到的作用,就是从需求过度到详细设计阶段的一个中间过程。这种划分方式,不是从软件开发本身的需要出发的,而是按实际的项目过程控制需要划分的。因为不同的项目,需求在理解难度上、抽象程度上,千差万别。因此到达实际的产品功能设计和程序设计(即详细设计),所需要的信息,也差别很大。需求分析阶段侧重于从用户那获取原始需求。而所谓概要设计,就是要把到达详细设计中间缺少的信息补全。

所以,所谓概要设计文档,内容是五花八门的,没有确定性质的内容。有人还在找概要设计的模板,这实在可笑。而后文列举的一些原因将导致概要设计文档内容更加混乱。

注意: GB8567-88 概要设计模板 是过时的。在概要设计上中国已经超过了IBM、微软、HP等大牛公司,搞出了自己的标准,只是太久不维护了。

这种划分方法,和按软件开发工件内容性质划分的开发阶段,是两种维度。一个是管理角度,一个是软件开发的客观规律的角度。

概要设计文档,有时也作为用户了解系统实现的文档。这时,概要设计的作用就是给用户一个大体的方案介绍。对开发本身来说,只是一个参考。

我觉得这样的阶段性划分,是迎合一般用户理解能力的划分方法。实际编写的概要设计文档,也未必能满足,上文我对概要设计阶段的作用的要求。要么概要设计文档,就是个摆设,常常出现很多辅助文档。要么就是概要设计抢详细设计的活,里边有界面设计,有库表设计等。悲剧的是,有的公司生搬硬套开发过程,要求写概要设计文档。写文档的人,只好把认为有用的内容都向文档里塞。这样的文档体系是混乱的。开发过程也是混乱的。

概要设计文档里的长见内容比较难理解,也比较尴尬。
1.界面设计。这个最麻烦。这时还不到明确详细界面的时候。放的都是拍脑门的界面设计或从别处拷贝来的图片,表达的是需求,界面是不能当真的。可是文档的读者程序员,如何知道是否应该对界面当真呢?这种极其混淆的表达方法,常常让读文档的人不知如何是好。

需求的表达有专业的表示工具,用例。可是会用的太少了。用胡乱的界面表达需求,能传达的有用信息是很少的。

2.实际的界面设计。在抢详细设计的饭碗。

3.库表设计。 又在抢详细设计的饭碗。

4.程序流程图。 抛开实际代码的流程图,只是帮助梳理程序思路,却不得不明确程序的运行过程,这些脱离实际的过程设计,对于实际的代码编写基本是多余的。在我看来,应该采用靠近代码的设计方法,这样才有实际意义。而这个,是详细设计的内容。

5.架构设计。 合理的内容。

6.功能模块设计。 合理内容。

...


因此,概要设计阶段,必要时要有,但不必写概要设计文档(用户不要求的情况下),按实际的需要编写工件,才是正确的。这样,拿到的文档才都是有效的。

-------------------
这帖子说的有意思:
http://www.kaixin001.com/repaste/94351869_5296386792.html?uid=94351869&urpid=5296393564

说明了这个领域的模糊和随意性。

--------------------
概要设计相关的内容,在以前应该是正统的方法。(具体没做过考据)
但是,现代的开发方法,迭代式开发是主流方法。但是,开发方法是一个没有统一标准的领域。很多公司,根本就是简单的把任务分配到人头就不管了。开发任务能否做好,是完全不进行管理的。这样的团队,不可能做出好的软件。软件开发不是一件简单的事,找来10个工人,简单的告诉他们,每人负责盖一层楼,是盖不出楼房的。

吃过亏的公司会试图改革,引入一些开发管理。而传统的开发过程的划分,看上去很美(因为简单,好管理等等),实践起来,是另一回事。因此,形式上不得不按大家认可的过程开发,但实践上,却不得不采用迭代式开发方法,这是由需求的不稳定性决定的。
1
1
分享到:
评论

相关推荐

    概要设计和详细设计文档模板.zip

    本压缩包“概要设计和详细设计文档模板.zip”包含了一系列模板,旨在帮助开发者按照规范有效地进行这两个阶段的工作。 **概要设计** 概要设计,也称为系统设计或高层设计,是对软件系统的整体架构和主要功能的规划...

    概要设计文档模板

    《概要设计文档模板》是软件工程领域中一个至关重要的环节,它在软件开发的初期阶段起到承上启下的作用,连接需求分析与详细设计。本文档主要关注的是如何有效地编写概要设计文档,以及其在软件开发流程中的地位和...

    软件概要设计文档规范

    本文将详细介绍软件概要设计文档的规范,以便读者能够更准确地理解其结构和内容,从而有效地指导软件开发。 ### 文档概述 概要设计文档的概述部分为读者提供了对文档的初步认识,包括背景、文档概述和术语定义等。...

    概要设计实例文档

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

    软件概要设计文档.doc

    《软件概要设计文档》是软件开发过程中的关键文档,它基于需求分析阶段的结果,为后续的详细设计、编码和测试提供指导。文档的主要目的是通过架构层面的描述,明确系统的主要组成部分、交互方式和约束条件,确保开发...

    微服务概要设计说明书模板

    文档:概要设计文档,可以帮我们处理程序性能瓶颈,程序移植性短板,也方便后期维护拓展,文档输出也方便后期交付和交接。 项目目录: 1 文档简介 1.1 编写目的 1.2 文档范围 1.3 缩略语 2 项目概述 2.1 建设...

    各类软件工程模板,需求分析文档,概要设计文档,详细设计文档,数据结构说明书

    软件工程模板的提出和应用,特别是需求分析文档、概要设计文档、详细设计文档和数据结构说明书的制定,极大地提高了软件开发的标准化程度,加强了项目团队之间的沟通效率,保证了项目的进度和质量。以下是对这些关键...

    快速编写概要设计文档

    这份“快速编写概要设计文档”旨在帮助开发者们更有效地完成这一阶段的工作,确保文档规范、清晰,避免无谓的混乱和冗余。 概要设计的目标是将需求转化为可实施的系统架构,它主要关注以下几个方面: 1. **系统...

    IT项目概要设计.doc

    IT项目概要设计是软件开发过程中的重要环节,它为项目的后续实施提供了明确的蓝图和指导。本设计说明书遵循了国家标准《概要设计说明书(GB8567-88)》,确保了设计的规范性和专业性。以下是文档中涉及的主要知识点...

    华为软件概要设计模板.doc

    华为软件概要设计模板是软件设计的重要组件,它提供了一个通用的模板,帮助软件开发者和设计者快速创建高质量的软件设计文档。本模板涵盖了软件设计的所有方面,从产品名称、版本号、到高级设计文档的结构和内容等。...

    文档,详细设计,概要设计,设计,数据库设计

    在软件开发过程中,文档、详细设计、概要设计和数据库设计是至关重要的环节,它们构成了一个完整项目的基础架构。下面将分别对这些概念进行详细解释,并探讨它们在实际开发中的应用。 1. 文档:在软件工程中,文档...

    文档实例需求分析概要设计详细设计.zip

    本压缩包文件"文档实例需求分析概要设计详细设计.zip"提供了这些核心环节的实例和详细资料,对于程序员和产品设计者来说,是极具价值的学习和参考资源。 首先,需求分析是软件开发的第一步,它定义了系统的目标和...

    软件项目概要设计说明书模板

    软件项目概要设计说明书是软件开发过程中的关键文档之一,它详细描述了软件系统的整体架构、主要功能模块、数据结构以及接口设计等核心要素。本模板以“教学机管理系统2.0”为例,旨在提供一个参考框架,帮助读者...

    文档汇总.zip(本文档包括需求规格说明书,概要设计文档,详细设计文档,以及测试文档)

    文档汇总.zip文件,作为软件开发过程中的重要组成部分,包含了需求规格说明书、概要设计文档、详细设计文档以及测试文档,它们记录了软件开发的每一个细节,并对项目的成功起到了决定性的作用。 需求规格说明书作为...

    软件开发概要设计模板.docx

    软件开发概要设计模板是一个重要的文档,用于记录软件开发项目的总体设计和接口设计。通过阅读该文档,我们可以了解软件开发项目的概要设计、总体设计、接口设计、用户接口设计等方面的知识点。 概要设计是软件开发...

    (需求分析+概要设计+详细设计)文档简单范例.pdf

    (需求分析+概要设计+详细设计)文档简单范例.pdf

    接口概要设计说.doc

    "接口概要设计说"文档通常用于详细阐述这些接口的基本结构、功能和通信协议,为后续的详细设计和实现提供指导。以下是根据标题和描述中涉及的接口概要设计知识点的详细说明: 1. **接口定义**:接口是系统间或系统...

    软件设计文档:详细设计 概要设计 需求说明 数据库说明 模板概述

    本压缩包包含的五个关键文档分别是:详细设计文档、概要设计文档、需求说明文档、数据库说明文档和模板概述,每个都有其特定的作用和内容。 1. **详细设计文档**:详细设计文档是对软件各个模块的详细描述,它涵盖...

Global site tag (gtag.js) - Google Analytics