`
yangzb
  • 浏览: 3500537 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

软件项目计划

    博客分类:
  • PM
阅读更多

软件项目计划Software Project Planning )是一个软件 项目进入系统实施的启动阶段,主要进行的工作包括:确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。

软件项目管理 过程中一个关键的活动是制定项目计划,它是软件开发 工作的第一步。 项目计划的目标是为项目负责人提供一个框架 , 使之能合理地估算软件项目开发所需的资源 、经费和开发进度,并控制软件项目开发过程按此计划进行。 在做计划时,必须就需要的人力、项目持续时间及成本作出估算。这种估算大多是参考 以前的花费作出的。软件项目计划包括二个任务:研究和估算。即通过研究确定该软件 项目的主要功能、性能和系统界面。

<script> var secCount=11; </script>

 

软件工程管理 来说,软件工程规范的制定和实施是不可少的,它与软件项目计划一样重要 。软件工程规范可选用现成的各种规范,也可自己制定。目前软件工程规范可分为三级:
(1)国家标准与国际标准。
(2)行业标准与工业部门标准。
(3)企业级标准与开发小组级标准。

 

为了使开发项目能在规定的时间内完成,而且不超过预算,成本预算和管理控制是关键。
1.成本估算方法
(1)自顶向下估算方法。
估算人员参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段、步骤和工作单元进行 分配,这种方法称为自顶向下估算方法。
它的优点是对系统级工作的重视,所以估算中不会遗漏系统级的诸如集成、用户手册和
配置管理 的事务的成本估算,且估算工作量小、 速度快。它的缺点是往往不清楚低级别上的技术性困难问题,而往往这些困难将会使成本上升。
(2)自底向上估算方法。
自 底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来 ,得到软件的总开发量。这种方法的优点是对每个部分的估算工作交给负责该部分工作的人来做,所以估算 较为准确。其缺点是其估算往往缺少与软件开发有关的系统工作级工作量,所以估算往往偏低。
(3)差别估算方法。
差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找到与某个相类似项目的若干 不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。该方法的优点是可以提高估算的准确度, 缺点是不容易明确“差别”的界限。
除上三种还有:
(1)专家估算法。
(2)类推估算法。
(3)算式估算法。
2.成本估算模型
(1)COCOMO估算模型。
机构性成本模型COCOMO(Constructive Cost Mode)是最精确、最易于使用的成本估算方法之一。
该模型分为:基本COCOMO模型,是一个静态单变量模型,它是对整个软件系统 进行估算;中级COCOMO模型,是一个静态多变量模型;详细COCOMO模型,将软件系统模型分为系统、子系统 和模块三个层次。
①基本COCOMO模型估算公式:
E=ab(KLOC)exp(bb)
D=cb(E)exp(db )
式中E为开发所需的人力(人/月)。D为所需的开发时间(月)。KLOC为估计提交的代码行。
ab、bb、cb和db是指不同软件开发方式的值。
②中级COCOMO模型。
其估算公式为:E=ai (KLOC)exp(bi )×乘法因子,ai,bi
(2)Putnam成本估算经验模型。
Putnam估算模型是一种动态多变模型,它是假设在软件开发的整个生存期中工作量的分布。如下图:

软件项目计划

根据曲线导出关于提交的代码行数L,人力K(人/年)和时间td(年)之间估算公式:

式中Ck是技术状况有关的常数,它的典型值如下:
对于差的开发环境 Ck=2500
对于好的开发环境 Ck=10000
对于有的开发环境 Ck=12500
由上述公式可以得到所需开发工作量的公式:

 

风险分析对于软件项目管理 是决定性的,然而现在还是有很多姓名不考虑风险就着手进行。

 

软件项目计划

项目计划详细说明了所需软件工作及如何实现。它定义了每一个主要任务,并估算其所需时间和资源,同时为 管理层的评估和控制提供了一个框架。项目计划也提供了一种很有效的学习途径。如果能合理建档,它便是一个与实际运行效能比较的基准。这种比较可以使计划者 看到他们的估算误差,从而提高其估算精确度。

我们着重强调对项目规模和资源的估算,是因为低质量的项目资源估算将不可避免地造成资源短缺,进度延迟和预算超支。又由于项目资源估算是从软件规模估算中直接衍生出来的,所以低质量的规模估算是造成许多软件项目问题的根本原因。

项目计划应在项目开始初期制定出,并随着工程的进展不断地加以精化。起初,由于软件需求 通常是模糊而又不完整的,我们的工作重点应在于明确该项目需要哪些领域的知识,并且如何获取这些知识。如果不遵循这一指导原则,程序 员们通常会积极地投入到那部分已知的工作中去,而把未知部分留滞到以后。这种工作方式通常会产生很多问题,因为未知部分具有最高的风险系数。软件项目计划的逻辑如下所述 :

由于软件需求 在初始阶段是模糊而又不完整的,质量计划只能建立在对客户需求的大致而不确切的理解之上。因此,项目计划应该从找出含糊不确切与准确恰当的软件需求间的映射关系入手。

接着建立一种概念设计。项目初始架构 的建立要十分谨慎,因为它通常标定了产品模块的分割线,同时描述了这些模块所实现的功能及所有模块间的关系。这就为项目计划和项目实施提供了组织框架,因此一个低质量的概念设计是不能满足要求的。

在每一次后续的需求精化时,也应同时精化资源映射,项目规模估算和工程进度。

 

 

制订软件项目计划的目的在于建立并维护软件项目各项活动的计划,软件项目计划其实就是一个用来协调软件项目中其它所有计划,指导项目组对项目进行执行和监控的文件 。一个好的软件项目计划可为项目的成功实施打下坚实的基础。

软件项目有其特殊性,不确定因素多,工作量估计困难,项目初期难于制定一个科学、合理的项目计划。我曾主持和参与过大大小小的软件项目十余项,下面我将把我制订软件项目计划的经验分享给大家。

1.注重项目计划的层次性

软件项目计划的层次及其关系如下图所示。

软件项目计划

高级计划,是项目的早期计划。高级计划应当是粗粒度的,主要是进行项目的阶段划分,确定重大的里程碑,所需相关的资源,包括人力资源、设备资源、资金资源,即所谓的人、财、物三个要素。

大的阶段交替之前,应做好下一阶段的详细计划,我们称之为二级计划。详细计划要确定各项任务的负责人,开始时间,结束时间,任务之间的依赖关系,设备资源,小的事件点(即里程碑)。

如果项目规模相对较大,可以有多级的计划,比如说,一个项目组可能分为几个开发组,二级计划是各开发组制订的适合的自己小组的计划。如果开发组还分了小组,可以有小组的三级计划。

开发人员的个人计划是低级计划,由开发人员根据自己的任务自行制定,要把任务细化到人·日。

一般的,软件项目计划至多有四级就够了,过多的等级将会引发效率的瓶颈。大的项目不见得要有庞大的组织和人员数量来支撑,合理的划分小组,减少组织的层次,有利于项目计划的制订和实施。较小的软件项目由于工期不长,人员较少,有二级计划(高级计划与低级计划)也是可行的。

2.重视与客户的沟通

与客户的沟通是很重要的。不必害怕客户知道我们的开发计划,特别是项目进度情况,应当和客户共享这些信息。

首先,客户会提出一些对项目时间、进度、效果上的要求,这个指标往往经不起推敲,有的还带有较强的政策 性。如:在我主持的一个某单位人nnerlink>MIS系统的开发中就发现,客户方对时间上的约束是有成形的文件的,是他们单位领导们开会的决 定。客户给出的从项目启动到验收的时间只有三个月,但是,经过我们认真的需求调研,做出项目进度的粗计划和部分的二级计划后,发现三个月的时间是难于实现 的。我们把做出的调研文档和项目计划摆出来和和客户讨论,最终使项目的开发时间延长为六个月。站在为了科学地分析和解决问题的立场上来看,项目组和客户的 目的是一致的,所以对于合理的项目进度客户是会理解与支持的。

其次,我们有义务要让客户知道项目的计划。这样才能让客户和用户主动、积极参与项目,达到项目的最终目 标。项目计划取得双方签字认可是一种好的习惯。客户可能不愿意签正式的文件,那么在文档的封面上签上双方负责人的姓名、联系方式也行,虽然是非正式的,但 留下了项目工作的痕迹。有必要想办法让客户清楚签字意味着什么。这就意味说双方有了一个约定,既让用户感觉心里踏实,也让自己的项目组有了责任感,有一种 督促和促进的作用。

3.该详细的详细,该简略的就简略

软件项目计划就如同软件项目本身一样有它特殊性,一个三五个人花两三个月就可以完工的小项目,可能项目 计划就四五页纸,包括一个WBS(工作分解结构)和一个Gantee图(甘特图)。一个需要五六十个人甚至上百人,要花上半年或更长时间的大型软件项目则 会有更多的项目计划内容。我们得按照项目的的特定情况量体裁衣。

如下表表1所示,这是我主持的一个某高校教务办公信息系统 项目的风险管理 计划表。项目较小,我们只用了两个月的时间就开发完工,通过验收。正因如此,我们在项目计划中大量的采用了这种表格来制订人员计划、培训计划、风险计划、成本估计、文档大小估计、进度计划,一目了然,责任到人,其效果和效益是很明显的。

软件项目计划

项目的工作安排一定要责任到人,这点是要详细的。如果是多个人共同完成的任务也要指定一位主要负责人,否则开发人员会操作不便,甚至互相推卸责任。

4.制订的项目计划要现实

软件项目中的项目经理和系统分析员大都是从程序员成长起来的,我亦是如此,担任项目经理之前我写了五年的VB、Java和数据库 SQL 代码。项目经理和系统分析员做出来的项目计划最终要能够被项目组成员所实现。

制订项目计划仅靠“个人经验”是不够的,不可能面面俱到,不要期希望于“个人经验”。解决的办法有两个方面。

一是充分鼓励、积极接纳项目干系人(包括客户、公司高层领导、项目组成员)来参与项目计划的制定。

可以邀请客户和公司高层领导来共同讨论高级计划的制订。客户会乐意参与的,因为追求项目的成功是大家的 共同目标。公司高层领导的支持是项目组的坚强后盾,项目组需要获取必要的资源,需要及时获取对项目特殊要的审批,需要在领导事务上得到适当的指导和帮助, 有些事项有时是需要公司高层领导加入才能解决的,如合同款项的按期支付。

制订二级、三级项目计划要与项目组成员互动。当规划由一个人做出而由另一个人实施时,如果项目没有按时完成,会使得他们怀疑项目计划的可行性,也会影响开发人员的士气。与项目组内部人员的沟通亦很重要。软件程序 员平时通常表现得内向、清高,作为项目经理应当学会调节工作中的气氛,在轻松的氛围中去融合开发人员的意见。

可以让开发人员对自己职责范围内的事提出建议的时间和资源,再作讨论约定。这样开发人员在主观上会更加 投入工作。客观上,开发人员的能力很难用时间及工作量来衡量,一名熟练的Java程序员比一名初学Java的程序员开发效率可能快上四五倍,因而安排的时 间周期、任务量当然要不一样。我比较倾向于召开一次专题讨论会,事先写出一个初稿,再各抒已见,最后作出结论。

二是要充分利用一些历史数据。历史数据是宝贵的财富,是可复用的资源。不仅要注意积累这些数据,也要学会从中提炼出可以为我所用的数据。如,项目计划的模板,计划的资源数据 等。

5.运用过程化的思想指导开发

软件项目计划是CMM 2级的一个KPA 。可用软件过程 化的思想指导计划的编制与实施。

CMM2共有6个KPA,它们是:需求管理 、软件项目计划、项目跟踪和监控、软件转包合同管理、软件质量保证、软件配置管理 。一个软件组织如果达到了CMM2的各个过程方面的全部目标,就表明这个组织的软件能力达到了第2级成熟度等级。

这也可以是针对一个项目而言。通常需要根据项目的进展情况对项目计划进行修改,以便应付需求和承诺的变更、不够准确的估计、纠正措施和过程更改等。在策划和重新策划中涉及的活动,都包含在这个过程方面里。

6.利用成熟的项目管理工具

Microsoft Project 2000(或更高的版本)是一款公认的功能强大、操作方便的项目管理工具软件。它自带了一个叫做“软件开发”的模板,可以用它来生成大体的框架,再作细节方面的改动,也可以自己制作一个符合自己公司软件项目运作流程的模板。

Microsoft Project 2000的操作面版中可以安排任务,并设置开始时间、结束时间、前置任务、资源名称等参数,它能自动生成Gantt图、Pert图,找出项目中的关键路径。

7.结束语

软件项目计划分为高级计划、二次计划、三级计划和低级计划,制订软件项目计划应注意及时与客户沟通,该详细的详细,该简略的就简略,制出来的计划要是现实的,可以运用CMM2的思想指导计划的制订,Microsoft Project是倍受推荐的项目计划软件工具 。愿我们多做出高质量的软件计划,从而打造软件精品。

 

软件项目计划编制的目的是制定一个合理的实施软件工程及管理软件项目的计划。软件项目计划编制着重于对要实施的工作进行估计,建立必要的承诺并定义工作计划。

包括以下要点:

1. 将用于编制软件项目计划及跟踪软件项目的工作文档化。
2. 对于软件项目的实施采用文档化的承诺。
3. 相关的机构或个人认可他们对软件项目的承诺。
4. 指定软件项目负责人负责落实软件项目的承诺并制定项目的软件开发计划。
5. 确保软件项目存在一份文档化的、并被认可的工作陈述。
6. 软件开发计划要指定人员角色分工,明确责任。
7. 对软件项目所需要的适当的资源及资金作出计划。
8. 对软件项目负责人、软件工程师及其它与软件项目计划编制有关人员进行适合其职责范围的培训。
9. 成立相关软件项目组及相关的方案论证小组。
10. 软件项目组及相关的方案论证小组在整个项目生命期内参加全部的项目计划编制工作。
11. 按照书面流程与高级管理人员或企业外部机构软件项目的承诺进行
复审
12. 明确划分为预先定义的、规模可管理的阶段的软件生命周期
13. 按照书面流程开发项目的软件开发计划。
14. 将软件项目计划文档化。
15. 确定软件项目需要建立及维护控制的软件产品。
16. 按照书面流程获得对软件产品规模的估计(或软件产品规模的改变)。
17. 按照书面流程获得对软件项目工作量及费用的估计。
18. 按照书面流程获得对项目所需要的关键计算机资源的估计。
19. 按照书面流程获得项目的软件开发进度。
20. 识别、评估与费用、资源、进度及项目的技术方面相关的软件风险,并文档化。
21. 准备项目的软件工程机制及支撑工具的计划。
22. 记录软件计划编制数据。
23. 制定并使用度量方法以确定软件计划活动的状态。
24. 定期与高级管理人员对软件项目计划活动进行复审。
25. 以定期及事件驱动方式与软件项目管理人员对软件项目计划活动进行复审。
26. 与软件质量保证人员对软件项目计划活动及工作产品进行回顾及审核,并将结果文档化。

_________项目开发计划

1. 概述

1.1 编写目的
本文档是__________(开发单位名称)根据__________ 项目 的初步需求,并对_______ 项目 的各项需求进行全面分析之后,做出的软件开发计划,可供支持项目组内部及信息技术部内部的研发工作。

1.2 项目背景
系统名称: 【 列出系统名称 】

英文名称: 【 列出系统英文名称 】

产品代号: 【 列出系统产品代号 】

委托单位: 【 列出委托单位 】

开发单位: 【 列出开发单位 】

开发日期: 【 开始时间 ---- 预计收尾完工时间 】

版权信息: 【Version X.X】

1.3 定义
【 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。 】

1.4 参考资料
【 逐条列出所参考的文档名称与作者。 】

2. 项目过程定义

2 .1软件开发生命周期模型
【 列出采用的软件开发生命周期模型,并说明采用的理由。 】

2 .2 开发工具与平台
【 列出采用的开发工具、
操作系统 及平台软件。 】

3 .计划

3.3 资源计划
【 逐项列出项目开发过程中所需的各种资源。 】

3.4 关键计算机资源估计
【 逐条列出所需各种计算机资源的类型 、配置及数量等内容。 】

4. 项目管理

4.1 人员与角色
【 逐项列出项目组的角色分配及已可供调配的人员。 】

 4.2 人员计划
【 逐条列出本项目所需各种角色人员的起始与结束时间,人数,技能方面的要求等内容。 】

4.3 风险管理计划
【 逐条列出各项风险的影响因素、发生概率、严重性、负责人、预期日期、预防及补救方案等内容。 】

4.4 培训计划
【 逐条列出主题(技能、领域、工具、方法)、人数、计划日期、提供者等内容。 】

4.5 成本估计
【 逐条列出成本的类型及金额,并计算估计的总本。 】

5. 进度跟踪

5.1 项目会议
【 列出项目会议组织的办法。 】

5.2 项目里程碑
【 列出项目里程碑,即 项目进度的关键点 。 】

 5.3 进度表
【 给出项目进度表。 】

5.4 人员任务分配
【 给出人员任务分配表,包括了任务内容、开始时间、完成时间、工时估计等内容。 】

附: 
【 给出用 MS Project 制作的项目计划 MPP】

 

1.(美)凯西.施瓦贝乐著,王金玉时郴译,《IT项目管理》,机械工业出版社,2002年1月第1版。
2.韩万江姜立新著,《软件开发项目管理》,机械工业出版社,2004年1月第1版。
3.杨一平等著,《软件能力成熟度模型CMM方法及应用》,人民邮电出版社,2001年4月第1版。

评论
1 楼 langyjcm 2011-08-22  
ab、bb、cb和db是指不同软件开发方式的值

相关推荐

    软件项目计划书

    "软件项目计划书" 软件项目计划书是软件开发过程中的重要文档之一,根据《GB8567-88 计算机软件产品开发文件编制指南》中项目开发计划的要求,结合实际情况调整后编制的计划书。该计划书涵盖了项目的概况、项目...

    IT项目管理 软件项目计划文档

    《IT项目管理:软件项目计划文档详解》 在IT行业中,有效的项目管理是软件开发成功的关键因素之一。软件项目计划文档作为ISO软件开发体系的重要组成部分,不仅指导项目的执行,也是评估项目进度和质量的重要依据。...

    ERP软件项目计划进度表Excel模板.xlsx

    ERP软件项目计划进度表Excel模板.xlsx

    软件项目计划实例 软件项目计划实例打包下载

    软件项目计划实例可以帮助我们了解并学习如何有效地规划、管理和执行一个软件开发项目。以下是对这个压缩包文件中可能包含的知识点的详细解析: 1. **项目范围定义**:一个好的项目计划首先要明确项目的范围,包括...

    软件项目计划 软件项目计划 软件项目计划

    软件项目计划是软件工程中的关键环节,它不仅指导着项目的执行方向,还为项目的成功提供了必要的保障。在软件开发过程中,一个周密的项目计划能够帮助团队明确目标、分配资源、控制进度、评估风险以及确保质量,从而...

    IT软件项目管理 软件项目计划书 软件质量保证计划 软件测试管理

    IT 项目管理软件项目计划书软件质量保证计划软件测试管理 IT 项目管理是整个软件项目的核心部分,它涉及到项目的计划、监控、执行和结束等各个方面。在本资源中,我们将从软件项目计划书、软件质量保证计划、软件...

    软件文档编写向导包括:《软件项目计划》、《项目进度报告》、《项目开发总结报告》

    包括:《软件项目计划》、《项目进度报告》、《项目开发总结报告》 软件开发文档。包括:《需求规格说明》、《概要设计说明》、《详细设计说明》。 软件测试文档。包括:《测试计划》、《软件测试分析报告》。 产品...

    软件项目计划管理.ppt

    软件项目计划管理 软件项目计划管理是软件工程管理中的一项重要活动,对软件项目的成功至关重要。软件项目计划管理是对软件项目的开发管理,是对整个软件生存期的所有活动进行管理。任何工程的成败,都与管理的好坏...

    软件工程\软件项目计划书

    在软件开发过程中,一个详尽的软件工程及软件项目计划书是至关重要的,它为整个项目的执行提供了清晰的蓝图和指导。以下将详细介绍计划书中涉及的关键知识点。 1. 引言: 这部分通常包括计划的目的,解释为何需要此...

    软件项目计划466684584.ppt

    《软件项目计划》 软件项目计划是软件开发过程中的关键环节,它定义了项目的范围、时间表、资源分配以及风险管理等关键要素。本课程旨在帮助参与者理解和掌握软件项目计划的制作及其重要性。 课程目标主要包含以下...

    软件项目计划的内容目标和具体步骤

    ### 软件项目计划的内容目标和具体步骤 #### 一、软件项目计划的内容 软件项目计划是一项系统性的工作,其内容涵盖了多个方面,旨在确保软件项目的顺利进行。具体包括: 1. **工作产品的大小及资源估测**:首先...

    软件项目计划.pdf

    "软件项目计划.pdf" 软件项目计划是软件开发和项目管理的重要组成部分。软件项目计划是一个详细的文档,用于描述软件项目的各个方面,包括项目的范围、目标、客户和最终用户、开发方、制约等方面。软件项目计划的...

    软件开发 软件项目计划

    在软件开发过程中,软件项目计划是一个至关重要的环节,它为整个项目的执行提供了指导和框架。本章主要讨论了软件项目计划中的关键要素,包括对估算的观察、项目计划目标、软件范围、资源估算以及不同的估算方法。 ...

    教务管理系统软件项目计划任务书.doc

    教务管理系统软件项目计划任务书 本文档是北方民族大学软件工程班的课程设计报告,旨在为教务管理系统软件项目提供计划任务书。该项目的主要目的是设计和开发一个基于区块链技术的教务管理系统,以提高教育教学的...

    软件项目计划书编写说明

    【软件项目计划书编写说明】 在IT软件项目管理中,编写一份详尽的软件项目计划书至关重要,因为它为项目的成功提供了清晰的蓝图和指导。项目计划书不仅定义了项目的范围、目标、工作流程,还涵盖了资源分配、风险...

Global site tag (gtag.js) - Google Analytics