软件开发项目规范
软件项目开发和管理规范软件项目开发和管理规范 本文阐述软件项目开发和管理的流程规范,作为软件项目开发的高级指引,本规范定义了 软件开发的各个阶段以及每个阶段的工作活动和工件,但不对活动和工件的细节作过多规定。在 项目开发过程中,每个项目根据自身的需要确定这些活动和工件的细节。 项目阶段项目阶段 图 2-1 项目开发的五个阶段 启动阶段启动阶段 这个阶段的工作目的是决定一个项目是否需要启动。为了达到这个目的,首先要明确项目 的总体战略目标,对项目的需要建立认同。即确定到底需要做什么、开发什么产品或提供什么服 务, 以及需要解决什么样的问题和需要满足客户或市场的什么要求等,同时还要总结项目工作的 范围、所需资源、大约开支、各种风险,以及该项目不执行的其他替代选择等。这些代表了对整 个项目目标从战略角度和宏观层次所进行的分析,通过项目的意向书总结出来,由此确证客户或 项目发起人和赞助者的要求与期望,并帮助他们判定项目是否上马。项目意向总结书的通过及项 目被批准上马形成了这个项目的起始点。 计划阶段计划阶段 这个阶段的工作是为整个项目做计划。项目开始后,首先要确定项目的具体范围,明确定 出项目到底要做什么,总结、归纳并定出产品的功能。 然后进一步制定项目的计划,列出每项具 体工作,并建立所有工作任务的重要性及顺序;确定每项工作的执行人和所需资源;根据人员的 配置和能力设定各项工作和整个项目的完成时间表。 执行阶段执行阶段 这个阶段的工作是通过执行项目的计划来完成项目的任务。它包括落实一切所需资源,如: 人员、设备、费用、技术、信息,由管理者领导全体项目参与者开展各项工作。同时跟踪各项具 体工作和整个项目的进度,定期向全体项目人员及项目的发起人报告项目状态。 控制阶段控制阶段 这个阶段的工作是确证项目工作的结果符合项目的计划。 它通过对项目结果的衡量和审核, 与项目计划所期望的结果进行比较,找出实际结果与计划的差别,并制定处理措施。这个阶段的 工作还包括对项目进程中出现的任何更改要求进行审核和批准。 同时调解项目进程中出现的各种 问题,如:对缺乏的资源的补偿调节;对项目的进度表及各项具体工作的优先级或顺序的修订。 结束阶段结束阶段 这个阶段的工作是确保项目的最终结果或提交物达到计划的要求,并对完成的结果作可接 受的确认。还包括在项目完成之后的收尾工作,对整个项目的经历进行总结, 修订项目文档,用 户培训等。 阶段完成标志阶段完成标志 在项目开发过程中,当一个阶段完成后才会开展下一个阶段的工作;另外,“某个阶段完 成”通常被定义为项目的一个里程碑,里程碑标识了项目的进度,它是项目开发和控制的重要参 考,对整个项目有重要的意义。因此,“确证某个阶段是否已经完成”的工作非常有重要。 每一个阶段的结束以它特定任务的完成为象征每一个阶段的结束以它特定任务的完成为象征 只有当某个阶段中被规定的所有工作任务都完成了,这个阶段才算真正结束,整个项目才 可以进入到下一个阶段中去。反过来说,要是阶段中某个任务没有全部完成,按照项目的定义, 整个阶段就不能算是完成,因此项目就不能进入到下一个阶段去。 衡量阶段结束的工作结果必须是实在的交付品衡量阶段结束的工作结果必须是实在的交付品 阶段中的任务是否完成是透过任务活动中产生的交付品来体现的, 交付品必须是可交付的、 非抽象的、实质的并且可以通过用衡量的方法来判断是否真正地完成了的具体事物。如:某一阶 段的完成是以建造一个样品或完成某分文件作为象征。任何项目阶段的结束,都应该有这样的实 质性东西的完成作为象征。 跨阶段的进程以阶段结尾的合格验证和审核来决定跨阶段的进程以阶段结尾的合格验证和审核来决定 当一个阶段结束时,在进入到下一个阶段之前所需要做的工作应包括对交付品进行合格验 证,并检查这一阶段的工作质量和效率,由此判断是否可以进入到下一个阶段。这些检验象征了 一个阶段的结尾终点,表示项目的进程离开了上一个阶段而进入了下一个阶段。 启动阶段启动阶段 图 3-1 启动阶段的任务和工件 产品领域研究产品领域研究 研究产品所在领域的状况,为项目论证提供依据。研究内容包括: o o 产品领域的现状和前景 产品领域的商业模式和业务流程 o o 产品的价值和盈利空间 产品的特性和复杂度 技术可行性研究技术可行性研究 研究产品的实现技术,总结技术可行性。研究内容包括: o o o o o 类似产品的当前实现技术和技术趋势 实现技术的候选方案 各个方案的优点、成本和风险 开发团队与实现技术的匹配情况 项目论证项目论证 基于商业和技术等方面对项目的可行性进行论证,确定项目是否开展。如果开展项目,则 进一步论证项目的总体方案。 论证的内容包括: o o o o o o 商业可行性 技术可行性 当前产品与类似产品的比较 项目收益和前景 项目的成本和风险 项目的总体方案 确定项目目标和范围确定项目目标和范围 项目开始时,所有相关人员必须对项目的目标和范围达成共识,形成共同的项目愿景。并 把愿景叙述为《项目开发大纲》向相关人员传达。 《项目开发大纲》的内容包括: 用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责 能能用一个段落来综述产品,再用一个段落来描述每个重要的功能 用一个段落来明确每个重要的涉众群体和他们的风险股本 求求 险险 报报 用一个段落来讲述每个重要的项目需求 按风险暴露量对每个重要的项目风险都用一个段落来讨论 用一个段落综述产品的回报,其后再对每个重要的项目回报都用一个段落来讨 的功能的功能用一个段落来描述每个对产品有用的但本项目不实现的功能 结结 论论 用一到三个段落将上述所有部分联系起来,明确项目的需求和风险,再用论点和论 据来总结为什么这个项目会成功 表 3-1 项目开发大纲 计划阶段计划阶段 图 4-1 计划阶段的任务和工件 规模、工作量评估规模、工作量评估 围绕各项计划的制定工作对项目的规模、工作量等进行评估,评估的内容包括: o o o o o o o o 模块数量与复杂度 输入、输出和对外接口等数量与复杂度 SLOC 和功能点 非生产性的支持工作量 开发工作量(人月) 进度与里程碑 进度风险 定制项目开发计划定制项目开发计划 项目开发计划体现了项目组对整个开发周期的预期,指定了项目开发的总体方针。与其他 计划一样,项目开发计划不是固定不变的,在执行过程中要对计划进行监控,可能会根据实际情 况修改计划并重新发布。 《项目开发计划》的内容包括: 用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责。 (《项目开发计划》的概述部分应该是《项目开发大纲》中概述部分的拷贝。当项目 时,修订《项目开发计划》的概述部分而不是修订《项目开发大纲》。这样,以后在进行 价时,通过比较《项目开发大纲》和《项目开发计划》的概述,就能看出项目是如何改变的 能能 员员 程程 用一到五页的篇幅来概述产品的功能,其中,要包括这些功能的附加信息( 者需要这样的信息来了解实现需求)。 确定软件工程职能角色,以及分配到这些角色的人员数量。 概述这个项目中所应用的软件过程。 (具体内容可在《质量保证计划》中定义) 概述这个项目中所应用的软件工程方法和技术。 软件工程方法软件工程方