所在位置 : 首页 > 游戏问答 > 详情

中标软件的最佳方法-如何制定中标软件计划? 如何制定和编写软件项目计划

文章来源:网络整理作者:飞飞侠发布时间:2023-05-09 12:05:01

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

软件项目管理过程中的一项关键活动是制定项目计划,这是软件开发工作的第一步。 项目计划的目标是为项目负责人提供一个框架,使他能够合理估计软件项目开发所需的资源、资金和开发进度,并根据这个计划控制软件项目的开发过程。 在规划时,需要预估所需的人力、工程工期和成本。 这些估计大部份是参考过往开支作出的。 软件项目规划包括两项任务:研究和估算。 即通过研究确定软件项目的主要功能、性能和系统接口。

一、软件项目计划内容

软件项目计划如下:

1 范围。 对软件项目的全面描述,定义要完成的工作和性能约束,包括:

(一)项目目标。

(二)主要职能。

(3) 性能限制。

(4)系统界面。

(五)特殊要求。

(六)发展概况。

2. 资源。

(一)人才资源。

(2) 硬件资源。

(3) 软件资源。

(四)其他。

3、行程安排。

进度的好坏往往会影响到整个项目的按期完成,所以这个环节非常重要。 软件进度表与其他项目区别不大,其方法主要包括:

(1) 项目网络图。

(2) 甘特图。

(3)任务资源表。

(4)成本估算。

(五)训练计划。

2. 制定软件工程规范

对于软件工程管理来说,软件工程规范的制定和实施是必不可少的,它与软件项目计划同样重要。 软件工程规范可以从各种现成的规范中选取,也可以自己制定。 目前,软件工程规范可以分为三个层次:

(一)国家标准和国际标准。

(二)行业标准和行业部门标准。

(三)企业级标准和制定团体级标准。

3.软件开发成本估算

为了使开发项目在规定的时间内、在预算内完成,成本预算和管理控制是关键。

1.成本估算方法

(1) 自上而下的估计方法。

估算人员参照以前完成的项目的总成本,计算出待开发软件的总成本,然后按阶段、按步骤、按工作单元进行分配。 这种方法称为自上而下的估计方法。

它的优点是强调系统级的工作,所以在估算中不会遗漏集成、用户手册、配置管理等系统级事务的成本估算,估算工作量小,速度快。 它的缺点是往往不清楚底层的技术难点,而这些难点往往会抬高成本。

(2)自下而上的估计方法。

自下而上的估算方法是将要开发的软件进行细分,分别估算每个子任务所需的开发工作量,然后相加得到软件的总开发量。 这种方法的好处是每个部分的估算都留给了负责那部分工作的人,所以估算更准确。 缺点是估算往往缺乏与软件开发相关的系统工作级别的工作量,因此估算值往往较低。

(3)差异估计法。

差异估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与一个类似项目的若干差异,并估算每一个差异对成本的影响,从而推导出开发项目的总成本。 这种方法的优点是可以提高估计的准确性,缺点是不容易界定“差异”的边界。

除了以上三者之外,还有:

(1) 专家估计法。

(2)类比估计法。

(3)算法估计法。

2.成本估算模型

(1) 估计模型。

机构成本模型(Cost Mode)是最准确、最易用的成本估算方法之一。

模型分为:基本模型,为静态单变量模型,对整个软件系统进行估计; 中间模型,它是一个静态的多变量模型; 详细模型,将软件系统模型分为系统、子系统和模块三部分。 层。

①基本模型估计公式:

E=ab(KLOC)exp(bb)

D=cb(E)exp(db)

式中,E为开发所需人力(人/月)。 D 是所需的开发时间(月)。 KLOC 是估计的已提交代码行数。 ab、bb、cb、db指的是不同软件开发方式的数值。

②中间模型。

估算公式为:E=ai(KLOC)exp(bi)×乘法因子中标软件的最佳方法-如何制定中标软件计划?,ai,bi

(2)成本估算经验模型。

估算模型是一个动态的、可变的模型,它假设在软件开发的整个生命周期中的工作量分布。 如下所示:

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

式中,Ck为与技术条件有关的常数,其典型值如下:

对于恶劣的开发环境 Ck=2500

为了良好的开发环境 Ck=10000

对于某些开发环境 Ck=12500

所需开发工作量的计算公式可由上式得到:

四、风险分析

风险分析对于软件项目管理至关重要,但仍然有许多名称在未考虑风险的情况下进行。

5.软件项目进度表

