软件工程讲义_第24章 项目进度安排
软件项目进度计划

软件项目进度计划1. 引言在软件开发过程中,项目管理是一项非常重要的工作,而进度计划是其中的关键部分。
一个合理的进度计划能够有效地协调团队的工作,使项目保持良好的进展。
本文将介绍如何制定软件项目的进度计划,以及一些常见的进度计划模板。
2. 制定进度计划的步骤制定软件项目的进度计划包括以下步骤:2.1 确认项目目标和范围在制定进度计划之前,必须明确项目的目标和范围。
这包括项目的需求、功能和交付物等。
2.2 分解项目任务将项目任务分解为可管理的阶段或任务。
为了更好地掌握工作量,可以将每个任务分解为更小的组件,例如模块或功能点。
2.3 确定任务关系和依赖关系确定任务之间的关系和依赖关系,以确保所有任务在正确的时间开始和结束。
2.4 估算任务工期根据过去的经验或其他可用信息,为每个任务估算所需时间。
在进行时间估算时,必须考虑到风险和不确定性因素。
2.5 制定进度计划将任务和工期数据输入到项目管理工具中,制定详细的进度计划。
一旦进度计划制定完毕,就应该自上而下地审查和确认。
2.6 监控进度计划一旦制定好进度计划,就需要对其进行监控和控制,以确保项目按计划进行。
如果有任何问题或延迟,应该及时采取措施进行调整。
3. 常用的进度计划模板制定进度计划可以使用不同的模板,以下是两种常用的模板。
3.1 甘特图甘特图是一种可视化的工具,用于表示任务的时间安排。
它可以以条形或棒形图的形式显示计划和实际完成情况。
甘特图可以帮助团队成员理解项目的进展情况,以便及时调整计划。
3.2 PERT 图PERT 图是项目评审技术的一种形式。
它是一种图形化的工具,用于表示任务和其关系。
PERT 图可以帮助团队成员理解任务之间的依赖关系,可以清楚地显示项目的关键路径。
这对于决定项目的关键时间点以及调整计划具有重要意义。
4. 结论制定软件项目的进度计划是成功完成项目的必要条件之一。
本文介绍了制定进度计划的步骤和常用模板。
在实践过程中,应该根据项目需求和实际情况进行具体操作,以确保项目能够按计划进行。
软件项目进度计划

软件项目进度计划首先,制定软件项目进度计划需要明确项目的整体目标和里程碑。
在确定项目目标的基础上,需要将项目分解为具体的任务和子任务,并对这些任务进行排序和优先级划分。
在这一阶段,需要充分考虑项目的复杂性、团队成员的能力和资源的限制,以确保制定的进度计划是可行的。
其次,制定进度计划需要考虑到项目的风险因素。
在项目进行过程中,可能会出现各种不可预测的风险,如技术难题、人力资源不足、需求变更等。
因此,在制定进度计划时,需要对可能的风险进行充分的评估和应对方案的制定,以确保项目能够在面临挑战时仍能够按计划进行。
接下来,执行进度计划是软件项目成功的关键。
在项目执行过程中,需要对进度计划进行动态调整和跟踪,及时发现和解决项目执行中的问题和风险。
团队成员需要密切合作,及时沟通,确保任务的顺利完成。
同时,项目管理者需要对项目进度进行全面监控,及时调整资源分配和任务优先级,以确保项目的整体进度符合预期。
最后,软件项目进度计划的执行需要进行全面的总结和评估。
在项目完成后,需要对项目的整体执行情况进行详细的分析和总结,找出项目执行中存在的问题和不足,并提出改进方案。
这些总结和评估将为未来的项目提供宝贵的经验和教训,为团队的成长和发展提供有力支持。
综上所述,软件项目进度计划的制定和执行是软件开发项目成功的关键。
通过合理的进度计划,可以帮助团队成员明确任务目标、分工合作、提高工作效率,从而保证项目按时按质完成。
因此,制定软件项目进度计划需要充分考虑项目的整体目标和里程碑、风险因素、动态调整和跟踪,以及全面的总结和评估。
只有这样,才能确保软件项目的顺利进行和成功完成。
项目进度与任务分配

