1、目的 按预定的时间和费用,完成软件的计划、开发和维护 内容 费用管理 估算软件的开发费用 管理开发费用的有效使用 质量管理(包括配置管理) 项目的其它管理 项目进度安排 人员的分配与组织,第7章 软件项目管理,软件项目管理的谱系,本章内容,7.1 软件的度量 7.2 软件估算模型 7.3 软件成本估计 7.4 人员的分配与组织 7.5 项目进度安排,7.1 软件的度量,软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。没有软件度量,就不能从软件开发的暗箱中跳将出来。通过软件度量可以改进软件开发过程,促进项目成功,开
2、发高质量的软件产品。,软件度量可划分为 1.软件项目度量:目的在于改进软件产品的质量; 2.软件过程度量:目的在于改进企业的软件开发过程,提高整个过程的质量。,一、项目度量的内容 1. 5种基本度量,2. 特点 (1) 以代码行(LOC)表示的软件规模是最基本的度量。它直接关系到软件的成本、开发工作量和完成时间。 (2)在项目度量中,所有的基本度量都是以代码行LOC为基础的。例如, 软件成本(元)=LOC每行代码的成本(元/行) 开发工作量(人-月)=LOC/每人-月开发的代码行(行/ 人-月) (3) 软件的规模、成本和工作量通常都分阶段进行度量。,3.面向功能的项目度量 中心思想任何软件都
3、包含若干种功能,每种功能又包含具有不同复杂度的若干个功能点。因此,软件的规模也可用功能点数量的多少来表示,以代替原来常用的LOC表示法。,二、过程度量 1. 含义 过程度量可以认为是对整个企业中全体项目组开发能力的衡量。2. 特点 把对于项目组中个人的度量组合起来,可形成对项目的度量;把所有项目组的项目度量组合起来,就形成了对整个企业的过程度量。,7.2 软件估算模型 估算在软件度量中占有重要的地位。一般地说,估算是在软件开发之前进行的。资源模型可用来估算软件在开发中花费的资源。典型的资源模型: 静态单变量资源模型 Putnam资源模型 COCOMO模型,一、静态单变量资源模型 1. 特点这种
4、模型在计算软件开发的资源花费时,只需要设定被开发软件的一种参数,故称为单变量型。 2. 形式 资源=C1 (估计的软件特征)C2,静态单变量资源模型,资源 开发工作量(E)、开发时间(T)或开发人数(P) 估计的软件特征 源程序长度(L)或软件工作量(E) c1 ,c2 依赖于开发环境和软件应用领域的常数,二、Putnam资源模型,L = cK1/3T4/3 或 K = L3 / (c3T4) L (行):源程序长度 T (年):开发时间 K (人-年): 全生存期工作量 c: 与开发环境有关的常数,Putnam资源模型 特点 (1)Putnam模型是一种多变量资源模型。 (2)Putnam模
5、型是在同一个模型中给出了K(或E)、L和T三者之间的关系。 (3)Putnam模型方程揭示了E与T之间的关系。根据这一方程,开发工作量E与开发时间T的四次方成反比。这表明,开发时间的小量变化,会引起开发工作量相当大的变化。,三、COCOMO模型 特点以静态单变量模型为基础,但在下列两个方面作了较大的改进: (1) 按照软件的应用领域和复杂程度,将它们分为组织、半独立和嵌入三种类型,每类分别使用一组不同的模型方程, (2) 在模型中增加一个工作量调节因子EAF,反映各种有关因素对软件开发的影响。这些因素归结为4类、15种因子。,7.3 软件成本估计,自顶向下成本估计 由底向上成本估计 算法模型估
6、计,自顶向下成本估计,首先估算总成本 然后在项目内部进行成本分配 特尔斐Delphi法 多个专家各自填表 综合专家意见,摘要通知大家 开始新一轮估计 多次反复,直到专家意见接近,由底向上成本估算,先将开发任务分解为许多子任务 子任务分成子子任务 估计各个任务单元的成本 汇合成项目总成本,算法模型估计,算法模型就是资源模型 由历史数据导出 选择适用的模型 模型估计法与自顶向下估计或由底向上估计结合使用,7.4 人员的分配与组织,Rayleigh-Norden曲线 两条重要定律 人员组织,软件项目的人员资源需求变化曲线 时间常数td大致相当于软件开发完成的时间。td左边曲线大致为开发时期人员需求,
7、右边大致为维护时期人员需求。曲线下方的面积就是整个软件生命周期所需要的工作量。,对于大型软件项目,td左右两边的面积之比为4:6或者3:7。图中用虚线画出的矩形显示了平均使用人力所造成的问题:开始人力过剩,造成浪费(图中),到开发后期需要人力时,又显得人手不足(图中),以后再来补偿,已为时过晚(图中)。,Rayleigh-Norden曲线,两条重要的定律,人员-时间权衡定律Brooks定律 向一个已经延晚的项目追加开发人员,可能使它完成得更晚,E=常数/(T或td)4,人员组织,层次型组织结构 软件经理 项目经理 开发小组 民主开发小组 无我程序设计 主程序员小组 一元化领导 主程序员分配工作
8、 主程序员决定重大问题,7.5 项目进度安排,计划评审技术Gannt图(甘特图),计划评审技术的由来和含义,所谓计划评审技术 (program evaluation and review technique,PERT),是把工程项目当做一个系统,用网络图或表格或矩阵来表示各项具体工作的先后顺序和相互关系,以时间为中心,找出从开工到完工所需时间最长的关键线路,并围绕关键线路对系统进行统筹规划、合理安排,以及对各项工作的完成进度进行严密控制,以达到用最少的时间和资源消耗来完成系统预定目标的一种计划与控制方法。,计划评审技术 建立PERT图 找出关键路径 标出最迟开始时间 PERT图的使用,PERT
9、图例子,关键路径,(0,0),(0,3),(0,2),(3,5),(2,8),(3,7),(7,9),(7,11),(15,15),(11,15),亨利.甘特,表明:,强调:,20世纪提出的图表系统法,后以他的名字来命名的管理图表,它被认为是管理工作上的一次革命,社会历史学家视为 20世纪最重要的社会发明,工作计划中各“事件”之间在时间上的相互关系,时间和成本在计划和控制中的重要性,甘特图,甘特图简介,甘特图(Gantt chart)是本世纪初由亨利甘特开发的,内在思想简单,基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况.它直观地表明任务计划
10、在什么时候进行,及实际进展与计划要求的对比.管理者由此极为便利地弄清一项任务(项目)还剩下哪些工作要做,并可评估工作是提前还是滞后,亦或正常进行.是一种理想的控制工具.,甘特的思想,甘特的贡献,把总的计划目标看成 人们能够了解和执行的,具有相互关系的一系列计划或各项事件。,体现一个既简单又基本的控制原理 从计划中选取关键内容并予以密切注视。,ABCDE,甘特图,任务,一月 二月 三月 四月 五月 六月 七月,ABCDE,.带有分项目的甘特图,任务,一月 二月 三月 四月 五月 六月 七月,2,1,3,4,5,7,9,8,6,ABCDE,.带有分项目和分项目网络的甘特图,任务,2,6,1,3,4,5,7,9,8,一月 二月 三月 四月 五月 六月 七月,谢谢观看,Thank You !,