软件项目的进度安排与任何项目的进度安排没有本质区别。 首先确定一组项目任务,建立任务之间的相互关系,然后估计每个任务的工作量,分配人力和其他资源,并指定进度。

1、软件开发任务的并行性

如果多人参与一个软件项目,那么多个开发者的活动就会并行进行。

2.甘特图

甘特图常用水平线段来描述任务分解为子任务,每个子任务的进度按顺序排列。 该图的表示方法简单易懂,一目了然,动态反映了软件开发的进度。 如下表所示:

工艺规划时间表

3.项目网络图

工程网络图是一个有向图,其中用圆圈表示**,有向弧或箭头表示子任务的进展,箭头上的数字称为权值,表示这个子任务的持续时间,下面的括号箭头中的数字代表任务的机动时间,图中的圆圈代表某个子任务开始或结束**的时间点。 如下所示:

6.软件质量保证

软件质量保证是软件工程管理的重要组成部分。 软件质量保证应做好以下工作:

(一)采用技术手段和工具。

(2) 组织正式的技术评审。

(三)加强软件测试。

(4) 贯彻软件工程规范(标准)。

(5) 控制软件变更。

(6) 衡量软件质量。

七、如何制定软件项目计划

项目计划详细说明了所需的软件工作及其完成方式。 它定义了每项主要任务,估算其时间和资源,并为管理层的评估和控制提供框架。 项目规划还提供了一种非常有效的学习方式。 如果记录得当,它可以作为实际操作性能的基准。 这种比较使规划人员能够看到他们估计中的错误,从而提高他们估计的准确性。

我们非常重视项目规模和资源的估算,因为低质量的项目资源估算将不可避免地导致资源短缺、进度延误和预算超支。 而且由于项目资源估算直接来自软件规模,因此规模不佳是许多软件项目问题的根本原因。

项目计划应在项目开始时制定,并随着项目的进展而细化。 最初,由于软件需求通常是模糊和不完整的,我们的重点应该放在确定项目需要哪些知识领域以及如何获取这些知识。 如果不遵循这条准则,程序员通常会积极地处理已知部分,而将未知部分留到以后再做。 这种工作方式常常会产生很多问题,因为未知的风险因素最高。 软件项目计划的逻辑如下:

由于软件需求在初始阶段是模糊和不完整的,质量策划只能基于对客户需求的粗略和不准确的了解。 因此,项目规划应从找出模糊性与精确合适的软件需求之间的映射关系开始。

然后创建概念设计。 项目初始结构的建立要非常慎重,因为它通常标示了产品模块的分界线,同时描述了这些模块实现的功能以及各模块之间的关系。 这为项目规划和项目实施提供了组织框架,因此低质量的概念设计是不够的。

在后续的每次需求细化中,资源映射、项目规模预估和项目进度表也应同时细化。

8. 制定软件项目计划的方法和策略

制定软件项目计划的目的是建立和维护软件项目各项活动的计划。 软件项目计划实际上是用来协调软件项目中所有其他计划并指导项目团队执行和监控项目的文件。 一个好的软件项目计划可以为项目的成功实施打下坚实的基础。

软件项目有其特殊性,不确定因素多,工作量估算困难。 项目初期难以制定科学合理的项目计划。 主持和参与了十余个大大小小的软件项目,将我制定软件项目计划的心得分享给大家。

1、注意项目计划的层次性

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

超前策划,也就是项目的前期策划。 高层计划应该是粗粒度的,主要是划分项目的阶段,确定主要的里程碑,以及所需的相关资源,包括人力资源、设备资源、财务资源,也就是所谓的人力三要素、财务、物质。

在主要阶段交替前,要制定下一阶段的详细计划,我们称之为二级计划。 详细的计划应该确定每项任务的负责人、开始时间、结束时间、任务之间的依赖关系、设备资源和小**点(即里程碑)。

如果项目规模比较大,可以多层次规划。 比如,一个项目组可能会分成几个开发组,二级计划就是每个开发组制定的适合自己团队的计划。 如果开发团队也分小组,那么小组可以有一个三级规划。

开发者个人计划是一个底层计划,由开发者根据自己的任务制定,任务要细化到人天。

一般来说,软件项目计划最多有四个层级,层级过多会造成效率瓶颈。 一个大项目不一定需要大量的组织和人员来支撑。 合理划分小组,减少组织层次,有利于项目计划的制定和实施。 对于较小的软件项目,由于建设周期短,人员较少,采用两级计划(高层计划和低层计划)也是可行的。

2.重视与客户的沟通