项目进度与任务分配在每个项目的执行过程中,项目进度的控制和任务的分配是至关重要的。
恰当的项目进度安排和任务分配可以帮助项目团队更好地实现项目目标,并确保项目按时高质量地完成。
本文将探讨项目进度管理的重要性以及如何进行任务分配。
一、项目进度管理的重要性项目进度管理是指通过合理的计划和控制手段,确保项目按照时间表和计划顺利进行的过程。
它的重要性主要体现在以下几个方面:1. 实现项目目标:项目进度管理可以确保项目按照既定的时间表逐步推进,从而更有利于实现项目的目标和交付成果。
及时掌握项目进度,可以及早采取相应的调整措施,避免项目偏离原计划。
2. 资源优化:通过合理的项目进度安排,可以更好地优化资源的利用和分配。
合理的时间表可以帮助项目团队更好地安排人力、物力和财力资源,提高资源利用效率。
3. 风险控制:项目进度管理也有助于风险的及时控制和处理。
及时发现项目进程中存在的问题和障碍,可以采取相应的风险应对措施,避免因延误项目进度而引发的风险。
二、任务分配的原则项目的任务分配是指将项目工作划分为不同的任务,并将其分配给相应的团队成员。
良好的任务分配可以提高团队的工作效率和协作能力。
以下是任务分配的一些重要原则:1. 充分了解团队成员的能力和特长:在任务分配之前,应对团队成员的能力和特长进行充分了解。
了解每个成员的擅长领域和工作经验,从而能够更好地分配任务,使每个人都能发挥自己的优势。
2. 合理平衡工作量:任务分配时应合理平衡每个成员的工作量。
过多或过少的工作量都可能影响工作效率和工作质量。
要根据每个人的能力和时间合理分配任务,确保每个成员都有适当的工作量。
3. 明确任务目标和要求:在任务分配时,应明确任务的目标和要求。
清楚地告诉每个成员他们需要完成的任务和预期的结果,有助于提高工作的准确性和效率。
4. 激发团队成员的积极性:任务分配应激发团队成员的积极性和主动性。
可以通过赋予一定的自主权和奖励机制来激励成员的积极参与和贡献。
软件工程专业导论:软件项目管理-进度计划

软件工程专业导论Introduction toSoftware Engineering Program●软件项目管理的概念与重要性●软件项目管理过程●软件度量与软件项目计划●范围计划●项目度量与进度计划●软件项目成本计划⏹项目度量与进度计划—基本概念进度:对项目任务/活动和里程碑制定的工作计划日期表。
进度管理:为了确保项目按期完成所需要的管理过程。
在给定的限制条件下,最短时间、最少成本、最小风险完成任务。
进度管理的重要性:按时完成项目是项目经理最大的挑战之一。
时间是项目规划中灵活性最小的因素。
进度问题是项目冲突的主要原因,尤其在项目的后期。
⏹项目度量与进度计划—软件项目进度(时间)管理过程活动定义(Activity definition)活动排序(Activity sequencing)活动资源估计(Activity resource estimating)活动历时估计(Activity duration estimating)制定进度计划(Schedule development)项目跟踪与进度控制(Schedule control)⏹项目度量与进度计划—项目活动排序项目各项活动之间存在依赖关系强制性依赖关系:工作任务中固有的依赖关系,例如需求分析→软件设计软逻辑关系:项目管理人员确定的项目活动之间的关系,例如生产计划模块先做,销售管理模块后做外部依赖关系:项目活动与非项目活动之间的依赖关系,例如环境测试依赖于外部提供的环境设备时序关系:结束-开始、结束-结束、开始-开始、开始-结束⏹项目度量与进度计划—项目活动排序:网络图❑AOA (activity-on-arrow ):双代号项目网络图❑箭线表示活动(工序\工作)❑节点Node(圆圈:circle)表示前一活动的结束,同时也表示后一活动的开始❑仅适合表示结束-开始依赖关系132468579需求获取需求确认计划评审详细设计集成测试系统测试编码总体设计项目规划⏹项目度量与进度计划—项目历时估计定额估算法:T=Q/(R*S)T:活动持续时间,可以用小时、日、周等表示;Q:活动的工作量,可以用人月、人天等单位表示;R:人力或设备的数量,可以用人或设备数表示;S:开发(生产)效率,以单位时间完成的工作量表示。
软件工程讲义-第24章 项目进度安排

