关于概要设计文档的写作


Author:魏雷远   Date:2007-06-12Email:
leiywei@163.com

题记:算是一点经验和学习心得吧。如果有疏漏之处,还请大家慷慨补充,先在此谢过。CC:如果进行转载,请声明是转载的我的,我仅有少数文章有这样的要求的。

〇、概念概要设计文档是一个框架设计文档,指出了设计的大体思路。与详细设计文档不同,它没有详细设计文档描述的细致入微。但是一份好的概要设计文档,对于一个高级软件工程师来说,完全有能力进行系统实现了。

一、一般格式文档格式如同人的相貌,以貌取人,虽然不合理,但是有它的普遍性。下面给出一个范例:

1.0文档的封面封面是最笼统的概括,一般包括文件名称、文件编号、项目名称、项目编号、文件密级、文件版本、文件作者、文件状态等信息。例如:XXX公司技术文件(居中)文件名称:XXX概要设计文件编号:A00-B00-000XXX(编号符合自己公司的标准即可)项目名称:XXX项目(写自己的项目名称)项目编号:A00000XXX(符合自己公司的标准)文件作者:魏雷远文件版本:A(按什么编号都可以,可以为阿拉伯编码、希腊字母编码等) 文件状态:PRE文件密级:绝密......对于有版本控制的文件,还要有版本变更的记录,审核人,审核日期,批准人,批准日期,修订信息等。
1.1文件修订页文件修订页的目的是记录该文件的详细修改记录,一般包括修改的章节、内容、日期、修改人、批准人等等。按表格形式进行记录
1.2索引和目录这部分可以根据概要设计文档内容自动生成。不熟悉Word者,按如下操作:插入菜单->引用->索引和目录,按照提示进行操作。
1.3文件正文部分此部分是概要设计文档的核心部分。

下面给出我做的项目(软件)的一个范例:
1.范围
1.1系统概述简单描述系统结构或组成。
1.2文档概述简要描述概要设计文档涉及的内容以及适用的对象。
1.3术语与缩略语解释概要设计中的术语和缩略语。===当然,还可以加入其它内容。

2.引用文档列出参考文档或者依据。

3.总体设计
3.1软件体系结构描述软件体系结构,一定要给出图来,直观、清晰、简单、明了。

3.2子系统间的关系列出组成软件的各个子系统间的相互关系。还是要给出图来。

4.子系统设计这部分根据划分的子系统分别描述各部分的功能。说明简单的数据流程即可。细节部分在详细设计文档中体现。

二、说明

2.1与需求文档的关系概要设计文档是需求文档的输出,使需求的一个实现轮廓。也就是说,在概要设计文档中可以看出系统的大概面貌。打个比方说,如果需求文档要求做一个石油行业MIS系统,用于销售的。那么概要设计要确定这个系统的架构、主要功能模块:数据录入、统计、查询、修改、分析等。以及这些模块的大概组成。如分析模块,需要确定数据的分析算法。

2.2与详细设计的关系概要设计文档是详细设计文档的输入。详细设计需要对此进行细化。用程序员利于理解的话来说,概要设计好比F10(Step Over),详细设计好比是F11(Step In)。

2.3文字和图表无论是什么文档,画一幅图,生于长篇大论。图形就是简单、直观、清晰、明了、通俗、易懂。让人一眼看出整体结构来。文字的话,还要让人去理解,碰到不认识的字或者单词就更郁闷了。

三、总结

文档作为项目的重要参考,是进行维护的保证,同是属于企业的产品。文档需要进行合理的管理。当然了,要写好文档,如果在Windows平台上,请懂一点Office中Word,Excel,Visio等,其他工具Rose等,最好也要掌握一些。

后记:有时候,当我看到某公司的PM在不懂技术的情况下,同时不会用word,不会用excel,写出来的文档还赶不上本科生的毕业前,而深感他们需要在这方面提高一下自己的素质。我们只需要掌握Office功能的0.5%,那我们可以写出非常漂亮的文档,给阅读者以美的享受。

祝愿我们大家都有一个健康的身体,去挑战我们的未来。

概要设计模板参考 1.引言1.1编写目的  [说明编写这份概要设计说明书的目的,指出预期的读者。]1.2背景  a.[待开发软件系统的名称;]  b.[列出本项目的任务提出者、开发者、用户。]1.3定义  [列出本文件中用到的专门术语的定义和外文首字母组词的原词组。]1.4参考资料  [列出有关的参考资料。]2.总体设计2.1需求规定  [说明对本系统的主要的输入输出项目、处理的功能性能要求。包括]  2.1.1系统功能  2.1.2系统性能    2.1.2.1精度    2.1.2.2时间特性要求    2.1.2.4可靠性    2.1.2.5灵活性  2.1.3输入输出要求  2.1.4数据管理能力要求  2.1.5故障处理要求  2.1.6其他专门要求2.2运行环境  [简要地说明对本系统的运行环境的规定。]  2.2.1设备  [列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能。]  2.2.2支持软件  [列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。]1  2.2.3接口  [说明该系统同其他系统之间的接口、数据通信协议等]  2.2.4控制  [说明控制该系统的运行的方法和控制信号,并说明这些控制信号的来源。]2.3基本设计概念和处理流程  [说明本系统的基本设计概念和处理流程,尽量使用图表的形式。]2.4结构  [给出系统结构总体框图(包括软件、硬件结构框图),说明本系统的各模块的划分,扼要说明每个系统模块的标识符和功能,分层次地给出各模块之间的控制与被控制关系。]2.5功能需求与系统模块的关系  [本条用一张矩阵图说明各项功能需求的实现同各模块的分配关系。]    [系统模块1] [系统模块2] [……] [系统模块m][功能需求1]  √             [功能需求2]      √         [┇]                [功能需求n]      √       √ 2.6人工处理过程  [说明在本系统的工作过程中不得不包含的人工处理过程。]2.7尚未解决的问题  [说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。]3.接口设计3.1用户接口  [说明将向用户提供的命令和它们的语法结构,以及相应的回答信息。]  [说明提供给用户操作的硬件控制面板的定义。]3.2外部接口  [说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持系统之间的接口关系。]3.3内部接口  [说明本系统之内的各个系统元素之间的接口的安排。]4.运行设计4.1运行模块组合  [说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块的支持软件。]4.2运行控制  [说明每一种外界的运行控制的方式方法和操作步骤。]4.3运行时间  [说明每种运行模块组合将占用各种资源的时间。]5.系统数据结构设计  [不涉及软件设计可不包含]5.1逻辑结构设计要点  [给出本系统内软件所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。]5.2物理结构设计要点  [给出本系统内软件所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系、设计考虑和保密条件。]5.3数据结构与程序的关系  [说明各个数据结构与访问这些数据结构的各个程序之间的对应关系。]    [程序1] [程序2] [……] [程序m][数据结构1]  √             [数据结构2]      √         [┇]                [数据结构n]      √       √ 6.系统出错处理设计6.1出错信息  [用一览表的方式说明每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。]6.2补救措施  [说明故障出现后可能采取的变通措施。包括:]  a.后备技术 [说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术。]  b.降效技术 [说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录。]  c.恢复及再启动技术 [说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。]6.3系统维护设计  [说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值