与客户的沟通非常重要。 不用怕客户知道我们的发展计划,尤其是项目的进展,我们应该把这些信息分享给客户。

首先,客户会对项目时间、进度、效果提出一些要求。 这个指标往往经不起推敲,有的政策性很强。 例如:在我主持的某单位人事MIS系统的开发中,发现客户的时间限制是文档化的,开会是他们单位领导的决定。 客户给出的从立项到验收的时间只有三个月。 但是经过仔细的需求调研和粗略的规划项目进度和一些二次规划,我们发现三个月是很难做到的。 . 我们展示了我们制定的研究文件和项目计划,并与客户进行了讨论,最终将项目开发时间延长至六个月。 从科学分析和解决问题的角度出发,项目组和客户的目的是一致的,客户会理解并支持合理的项目进度。

其次,我们有义务让客户知道项目计划。 只有这样,客户和用户才能积极主动地参与到项目中,以实现项目的最终目标。 项目计划由双方签字同意是一个好习惯。 客户不一定愿意在正式的文件上签字,所以在文件封面上签上双方负责人的姓名和联系方式也是可以的。 尽管它是非正式的,但它留下了项目工作的痕迹。 有必要想办法让客户清楚签名的含义。 这意味着双方有了约定,不仅让用户安心,也让他们的项目团队有了责任感,起到了监督和推动的作用。

3.细节要详,简要简

软件项目计划就像软件项目本身一样,有其特殊性。 一个三五个人两三个月就能完成的小项目,可能有四五页的项目计划书,包括WBS(工作分解结构)和图表。 (甘特图)。 一个需要五十、六十人甚至上百人,耗时半年甚至更长时间的大型软件项目,项目策划的内容会更多。 我们必须根据项目的具体情况对其进行调整。

如下表1所示,这是我主持的某高校教务处信息系统项目的风险管理方案。 这个项目比较小,我们只用了两个月的时间就完成了开发并通过了验收。 为此,我们在项目规划中广泛使用了这种形式,以制定人员计划、培训计划、风险计划、成本估算、文件大小估算和进度计划。 一目了然,责任到人,其作用和好处显而易见。 的。

项目的工作安排一定要对人负责,需要细化。 如果是多人完成的任务,还应该指定一个主要负责人,否则开发人员操作不便,甚至相互推卸责任。

4、制定的项目计划要切合实际

大多数软件项目的项目经理和系统分析师都是从程序员的成长过程中成长起来的,我也是。 在成为项目经理之前,我编写了五年的 VB、Java 和数据库 SQL 代码。 项目经理和系统分析师制定的项目计划最终必须由项目组成员实现。

仅靠“亲身经历”制定项目计划是不够的,也不可能包罗万象。 不要指望“个人经历”。 解决方案有两个方面。

一是充分鼓励并积极接纳项目利益相关方(包括客户、公司高层领导、项目组成员)参与项目计划的制定。

可邀请客户和公司高层领导共同讨论高层计划的制定。 客户会很乐意参与,因为追求项目成功是大家的共同目标。 公司高层领导的支持是项目团队的坚强后盾。 项目组需要获得必要的资源,及时获得特殊项目的批准,需要在领导事务中得到适当的指导和帮助。 有些事情有时需要公司的高层领导。 只能通过加盟来解决,比如按期支付合同款。

第二级和第三级项目计划的制定需要与项目团队成员进行互动。 当规划由一个人完成,由另一个人执行时,如果项目没有按时完成,会让他们怀疑项目计划的可行性,也会影响开发商的士气。 与项目组内部人员的沟通也很重要。 软件程序员通常表现得内向和冷漠。 作为项目经理,要学会在工作中调节气氛,在轻松的氛围中整合开发人员的意见。

允许开发人员就其职责范围内的事项提出建议,然后讨论并达成一致的时间和资源。 这样,开发人员会更加主观地参与到他们的工作中。 客观上,很难用时间和工作量来衡量一个开发者的能力。 熟练的 Java 程序员的开发速度可能比初学者 Java 程序员快四到五倍。 否则。 我更喜欢开个座谈会,提前写好初稿,把看到的表达出来,最后得出结论。

二是充分利用一些史料。 历史数据是宝贵的资产和可重用的资源。 我不仅要注意积累这些数据,还要学会提取能为我所用的数据。 例如,项目计划的模板、计划的资源数据等。

5.用面向过程的思维来指导开发

是CMM2级别的KPA。 软件过程的思想可以用来指导计划的编制和实施。

CMM2共有6个KPA,分别是:需求管理、软件项目计划、项目跟踪与监控、软件分包管理、软件质量保证、软件配置管理。 如果一个软件组织实现了CMM2各个过程方面的所有目标,则表明该组织的软件能力已经达到成熟度等级的第2级。

这也可以用于项目。 项目计划通常需要随着项目的进展进行修订,以适应需求和承诺的变化、不准确的估计、纠正措施和过程变化。 计划和重新计划中涉及的活动包含在这个过程方面。

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

2000(或更高版本)是公认的项目管理工具软件,功能强大,操作方便。 它自带一个名为“软件开发”的模板,可以用来生成一个总体框架,然后在细节上进行修改,也可以制作一个符合你公司软件项目操作流程的模板。

在2000的操作面板中,可以安排任务,可以设置开始时间、结束时间、前置任务、资源名称等参数。 它可以自动生成甘特图和珀特图,找出项目中的关键路径。

七、结论

软件项目计划分为高层计划、二级计划、三层计划和低层计划。 在制定软件项目计划时,要注意及时与客户沟通。 详细而简短。 如果计划切合实际,可以用CMM2的思想来指导计划的制定,是一款非常值得推荐的项目计划软件工具。 愿我们做出更多优质软件计划,打造优质软件。

[参考]

[1](美)Kathy ,王金玉、陈晨译,《IT项目管理》中标软件的最佳方法-如何制定中标软件计划?,机械工业出版社,2002年1月第一版。

[2]韩万江、姜立新,《软件开发项目管理》,机械工业出版社,2004年1月第1版。

[3] 杨益平,《软件能力成熟度模型CMM方法及应用》,人民邮电出版社,2001年4月第1版。(作者简介:邓子云,长沙环境保护学院计算机系,高级项目经理湖南领科源信科技有限公司,硕士研究生,高级程序员,工程师,主要研究方向为“软件项目管理、企业信息化”,联系地址:湖南省长沙市井湾子长沙环保学院计算机系,联系方式号码 -,邮政编码,电子邮件是)

九、软件项目策划指南

软件项目计划的目的是为实施软件工程和管理软件项目制定合理的计划。 软件项目规划侧重于估算要执行的工作、建立必要的承诺以及定义工作进度。

包括以下几点:

1. 记录用于计划和跟踪软件项目的工作。

2. 对软件项目的实施采取书面承诺。

3.有关机构或个人认可其对软件项目的承诺。

4、指定软件项目负责人负责落实软件项目承诺,制定项目的软件开发计划。

5. 确保软件项目存在一份记录在案且被接受的工作说明书。

6.软件开发计划应明确人员的角色和职责。

7. 规划软件项目所需的适当资源和资金。

8. 对软件项目负责人、软件工程师等软件项目策划相关人员进行与其职责范围相适应的培训。

9、组建相关软件项目组和相关程序论证组。

10、软件项目组和相关程序论证组参与整个项目生命周期的所有项目策划工作。

11. 按照书面流程与企业高层管理人员或外部组织审查软件项目的承诺。

12. 软件生命周期清楚地划分为可管理大小的预定义阶段。

13. 按照书面流程制定项目的软件开发计划。

14. 记录软件项目计划。

15. 确定软件项目需要建立和维护控制的软件产品。

16. 按照记录的过程获得软件产品大小的估计(或软件产品大小的变化)。

17. 遵循文件化的过程来获得软件项目工作量和成本的估算。

. 遵循记录的流程来估算项目所需的关键计算机资源。

19.根据书面流程获取项目的软件开发进度。

20. 识别、评估和记录与项目的成本、资源、进度和技术方面相关的软件风险。

21. 编制项目软件工程机制及配套工具方案。

22. 记录软件规划数据。

23. 开发和使用度量来确定软件程序活动的状态。

24. 与高级管理层定期审查软件项目规划活动。

25. 以**驱动的方式定期审查软件项目管理的软件项目规划活动。

26. 与软件质量保证人员一起审查和审查软件项目计划活动和工作产品,并将结果记录在案。

10. 软件项目计划模板

项目发展计划

1 概述

1.1 写作目的

本文档是(开发单位名称)根据项目的初步需求,综合分析项目的各种需求后制定的软件开发计划,可用于支持项目组内部的研发工作和信息技术部门。

1.2 项目背景

系统名称:[列出系统名称]

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

产品代码:【列表系统产品代码】

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

开发者:[列表开发者]

开发日期:【开始时间----预计收盘完成时间】

版权信息:[XX]

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 人员任务分配

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

" type="text/javascript">