330 likes | 527 Views
软 件 工 程. 第 7 章 项目进度安排及跟踪. 第 7 章 项目进度安排及跟踪. 7.1 基本概念 7.2 人员与工作量之间的关系 7.3 为软件项目定义任务集合 7.4 选择软件工程任务 7.5 主要任务的求精 7.6 定义任务网络 7.7 进度安排. 7.1 基本概念. 软件延期交付的原因: 一个不现实的截止期限,由软件工程组以外的人所设立并强加给软件工程组内的管理者和项目开发者。 客户需求发生变化,而需求的变化没有能够反映在项目进度的变化上。 对工作量和 / 或完成该工作所需的资源数量估计不足。. 7.1 基本概念.
E N D
软 件 工 程 第7章 项目进度安排及跟踪
第7章 项目进度安排及跟踪 7.1 基本概念 7.2 人员与工作量之间的关系 7.3 为软件项目定义任务集合 7.4 选择软件工程任务 7.5 主要任务的求精 7.6 定义任务网络 7.7 进度安排
7.1 基本概念 软件延期交付的原因: • 一个不现实的截止期限,由软件工程组以外的人所设立并强加给软件工程组内的管理者和项目开发者。 • 客户需求发生变化,而需求的变化没有能够反映在项目进度的变化上。 • 对工作量和/或完成该工作所需的资源数量估计不足。
7.1 基本概念 软件延期交付的原因: • 在项目开始时,没有将可以预测的和/或不可预测的风险考虑在内。 • 事先无法预计的技术困难。 • 事先无法预计的人力困难。
7.1 基本概念 软件延期交付的原因: • 由于项目组成员之间的交流不畅而导致的延期。 • 项目管理者未能发现进度拖后,也未能采取行动解决这一问题。
7.1.2 基本原则 软件项目安排是一种活动,它通过将工作量分配给特定 的软件工程任务,而将所估算的工作量分布于计划好的 项目持续时间内。以下是指导软件项目进度安排的原则: • 划分 • 相互依赖性 • 时间分配 • 工作量确认 • 定义责任 • 定义结果 • 定义里程碑
7.2 人员与工作量之间的关系 参加软件项目的工作人员数量与整 体生产率之间的关系不是线性的
7.2.2 一个经验关系 交付的代码(源代码语句)行数L与工作量和开发时间之间的关系: ?L=P ×(E/B)1/3t4/3 E是以人月为单位的开发工作量 P是一个生产率参数 B是特殊技术因子,生产软件规模的函数 t是以月为单位的项目持续时间
将上述方程式重排,可以得到关于开发工作量E的计算公式:将上述方程式重排,可以得到关于开发工作量E的计算公式: E= L3/(P3t4) (7.1) E是在软件开发和维护的整个生命周期内所需的工作量(以人年计算) t是以年计算的开发时间 通过引入平均劳动力价格因素($/人年),开发工作量的计算公式还能够与开发成本相关联。
7.2.3 工作量分布 一种在定义和开发阶段之间的工作量分配规则:“40-20-40规则”: 40%工作量分配给前端的分析和设计任务 20%工作量编码工作 40%工作量用于后端测试
7.3 为软件项目定义任务集合 项目一般属于下述类型: • 概念开发项目 • 新应用开发项目 • 应用增强项目 • 应用维护项目 • 再工程项目
7.3.1 严格度 • 随意的:使用了所有过程框架活动,但只需要一个 最小的任务集合. • 结构化的:过程框架将在项目中使用。 • 严格的:整个过程将按照一种能够确保高质量的严 格规程要求应用于项目之中。 • 快速反应的:该项目将使用过程框架,但由于某 种紧急情况的出现,只应用了为保 持软件系统质量所必须完成的任务。
7.3.2 定义适应性准则 适应准则用于确定一个项目中使用软件过程的严格度。 共有11条适应准则: • 项目的规模。 • 潜在的用户数量。 • 任务的关键性。 • 应用程序的寿命。 • 需求的稳定性。
7.3.2 定义适应性准则 • 客户与开发者之间通信的容易程度。 • 应用技术的成熟度。 • 性能约束。 • 嵌入式/非嵌入式特性。 • 项目人员配置。 • 再工程因素。 每一条适应准则被赋予一定的等级分,取值在1到5之间。
7.3.3 计算任务集合选择因子的值 为项目选择适当的任务集合的步骤: 1.复审每个适应性准则,赋予适当的等级分并输入到表7-1中; 2.复审赋予每个适应性准则的加权因子; 3.等级分数×加权因子×条目点乘数,结果分别放入表7-1的“乘积”栏中; 4.计算“乘积”栏中所有条目的平均值,并将结果放入标记着“任务集合选择因子(TSS)”的空格中。
7.3.4 解释TSS值并选择任务集合 一旦计算好任务集合选择因子,就可以使用下述的指南帮助你选择一个适用于项目的任务集合: 任务集合选择因子取值严格度 TSS<1.2随意的 1.0<TSS<3.0结构化的 TSS>2.4严格的
7.3.4 解释TSS值并选择任务集合 两个推荐任务集合之间的TSS取值的重叠是 有意设定的,这用于说明在进行任务集合的 选择时,定义出精确的边界是不可能的。在 进行最后的分析时,应该将任务集合选择因 子的取值、以往的经验以及常识都作为项目 任务集合的选择因素。
表7-2显示了在一个假想的项目中如何计算TSS的情况。表7-2显示了在一个假想的项目中如何计算TSS的情况。 “乘积”= 等级分数×加权因子×条目点乘数 TSS的取值(“乘积”一栏中所有条目的平均值)是2.8
7.4 选择软件工程任务 概念开发项目是在必须探索某些新技术是否可行时 发起的。其完成需要应用以下所述主要任务: • 确定概念范围 • 初步的概念计划 • 技术风险评估 • 概念证明 • 概念实现 • 客户对概念的反应
7.5 主要任务的求精 • 必须将宏观进度表精化来创建一个详细的项目进度表 • 精化工作始于将每个主要任务分解为一组子任务(以及相关的工作产品和里程碑)
7.6 定义任务网络 “任务网络”是一个项目的任务流程的图形表示。该网络有时被用作在自动项目进度安排工具中输入任务序列和依赖关系的机制。任务网络的最简单形式(当创建宏观进度表时使用)刻画了软件工程主要任务。
7.7 进度安排 程序评估和评审技术(PERT)和关键路径方法(CPM)是 可用于软件开发的项目进度安排方法。它们都是由 较早的项目计划活动中已经产生的信息来驱动的, 这些信息包括: • 工作量的估算。 • 产品功能的分解。 • 适当的过程模型的选择。 • 项目类型和任务集合的选择
7.7.1 时间表 “时间表(Timeline Chart)”,也叫做“甘特图(Gantt Chart)”。可以为整个项目建立一个时间表,也可以为各个项目功能或各个项目参与者分别开发各自的时间表。
7.7.2 跟踪进度 项目进度表中应定义在项目进展过程中必须被跟踪 和控制的任务及里程碑。项目跟踪可以通过以下方 式得以实现: • 定期举行项目状态会议,由项目组中的各个成员分别报告进度和问题。 • 评估所有在软件工程过程中所进行的复审的结果。 • 确定正式的项目里程碑(表7-3中的菱形)是否在预定日期内完成。
比较项目表(表7-4)中列出的各项任务的实际开始日期与计划开始日期。比较项目表(表7-4)中列出的各项任务的实际开始日期与计划开始日期。 • 与开发者进行非正式会谈,获取他们对项目进展及可能出现的问题的客观评估。
7.8 获得值分析(EVA) 获得值分析用于进展的定量分析的技术,它指明了 进度安排的困难 ,提供了定量的进展指示。确定获 得值的步骤: • 对每个表示在进度表中的工作任务确定预定工作的预算成本(BCWS) • 所有工作任务的BCWS值加起来,以导出完成时预算BAC,BAC=Σ(BCWSk),对所有任务k • 计算完成的预算成本(BCWP),BCMP的值是在项目进度表中该时间点已经实际完成的所有工作任务的BCWP值之和。
根据BCWS,BAC和BCWP值,计算以下进展指标: 进度表执行指标(SPI)=BCWP/BCWS 进度表偏差(SV)=BCWP-BCWS 预定完成百分比=BCWS/BAC 完成百分比=BCWP/BAC ACWP为完成工作的实际成本,是在项目进度表 中某时间点已经完成的工作任务的实际工作量花 费之和。 成本执行指标CPI=BCWP/ACWP 成本偏差CV=BCWP-ACMP
7.9 错误跟踪 软件小组完成正式技术评审已发现和修正 在软件工程任务中生产的工作产品中的错 误E。任何未被发现(但在以后的任务中发 现)的错误被称为缺陷D。 缺陷消除效率定义为:DRE=E/(E+D)
7.10 项目计划 (1)在软件管理者、技术人员和客户之间传达项目范围和资源信息 (2)定义风险并提出有关风险管理技术的建议 (3)定义管理复审的成本和进度 (4)为与项目相关的所有人员提供软件开发的整体方法 (5)概述如何保证质量及管理变化 软件项目计划不是静态文档,即项目小组重复地访问计划—更新 风险,估算,进度表和相关信息—当项目向前进展并知道得更多时。
7.11 小结 • 进度安排是计划活动的首要任务,而计划活动则是软件项目管理的首要组 成部分. • 进度安排始于过程的分解.