软件项目管理.ppt
《软件项目管理.ppt》由会员分享,可在线阅读,更多相关《软件项目管理.ppt(96页珍藏版)》请在三一办公上搜索。
1、软件项目管理,2,第二章,项目管理是广泛应用于各种工程、金融等技术管理过程,管理的好坏决定了工程的成败。软件及IT 行业,尤其是软件产品的特殊性,软件项目管理对于保证软件产品的质量具有极为重要的作用,是决定一个产品或企业能否成功的最重要的指标。,2.1 软件项目管理概述,不可见性不确定性人员流动性,2.1 软件项目管理概述,随着软件的规模和复杂度的不断增大,开发人员的增加以及开发时间的增长,这些都增加了软件项目管理的难度。例如:Windows 2000的开发 是微软公司历史上最艰巨的任务,仅核心部门的的成员就有2500人,测试用的代码就有1000万行,测试中所用到的脚本程序就有6500种。象规
2、模如此之大的软件系统,如果没有科学的、规范的、有效的管理,是不可能成功的。因此软件项目管理成为软件工程的重要研究内容之一。,2.1.1 软件项目管理的任务,过程(process),人员(people),工具(tools),项目(Project),一、软件项目管理的“4P”,二、软件项目管理过程,软件项目管理,是对整个软件生存期的所有活动进行管理。主要过程包括:1.项目启动 确定系统范围、组建项目团队、建立项目环境。2.项目规划 确定项目活动、项目成本估算、制定进度计划3.项目实施 监控项目执行、管理项目风险、控制项目变更4.项目收尾 项目验收、软件安装培训、项目总结,2.1.1 软件项目管理的
3、任务,2.1.1 软件项目管理的任务,三、软件项目管理与过程管理的关系,软件项目管理用于保证项目目标的成功实现,过程管理用于辅助项目管理,将最佳的项目实践用于软件开发过程。,2.1.2 项目管理的主要活动,软件项目的规划人员的组织管理软件风险管理软件配置管理,包括:可行性分析 软件项目度量 软件成本估算 软件计划,2.1.2 项目管理的主要活动,包括:人员配备原则 人员配备模式 软件团队建设 软件项目沟通活动,软件项目的规划人员的组织管理软件风险管理软件配置管理,2.1.2 项目管理的主要活动,包括:风险识别 风险分析 风险规划 风险监控,软件项目的规划人员的组织管理软件风险管理软件配置管理,
4、2.1.2 项目管理的主要活动,是为了有效地控制和管理软件开发过程中的变化,进行标识、组织和控制修改的技术。配置管理活动:配置项的标识 版本管理 系统构建 变更控制,软件项目的规划人员的组织管理软件风险管理软件配置管理,软件度量,软件度量的概念软件规模度量软件功能度量,软件项目度量,软件度量分类,度量、估算,度量 metrics度量具有数字特征,软件工程范围的度量是软件开发过程、软件资源或软件产品简单属性的定量描述。如,程序规模、操作符个数、程序中错误的个数等。估算 estimation对软件产品、过程、资源进行预测估算可以采用经验公式、或参考历史资料估算用于事前签订合同、立项、制定工作计划等
5、,面向规模的度量,代码行数 LOC或KLOC生产率 Pl=L/E 其中 L 软件项目代码行数 E 软件项目工作量(人月 PM)Pl 软件项目生产率(LOC/PM)代码出错率 EQRl=Ne/L 其中 Ne 软件项目的代码错误数 EQRl 每千行代码的错误数,每行代码平均成本 Cl=S/L 其中 S 软件项目总开销(元美元)Cl软件项目每行代码的平均成本文档与代码比 Dl=Pd/L 其中 Pd 软件项目文档页数 Dl 每千行代码的平均文档数,例 软件项目记录,生产率:Pl=L/E=12.1kLoc/24PM=504Loc/PM出错率:EQRl=Ne/L=29个/12.1kLoc=2.4个/kLo
6、c平均成本:Cl=S/L=168 000美元/12.1kLoc=13.88美元/Loc每千行代码的平均文档页数:Dl=Pd/L=365Pd/12.1kLoc=30.16Pd/kLoc,规模度量的优缺点,用软件代码行数估算软件规模简单易行。缺点代码行数的估算依赖于程序设计语言的功能和表达能力;采用代码行估算方法会对设计精巧的软件项目产生不利的影响;在软件项目开发前或开发初期估算它的代码行数十分困难;代码行估算只适用于过程式程序设计语言,对非过程式的程序设计语言不太适用等等。,根据事务信息处理程序的基本功能定义的,在系统设计初期可以估算出软件项目的规模 FP=CT*0.65+0.01*Fi 其中:
7、CT按表2.1计算 Fi 是复杂性调节值 Fi 取值 0,1,.,5 当 Fi=0 时,表示 Fi 不起作用 Fi=5 时,表示 Fi 作用最大,面向功能的度量,表 功能点度量,测量参数 值 权值用户输入数*4 用户输出数*5 用户查询数*4 文件数*7 外部界面数*7 CT,表2.1中的五个信息量按下列方式取值用户输入数 用户为软件提供的输入参数个数用户输出数 软件系统为用户提供的输出参数个数用户查询数 一个联机输入确定一次查询,软件以 联机输出的形式,实时地产生一个响应文件数 统计逻辑的主文件个数外部界面数 统计所有机器可读的界面,利用这些 界面可以将信息从一个系统传送到另一 个系统,用功
8、能点定义相应的概念生产率:Pf=FP/E 其中 Pf表示每人月完成的功能点数平均成本:Ci=S/FP 其中 Ci表示每功能点的平均成本文档与功能点比:Di=Pd/FP 其中 Di表示每个功能点平均具有的文档页数代码出错率:EORi=Ne/FP 其中 EORi表示每个功能点的平均错误个数,面向功能的度量,软件规模的功能点度量没有直接涉及软件系统本身的算法复杂性。1986年Jones把软件项目中的算法复杂性因素引入到功能点计算中来,为了避免混淆,我们把Albrecht定义的功能点称为简单功能点,用FPs表示,把Jones推广的功能点称为功能点,用FP表示。推广的功能点包括计算机程序中用于各类问题求
9、解的算法因素,如求解线性代数方程组、遍历二叉树的各个结点、处理中断等等。功能点计算仍用上面的公式,其中CT按表2.2计算。,表 推广的功能点度量,测量参数 值 权值用户输入数*4 用户输出数*5 用户查询数*4 文件数*7 外部界面数*7 算法*3 CT 对一般的工程计算或事务处理软件,用表2.1和表2.2两种方法计算出来的FP值应该基本上相同对于比较复杂的软件系统 FP比FPs的值高20%35%,面向功能的度量的优缺点,优点与程序设计语言无关,它不仅适用于过程式语言,也适用于非过程式的语言;软件项目开发初期就能基本上确定系统的输入、输出等参数,功能点度量能用于软件项目的开发初期。缺点它涉及到
10、的主观因素比较多,如各种权函数的取值;信息领域中的某些数据有时不容易采集;FP的值没有直观的物理意义。,代码行度量与功能点度量的比较,代码行度量依赖于程序设计语言,而功能点度量不依赖于程序设计语言。Albrecht和Jones等人对若干软件采用事后处理的方式分别统计出不同程序设计语言每个功能点与代码行数的关系,用LOC/FP的平均值表示。表2.3表明,一行Ada语言代码的“功能”平均是一行FORTRAN语言代码“功能”的1.4倍。一行四代语言代码的“功能”平均是一行传统程序设计语言代码“功能”的3至5倍。,表 各种语言的LOC/FP(平均值),程序设计语言 LOC/FP(平均值)汇编语言 30
11、0COBOL 100FORTRAN 100Pascal 90Ada 70面向对象的语言 30四代语言(4GL)20代码生成器 15,软件复杂性度量,1976年 T.J.McCabe McCabe度量法又称环路复杂性度量,基于程序控制结构的软件复杂性度量模型。程序控制结构图 程序结构对应于有一个入口结点和一个出口结点的有向图图中每个结点对应一个语句或一个顺序流程的程序代码块弧对应于程序中的转移它基于一个程序模块的程序图中环路的个数,因此计算它先要画出程序图。程序图是退化的程序流程图。流程图中每个处理都退化成一个结点,流线变成连接不同结点的有向弧。,McCabe度量法,McCabe用程序控制结构图
12、的巡回秩数V(G)作为程序结构复杂性的度量 V(G)=e-n+2 其中:e为结构图的边数 n为结构图的结点数 可以证明 V(G)等于结构图中有界或无界的封闭区域个数,例 计算程序控制结构的V(G)值,E=1 E=3N=2 N=3V=1 V=2,计算程序控制结构的V(G)值,E=4 E=3N=4 N=3V=2 V=2,计算程序控制结构的V(G)值,E=6N=5V=3,例2.1 计算如图所示程序控制结构图的V(G)值。(a)e=1,n=2,v=1;(b)e=3,n=3,v=2;(c)e=4,n=4,v=2;(d)e=3,n=3,v=2;(e)e=6,n=5,v=3.,这种度量的缺点是:对于不同种类
13、的控制流的复杂性不能区分 简单IF语句与循环语句的复杂性同等看待 嵌套IF语句与简单CASE语句的复杂性是一样的 模块间接口当成一个简单分支一样处理 一个具有1000行的顺序程序与一行语句的复杂性相同,软件项目估算,常用的估算方法参照已经完成的类似项目估算待开发项目的成本和工作量。将大的项目分解成若干子项目,在估算出每个子项目成本和工作量之后,再估算整个项目。将软件项目按软件生存周期分解,分别估算出软件项目在软件开发各个阶段的工作量和成本,然后再把这些工作量和成本汇总估算整个项目。根据实验或历史数据给出软件项目工作量或成本的经验估算公式。,四种方法可以同时、单独或组合使用,以便取长补短,提高项
14、目估算的精度和可靠性。采用分解技术估算软件项目应考虑系统集成时需要的工作量。为了实现软件项目估算,实践中开发了大量的软件项目自动估算工具,用以支持软件工作量或成本估算。,分解技术采用”分而治之”的策略进行软件项目估算.将项目分解为若干个主要的功能及相关的软件工程活动,通过逐步求精的方式进行成本及工作量估算。经验估算模型可用于补充分解技术自动估算工具实现一种或多种分解技术或经验模型,与人机交互结合,自动估算将是很好的选择。,代码行、功能点和工作量估算,软件项目的规模是影响软件项目成本和工作量的重要因素。软件项目代码行和功能点估算是成本和工作量估算的基础。采用上面的估算方法可以估算出LOC或FP的
15、乐观值a,悲观值b和一般值m,然后根据下列加权公式计算出期望值 e=(a4mb)6 希望LOC或FP的值落在区间a,b之外的概率极小,当LOC或FP的期望值估算出来之后,根据以前软件项目开发的平均生产率LOC/PM或FP/PM就可以计算出工作量。如,软件项目的规模估算为310FP,以前完成的软件项目的生产率为5.5FP/PM,于是工作量估算为E=310/5.5=56PM。,估算计算机辅助设计软件项目,将CAD项目按功能分解为七个子项目用户界面和控制;二维几何分析;三维几何分析;数据库管理;计算机图形显示;外设控制;设计分析。表2.4给出七个子项目代码行的乐观估计、悲观计和一般估计值,然后计算出
16、加权平均值。,估算计算机辅助设计软件项目,分析七个子项目的规模复杂性和难度,参照以前开发类似项目的经验给出开发每行代码的平均成本,每月开发的代码行数。用这两组数据计算出七个子项目的开发成本和工作量。最后汇总的CAD软件开发项目 规模为 33360 LOC 成本为 656680$工作量为 144.5 PM。,再用这两种方法分别估算软件开发子项目在软件工程各个阶段的工作量,估算结果列入表2.5。两种方法估算的工作量分别为144.5PM和152.5PM,相差5%左右。估算的成本分别为656680$和708075$,相差7%左右。两种方法估算的工作量和成本基本一致。,表 代码行和成本、工作量估算,功能
17、 乐观 一般 悲观 加权$LOC 成本 工作量 LOC LOC LOC 平均/LOC/PM(人月)用户界面控制1790 2400 2650 2340 14 315 32760 7.4 二维几何分析4080 5200 7400 5380 20 220 107600 24.4三维几何分析4600 6900 8600 6800 20 220 136000 30.9数据库管理 2900 3400 3600 3350 18 240 60300 13.9图形显示 3900 4900 6200 4950 22 200 108900 24.7外设控制 1990 2100 2450 2140 28 140 59
18、920 15.2设计分析 6600 8500 9800 8400 18 300 151200 28.0总计 33360 656680 144.5,表 工作量估算,功能 需求分析 设计 编码 测试 总计用户界面控制 1.0 2.0 0.5 3.5 7二维几何分析 2.0 10.0 4.5 9.5 26三维几何分析 2.5 12.0 6.0 11.0 31.5数据库管理 2.0 6.0 3.0 4.0 15计算机图形显示 1.5 11.0 4.0 10.5 27外设控制 1.5 6.0 3.5 5.0 16设计分析 4.0 14.0 5.0 7.0 30总计(人月)14.5 61 26.5 50.
19、5 152.5 每人月成本 5200 4800 4250 4500成本()75400 292800 112625 227250 708075,2.2 成本估算技术,成本估算是可行性分析的重要依据,也是软件管理的重要内容,直接影响到软件开发的风险。软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价,即主要是人的劳动的消耗。以软件计划、需求分析、设计、编码到测试的软件开发全过程所花费的代价为依据。一个大型、复杂项目,由于其项目的度,成本估算并不是一件简单的事,必须建立相应的估算模型,按照一定的方法、技术来进行估算。,一、影响成本估算的因素 1.软件人员的业务水平 2.软件产品的规模及复杂
20、度 规模:按YOURDON分类法分为 超小型,小型,中型,大型,超大型,极大型。复杂度:应用程序,实用程序,系统程序 低 高,3.开发所需时间 对确定规模、复杂度的软件存在一个”最佳开发时间”。4.软件开发技术水平 指开发方法、工具、语言等,技术水平高,效率高。5.软件可靠性要求 可靠性要求愈高,成本愈高。,2.2 成本估算技术,2.2 成本估算技术,二.软件成本的估算量 源代码行(LOC)机器指令行/非机器语言的执行步 开发工作量 人-月(PM)人-年(PY)人-日(PD)软件生产率 LOG/PM¥/LOC¥/PM 软件开发时间,其中:ai 估计的最小行数 bi 估计的最大行数 mi 最可能
21、的行数,2.2.1 专家估算模型 即源代码行估算模型(Deiphi技术)由Rand公司提出的Deiphi技术,是由n位专家进行成本估算。每位专家根据系统规格说明书,反复讨论给出ai、bi及 mi的值,并按照下式反复估算源代码的期望值Li,期望中值L。,将估算的源代码行数,乘以根据经验推算的每行源代码所需成本,即为该软件的成本。,2.2.2 IBM 估算模型 1977年由Waiston 和 Felix 总结了IBM联合系统分部(FSD)负责的个项目的数据,利用最小二乘法拟合,得到如下估算公式:工 作 量:E=5.2*L(PM)项目持续时间:D=4.1*L(月)人员需要量:S=0.54*E(人)文
22、 档 数:DOC=49*L(页)其中:L 源代码行,以千行计。,IBM估算模型是一种静态单变量模型,它利用已估算的结果,如源代码行,来估算各种资源的需求量但IBM 估算模型不是一种通用模型,因此应用中应根据具体实际情况调整模型中的参数,2.2.3 Putnam 估算模型,Ck td,Putnam 估算模型是一种动态多变量模型,是根据一些大型项目中工作量的分布情况推导出来的。,其中:L源代码行,K 所需人力(PY)td 开发时间,CK 技术水平常数其值与开发环境有关。(差:2500-2000,正常:10000-8000,好:12500-11000),Ck K td,大型项目的工作量分布情况,2.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 项目 管理
链接地址:https://www.31ppt.com/p-4530525.html