对出现的项目进度偏差进行深入分析,找出 根本原因。
制定纠正措施
根据偏差原因,制定相应的纠正措施,如调 整资源分配、优化工作流程等。
监控纠正措施的实施
跟踪纠正措施的实施情况,确保措施有效并 及时调整。
Trello
Trello是一款简单易用的项目管理工具,采用看板式的管 理方式。用户可以在Trello上创建看板、卡片和任务,并 通过拖拽和标记等操作进行任务管理和进度跟踪。Trello 支持多人协作和实时同步,适用于小型项目和团队协作。
04
项目进度安排的优化策略
压缩项目工期
分析项目关键路径
识别项目中的关键任务,通过优化关键任务来压缩整 体工期。
项目进度安排与其他项目管理过程的关系
项目范围管理
01
项目进度安排需基于明确的项目范围,确保所有必要的工作都
被纳入计划。
项目时间管理
02
项目进度安排是项目时间管理的核心组成部分,涉及活动排序、
资源估算和进度计划制定等过程。
项目成本管理
03
项目进度安排直接影响项目成本,合理的进度计划有助于降低
资源浪费和成本超支的风险。
制定项目进度计划
制定进度计划
进度监控与控制
根据项目活动清单、资源分配和持续时 间估算,制定详细的项目进度计划,明 确每个活动的开始和结束时间。
通过定期跟踪项目进度计划的执行情 况,及时发现偏差并采取相应措施进 行调整和控制,确保项目按时完成。
进度计划优化
根据项目实际情况和进度计划执行过 程中的反馈信息,对进度计划进行调 整和优化,确保项目的顺利进行。
项目管理软件介绍
01 02 03
Microsoft Project
软件项目进度计划

软件项目进度计划一、引言软件项目进度计划是软件开发项目的重要组成部分,它可以帮助团队更有效地实现项目目标。
软件项目进度计划的编制需要着重考虑项目的特殊性、可行性和可控性,充分考虑开发项目的规模、进度、成本、人员、质量和风险等因素,帮助项目组织实现项目目标。
二、软件项目进度计划的编制1、确定软件项目的目标:在编制软件项目进度计划之前,首先要确定项目的目标,包括软件的功能、性能、成本、质量等,以及客户的期望和需求,其中需要参考相关的标准和文件,以便编制合理的软件项目进度计划。
2、确定软件开发的过程:软件项目进度计划需要按照软件开发的过程来编制,通常包括软件需求分析、软件设计、软件开发、软件测试、软件安装、软件维护等步骤。
3、编制软件项目进度计划:编制软件项目进度计划是根据软件开发的过程,结合项目的特殊性、可行性和可控性,分解项目的规模、进度、成本、人员、质量和风险等因素,编制出每一步的时间要求以及下一步的活动,实现项目的目标。
4、审核软件项目进度计划:审核软件项目进度计划旨在确保计划是可行的、可控的,以确保项目按计划进行,并降低项目进度的不确定性,防止出现风险。
三、软件项目进度计划的实施1、按照软件项目进度计划,分配任务和资源:根据软件项目进度计划,分配任务和资源,组织人员进行软件开发,以实现项目的目标。
2、定期检查项目进度,确保项目按计划进行:定期检查项目进度,确保项目按计划进行,防止出现延误或风险,如发现问题,及时调整计划,以保证项目顺利完成。
3、及时调整计划:由于软件项目的进度计划是根据软件开发项目的特殊性、可行性和可控性来编制的,因此,随着项目的进行,可能需要及时调整计划,以确保项目按计划进行。
四、结论软件项目进度计划是软件开发项目的重要组成部分,它可以帮助团队更有效地实现项目目标。
软件项目进度计划的编制需要着重考虑项目的特殊性、可行性和可控性,充分考虑开发项目的规模、进度、成本、人员、质量和风险等因素,帮助项目组织实现项目目标。
软件项目技术建议书里的进度安排计划表

