560 likes | 761 Views
《 软件工程 》. 软件项目管理 陈巧丽. 软件项目管理. 学习内容 : 8.1 概论 8.2 项目计划、费用与进度管理. 8.1 概论. 一、 项目的定义与特点 1 项目的定义 项目是在一定的 资源约束 下完成的 既定目标 的 一次性任务。 2 项目的特点 项目具有目的性 项目具有寿命周期 项目具有一定独特性 项目都有其固有客户 项目组织开放性 项目具有较强冲突性 项目具有一定风险性. 成本. 进度. 目标. 二、 项目管理的定义与特点 1 项目管理的定义
E N D
《软件工程》 软件项目管理 陈巧丽
学习内容: 8.1 概论 8.2 项目计划、费用与进度管理
8.1 概论 • 一、 项目的定义与特点 • 1 项目的定义 • 项目是在一定的资源约束下完成的既定目标的一次性任务。 • 2 项目的特点 • 项目具有目的性 • 项目具有寿命周期 • 项目具有一定独特性 • 项目都有其固有客户 • 项目组织开放性 • 项目具有较强冲突性 • 项目具有一定风险性
成本 进度 目标 二、 项目管理的定义与特点 1 项目管理的定义 项目管理是通过项目经理和项目组织机构运用系统理论和方法 对项目及其资源进行计划、组织、协调、控制,旨在实现项目 的特定目标的管理方法体系。 项目管理中的三要素 :目标、成本、进度 目标、成本、进度三者在项目管理过程中是互相制约的
2 项目管理的基本特征: (1) 项目管理是一项复杂系统工程 ● 项目需要多种学科知识来解决实际问题; ● 项目执行中的未知因决定项目的不确定性; ● 项目的临时性给组织管理带来难度; ● 项目建设是在严格的约束条件下进行的; (2) 项目管理具有创造性,充满着权衡 ● 创造带有探索性,有较高的失败率; ● 项目建设中对进度、费用与质量三者之间的权衡。 (3) 项目负责人在项目管理中起着非常重要的作用 ● 项目管理的主要原理之一是项目经理负责制; ● 项目经理有权独立进行计划、资源分配、协凋和控制; ● 项目经理应有多学科知识、综合管理能力及现场处理能力; ● 项目经理应有迅速建立一支高效率群体的能力。
三、 信息系统项目特点 (1)信息系统项目的目标不精确,任务的边界模糊,各种技术 指标更多地由项目组来定义。 (2)信息系统项目客户需求不断激发,导致项目的进度、费用 等计划不断更改。 (3)信息系统项目是智力密集、劳动密集型,受人力资源影响 最大,项目成员结构、责任心、能力和稳定性对信息系统 项目的质量以及是否成功有决定性的影响。 (4)信息系统项目的生命周期包括系统规划、系统分析、系统 设计、系统实施、系统运行和维护五个阶段,其各阶段间 的关系密切、相互制约。 (5)信息系统项目不是交钥匙工程,项目开发队伍通常要跟踪 到系统的使用生命周期结束,因此要求项目开发队伍在较 长时间保持稳定。
8.2 项目计划、费用与进度管理 一、信息系统项目计划管理 1 项目计划用途: 项目计划是用来指导组织、实施、协调和控制信息系统建设的 重要文件。 ● 项目计划可作为客户与建设团队间解决冲突的依据。 ● 项目计划可使项目成员有明确的分工及工作目标。 ● 项目计划有助于项目成员之间的交流沟通。 ● 项目计划可作为对项目过程控制和工作考核的基准。 2 项目计划分类: ● 进度计划 ● 质量保证计划 ● 费用计划 ● 风险管理计划 ● 人力计划
3 项目计划编制原则: 全过程计划(总体计划):应保持大体上稳定,并尽可能留有 一定余量和弹性, 阶段性计划或子系统计划:按近期精细、远期概略方法展开。 4 项目计划管理: 通常信息系统项目计划的管理包含以下工作: ⑴ 项目计划编制 :项目经理或子项目负责人完成。 ⑵ 计划执行控制 :定期进行检查、督导,并制定项目进度周 报、月报等相关制度。 ⑶ 计划变更处理 :尽可能保证进度、费用和系统目标不变为 基础,运用一定的方法和理论调整、处理 各种复杂情况。 ⑷ 计划文档管理 :计划文档应包含:各类项目计划文本;计 划执行检查情况记录及统计;计划变更、 调整记录等。
二、信息系统项目的成本估算 1 信息系统项目成本构成 信息系统项目的成本随着系统的类型、范围及功能的不同而有 较大差异。但是,可以从信息系统生命周期的各阶段划分为开 发成本和运行维护成本两大类:
系统规划 分析、设计费用 系统分析 系统开发成本 系统设计 编程与调试 硬件平台费用 开发成本 系统平台成本 系统实施费用 系统软件费用 网络施工费用 数据整理录入 信息系统成本 其它费用 人员培训费用 管理费用 人员费用 消耗材料费用 系统运行费用 固定资产折旧 运行维护成本 技术资料获取 行政管理费用 硬件维护费用 维护费用 软件维护费用 二次开发费用
信息系统项目的成本估算通常注意以下三个原则:信息系统项目的成本估算通常注意以下三个原则: △ 真实性与预见性原则 △ 透明性与适应性原则 《信息经济学教程》(陈禹主编。清华出版社) △ 方便性与稳定性原则 信息系统项目成本估算时,最难确定的是软件开发成本,所以 成本估算的重点是软件开发成本。
2 软件开发规模与成本估算的方法 常用的四种估算方法: (1) 类比估算法:参照已完成类似项目,估算软件开发成本和工 作量。 (2) 分解估算法:将项目分解成若干子系统,先估算每个子系统 成本和工作量,再估算整个软件开发成本。 (3) 周期估算法:将系统按系统生命周期分解为若干阶段并估算 ,然后汇总出总工作量和成本。 (4) 经验估算法:根据实验或历史数据给出软件开发工作量或成 本的经验估算公式。 注意:采用分解法估算时应考虑系统集成时需要的工作量。
以往项目数据 待开发软件特征 硬件与系统软件特征 以往项目数据 对以往项目数据的分析 软件开发 规模测算 硬件和系统软件计划 培训和系统切换计划 环境因素 安装测试的人力和时间 培训切换的人力和时间 软件开发 成本测算 经验数据 人力和时间的分配 人力、时间测算数据 人力、进度及其他资源分配结果 灵敏度与 风险分析 信息系统开发成本测算的一般过程 :
3 软件规模度量方法 (1) 软件代码行的方式 用代码行(LOC)数表示软件开发规模十分自然、直观。用代码行数不仅能度量软件的规模,而且可以度量软件开发的生产率、每行代码的平均成本、千行代码出错率等。 软件开发的生产率: Pl = L/E 其中:L软件总代码行数。 E软件的总工作量,用人/月(PM)度量。 Pl 开发生产率,每人月完成代码行数(LOC/PM)。 每行代码的平均成本: Cl =S/L 其中:S开发的总成本,用人民币元或美元度量。 Cl 每行代码平均成本,人民币元(或美元)/代码行。
用软件代码行估算软件的开发规模直观、简单易行。用软件代码行估算软件的开发规模直观、简单易行。 其缺点为: ① 代码行数估算依赖于开发工具的功能和表达能力; ② 项目开发初期估算它的代码行数十分困难; ③ 用代码行估算方法会对需要设计精巧的项目产生不 利影响; ④ 代码行估算不适宜非过程式的程序设计;
∑ ∑ = = (2) 软件功能点的方式 功能点度量是涉及多种因素的间接度量方式。该方法用6个信息量的“加权和”CT和14个复杂性调节值Fi(i=1…14)。在系统分析初期就能估算出软件开发的规模。 计算功能点FP参数公式: FP=CT﹙0.65 + 0.0l ﹚ 其中:CT 为信息量,按表1计算, Fi 为影响因子,由表2给出, Fi取值为:0至5,当Fi=0 时,表示否定或不起作用, Fi=5时,表示肯定或Fi 影响最大。 为复杂度,它是 Fi (i=1…14) 的累加和。
Fi定值表 (表2) 用功能点也可以定义软件的开发效率、成本等度量: 软件开发的生产率: Pf = FP/E (其中; Pf 表示每人月完成的功能点数。)
每功能点的平均开发成本: Cf =S/fp 其中: Cf 为每功能点的平均成本; S为开发总成本; 采用功能点度量的优点: (1)与程序设计工具无关,适用于各种语言环境,这对于面向对象的开 发方式尤为有用; (2)由于项目启动时就能基本上确定系统的输入、输出等参数,所以功 能点度量能用于软件开发成本在初期预估。 采用功能点度量的缺点: (1)该方法涉及到的主观因素比较多,如 Fi的选取与评估人的经验和 态度有较大的关系。 (2)计算公式中的 FP值的物理意义不直观,不易理解。
4 软件的经验估算模型 应用软件的估算模型是根据以前完成项目的实际情况导出的,这些模型的结果仅有一定的参考价值。下面将介绍两个常用的估算模型:CoCoMo模型和Putnam模型。 (1)CoCoMo模型 CoCoMo模型是“构造性成本模型”(Constructive cost model,简称CoCoMo模型)的英文缩写,分为基本、中间、详细三个层次,分别用于软件开发的不同阶段。 基本CoCoMo模型:用于系统开发初期,估算整个系统的工作量 包括软件维护,和软件开发所需要的时间; 中间CoCoMo模型:用于估算各个子系统的工作量和开发时间; 详细CoCoMo模型:用于估算独立的软部件,如子系统内部的各 个模块。
本课程,我们只介绍基本CoCoMo的情况,关于中间和详细CoCoMo模型可以阅读Boehm B W.的著作 《Software Engineering Economics 》(Prentice-Hall,1981)。
基本CoCoMo模型是静态、单变量模型,具有下列形式基本CoCoMo模型是静态、单变量模型,具有下列形式 E = aLb D = cEd C = E 其中:L是项目的代码行估计值,单位是千行代码( KLOC ) 。 E 表示工作量,单位是人月(PM)。 D 表示开发时间,单位为月。 C 表示开发成本,单位是万元。 表示每人月的人力成本,单位是万元/人月。 a,b,c,d是常数。
(2) Putnam模型 Putnam模型是为大型软件项目(一般30人年以上)进行估算的模型。它是动态多变量的模型,适用于软件开发各个阶段。估算模型以项目实测数据为基础,描述开发工作量、开发时间和软件代码行数之间的关系。相应的方程为: L = CkE1/3 td4/3 其中:L 表示源程序代码行数。 E表示工作量(以人年计,包括维护)。 td 表示开发时间(以年计)。 Ck 表示技术状态常数,它反映“妨碍程序员进展的限制”。
Ck的典型值 开发环境 开发环境举例 2000 差 没有系统的开发方法,缺乏初期文档和复审,批处理方式 8000 好 有合适开发方法,有充分的文档和复审,交互执行方式 11000 优 有自动开发工具和技术 相应的方程为: L = CkE1/3 td4/3 技术状态常数Ck的取值: 由上面方程可得到如下公式: E = L3/( Ck3 td4 ) C = E 其中, C 表示项目开发总成本; 表示每人年的人力成本。
(3) 软件的自动估算工具 以上介绍的经验估算模型已用软件,成为自动估算工具。项目管理可能够使用这些工具自动估算项目的成本和工作量,还可对人员配置和交付日期等进行估计。通常需要管理者提供以下数据: (1)定量估算软件项目规模,如:总代码行数或功能点数据; (2)定性地说明项目特性,如复杂性、可靠性或事件的关键性等; (3)开发人员和(或)开发环境的描述。 根据这些数据,自动估算工具即可提供:项目所需的工作量、成本、人员配备、开发进度和相应风险等数据。
三、信息系统项目的进度管理 1 建立项目成员责任矩阵 根据以上对项目工作量、成本的估算,项目经理应组织项目团队,并绘制专业领域技术编制表,建立工作分析结构(WBS),在此基础上建立项目成员责任矩阵,落实任务。 (1)专业领域技术编制表 每个项目都需要多种技术与工作任务相匹配,分析、掌握项目组成员技术特长,对项目管理者十分重要。 专业领域技术编制表的X轴上为技术及专业领域,Y轴上为项目成员,两 轴对应格为分数(最高分取专业领域个数)。例如:
(2)工作分析结构(WBS) 工作分析结构是指将一个信息系统项目分解成易于管理的几部分或几个细目,细目再展开成子细目,任何分支最低层的细目叫工作包。待建系统可以先按生命周期的阶段展开,然后按照子系统或系统功能点展开。也可以直接按各子系统展开,但这时必须要考虑总体设计的工作任务。 (3)项目组成员的责任矩阵 责任矩阵是将项目分解后工作包,依据项目成员的技术特长进行落实,其中X轴为项目成员,Y轴为工作包,对应格中填写责任类:
2 项目建设活动工期估计和预算分摊估计 项目建设工期估计和预算分摊估计可按下列步骤进行: ① 将待开发系统按阶段分割为若干基本活动如系统规划、系统分析、系统设计、系统实施、系统测试、系统切换等,基本活动可再次分割为若干子活动,如:系统规划可分割为调研收集、数据可行性研究、系统规划报告三项子活动。 ② 分别估算各子活动的工期及费用预算(构造项目建设工期估计和预算分摊估计表)。 ③ 构造项目开发活动网络图通过该网络图计算得到项目的最早完成时间。 下例中假设该项目:总成本为100万元,工期为50周:
系统 规划 系统 分析 系统 设计 系统 实施 系统 测试 系统 切换 项目工期估计和预算分摊估计表 (总成本100万元)
经验表明,让某项工作的具体负责人进行工期估算是较好的方法,因为这样做既可以得到该负责人的承诺对他产生有效的参与激励,又可以减少由项目经理个人进行所有活动的工期估算所产生的偏差。经验表明,让某项工作的具体负责人进行工期估算是较好的方法,因为这样做既可以得到该负责人的承诺对他产生有效的参与激励,又可以减少由项目经理个人进行所有活动的工期估算所产生的偏差。
说 明: ▲ 最早开始时间(ES): 取直接指向这项活动的所有活动的 最早结束时间EF的最大值。 ▲ 最早结束时间(EF): EF=ES+工期估计 ▲ 最迟开始时间(LS) : LS=LF一工期估计 ▲ 最迟开始时间(LS) : 取该活动直接指向的所有活动最迟开 始时间LS的最早时间。 最早开始时间 活动描述 最早结束时间 最迟开始时间 最迟结束时间 活动序号 工期估计 活动负责人 上一页
4 项目的工期规划 根据上工期估计和预算分摊估计 ,项目经理必须将项目活动及各活动分解后的工作包进行工期规划,常用的方法有项目进度甘特图和工作包进度表。 ① 项目进度甘特图 项目进度甘特图是帮助项目经理对项目进度进行总体规划的工具。如上面所介绍的项目总开发时间为50周。该项目可划分为六个大的活动,与其对应的甘特图如下:
②工作包进度表 项目进度表用于描述项目工作包的工期安排,为了确定这些工作包能在要求的时间内完成。我们必须计算出每个项目进度计划(时间表),这个时间表主要解决以下两个内容:最早开始时间和最早结束时间、最迟开始时间和最迟结束时间。
③ 关键路径和总时差 上表中最后一列的数据为各项目活动工期时间差 ,它是各项活动的最早结束时间和项目的要求完工时间之间的差距,这个差距叫做总时差,有时也叫浮动量。 总时差可以用下列公式计算: 总时差 =LF—EF或 总时差 =LS—ES 当某项活动的总时差为正值,表明该项活动花费时间总量可以适当延长。当总时差为负值,则表明该项活动要加速完成以减少花费的时间。
要对项目的进度做到较好的控制,必须找到项目网络图中的关键路径。一个项目的网络图从开始到完成可以有很多条路径。一些路径可以有正的总时差,另一些可能有负的总时差。而那些总时差为零或负值的路径被称为关键路径,并且将耗时最长的关键路径经常称为最关键路径。要对项目的进度做到较好的控制,必须找到项目网络图中的关键路径。一个项目的网络图从开始到完成可以有很多条路径。一些路径可以有正的总时差,另一些可能有负的总时差。而那些总时差为零或负值的路径被称为关键路径,并且将耗时最长的关键路径经常称为最关键路径。
上例中项目网络图中的最关键路径为: 2→3 → 4 → 6 → 7 → 9 → 10 → 11 → 12 → 15 → 16 → 19 → 20 → 22 (其中数字为活动编号) 通过最关键路径可以看出开发该项目需要59周,而不是前面项目进度估算的50周,这时,项目经理需要进一步核实,看是否能够压缩相应工期和预算分摊,然后对进度和成本计划进行相应凋整。
5 项目计划执行过程的控制与管理 • (1)项目计划执行过程控制流程 • 执行过程中,经常会出现一些预先无法想到的情况,而使项目的进度早干或晚于计划进度或使项目的实际成本低于或高于计划成本,这时需要对项目计划作出相应的调整,并对近期内即将发生的活动加强控制,以便积极挽回时间和成本。项目控制或调整的过程如下:
制定计划 (进度、预算) 分析当前状况与计划差异(进度、预算) 启动项目 还有报告期吗? 采取纠正措施吗? 开始一个报告期 项目结束 收集实际项 目进度情况 将变化列入计划(进度、预算) 确定纠正措施 协调相关变化 计算更新的项目 (进度、预算) 项目计划执行过程控制流程
(2)项目计划调整中应注意的问题 ● 对近期内即将发生的活动加强控制,积极挽回时间和成本; ● 对工期估计较长或预算估计较大的活动应进一步进行审核预估依据, 并做好该活动压缩时间和费用的准备工作,因为估计值越大的项目更有压缩的可能; ● 将某些可以再细分的活动可进一步细分,研究细分活动之间并行工作或技术重用的可行性,如可行,则可以有效地压缩时间和费用。 (3)信息系统项目计划调整的方法 ● 时间一成本平衡法 时间与成本之间在一定的范围内具有一定的替代性。时间一成本平衡法是一 种用最低的相关成本的增加来缩短项目工期的方法。
活动A 正常:7周,50000元 应急:5周,62000元 活动B 正常:9周,80000 元 应急:6周,110000元 结束 开始 活动C 正常:10周,40000元 应急: 9周,45000元 活动D 正常:8周,30000元 应急:6周,42000元 该方法基于以下假设: ① 每项活动有两组工期和成本估计:正常的和应急的。 应急时间是指完成某项活动的最短估计时间; 应急成本是指在应急时间内完成某项活动的预汁成本。
②一项活动的工期可以通过从正常时间减至应急时间得到有效的缩减,这要投入更多的资源,如:指派更多的人、延长工时、增加更多的设备或外包等。②一项活动的工期可以通过从正常时间减至应急时间得到有效的缩减,这要投入更多的资源,如:指派更多的人、延长工时、增加更多的设备或外包等。 ③应急时间是确保活动按质量完成的时间下限。无论对一项活动投入多少额外的资源,也不可能在比应急时间短的时间内完成这项活动。 ④当需要将活动的预计工期从正常时间缩短至应急时间时,必须有足够的资源作保证。
单位时间加急成本 = ⑤在活动的正常点和应急点之间,时间和成本的关系是线性的。为了将活动的工期从正常时间缩短至应急时间,每项活动都有自己的单位时间加急成本。加急成本可用如下公式计算: 当使用时间一成本平衡法对计划进行调整时应注意以下几点: △ 重点调整关键路径上的活动,而调整的极限工期为关键路径上所有活动的工期都被压缩为应急工期的累加和。 △ 随着关键活动工期的调整变化,关键路径也在随之改变。 △ 由于每项活动的单位时间加急成本是不同的,因此从降低成本考虑,应尽量压缩加急成本较低的活动。
● 成本指标监控法 在项目执行的过程中,总会有因各种因素引起项目成本的变动,为了对计划成本进行有效控制,经常需要选取一些量化指标进行考察,下面介绍利用项目的预算累计量、实际成本累计量和盈余累计量三个指标监控成本变动的方法。 假没现有一个小型信息系统项目《个人理财信息系统》需要开发,合同总价款为10万元人民币,拟在12周内开发成功。项目采用原型法方式开发,为了简单起见,项目分为三个大的活动:需求分析与原型制作;原型改造与系统实现;系统测试与转换。
① 预算累计量(Cumulative Budged Cost,CBC) 个人理财信息系统项目三个活动预算分摊分别为: 需求分析与原型制作 2.4 万元 原型改造与系统实现 6.0 万元 系统测试与转换 1.6 万元