1、.模版集萃综述在程序员的日常工作中,除了编写代码之外,还免不了需要编写各种技术文档。一个编写良好的技术文档在项目中能够很好地建立沟通与协作,起到很积极的作用。因此,编写技术文档也就成为了程序员技能提升的很重要的一面。为此,我们特意收集了一些在项目开发过程中经常用到的文档模板,这些模板包括格式和简单的写作说明,相信能够帮助大家编写出更加高效、实用的技术文档。在收集过程中,我们十分注重其实用性,以确保每个模板的价值,而且对于一些重要的文档提供了多个模板。为了方便大家查找,我们将收录的57模板分为以下几类:项目及开发管理类:包括立项前的分析,立项后的计划、以及进度跟踪、风险控制方面的文档模板,共计1
2、6个;需求分析类:明确清晰的需求,是项目成功的基础,在此收集了在需求分析过程中所将使用到的文档模板,共计14个;系统分析与设计类:包括体系结构设计、高层设计、详细设计、数据库设计等6个相关文档模板;软件质量保证类:软件测试是质量保证的关键活动,在此收集了软件测试相关的11个文档模板;其它类:除此之外,还收集了关于用户手册、软件维护等方面的10个文档模板,其中还有一个软件过程规范的示例。另外,值得说明的是,文档模板只是为文档的编写提供一个基础,在实际的编写过程中,你可以根据自己的需要进行必要的剪裁和增补。一、项目及开发管理类1.1 可行性研究报告(ISO标准)编者说明:在立项时,应该对项目进行综
3、合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。1. 引言1.1 编写目的编写本可行性研究报告的目的,指出预期的读者。1.2 背景a.所建议开发的软件系统的名称;b.本项目的任务提出者、开发者、用户及实现该软件的计算站或计算机网络;c.该软件系统同其他系统或其他机构的基本的相互来往关系。1.3 定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4 参考资料列出用得着的参考资料。2. 可行性研究的前提说明对所建议开发的软件的项目进行可行性研究的前提。2.1 要求说明对所建议开发的软件的基本要
4、求。2.2 目标说明所建议系统的主要开发目标。 2.3 条件、假定和限制说明对这项开发中给出的条件、假定和所受到期的限制。2.4 进行可行性研究的方法说明这项可行性研究将是如何进行的,所建议的系统将是如何评价的,摘要说明所使用的基本方法和策略。2.5 评价尺度说明对系统进行评价时所使用的主要尺度。3. 对现有系统的分析这里的现有系统是指当前实际使用的系统,这个系统可能是计算机系统,也可能是一个机械系统甚至是一个人工系统。分析现有系统的目的是为了进一步阐明建议中的开发新系统或修改现有系统的必要性。3.1 处理流程和数据流程说明现有系统的基本的处理流程和数据流程。此流程可用图表即流程图的形式表示,
5、并加以叙述。3.2 工作负荷列出现有系统所承担的工作及工作量。3.3 费用开支列出由于运行现有系统所引起的费用开支。3.4 人员列出为了现有系统的运行和维护所需要的人员的专业技术类别和数量。3.5 设备列出现有系统所使用的各种设备。3.6 局限性列出本系统的主要局限性。4. 所建议的系统4.1 对所建议系统的说明概括地说明所建议系统,并说明在第2条中列出的那些要求将如何得到满足,说明所使用的基本方法及理论根据。4.2 处理流程和数据流程。给出所建议系统的处理流程式和数据流程。4.3 改进之处按2.2条中列出的目标,逐项说明所建议系统相对于现存系统具有的改进。4.4 影响说明新提出的设备要求及对
6、现存系统中尚可使用的设备须作出的修改。4.4.1.对设备的影响说明新提出的设备要求及对现存系统中尚可使用的设备须作出的修改4.4.2.对软件的影响说明为了使现存的应用软件和支持软件能够同所建议系统相适应,而需要对这些软件所进行的修改和补充。4.4.3.对用户单位机构的影响说明为了建立和运行所建议系统,对用户单位机构、人员的数量和技术水平等方面的全部要求。4.4.4.对系统运行过程的影响说明所建议系统对运行过程的影响。4.4.5.对开发的影响说明对开发的影响。4.4.6.对地点和设施的影响说明对建筑物改造的要求及对环境设施的要求。4.4.7.对经费开支的影响扼要说明为了所建议系统的开发,统计和维
7、持运行而需要的各项经费开支。4.5 技术条件方面的可能性本节应说明技术条件方面的可能性5. 可选择的其他系统方案扼要说明曾考虑过的每一种可选择的系统方案,包括需开发的和可从国内国外直接购买的,如果没有供选择的系统方案可考虑,则说明这一点。5.1 可选择的系统方案1说明可选择的系统方案1,并说明它末被选中的理由。5.2 可选择的系统方案2按类似5。1条的方式说明第2个乃至第n个可选择的系统方案。6. 投资及效益分析6.1 支出对于所选择的方案,说明所需的费用,如果已有一个现存系统,则包括该系统继续运行期间所需的费用。6.1.1 基本建设投资包括采购、开发和安装所需的费用。6.1.2 其他一次性支
8、出 6.1.3 非一次性支出列出在该系统生命期内按月或按季或按年支出的用于运行和维护的费用。6.2 收益对于所选择的方案,说明能够带来的收益,这里所说的收益,表现为开支费用的减少或避免、差错的减少、灵活性的增加、动作速度的提高和管理计划方面的改进等,包括:6.2.1 一次性收益说明能够用人民币数目表示的一次性收益,可按数据处理、用户、管理和支持等项分类叙述。6.2.2 非一次性收益说明在整个系统生命期内由于运行所建议系统而导致的按月的、按年的能用人民币数目表示的收益,包括开支的减少和避免。6.2.3 不可定量的收益逐项列出无法直用人民币表示的收益。6.3 收益/投资比求出整个系统生命期的收益/
9、投资比值。6.4 投资回收周期求出收益的累计数开始超过支出的累计数的时间。6.5 敏感性分析是指一些关键性因素与这些不同类型之间的合理搭配、处理速度要求、设备和软件的配置等变化时,对开支和收益的影响最灵敏的范围的估计。7. 社会因素方面的可能性7.1.法律方面的可行性7.2.使用方面的可行性8. 结论在进行可行性研究报告的编制时,必须有一个研究的结论1.2 软件项目商业性分析页:6 注,改写自RUP模板中的商业理由编者说明:随着市场经济的不断发展,一个项目的商业价值、市场价值往往是衡量项目价值的最大依据。该文档模板十分适用于产品型项目,当你提出一个新的产品开发方向时,一份商业性分析是说服管理层
10、的一个很好工具。当然,如果是一些内部项目,也是可以借鉴该文档模板来论证该项目的商业价值。1.文档概述该部分主要描述该文档的目的、范围、术语以及参考资料等方面的内容。1.1目的说明该文档的作用。1.2 范围简要说明该与文档相关的其它事物与资料。1.3 术语列出所有将出现于本文档的新术语、缩略语等。1.4参考资料在此应列出项目计划中引用的文档列表,对于引用的每个文档都应该列出其标题、文档编号、日期,并且指出这些文档的来源,以方便该计划的阅读者查找。1.5 概述本小节说明该文档所包括的内容,以及它的组织方式。2.系统说明在此简要地说明将要开发的系统,包括其名称、系统所解决的问题以及它的开发价值等,从
11、而使得读者能够有一个直接的了解。并且在这处还应列出与在本文档中出现的缩略词的解释,以便读者更好地阅读。3.业务环境这一小节主要说明要开发的系统所处于的业务环境。它包括系统所面向的领域、用户。也可以在此指出它是产品型项目,还是用户定制型项目,同时如果该项目与原有的项目有紧密的联系,在此也应该把这些联系列出来。4.产品目标这一小节则用于深入说明为什么要开发该系统,它有什么价值。最好还应对进度计划、进度风险做一些评估。一个明确确定、表述清晰、可以度量的目标将为今后系统的开发工作打下坚实的基础。 5.财务预测如果是产品型项目,那么其输出就是一个商业软件产品。对于这样的项目,在此应该包括对该项目的财务预
12、测,最主要应该得出投资回报(ROI)指标。在做ROI分析时,应该针对不同的完成时间做出不同的预测,以让系统开发者对于进度延迟对投资回报的损伤有一个直观的了解。在财务预测中,有一个基点就是对项目工作量、资源使用的估算,在这里还应给出估算的基础技术,当然这里的估算会随着项目的进展而逐步精化,应该这里还是应该估算出一个合理的范围。6.约束任何事有利就有弊,在本小节则主要列举执行该项目时会遇到的一个诸如外部接口、标准、认证、特殊的技术等约束,这些约速将会对项目带来很大的执行风险,可能对项目的成本也带来巨大的影响。1.3 软件开发项目立项表编者说明:在许多开发组织中,开发立项请求通常来自市场部门,该表格
13、的设计就是为了更好地理顺两个部门之间的沟通与协调,也使得开发立项流程化,你可以根据自己公司的实际情况,对该表格的格式做一些修改。项目名称(暂定):项目编号(开发部填写):项目申请人:申请日期:项目优先级:最迟完成时间:问题/机会:项目目标及成功标准:目标描述:假设、风险及障碍:客户名单:项目提出人:项目决策人:项目相关人员:审批人意见:签名: 日期:1.4 软件项目计划(ISO标准)编者说明:拿破仑说过:“没有一场战役是按照计划打的,而胜利的战役没有一个是没有计划的。”,战役尚且如此,软件项目也不例个。一个经过周密考虑,团队协作共同制订的项目计划是成功的关键。本文档模板是ISO标准模板,虽然时
14、间有点久远,但还是十分有参考价值的。1. 引言1.1 编写目的说明编写这份项目开发计划的目的,并指出预期的读者。1.2 背景a.待开发软件系统的名称;b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;c.该软件系统同其他系统或其他机构的基本的相互来往关系。1.3 定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4 参考资料 列出用得着的参考资料。2. 项目概述2.1 工作内容 简要地说明在本项目的开发中须进行的各项主要工作。 2.2 主要参加人员 扼要地说明参加本项目开发工作的主要人员的情况,包括他们的技术水平。2.3 产品2.3.1 程序 列出需移交
15、给用户的程序的名称、所用的编程语言及存储程序的媒体形式,并通过引用有关文件。逐项说明其功能和能力。2.3.2.文件 列出需移交给用户的每种文件的名称及内容要点。2.3.3.服务 列出需向用户提供的各项服务。 2.3.4.非移交的产品 说明开发集体应向本单位交出但不必向用户移交的产品。 2.4 验收标准 对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。2.5 完成项目的最迟期限2.6 本计划的批准者和批准日期3. 实施计划3.1 工作任务的分解与人员分工对于项目开发中需完成的各项工作,从需求分析、设计、实现、测试直到维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安
16、装工作等,按层次进行分解,指明每项任务的负责人和参加人员。3.2 接口人员说明负责接口工作的人员及他们的职责。3.3 进度对于需求分析、设计、编码实现、测试、移交、培训和安装等工作,给出每项工作任务的预定的开始日期、完成日期及所需资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件。3.4 预算逐项列出本开发项目所需要的劳务以及经费的预算和来源。3.5 关键问题逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目的影响。4.支持条件 说明为支持本项目的开发所需要的各种条件和设施。4.1 计算机系统支持逐项列出开发中和运行时所需的计算机系统支持,包括计算
17、机、外围设备、通讯设备、模拟器、编译程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等,逐项给出有关到货日期、使用时间的要求。4.2 需由用户承担的工作逐项列出需要用户承担的工作和完成期限,包括需由用户提供的条件及提供时间。4.3 需由外单位提供的条件逐项列出需要外单位分合同承包者承担的工作和完成的时间。5.专题计划要点说明本项目开发中需制订的各个专题计划的要点。1.5 软件项目计划模板(2)编者说明:大家可能都发现了ISO标准的项目计划缺少实用性,那是因为其未能很好地与WBS、甘特图技术实现良好的结合。该文档模板则充分考虑到这一点,其简单、实用,适用于中小规模项目。1.引言 1.1
18、 计划的目的 1.2 项目的范围和目标 1.2.1 范围描述 1.2.2 主要功能 1.2.3 性能 1.2.4 管理和技术约束 2.项目估算 2.1 使用的历史数据 2.2 使用的评估技术 2.3 工作量、成本、时间估算 3. 风险管理战略 3.1 风险识别 3.2 有关风险的讨论 3.3 风险管理计划 3.3.1 风险计划 3.3.2 风险监视 3.3.3 风险管理 4.日程 4.1 项目工作分解结构 4.2 时限图(甘特图) 4.3 资源表 5.项目资源 5.1 人员 5.2 硬件和软件 5.3 特别资源 6.人员组织 6.1 组织结构 6.2 管理报告 7.跟踪和控制机制 7.1 质量
19、保证和控制 7.2 变化管理和控制 8.附录 1.6 软件项目计划模板(3)页:12 注,来源于软件项目管理一书。编者说明:如果项目规模较大,除了上一个模板中的内容之外,还应该加入许多分支内容,包括过程计划、组织计划、测试计划、变更及管理计划、文档计划等各多方面的问题,将这些内容的细化,将使项目计划更全面、更周密。第1部分 概述1.1 目标这部分的目标是总结整个项目计划。1.2 概述简要描述要做的工作。给出所有理解工作环境所需的背景。然后阐述在合同下的项目任务。紧接着,说明项目如何组织。然后,在项目的基础上列出假设和约束。1.3 详述说明项目的总体时间进度。包括项目中的所有主要工作,无论是你能
20、控制的还是不能控制的。如果你计划发布多个版本,要说明如何安排进度。第2部分 过程计划2.1 目标这部分的目标是对用一系列称为“过程”的时间段对开发活动加以定义,也就是确定该项目的开发将选用什么样的过程模型。2.2 概述定义你的开发生命周期,并且简要说明生命周期的每个过程。2.3 详述2.3.1 定义过程主要目标:分析问题、制作项目计划、定义接收标准、选择项目工具。次要目标:寻找人员、了解客户、形成试验性的设计思想。2.3.2 设计过程主要目标:设计操作性程序、设计支持性程序、改进项目计划、进行项目评审。次要目标:准备集成环境、建立变更管理、制作模拟模型、为下一个过程寻找人员、准备程序员培训、出
21、版程序员手册、初步准备系统测试、验收测试、现场测试、建立项目资料库。2.3.3 编码过程主要目标:详细设计/编码和模块测试、模块集成、文档建立。次要目标:详细地准备系统测试、验收测试、现场测试,准备客户培训、准备移植。2.3.4 系统测试过程主要目标:根据问题说明书进行系统测试、尽可能地“实况”测试、通过非程序开发人员测试。次要目标:完成验收测试准备、培训客户、更新描述性文档、完成用户文档、再次分配人员。2.3.5 验收过程主要目标:执行和分析验收测试、签署正式的接收协议。次要目标:完成客户培训、清理文档。2.3.6 移植过程主要目标:协助进行数据转换、建立数据转换标准、建立全面恢复计划、定义
22、移植顺序、协助接入。次要目标:与受影响组进行联系、支持评审过程。2.3.7 运行过程主要目标:协助初期运行。次要目标:现场测试、继续维护和调整、评价项目。第3部分 组织计划3.1 目标这部分的目标是定义项目的组织以及责任分配。3.2 概述说明建立组织的基本原因,画出组织内部的主要工作流程图,从问题的分析和设计开始,包括编码、测试、制作文档和交付。3.3 详述在每个子部分中,列出基于组织章程的部分以及每个部分的责任,然后再说明在每个过程中组织的结构图。3.3.1 部门及责任分析和设计部:编写问题说明书、设计说明书、变更管理、数据控制、模拟模型、制作用户文档、协作集成测试。编程部:详细设计、编码、
23、模块测试、集成测试、描述性文档。测试部:制作系统测试说明书、制作验收和现场测试说明书、收集和制造测试数据、选择和获得测试工具、建立测试资料库、安排测试资源进度、执行测试、分析测试结果、制作测试结果文档。行政部:资料管理、计算机时间控制、计划和安装终端和PC、发放程序员手册、培训、特殊技术协助、技术联络、文档控制、报告控制、合同变更管理、提供杂务支持、维护项目历史信息。3.3.2 组织章程第4部分 测试计划4.1 目标 这部分的目标是定义对软件系统的所有级别测试的工具、过程和责任。4.2 概述 简要定义每个测试级别,并说明在一个测试层次上,不同级别如何组合在一起。4.3 详述4.3.1 单元测试
24、在与其它功能模块集成之前,针对单个程序模块的测试。在此应列出单元测试的目标、责任、过程、工具。4.3.2 集成测试逐步将通过测试的模块集成为更加复杂的集合,并且测试这些集合,直到整个软件都被集合在一起。在此应列出集成测试的目标、责任、过程、工具。4.3.3 系统测试在尽可能真实的环境下,重新测试完成的软件系统,应由非编程人员完成。在此应列出系统测试的目标、责任、过程、工具。4.3.4 验收测试在用户认可的条件下,试运行系统以验证系统满足了客户的需求。在此应列出验收测试的目标、责任、过程、工具。4.3.5 现场测试在不同的运行环境下测试软件系统,以确保运行准备就绪,这并不是每个项目都需要的。在此
25、应列出现场测试的目标、责任、过程、工具。4.3.6 共同测试设备描述在几个或者所有级别的测试中共同的设备和工具,其中包括系统资料、计算机设备、桌面系统、操作系统、特殊语言、CASE工具、仿真器。4.3.7 测试支持程序第5部分 变更管理计划5.1 目标这部分的目标是定义在软件系统开发过程中,变更控制的过程。5.2 概述描述建立你和客户都能够接受的关键基线文档以及控制与这些基线变化相关事件的需求。无论何时发生问题,基线文档都是参考的关键。5.3 详述5.3.1 基线定义哪些文档在你的项目中是基线。5.3.2 变更申请列出可能会提出变更的人员类别,以及提供相应的变更申请文档。5.3.3 研究变更申
26、请5.3.4 变更的类型根据变更的基线影响的程序,设置不同的变更类型。5.3.5 变更管理会议明确变更管理会议的组成成员、召开时间以及具体的操作办法。5.3.6 建议类型定义变更建议的类型,通常包括接受和拒绝两种。5.3.7 执行变更定义执行变更的具体方法,通常包括评估变更成本、对变更进行审批、制作变更文档、对变更后的进度进行重新安排、测试变更结果。第6部分 文档计划6.1 目标这部分的目标是定义出版周期所要求过程与资源,以及列出基础项目文档组的框架结构。6.2 概述强调所有的项目文档在这部分都列出结构框架。6.3 详述6.3.1 发布过程和责任通常包括准备和批准、打字输入、校对和编辑、翻印、
27、发放、电子存储等。 6.3.2 项目文档大纲每个文档的都包括以下部分: a.项目标志:用于标识项目文档之用;b.文档名称:标识主题,如问题说明书、设计说明书c.文档编号:由项目资料员分配给文档的唯一标识;d.批准:在作为正式版本之前,文档所需批准人的姓名。当然也不是所有文档都需要经过批准。e.发行日期f.文档主体:文档的内容。6.3.3 文档内容列出在该项目中将要使用的文档模板的结构性内容。 1.7 软件项目计划模板(4)编者说明:随着现代软件工程思想的普及,迭代的、增量的开发生命周期已经被认识并付诸实践,针对这样的生命周期,其项目计划的格式也需要做出相应的调整。注:一个符合现代软件工程思想的
28、版本1.文档概述在此对整个文档进行概要性描述,另外还应列出该计划的目标、范围、定义、术语、参考资料等内容。1.1 目标在此描述本项目计划的目标。1.2 范围 简要说明该计划所覆盖的范围,以及与其相关的项目,与该文档有联系的事物。1.3 定义与术语在此列出在该计划中所涉及的所有术语、定义、缩写词的解释,这些信息也可以引用项目词汇表来提供。1.4 参考资料在此应列出项目计划中引用的文档列表,对于引用的每个文档都应该列出其标题、文档编号、日期,并且指出这些文档的来源,以方便该计划的阅读者查找。1.5 概述 说明该计划其它部分所包含的内容,以及文档的组织方式。1. 项目概述1.1 项目目标指出该项目将
29、会交付什么样的产品,能够帮助客户达到什么目标。1.2 假设与约束列举出制定该计划时所做的所有假设,以及列举出对该项目的解决方案的约束性要求,如特定的操作系统平台、特定的时间、特定的经费范围等。1.3 项目交付物具体列出该项目完成后,将交付哪些东西,并可以列出每个交付时间。1.4 项目计划更新总结建议采用表格的形式,将计划的修订过程列出来。2. 项目组织2.1 项目组织结构建议使用组织结构图的形式,将整个项目团队成员之间的关系与职责明确下来,甚至可以包括管理人员、各种委员会等。2.2 外部联系人列出开发组织之外的,所有与项目相关的外部人员的姓名、联系电话等资料。2.3 角色与职责明确项目开发各个
30、任务的负责人或小组。3. 项目管理计划3.1 项目估计给出关于项目成本、进度的估计值,这些估计值将是项目计划制定的基础,也是今后重新评估、修改计划的基础。你可以采用任何估算技术。3.2 项目计划4.2.1 阶段计划主要包括工作结构分解(WBS)、显示各个阶段或迭代时间安排的甘特图、主要里程碑与其验收标准。4.2.2 迭代目标如果你采用的是迭代式的开发方法,那么在此列出每次迭代的计划,以及每次迭代计划实现的目标。4.2.3 发行计划列出软件开发过程中各个中间版本的发行时间,包括演示版、Alpha版、Beta版等。4.2.4 项目进度表使用甘特图或PERT图等方法,表示出该项目的进度计划。4.2.
31、5 项目资源计划 在此处应列出项目所需的人员、设备等资源情况。应指明所需人员的数量、技能要求,以及如何获取这些资源,是否要对人员进行必要的培训等。4.2.6 项目预算根据WBS和阶段计划分配成本,得到本项目的财务预算。3.3 迭代计划根据4.2.2小节的目标,具体列出每次迭代的详细计划。该部分可以视需要将其单列为专题计划。4.3.1 迭代一 4.3.1.1 计划 列出此次迭代的时间线、小型里程碑等。 4.2.1.2 资源 列出此次迭代所需的人力、财力、设备等资源。 4.2.1.3 用例 列出此次迭代将要实现的用例。4.2.1.4 评估标准 列出此次迭代的各项评测标准,包括功能、性能、容量、质量
32、等。3.4 项目监督与控制4.4.1 需求管理计划有针对性对制定各类需求元素的管理与跟踪办法。该部分可以视需要将其单列成为专题计划。4.4.2 进度控制计划说明如何对项目计划执行情况进行监控,将采用什么措施与管理手段。4.4.3 预算控制计划说明如何对项目的财务预算进行控制,以保证成本最小化。4.4.4 质量控制计划说明如何保证项目的质量,以及一些应急的应对措施。该部分可以视需要将其单列成为专题计划。4.4.5 报告计划说明项目开发过程中,整个项目团队的报告机制,什么时候、谁、报送什么数据,从而形成规则。4.4.6 评测计划制定项目开发过程中将要度量与评测的指标,说明如何评测,如何应对。该部分
33、可以视需要将其单列成为专题计划。4.5 风险管理计划该部分可以视需要将其单列为专题计划。 4.5.1 风险总述对项目所涉及的风险进行一个概要性描述。 4.5.2 风险管理任务简要地说明在该项目中,风险管理所涉及的内容,可以包括用来确定风险的方法、对风险列表进行分析和确定优先级的方式、将采用的风险管理策略、对最严重的风险所计划的降低/规避或预防的策略、监测风险状态的方式、风险复审的时间表。 4.5.3 风险管理的组织和职责列出与风险管理相关的个人或小组,并对其职责进行描述。 4.5.4 工具与技术列出与风险管理将采用的工具软件或技术。 4.5.5 纳入管理的风险项列出主要的风险项,并描述其影响以
34、及应急措施。具体可以参考后面的风险条目跟踪表模板。4.6 收尾计划列出在项目后期将要做的事,包括材料存档、汇报总结等。4. 相关技术5.1 开发案例给出本项目将采用的软件生命周期模型、过程规范等,从而对开发过程给予明确的指导。该部分可以视需要将其单列为一个专题文件。5.2 方法、工具和技术列出本项目中将运用的方法、工具和技术,并给出适当的工作指南和说明。5.3 产品验收计划列出本项目验收工作的一些细节计划,本部分内容可以视需要将其单列为一个专题计划。6其它支持过程管理6.1 配置管理计划在此列出该项目所采用的配置管理过程,通常是单列为一个专题。6.2 评估计划列出本项目评估时所使用的技术、标准
35、、指标和过程。这里的评估包括走查、检查和复审。6.3 文档计划6.4 质量保证计划6.5 分包商管理计划7.其他计划8.附录9.索引1.8 风险条目跟踪表模板编者说明:对于中型以上的项目,风险控制的意义就犹为突出。要控制风险,就应该找到风险,并将风险记录下来,确定相关责任人,对于风险性高的、可能性大的还需要制订相关的应对措施。而最好的方法就是整理成为本模板中的表格,为每个潜在风险备个案。序列号确定日期撤消日期描述可能性 注:可用0.1(极不可能)1.0(肯定发生)来表示影响 注:可用1(无甚么影响)10(有很深、很大的影响)来表示危害值降低风险计划负责人截止日期1.9 进度计划风险列表页:20
36、 注,来源于快速软件开发一书。编者说明: 准确来说,本列表不是一个文档模板,而是一个参考文章。由于风险识别许多人都觉得无从入手,下面就是列出了与进度相关的风险条目,对于风险识别有很大的参考价值。1.最常见的进度计划风险1) 功能无限蔓延;2) 需求镀金或开发人员镀金;3) 质量不定4) 计划过于乐观5) 设计欠佳6) 银弹综合症7) 研发导向开发8) 人员薄弱9) 签约商失败;10)研发人员与客户的磨擦。2.进度计划风险完整列表2.1 计划编制风险1) 计划、资源和产品定义全凭客户或上层领导口头指令,并且不完全一致;2) 计划是优化的,是“最佳状态”;3) 计划忽略了必要的任务;4) 计划基于
37、使用特定的小组成员,而那个小组成员其实指望不上。5) 在限定的时间内无法建成已定规模大小的产品;6) 产品规模比估计的要大一些;7) 工作量大于估算数;8) 进度已经拖延的项目在重新评估时过于优化或忽视项目历史;9) 过度的进度压力造成生产率下降;10)目标日期提前,但没有相应地调整产品范围或可用资源;11)一个任务的延迟导致相关任务的连锁反应;12)涉足不熟悉的产品领域,花费在设计和实现上的时间比预期的要多。2.2 组织和管理1) 项目缺乏一个有凝聚力的最高领导人;2) 由于前期乏力,项目长时间被搁置;3) 解雇和削减开支导致项目小组能力下降;4) 仅由管理层或市场人员进行技术决策,导致计划
38、进度延长;5) 低效的项目组结构降低生产率;6) 管理层审查/决策的周期比预期时间长;7) 预算削减打乱项目计划;8) 管理层做出了打击项目组织积极性的决定;9) 非技术的第三方的工作比预期延长(如审批,采购等);10)计划性太差,无法适应期望的开发速度;11)项目计划由于压力而放弃,导致开发混乱、低效;12)管理层强调英雄主义,而忽视客观确切的状态报告,这会降低发现和改正问题的能力。2.3 开发环境1) 设施没有及时到位;2) 设施到位,但不配套;3) 设施拥挤、杂乱或者破损;4) 开发工具未能及时到位;5) 开发工具不如期望那样有效,开发人员需要时间创建工作环境或切换新的工具;6) 开发工
39、具的选择不是基于技术需求,不能提供计划要求的性能;7) 新开发工具的学习期比预期的长,内容繁多。2.4 最终用户1) 最终用户坚持新的需求;2) 最终用户对于最后交付的产品不满意,要求重新设计和重做;3) 最终用户不买进项目产品,无法提供后续支持;4) 最终用户的意见未被采纳,造成产品最终无法满足用户期望,而必须重做。2.5 客户1) 客户坚持新的需求;2) 客户对规划、原型和规格的审核/决策周期比预期长;3) 客户没有或不能参与规划、原型和规格阶段的审核,导致需求不稳定和耗时的重复;4) 客户答复的时间比预期长(如回答需求中需澄清的问题);5) 客户坚持技术决策而导致进度计划延长;6) 客户
40、对开发进度管理过细,导致实际进展变慢;7) 客户提供的组件无法与开发的产品匹配,导致额外的设计和集成工作;8) 客户提供的组件质量欠佳,导致额外的测试、设计和集成工作,以及额外的客户关系管理工作;9) 客户要求的支持工具和环境不兼容、性能差或者功能不完善,导致生产率降低;10)客户不接受交付的软件,尽管它满足了所有的规格;11)客户期望的开发速度是开发人员无法达到的。2.6 承包商1) 承包商没有按承诺交付组件;2) 承包商递交的组件质量低下无法接收,必须花时间改进质量;3) 承包商没有买进项目开发需要的工具,进而无法提供需要的性能水平。2.7 需求1) 需求已经成为项目基准,但变化还在继续;
41、2) 需求定义欠佳,而进一步的定义会扩展项目范畴;3) 添加额外的需求;4) 产品定义含混的部分比预期需要更多的时间。2.8 产品1) 错误发生率高的模块需要比预期更多的测试、设计和实现工作;2) 校正质量低下不可接受的产品,需要比预期更多的测试、设计和实现工作。3) 在一个或多上新兴领域推广计算机技术使得计划进度的延长不可预期;4) 由于软件功能的错误,需要重新设计和实现;5) 开发额外不需要的功能(镀金)延长了计划进度;6) 要满足产品规格与速度要求,需比预期更多时间,包括重新设计和实现的时间;7) 严格要求与现有系统兼容,需要进行比预期更多的测试、设计和实现工作;8) 要求与其他系统、复
42、杂系统或不受本项目控制的系统相连,导致无法预料的设计、实现和测试工作。9) 要求在不同操作系统下运行将花费比预期更长的时间;10)在不熟悉或未经检验的软(硬)件环境中运行产生未预料的问题;11)开发一种对组织全新的模块将比预期花费更长的时间;12)依赖正在开发中的技术将延长计划进度。2.9 外部环境1) 产品依赖政府规章,而规章的改变将是不可预期的;2) 产品依赖草拟中的技术标准,而最后的标准将是不可预期的。2.10 人员1) 招聘人员所花时间比预期的长;2) 作为先决条件的任务不能按时完成(如培训、其它项目);3) 开发人员和管理层之间关系不佳导致决策缓慢,影响全局;4) 项目组成员没有全身
43、心投入项目,进而无法达到需要的产品性能水平;5) 缺乏激励措施,士气低下,降低了生产能力;6) 缺乏必要的规范,增加了工作失误与重复工作;7) 某些人需要更多时间适应不熟悉的软件工具和环境、硬件环境、编程语言;8) 项目结束前,合同制人员离开团队,或雇员辞职;9) 项目后期加入新的开发人员,额外的培训和沟通降低现有成员的效率;10)项目组成员不能有效地一起工作;11)由于项目组成员间的冲突,导致沟通不畅、设计欠佳、接口错误和额外的重复工作;12)有问题的成员没有调离项目组,损害了项目组其他成员的积极性;13)项目的最佳人选未加入项目组;14)项目的最佳人选已加入项目组,但因其他原因未能合理使用;15)没有找到项目急需的具有特定技能的人;16)关键人物只能兼职参与;17)项目人员不足;18)任务的分配与人员技能不匹配;19)人员工作的进展比预期的慢;20)项目管理人员怠工导致计划和进度失效;21)技术人员怠工导致工作遗漏或质量低下,工作需要重做。2.11 设计与实现