软件项目技术建议书里的进度安排计划表一、前言在软件项目的开发过程中,进度安排计划表是至关重要的。
它不仅是项目进展的指南,也是团队成员协作的基础。
制定一份高质量的进度安排计划表对于项目的成功非常重要。
二、深入了解进度安排计划表1.什么是进度安排计划表?进度安排计划表是软件项目管理中的一种主要工具,它用于规划、追踪和管理项目的各个阶段和活动。
通过进度安排计划表,项目团队能够清晰地了解项目的时间安排、任务分配和关键节点,以确保项目能够按时交付。
2.进度安排计划表的重要性进度安排计划表对于软件项目的成功至关重要。
它可以帮助项目团队合理安排工作计划,提前发现和解决潜在的风险和问题,确保项目按照既定计划顺利进行。
进度安排计划表也有助于提高团队的工作效率和协作能力,提升项目交付质量。
3.如何制定高质量的进度安排计划表制定高质量的进度安排计划表需要考虑多方面的因素。
需要充分了解项目的整体目标和需求,明确各个阶段的任务和交付物。
需要调研和分析相关的技术和资源,以确定合理的时间节点和工作量分配。
需要与项目团队和利益相关者充分沟通,确保进度安排计划表的合理性和可行性。
三、进度安排计划表的具体编制1.确定项目阶段和关键节点在编制进度安排计划表之前,需要明确项目的各个阶段和关键节点,例如项目启动、需求分析、设计、开发、测试和实施等阶段。
这些阶段和节点将成为进度安排计划表的基本框架,有助于项目团队全面了解整个项目的规划和安排。
2.分析任务和工作量针对每个阶段和节点,需要进一步分析具体的任务和工作量,确定各个阶段的关键任务和交付物,并合理评估所需的工作量和时间。
这一步需要充分了解项目的实际情况,考虑到各种可能的风险和问题,以确保进度安排计划表的合理性和可行性。
3.确定任务和资源分配根据任务和工作量的分析,需要进一步确定具体的任务和资源分配,包括人力、物力、时间和预算等方面。
这一步需要充分考虑到团队成员的能力和专业性,合理分配工作任务,确保团队的整体协作效率。
软件项目实施进度安排计划

