在软件编写的过程中,文档是其中非常重要的一环,并占据了整个软件开发的大部分时间,在这里我不想去讨论文档对程序编写如何重要,我只想研究一下在软件编写过程中有哪些类型的文档,这些文档都应该写什么。一个程序员通常都不怕写代码,却往往怕写文档,这其中有文笔不好之类的原因外,其中有一个很重要的原因是不知道这些文档是用来干什么,也不知道这些文档该写一些什么。今天在阅读一些相关文档模板的时候有些想法,现在把它们记录下,以备今后所用。
1 需求规格说明书
需求规格说明书(以下称:需求文档)是一个很重要的文档,是在软件交付使用的时候必须提交的一份文档,并且之前这份文档必须由用户确认过。需求文档的原始素材来源于需求分析人员与客户的交流,另一部分就来源于需求分析人员根据经验对原始素材挖掘与扩展。需求文档决定了软件系统的结构与走向,是整个软件项目的基石,如果需求文档存在问题,那么整个软件必然有问题,同时需求文档是其它文档生成的依据。那么求文档该如何写,以及书写的内容该是什么呢?
需求文档的内容不是凭空编写,不是闭门造车造出来的,而是与客户交流所得出的。需求文档编写的过程实际是与客户交流的一个过程,即需求调研过程。如何进行一个需求调研过程呢,需求调研有很多方法,但对于我说,都不是十分很清楚,我这里有一个想法,就是你不管用什么方法,只要你依据一份需求文档模板将里面的每一项与客户交流逐一确认清楚就可以当作完成了调研的过程。这里我想以中国电信的需求规格说明书来说明这一调研过程:
1 引言
1.1 编写目的
此项不需要与用户确认,根据实际写明为什么编写此文档,不过通常编写需求文档的原因都大同小异。
1.2 背景
此项不需要与用户确认,一般可以根据用户提供材料来获取与提炼
1.3 业务术语
此项不需要专门去询问用户,可以在后续调研的过程中逐一确认
1.4 需求文档编写约定
此项一般不需要与用户确认,只是为了方便文档的编写与组织,多数都是由需求分析人员提供,例如需求优先级别定义,状态定义,需求编号等的定义
1.5 参考资料
根据实际情况填写参考的资料
2 任务概述
2.1 目标
此项需要与用户交流确认,当然你不能直接去问客户目标是什么,你可以与客户谈论相关的话题:开发意图、应用目标、使用范围、项目背景等,尤其要弄清一个问题,这个系统是独立系统,还是与其它系统关联的系统,还是现有系统的一个子系统等
2.2 用户特点
此项需要与用户交流确认,软件由哪几类用户使用,每一类用户的教育水平与技术专长,软件预期使用的频度等与客户交流确认
2.3 假定与约束
列出假定与约束,可与客户交流确认:经费限制、时间限制,主要给后续设计人员参考和资源配置
2.4 需要收集和需求分析过程采用的方法
需要调研过程中所使用方法,有时间需要和用户商量确认怎样的调研方法最适合当前客户
3 需求规定
3.1 系统需求
确认客户对系统的高层次的需要或者说要求,此处你也不能直接去问客户:你高层次的需求是什么?你需求准备相关的话题与客户交流,最后由你来提炼,并最终给客户确认。(我认为这是确认高层需求、抽象需求、潜在需求等的一个方法,关关键在于交流之前的准备工作要做足)
3.2 用户需求
确认用户使用系统时的主要业务流程,就是确认用系统中有哪些用例,这里要反复挖掘,要充分考察现在的业务流程情况。这里的调研过程可以按照这样一个过程来完成:当前的业务由哪几类人来完成,每一类人他们做哪些事
3.3 功能综述
这里是对功能需求的一个概括描述,是由抽象提炼获取的
3.4 功能需求
3.4.1 xxx模块/子系统
3.4.1.1 功能名称:FN_XXX 功能编号:NO_XXX_001
3.4.2 yyy模块/子系统
3.4.2.1
3.5 性能需求
3.6 运行环境需求
3.7 灵活性需求
3.8 可靠性需求
3.9 界面需求
3.10 故障处理需求
3.11 安全性需求
3.12 质量需求
3.13 与其它系统集成需要
3.14 其它专门需求
4 验收与交付
4.1 最终交付的工作产品
4.2 验收准则
4.3 最后的交付时间
2 概要设计说明书
我认为概要设计最主要的工作就是根据需求分析进行模块的划分,并将它细分到功能点,并辅助以模块划分图,典型的用例图来说明。概要设计应该不与具体的一种编程技术相关,做好的概要设计应该能够用任何一种编程技术实现,只是难或易的问题,因此我并不认为概要设计不能细化到功能点,当然这也不是绝对的,在概要设计这个阶段也可以软件的体系结构,命名规范,接口规范,分层结构作一个比较详细的说明,那么此时将可能会有某种技术的倾向,但这并不影响大局。
3 详细设计说明书
我认为详细设计就是在编程,虽然不是写代码但它应该是以一种具体的语言、架构为蓝本来对概要设计的抽象结构进行翻译,以我熟悉的J2EE来说,详细设计的时候你需要设计出前台需要的所有界面及操作方法;控制层每个action的名称,每一个执行方法的名称及出入参说明;业务层每service的名称,每个方法的出入参及说明;持久层每个dao的名称,每个方法出入参的说明。简单来说明有了详细计就有了程序,到时只需要按文档写代码就可以了
4 数据库设计说明书
数据库设计说明书应该是内容相对比较明确的文档,主要是依据需求分析与概要设计来完成数据库的逻辑设计与物理设计,即理清抽象的ER关系图,定义出每一个实体的字段名称、类型、约束以及取值含义
分享到:
相关推荐
在软件开发过程中,文档起着至关...对于初学者来说,理解和掌握这些文档的编写与使用,将有助于提升其在软件开发领域的专业素养。而对于经验丰富的开发者,一套完整、详尽的文档体系更是保证项目稳定、高效进行的基石。
本文将深入探讨“软件开发各种文档范例”这一主题,旨在帮助开发者和项目经理理解并创建有效的文档。 一、需求分析文档 需求分析文档是软件开发的第一步,它详细描述了用户的需求和期望。包括功能需求、非功能需求...
总结来说,这个压缩包“文档网狐文档”很可能是针对“网狐”平台的一系列资源,可能包括使用指南、操作手册、技术规范、常见问题解答等文档,旨在帮助用户更好地理解和使用网狐平台。由于具体文件内容未知,更详细的...
### 正确理解技术文档的作用 #### 一、引言 技术文档作为IT行业中不可或缺的一部分,对于技术人员来说具有重要的意义。然而,很多人可能并没有真正理解技术文档的作用以及如何有效地利用它们。本文旨在深入探讨...
标题中的“各种API帮助文档”指的是编程语言或框架的官方或第三方提供的接口文档,这些文档通常详尽地解释了各种类、方法、属性及其用法,是开发者在编写代码时的重要参考材料。在这个压缩包中,我们可以看到针对...
文档管理系统是一种专为组织、企业和个人设计的工具,旨在高效地管理和存储各种类型的文档,包括文本文件、图像、PDF、Word文档、Excel表格等。它的重要性在于帮助用户在海量信息中快速定位所需内容,提高工作效率,...
在描述中提到的"RFC规范的中文文档,里面有大部分的规范",意味着这个压缩包内包含的资源广泛且实用,可以帮助读者理解并遵循各种RFC标准,而不必受限于英文阅读能力。这对于中文使用者来说是一个宝贵的资料库,可以...
本压缩包"软件工程各种文档下载.rar"包含了一系列与软件工程相关的文档资源,旨在提供全面的学习和参考材料。 首先,我们可以从“课程设计”这个文件名推测,这可能是一个关于软件工程课程实践的项目指南或案例分析...
Donut 不需要现成的 OCR 引擎/API,但它在各种视觉文档理解任务上显示出最先进的性能,例如视觉文档分类或信息提取(也称为文档解析)。此外,我们还推出了SynthDoG 文档生成器,它有助于模型预训练在各种语言和领域...
综上所述,软件开发规范文档模板是软件工程的重要组成部分,它们提供了标准化的流程,提高了工作效率,降低了沟通成本。合理利用模板,结合团队实践,能有力推动项目的顺利进行。因此,无论是项目管理者还是开发人员...
"软件开发过程中所需要文档.zip"这个压缩包很可能包含了从项目启动到交付的全过程所需的各种文档模板和规范,这对于遵循国家标准的软件开发至关重要。 首先,我们要了解软件开发中的主要文档类型: 1. **需求规格...
学习C#文档能帮助开发者理解如何创建高效、安全的桌面和服务器应用程序。 JavaScript,简称JS,是一种轻量级的解释型编程语言,主要应用于网页和网络应用开发。它使网页具有动态交互性,例如表单验证、动画效果、...
综上所述,"海康威视开发文档.zip"中的内容对于开发人员来说是一份宝贵的资源,它不仅提供了接口的技术细节,还提供了丰富的示例和指导,使得开发者能够高效地集成和利用海康威视的摄像头产品。通过对这份文档的深入...
全文搜索则意味着系统具备强大的文本分析能力,即便用户记不清文件名,也能通过内容关键词找到所需文档。 总的来说,企业文档管理系统是现代企业提升管理水平、保障信息资产安全的重要工具。其易用性、实用性与强大...
例如,需求文档可以帮助团队理解用户需求,设计文档则指导开发人员进行架构和模块设计,而测试文档则确保产品的质量。 文档模板和实例在此起到示范和引导作用,它们提供了标准格式和实例参考,帮助开发者遵循最佳...
在软件开发过程中,软件测试是不可或缺的一...以上就是“软件测试各种模板文档”所涵盖的主要内容。通过理解和应用这些模板,测试人员能更专业、系统地进行软件测试,提高测试效率,降低产品风险,为软件质量保驾护航。
因此,在编写基于 MFC 的应用程序时,需要充分理解文档模板、文档、视图和框架窗口四个类的作用和关系。 在这个结构中,还需要进一步研究文档视图结构的 MFC 程序消息流动的方向,了解四个类之间的关系和作用,了解...
本文将深入解析"程序开发功能需求文档模板",并提供相关指导,帮助开发者和项目经理理解如何有效地制定和使用此类文档。 1. 引言 引言部分是需求文档的开篇,其目的是明确文档的目的、适用范围以及引用的参考资料。...
本文将深入解析这个文档中的关键知识点,帮助你更好地理解和运用FineReport。 1. **界面介绍**:离线文档首先会引导用户熟悉FineReport的工作界面,包括菜单栏、工具栏、设计区、预览区等,理解各个区域的功能,是...
它旨在提供一个高效、便捷的平台,使用户能轻松访问和理解中兴的各种技术文档、操作手册、维护指南等。通过这款阅读器,用户可以快速定位所需信息,提高工作效率,降低学习成本。 阅读器的主要功能包括: 1. **...