`

软件开发中,这些文档你用到了吗

阅读更多

众所周知,做软件的目的就是要满足客户的需求,这个需求包括功能、外观、操作、时间及性能等各方面。那么,在软件开发过程中那部分最重要呢,程序员说“毋庸置疑,我编写的程序实现了客户提出的功能以及业务流程,肯定我是最重要的”,美工说“你开发的功能如果没有我的页面美化,是无法呈现给客户的,要知道,很多客户并不很了解内部复杂的功能,首先映入眼帘的就是界面的效果,就像人一样,如果你不是美女,那么他看了你一眼之后,就没有想和你再继续沟通和发展的积极性了”,测试听了不高兴了,说“漏洞百出的产品,哪怕你外观再漂亮,实现的功能再多,也是不成熟的产品,客户是不会使用的。”众说纷纭,各执一词。

以上所说都很有道理,每个角色都是软件成功必不可少的,每个人都好比是一块积木,只有组合起来才能搭成既美观又稳固的造型。

另一方面,他们却又都不是最重要的。举个例子,现在我家在进行装修,木工、瓦工、油漆工都是南方的工人,有很好的手艺,干活也很细致,可是他们在施工的时候都要参考两份文件,一是房屋结构图,二是装修效果图。没有此文件,他们就无从下手,就是拥有再好的手艺,做出来的再漂亮,到时候也会与房屋的实际效果存在偏差。

孙悟空三大白骨精,相信谁都耳熟能详。里面有这样一个场景,孙悟空去化斋前,划了一个圈,将唐僧他们包在里面,只要他们在圈里面,就不会有事,如果出了圈就很危险。这个圈,就是一个范围、一个标准。在这个圈里,你随便折腾,怎么折腾都行,但千万不要越界,否则后果不堪设想。

而在软件开发中文档就是那个圈,它将项目开发所进行的一切活动都进行详细的定义,只要遵照这个文档去开发,那么最终的结果一定是八九不离十。

文档贯穿软件工程的始终,从前期的项目准备,中期的开发到后期的维护、培训,无不以文档作为工作的依据。那么在软件项目中,都包括哪些文档呢,它们的作用又是什么呢,下面我将我的经验分享给大家。

《可行性研究报告》:这是客户在进行项目调研阶段所编写的,具有两重意义,其一,指明项目的必要性和紧迫性,并从业务角度阐述大概的功能需求,注意,只是大概,可能与最后的结果有很大出入;其二,最重要的一点就是为了要钱,向财政部要钱,将最终实现的功能写得天花乱坠,包括决策支持、全文检索、商业智能、远程报表等,但最后开发的可能仅仅是融合简单业务流程的信息输入和输出而已,但这已无关紧要,最重要的是我要到了钱。但是严格来说,这不是项目组所需的文档,于软件开发也意义不大。

《建设方案》:或者是《实施方案》,当客户从财政部申请到资金后,就要着手进行详细的调研和分析了,这里有两种情况,其一,客户自己从各个产品厂家进行相关的调研,进行汇总后,编写方案,这样,聪明、细心的软件公司就会从方案的技术环节,挖掘出客户所选择的产品,最后和这个产品公司合作来中标;其二,让和其关系很好的一家或两家软件公司(不会超过三家)编写,客户进行审核,客户最后选择了谁的方案那么最后这个项目就是这家公司的,这样很多情况并不是公开招标。

《招标书》:将《建设方案》或《实施方案》进行摘取,并附带上技术问题以及招标时的细节、注意事项,构成《招标书》,这个文件也是由客户写得,软件公司在投标前需要购买《招标书》。

《投标书》:与《招标书》所呼应,对技术问题进行相应的技术应答,包括技术标和商务标两部分。

上面几份文档,是项目前期准备时需要的,是侧重于售前方面的;而下面的文档是软件开发过程中必不可少的,我们按开发工作的时间顺序一一介绍。

 

《需求分析说明书》:对于软件开发来说,《需求分析说明书》就好像是盖楼时所用的图纸,是最重要的文档,由项目经理对客户相关部门进行业务调研后编写,语言侧重于从业务的角度描述功能需求。内容涉及三大部分,其一,编写目的、背景、目标任务等公共性语言;其二,功能性需求,将业务梳理成几大功能模块,一级功能下细分二级功能,依次类推,将最终细化的功能按描述、输入、处理和输出进行详细描述;其三,非功能性需求,包括性能、处理能力、进度、界面设计和运行环境的规定。

《数据库设计说明书》:我是做数据库出身,因此这部分的工作也是由我这个项目经理来做,根据《需求分析说明书》在Erwin建模工具中设计好逻辑模型和物理模型,然后将其整理到此文档中,文档还包含数据库所有的表结构和相关的字段说明。

《概要设计说明书》:说实话,在我做过的项目中,没有编写过此文档,因为我觉得《需求分析说明书》和《详细设计说明书》就足矣了。甚至如果项目简单或时间紧急,《详细设计说明书》都会省略:)。

《详细设计说明书》:主要包含两部分内容,其一,体系结构的设计,也就是项目所采用的几层架构,以及层与层之间的通信机制,还有就是基础框架所采用的技术;其二,是本文档的核心部分,包括每个细分模块的详细设计说明,包括程序描述、功能、性能、输入项、输出项、算法、流程逻辑、接口、存储分配、注释设计、限制条件、测试计划和尚未解决的问题等内容。本说明书对项目所采用的技术和接口都做了详细的规定,是指导程序员开发的直接工具。但需要说明的是,很多项目由于时间原因,都忽略了此说明书的编写,包括本人目前在做的项目也是如此,因此本文档并不是必须的。但如果作为给客户的交付物,需要在项目完成后补全。

《计划进度》:这个不用多说,由项目经理编写,实现对项目进度的严格把控,是项目必须的文档,可用project编写。

《测试用例》:测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。它是将软件测试的行为活动做一个科学化的组织归纳.目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一。由此可见,《测试用例》非常重要,是对项目或产品质量的严格保证,但由于测试人员和项目组的规范性、时间进度等限制,本文档在本地区的实际项目中也很少应用,至少我认识的很多测试人员中,只有极少数的项目中会编写此文档。

《测试结果》:在项目开发阶段使用,也就是交付客户之前。文档为Excel格式,并提供关键字段的数据筛选,内容包括描述、缺陷类型(Bug、需求)、开发人员、状态、关闭时间、所属模块、提交人、解决人、备注等。其中状态包含提交、解决和确认解决,测试人员将问题提交(红色),当程序员解决后就置为解决(黄色),测试人员再次确认无误后,就修改状态为确认解决(绿色),并且添写关闭时间。

《需求变更文档》:产品交付客户之后使用。任何一个好软件,不是在第一个版本就把这些标准全部实现,而是有步骤有重点地实现,逐步成为一个好软件。因此《需求变更文档》是不必可少的,同样作个Excel表格,量化解决。包括下列几项:客户名称、需求提出人、提出日期、需求关闭时间,功能模块名,客户现在版本号,需求描述,需求分类(需求、Bug)等。每次发布新版本都把从上一版本发布之日关闭的需求列表都单独摘成一个文件,附带到这次新发布的版本之后。

此举有两个好处,其一,能够清楚的列出客户以往所提的需求,因为有一些客户提出的改动总是反反复复,一个问题一会要改成A,然后觉得不好要改成B,之后觉得还不如A好,便又要求改回去,这样给公司的进度和安排带来很大的不便,如果因为这个耽误了其他的工作,便可以有此根据和客户进行沟通,防止客户赖账;其二,可以评判技术支持和相关程序员的工作量。此文档为EXCEL格式,但最好还有一个word类型的文档,每次客户提出修改意见时,将此文档打印出来交由客户签字,作为凭证,此方法实际中并不是次次可行,一些强权客户或不敢承担责任的就不签字,那也没辙。

《测试结果》和《需求变更文档》要定期(可一周或一个月)给老板一份。这表明了你的工作量,让他看看你确实一直很辛苦地在工作,另外,也能看出你的认真负责态度。

《用户使用手册》:按标准说,应该由文案写,但在大多数的软件公司中都不设这个职位,因此要么由项目经理写要么由测试人员写,关键看是谁给客户做培训。在目前我做的这个项目中,并没有专职测试,所以这个工作还是项目经理来做。《用户使用手册》可根据实际情况写成三种版本,其一,chm类型文件,适用于C/S的项目,就像微软的产品中,都会有此帮助手册;其二,做成网页形式的帮助文件,适用于B/S项目;其三,就是做成word文档,虽然可保存至本地,但使用起来没有前二者方便。

余者还有《开发任务书》、《项目总结报告》、《软件验收评审》等,并不是必须的,可根据客户需要和实际的项目来选择使用,再次并不一一赘述。

并且,以上所有文档,虽然有些是必须的,比如《需求分析说明书》、《测试结果》、《用户使用手册》等,但根据不同的行业、不同的地区以及不同的项目和团队规模,文档的具体内容都会有所不同,不必较真。只要能抓到老鼠,白猫黑猫都是好猫,况且,没必要的多余的文档会浪费时间和成本等资源。

2
0
分享到:
评论

相关推荐

    软件开发需用到的文档模板

    以下是一些核心的软件开发文档及其详细说明: 1. 需求规格说明书:这是项目启动阶段的关键文档,它明确了软件系统的目标、功能、性能、用户接口以及系统约束。在编写时,需充分理解用户需求,确保所有关键功能点...

    本人开发过程中用到的开发文档

    在开发过程中,拥有详尽且实用的开发文档是至关重要的,它们可以帮助开发者更好地理解各种技术栈,提高开发效率,减少错误。以下是对标题、描述以及标签中涉及的技术点的详细说明: 1. **Java**: Java是一种广泛...

    整个软件开发过程所要用到的全部文档模板

    综上所述,这些文档模板是软件开发过程中的重要工具,它们帮助团队保持沟通,管理项目,保证软件质量和满足用户需求。通过良好的文档管理,可以提高开发效率,减少错误,并使项目更具可维护性和扩展性。在实际工作中...

    软件工程开发文档模板

    "软件工程开发文档模板" 包含了软件开发过程中可能用到的十一种关键文档,以下是这些文档的详细介绍: 1. **需求规格说明书**:此文档详细描述了软件的功能需求,包括用户界面、性能、安全性和兼容性等要求。它是...

    软件开发中所用到的技术文档.docx

    软件开发中所用的技术文档 软件开发中所用的技术文档对项目的成功至关重要。这些文档不仅能够帮助开发团队更好地理解需求,还能确保项目的进度和质量。下面是软件开发中所用的技术文档的详细说明: 1. 《可行性...

    软件开发所用到的文档模板

    本资源提供的"软件开发所用到的文档模板"虽然可能不全面,但依然能为开发团队提供实用的指导。 1. 需求文档模板(需求规格说明书):这是软件开发的第一步,用于明确和记录用户的需求。内容包括项目背景、目标、...

    软件开发中所用到的文档

    在软件开发过程中,文档起着至关重要的作用,它们是沟通、规划、实施和维护软件产品的桥梁。以下将详细解析在标题和描述中提及的各种文档及其重要性: 1. **测试分析报告**:测试分析报告是对软件进行测试后,对...

    软件工程中用到的全套文档

    "软件工程中用到的全套文档"涵盖了从项目启动到交付的整个生命周期中的各种文档,确保了软件开发的系统性、规范性和可维护性。以下是一些主要的软件工程文档及其详细解释: 1. **需求规格说明书**:这份文档详细...

    软件开发uml设计文档

    在软件开发过程中,UML文档扮演着关键的角色,它帮助团队成员理解项目的整体结构和各个组件之间的关系。** ### API设计 API(应用程序接口)设计是软件开发中的核心部分,定义了不同组件或服务之间的交互方式。在...

    软件开发中所用到的技术文档.pdf

    在整个软件开发过程中,这些文档构成了一个有效的沟通和协作框架,确保团队对项目目标的理解一致,同时提供了一套可追溯的文档流,以便于管理和维护。然而,实际情况中,文档的完整性和使用程度可能因项目规模、时间...

    软件开发过程中用到文档的模板

    以下是一些常见的软件开发文档模板及其详细解释: 1. 可行性研究报告:这是项目启动阶段的关键文档,它评估了项目的技术、经济、法律、操作和时间可行性。这份报告旨在确定项目是否值得投入资源进行开发。 2. 项目...

    计算机软件开发文档编写指南

    计算机软件开发文档是软件开发过程中的重要组成部分,它记录了项目的整个生命周期,包括需求分析、设计、实现、测试和维护等各个阶段的信息。编写高质量的软件开发文档能够确保团队之间的沟通顺畅,降低误解,提高...

    开发软件用到各种说明书及其它文档规格

    1-《可行性研究报告》(GB8567——88).doc 2-《项目开发计划》(GB856T——88).doc 3-《软件需求说明书》(GB856T——88).doc ...不同软件规模对文档数量的要求.doc 文件给制实施规定的实例(GB8567-88).doc

    软件工程过程中用到的文档模板

    1. **需求开发文档**:这是软件开发的起点,它详细阐述了用户或客户对于软件的需求。通常包括功能需求、非功能需求、业务流程图、用户故事等。例如,"需求规格说明书"会明确列出软件应具备的功能,"用户场景描述"则...

    安卓开发以及软件开发所用到的小工具类

    在安卓开发和软件开发过程中,开发者常常需要借助各种小工具来提高效率,解决特定问题。这些小工具类涵盖了从调试、测试到优化等各个环节,极大地丰富了开发者的工具箱。以下是一些常见的小工具及其详细功能: 1. *...

    软件测试用例文档 -- 软件开发

    本文将深入探讨“软件测试用例文档”,这是软件开发中的关键文档之一,主要用于规划和执行测试活动。 测试用例文档是软件测试阶段的核心,它详细记录了如何验证软件是否符合预定的需求和规格。这份文档通常包括以下...

    软件开发设计文档

    在软件开发过程中,编写一份详尽的开发设计文档对于确保项目的顺利进行至关重要。本文档旨在为软件开发团队提供一套完整的设计指南,帮助他们更好地理解项目目标、技术架构以及具体实施细节。 #### 二、开发规划 #...

    软件开发文档范例

    《软件开发文档范例》是IT行业中至关重要的一个主题,它是软件工程流程中的核心组成部分,旨在确保项目的顺利进行,提高团队协作效率,并为最终用户提供清晰的指引。在本篇文章中,我们将深入探讨软件开发文档的重要...

    软件测试过程中用到的文档模板

    这些文档在整个软件开发生命周期中扮演着不同的角色,它们相互配合,确保测试活动的全面性和有效性。使用统一的模板可以提高效率,减少误解,并确保文档的一致性。在实际工作中,根据项目的特性和需求,可能还需要...

Global site tag (gtag.js) - Google Analytics