软件项目实施进度安排计划1. 简介本文档旨在制定软件项目实施的进度安排计划,确保项目按时完成。
通过明确项目中的关键活动和里程碑,我们可以监控项目的进展并及时采取行动。
2. 项目目标本软件项目的总体目标是成功交付高质量的软件产品。
为了实现这一目标,我们将遵循以下进度安排计划。
3. 进度安排计划3.1 关键活动下面是软件项目实施过程中的关键活动。
每个活动都有特定的开始日期和结束日期。
3.2 里程碑为了监控项目的进展,我们将设立以下里程碑。
每个里程碑都有特定的日期。
- 里程碑1:需求分析完成 - 2022-01-10- 里程碑2:系统设计完成 - 2022-01-20- 里程碑3:编码完成 - 2022-02-10- 里程碑4:软件测试完成 - 2022-02-20- 里程碑5:整体集成完成 - 2022-03-10- 里程碑6:用户验收测试完成 - 2022-03-20- 里程碑7:发布完成 - 2022-03-304. 项目控制在项目实施过程中,我们将定期监控项目进展,并采取必要的措施来解决任何延迟或风险。
每个里程碑的完成将作为项目进度的重要指标。
5. 风险管理在项目实施过程中,我们将密切关注可能发生的风险,并制定风险应对方案。
我们将与项目团队密切合作,及时解决任何出现的风险并确保项目按计划进行。
6. 总结本文档概述了软件项目实施的进度安排计划。
通过明确关键活动和里程碑,以及监控项目进展和管理风险,我们将确保项目按时完成,并成功交付高质量的软件产品。
以上是软件项目实施进度安排计划,如有任何变更或调整,我们将及时通知相关人员并更新该计划。
*注意:本文档中的日期和时间仅供参考,可能会根据实际情况进行调整。
*。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为软件项目定义任务集
无论一个软件团队选择的是线性顺序模型、 增量模型、演化模型,或它们的某种变型, 过程模型都是由任务集组成的,这些任务 集使得软件团队能够定义、开发和最终维 护计算机软件。
为软件项目定义任务集
没有能普遍适用于所有软件项目的任务集。 适用于大型复杂系统的任务集可能对于小 型相对简单的软件项目而言就过于复杂。 因此一个有效的软件过程应该定义一组任 务集来满足不同类型项目的要求。
上一小节中所描述的主要任务可以用来制 定项目的宏观进度表。但是,必须将宏观 进度表进行细化,以创建一个详细的项目 进度表。细化工作始于将每个主要任务分 解为一组子任务。
定义任务网络
单个任务和子任务之间存在顺序上的相互 依赖关系。而且,当有多人参与软件工程 项目时,多个开发活动和任务并行进行的 可能性很大。在这种情况下,必须协调多 个并发任务,以保证它们能够在后继任务 需要其工作产品之前完成。
现代软件工程
第24章 项目进度安排
主要内容
基本概念 项目进度安排 为软件项目定义任务集 定义任务网络 进度安排 获得值分析 小结
项目进度安排
应该创建一个软件工程任务网络,该网络 将使你能够按时完成工作。网络创建完成 之后,必须为每一个任务确定责任,还要 确保完成这些责任,并在风险到来时调整 该网络。简单地说,这就是软件项目进度 安排和跟踪。 在项目级,是那些使用从软件工程师处获 得的信息的软件项目管理者们。在个体级, 是软件工程师自己。
项目进度安排
软件过程模型规定的软件工程任务要根据具体 实现的功能进行细化;工作量和工期应分配到每 个任务;任务网络的创建,使得软件团队能够在 最后期限之前完成项目。 工作产品是项目进度安排和相关的信息。 正确的进度安排需要: (1)网络中包含所有的任 务;(2)给每个任务合理分配工作量和时间;(3) 明确指出任务间的依赖关系;(4)资源应分配给 具体要完成的工作;(5)提供短时间间隔的里程 碑,以便于过程跟踪。
工作量的估算。 产品功能的分解。 适当过程模型和任务集的选择。 任务的分解。
任务之间的依赖关系可以通过任务网络来确定。
时序图
在创建软件项目进度表时,计划者将从一组任 务入手。如果使用自动工具,就可以采用任务网 络或者任务大纲的形式输入工作分解结构,然后 再为每一项任务输入工作量、工期和开始日期。 此外,还可以将某些任务分配给特定的人员。 输入信息之后,就可以产生时序图,也叫甘特 图。可以为整个项目建立一个时序图,或者,也 可以为各个项目功能或各个项目参与者分别建立 各自的时序图。图18-3给出了时序图的格式。
项目进度安排
软件项目进度安排是一种活动,它通过将 工作量分配给特定的软件工程任务,从而 将所估算的工作量分配到计划的项目工期 内。进度是随时间而不断演化的。在项目 计划早期,是建立一个宏观进度表,该进 度表标识出所有主要的过程框架活动和这 些活动所影响的产品功能。随着项目的进 展,宏观进度表中的每个条目都会被细化 成详细的进度表,这样就标识了特定的软 件任务,同时也进行了进度安排。
工作量分配
因为在软件设计时投入了相当的工作量, 随后的编码工作就变得相对简单。总体工 作量的15%-20%就可以完成这一工作。 测试和随之而来的调试工作将占用30%40%的软件开发工作量。软件的重要性 决定了所需测试工作的分量,如果软件系 统是人命相关的,就应该考虑分配更高的 测试工作量比例。
任务集举例
概念开发项目是在探索某些新技术是否可 行时发起的。这种技术是否可行尚不可知, 但是某个客户相信其具有潜在的利益。概 念开发项目的完成需要应用以下主要任务:
确定概念范围。 初步的概念策划。 技术风险评估。 概念证明。 概念实现。 客户对概念的反应。
主要任务的求精
任务集举例
每种项目类型都可以通过线性顺序、迭代 或者演化等过程模型来实现。在某些情况 下,项目类型可以从一种形式平滑地转换 为另一种形式。例如,成功的概念开发项 目通常会演化成为新应用开发项目,而新 应用开发项目结束之后,可能又开始了一 个应用增强项目。这个进程是自然的和可 预测的,不论组织是采用何种过程模型都 将会发生。下面将介绍概念开发项目的主 要软件工程任务。
基本原则
划分。必须将项目划分成多个可以管理的 活动、动作和任务。为了实现项目的划分, 产品和过程都需要进行分解。 相互依赖性。划分后的各个活动、动作或 任务之间的相互依赖关系必须是明确的。 有些任务必须按顺序再现,而有些任务则 可以并发进行。有些活动或动作只有在其 他活动产生的工作产品完成后才能够开始, 而有些则可以独立进行。
为软件项目定义任务集
即使在单一的项目类型中,也会有许多因 素影响任务集的选择。[PRE99]中描述了 很多因素:项目的规模、潜在的用户数量、 任务的关键性、应用程序的寿命、需求的 稳定性、客户/开发者进行沟通的容易程 度、可应用技术的成熟度、性能约束、嵌 入式和非嵌入式特性、项目人员配置、再 工程因素等。
软件项目的进度安排与任何其他多任务工程工 作的进度安排几乎没有差别。因此,通用的项目 进度安排工具和技术不必做太多修改就可以应用 于软件项目。 程序评估及评审技术和关键路径方法就是两种 可以用于软件开发的项目进度安排方法。这两种 技术都是由早期项目计划活动中已经产生的信息 来驱动的,这些信息包括:
基本原则
确定责任。安排了进度计划的每个任务都应该 指定特定的团队成员来负责。 明确结果。安排了进度计划的每个任务都应该 有一个明确的输出结果。对于软件项目而言,输 出结果通常是一个工作产品或某个工作产品的一 部分。通常可将多个工作产品组合成“可交付产 品”。 确定里程碑。每个任务或任务组都应该与一个 项目里程碑相关联。当一个或多个工作产品经过 质量评审并且得到认可时,标志着一个里程碑的 完成。
项目进度安排
技术性项目的现实情况是,在实现一个大 目标之前必须完成数以百计的小任务。这 些任务中有些是处于主流之外的,其进度 不会影响到整个项目的完成时间。而有些 任务则是位于“关键路径”之上的,如果 这些“关键”任务的进度拖后,则整个项 目的完成日期就会受到威胁。
项目进度安排
项目管理者的职责是定义所有的项目 任务,建立相应的网络来描述它们之 间的依赖关系,明确网络中的关键任 务,然后跟踪关键任务的进展,以确 保能够在“某天某时”发现进度延迟 情况。为了做到这一点,管理者必须 建立相当详细的进度表,使得项目管 理者能够监督进度,并控制整个项目。
基本原则
时间分配。每个安排了进度计划的任务必 须分配一定数量的工作单位。此外,还必 须为每个任务指定开始日期和完成日期, 任务的开始时期和完成日期取决于任务之 间的相互依赖性以及工作方式是全职还是 兼职。 工作量确认。每个项目都有预定数量的人 员参与。在进行时间分配时,项目管理者 必须确保在任意时段中分配的人员数量不 会超过项目团队中的总人员数量。
为软件项目定义任务集
在进行项目进度安排时,必须将任务集分 布在项目时序图上。任务集应该根据软件 团队所决定的项目类型和严格程度而有所 不同。尽管很难建立一个全面详尽的软件 项目分类方法,但大多数软件组织遇到的 项目一般属于下述类型。
为软件项目定义任务集
1、概念开发项目。 2、新应用开发项目。 3、应用增强项目。 4、应用维护项目。 5、再工程项目。
定义任务网络
任务网络,也称为活动网络,是一个项目 任务流程的图形表示。有时将任务网络作 为在自动项目进度安排工具中输入任务序 列和依赖关系的机制。最简单的任务网络 形式只描述了主要的软件工程任务。图 18-2显示了概念开发项目的任务网络示意 图。
定义任务网络
图18-2 概念开发项目的任务网络
进度安排
人员与工作量之间的关系
对于小型软件开发项目,只需一个人就可以完 成需求分析、设计、编码和测试。随着项目规模 的增长,必然会有更多的人员参与。 许多负责软件开发工作的管理者仍然普遍坚信 这样一个神话:“即使进度拖后,我们也总是可 以增加更多的程序员,并在后期跟随上进度。” 不幸的是,在项目后期增加人手通常会对项目产 生破坏性的影响,其结果是使进度进一步拖延。 后期增加的人员必须学习这一系统,而培训他们 的人员正是一直在工作着的那些人,当他们进行 教学时,就不能完成任何工作,从而使项目进一 步拖延。
项目进度安排
为了建造复杂的系统,很多软件工程任务 会并行地进行,而且在一个任务中得到的 工作结果可能对在另一个任务中将要进行 的工作具有深远的影响。没有进度安排, 任务之间的这种相互依赖性是非常难以理 解的。实际上,没有一个详细的进度安排, 要评估中等程度或大型的软件项目的进展 情况也是不可能的。
人中所投入的工 作量与交付时间的关系。项目工作量和交付 时间的函数关系曲线如图18-1所示。图中的 t0表示项目交付所需的最少时间,而t0左边 的曲线是非线性上升的。
人员与工作量之间的关系
图18-1 工作量和交付时间的关系
工作量分配
在第17章中讨论的各种软件项目估算技术最终都 归结为对完成软件开发所需工作单位的估算。软件 过程中的工作量分配通常采用40-20-40法则。总 体工作量的40%分配给前期的分析和设计,40% 用于后期测试。 这种工作量分配方法只能作为指导原则。各个项目 的特点决定了其工作量如何分配。用于项目计划的 工作量很少超过2%-3%,除非提交给组织的项目 计划费用极高而且具有高风险。需求分析大约占用 10%-25%的工作量,用于分析或原型开发的工 作量应该与项目规模和复杂度成正比地增长。通常 有20%-25%的工作量用于软件设计,用于设计 评审和随之而来的迭代开发也必须考虑。
基本概念
虽然软件延期交付的原因很多,但是大多数都 可以追溯到下面列出的一个或多个根本原因上: