软件项目管理.ppt
《软件项目管理.ppt》由会员分享,可在线阅读,更多相关《软件项目管理.ppt(89页珍藏版)》请在麦多课文档分享上搜索。
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
6、个/12.1kLoc=2.4个/kLoc 平均成本: Cl=S/L =168 000美元/12.1kLoc= 13.88美元/Loc 每千行代码的平均文档页数: Dl=Pd/L=365Pd/ 12.1kLoc=30.16Pd/kLoc,规模度量的优缺点,用软件代码行数估算软件规模简单易行。 缺点 代码行数的估算依赖于程序设计语言的功能和表达能力; 采用代码行估算方法会对设计精巧的软件项目产生不利的影响; 在软件项目开发前或开发初期估算它的代码行数十分困难; 代码行估算只适用于过程式程序设计语言,对非过程式的程序设计语言不太适用等等。,根据事务信息处理程序的基本功能定义的,在系统设计初期可以估算
7、出软件项目的规模FP=CT*0.65+0.01*Fi 其中:CT按表2.1计算Fi 是复杂性调节值Fi 取值 0,1,.,5 当 Fi = 0 时,表示 Fi 不起作用Fi = 5 时,表示 Fi 作用最大,面向功能的度量,表 功能点度量,测量参数 值 权值 用户输入数 *4 用户输出数 *5 用户查询数 *4 文件数 *7 外部界面数 *7 CT ,表中的五个信息量按下列方式取值用户输入数 用户为软件提供的输入参数个数 用户输出数 软件系统为用户提供的输出参数个数 用户查询数 一个联机输入确定一次查询,软件以联机输出的形式,实时地产生一个响应 文件数 统计逻辑的主文件个数 外部界面数 统计所
8、有机器可读的界面,利用这些界面可以将信息从一个系统传送到另一 个系统,用功能点定义相应的概念 生产率:Pf=FP/E其中 Pf表示每人月完成的功能点数 平均成本:Ci=S/FP 其中 Ci表示每功能点的平均成本 文档与功能点比:Di=Pd/FP 其中 Di表示每个功能点平均具有的文档页数代码出错率:EORi=Ne/FP 其中 EORi表示每个功能点的平均错误个数,面向功能的度量,软件规模的功能点度量没有直接涉及软件系统本身的算法复杂性。 1986年Jones把软件项目中的算法复杂性因素引入到功能点计算中来,为了避免混淆,我们把Albrecht定义的功能点称为简单功能点,用FPs表示,把Jone
9、s推广的功能点称为功能点,用FP表示。 推广的功能点包括计算机程序中用于各类问题求解的算法因素,如求解线性代数方程组、遍历二叉树的各个结点、处理中断等等。 功能点计算仍用上面的公式,其中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倍。一行四代语言代码的“功能”平均是一行传统程序设计语言
11、代码“功能”的3至5倍。,表 各种语言的LOC/FP(平均值),程序设计语言 LOC/FP(平均值) 汇编语言 300 COBOL 100 FORTRAN 100 Pascal 90 Ada 70 面向对象的语言 30 四代语言(4GL) 20 代码生成器 15,软件复杂性度量,1976年 T.J.McCabe McCabe度量法又称环路复杂性度量,基于程序控制结构的软件复杂性度量模型。 程序控制结构图 程序结构对应于有一个入口结点和一个出口结点的有向图 图中每个结点对应一个语句或一个顺序流程的程序代码块 弧对应于程序中的转移 它基于一个程序模块的程序图中环路的个数,因此计算它先要画出程序图。
12、 程序图是退化的程序流程图。流程图中每个处理都退化成一个结点,流线变成连接不同结点的有向弧。,McCabe度量法,McCabe用程序控制结构图的巡回秩数V(G)作为程序结构复杂性的度量 V(G) = e-n+2其中:e为结构图的边数n为结构图的结点数可以证明 V(G)等于结构图中有界或无界的封闭区域个数,例 计算程序控制结构的V(G)值,E = 1 E = 3 N = 2 N = 3 V = 1 V = 2,计算程序控制结构的V(G)值,E = 4 E = 3 N = 4 N = 3 V = 2 V = 2,计算程序控制结构的V(G)值,E = 6 N = 5 V = 3,例2.1 计算如图所
13、示程序控制结构图的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.,这种度量的缺点是:对于不同种类的控制流的复杂性不能区分简单IF语句与循环语句的复杂性同等看待嵌套IF语句与简单CASE语句的复杂性是一样的模块间接口当成一个简单分支一样处理一个具有1000行的顺序程序与一行语句的复杂性相同,软件项目估算,常用的估算方法 参照已经完成的类似项目估算待开发项目的成本和工作量。 将大的项目分解成若干子项目,在估算出每个子项目成本和工作量之后,再估算整个项目。 将软件项目按软件生
14、存周期分解,分别估算出软件项目在软件开发各个阶段的工作量和成本,然后再把这些工作量和成本汇总估算整个项目。 根据实验或历史数据给出软件项目工作量或成本的经验估算公式。,四种方法可以同时、单独或组合使用,以便取长补短,提高项目估算的精度和可靠性。 采用分解技术估算软件项目应考虑系统集成时需要的工作量。 为了实现软件项目估算,实践中开发了大量的软件项目自动估算工具,用以支持软件工作量或成本估算。,分解技术 采用”分而治之”的策略进行软件项目估算.将项目分解为若干个主要的功能及相关的软件工程活动,通过逐步求精的方式进行成本及工作量估算。 经验估算模型 可用于补充分解技术 自动估算工具 实现一种或多种
15、分解技术或经验模型,与人机交互结合,自动估算将是很好的选择。,代码行、功能点和工作量估算,软件项目的规模是影响软件项目成本和工作量的重要因素。 软件项目代码行和功能点估算是成本和工作量估算的基础。 采用上面的估算方法可以估算出LOC或FP的乐观值a,悲观值b和一般值m,然后根据下列加权公式计算出期望值e=(a4mb)6 希望LOC或FP的值落在区间a,b之外的概率极小,当LOC或FP的期望值估算出来之后,根据以前软件项目开发的平均生产率LOC/PM或FP/PM就可以计算出工作量。 如,软件项目的规模估算为310FP,以前完成的软件项目的生产率为5.5FP/PM,于是工作量估算为E=310/5.
16、5=56PM。,2.2 成本估算技术,成本估算是可行性分析的重要依据,也是软件管理的重要内容,直接影响到软件开发的风险。软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价,即主要是人的劳动的消耗。以软件计划、需求分析、设计、编码到测试的软件开发全过程所花费的代价为依据。一个大型、复杂项目,由于其项目的度,成本估算并不是一件简单的事,必须建立相应的估算模型,按照一定的方法、技术来进行估算。,一、影响成本估算的因素1. 软件人员的业务水平2. 软件产品的规模及复杂度规模:按YOURDON分类法分为 超小型,小型,中型,大型,超大型,极大型。复杂度:应用程序, 实用程序,系统程序低 高,3
17、.开发所需时间对确定规模、复杂度的软件存在一个”最佳开发时间”。 4.软件开发技术水平指开发方法、工具、语言等,技术水平高,效率高。 5.软件可靠性要求 可靠性要求愈高,成本愈高。,2.2 成本估算技术,2.2 成本估算技术,二.软件成本的估算量源代码行(LOC) 机器指令行/非机器语言的执行步开发工作量 人-月(PM) 人-年(PY) 人-日(PD) 软件生产率 LOG/PM ¥/LOC ¥/PM软件开发时间,其中:ai 估计的最小行数 bi 估计的最大行数 mi 最可能的行数,2.2.1 专家估算模型即源代码行估算模型(Deiphi技术)由Rand公司提出的Deiphi技术,是由n位专家进
18、行成本估算。每位专家根据系统规格说明书,反复讨论给出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 (人)文 档 数: DOC=49*L (页)其中:L 源代码行,以千行计。,IBM估算模型是一种
19、静态单变量模型,它利用已估算的结果,如源代码行,来估算各种资源的需求量 但IBM 估算模型不是一种通用模型,因此应用中应根据具体实际情况调整模型中的参数,2.2.3 普特南(Putnam) 估算模型, Ck td,普特南Putnam 估算模型是一种动态多变量模型,是根据一些大型项目中工作量的分布情况推导出来的。,其中: L源代码行, K 所需人力(PY)td 开发时间, CK 技术水平常数其值与开发环境有关。(差:2500-2000,正常:10000-8000,好:12500-11000), Ck K td,大型项目的工作量分布情况,2.2.3 Putnam 估算模型,COCOMO模型(Con
20、structive Cost Model)由TRW公司开发,是由Boehm提出的结构型成本估算模型,其特点是精确、易用。是一种层次模型,按照其祥细程度分为三级:即基本的COCOMO模型、中间的COCOMO模型和详细的COCOMO模型。,该模型主要对工作量(单位:PM)和进度TDEP(单位:月)进行估算。模型中考虑到估算量与开发环境有关,将开发项目分为三类:,9.5.5 COCOMO模型,2.2.4 COCOMO模型,2.2.4 COCOMO模型,组织型(Organic)规模5万,较简单,开发人员对产品目标理解充分,经验丰富,对软件开发环境熟悉。大多数应用软件及老的操作系统、编译系统属此类。,嵌
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 项目 管理 PPT
