sw071软件项目管理课件.ppt
《sw071软件项目管理课件.ppt》由会员分享,可在线阅读,更多相关《sw071软件项目管理课件.ppt(212页珍藏版)》请在三一办公上搜索。
1、第七章 软件项目管理,软件项目管理的概念、原则和技术项目管理计划、组织、监管和控制软件开发过程的度量和定量分析,2022/11/4,1,第七章 软件项目管理软件项目管理的概念、原则和技术202,软件项目管理,目的 为了使软件项目能够在预定成本、进度、质量的前提下顺利完成,必须对软件工程项目进行计划、组织、监控和管理,第七章 软件项目管理,2022/11/4,2,软件项目管理目的第七章 软件项目管理2022/10/,软件项目管理,任务制定软件项目的实施计划和方案;对人员进行组织和分工;按照计划进度,以及成本管理、风险管理、质量管理的要求进行软件开发,完成软件项目的各项要求和任务。,第七章 软件项
2、目管理,2022/11/4,3,软件项目管理 任务第七章 软件项目管理2022/10/9,软件项目管理,内容软件度量软件项目估算软件质量度量软件复杂性度量软件可靠性度量软件开发过程的管理软件项目管理中的CASE工具,第七章 软件项目管理,2022/11/4,4,软件项目管理内容第七章 软件项目管理2022/10/94,7.1 软件度量,软件度量的概念软件规模度量软件功能度量,第七章 软件项目管理,2022/11/4,5,7.1 软件度量软件度量的概念第七章 软件项目管理2022/,7.1.1 度量、测量和估算 (1/3),度量 metrics度量具有数字特征,软件工程范围的度量是软件开发过程、
3、软件资源或软件产品简单属性的定量描述。如,程序规模、操作符个数、程序中错误的个数等。,2022/11/4,6,7.1.1 度量、测量和估算 (1/3)度量 metrics,度量、测量和估算 (2/3),测量 measure对软件开发过程、产品和资源进行实时和事后的定量描述,涉及测量的要素、方法、过程、工具和数值结果。直接测量和间接测量 直接测量用于不依赖于其它属性的简单属性; 间接测量用于依赖于若干其它属性的要素、准则和属性。,2022/11/4,7,度量、测量和估算 (2/3)测量 measure202,度量、测量和估算 (3/3),估算 estimation对软件产品、过程、资源进行预测估
4、算可以采用经验公式、或参考历史资料估算用于事前签订合同、立项、制定工作计划等,2022/11/4,8,度量、测量和估算 (3/3)2022/10/98,度量、测量和估算,软件的外部属性和内部属性外部属性 软件产品、过程、资源与环境的关系如,成本、效益、劳动生产率、可靠性、可维护性内部属性 软件产品、过程、资源、环境自身的属性如,产品结构、模块化程度、复杂性、程序长度等。,2022/11/4,9,度量、测量和估算 软件的外部属性和内部属性2022/,度量、测量和估算,用户和管理者关心外部属性,但在开发过程中无法直接管理和控制。由于外部属性是由内部属性决定的,因此必须建立外部属性与内部属性的关系,
5、并通过内部属性的度量去度量外部属性。,2022/11/4,10,度量、测量和估算用户和管理者关心外部属性,但在开发过程中,度量、测量和估算,产品的内部属性程序代码长度 程序功能 模块化 重用性控制流 数据流 模块耦合度与内聚度 产品的外部属性程序的可靠性 可用性 可维护性软件的可理解性 有效性 可移植性,2022/11/4,11,度量、测量和估算产品的内部属性2022/10/911,度量、测量和估算,过程的内部属性 工作量 计划和进度 一段时间内某类事件发生的次数过程的外部属性 成本 可控制性 可观察性 稳定性,2022/11/4,12,度量、测量和估算过程的内部属性2022/10/912,度
6、量、测量和估算,资源的内部属性 人 软硬件环境 方法 经验资源的外部属性 成本 时间,2022/11/4,13,度量、测量和估算资源的内部属性2022/10/913,7.1.2 规模度量,代码行数 LOC或KLOC生产率 Pl=L/E 其中 L 软件项目代码行数 E 软件项目工作量(人月 PM) Pl 软件项目生产率(LOC/PM),2022/11/4,14,7.1.2 规模度量代码行数 LOC或KLOC2022/,规模度量,代码出错率 EQRl=Ne/L 其中 Ne 软件项目的代码错误数 EQRl 每千行代码的错误数,2022/11/4,15,规模度量代码出错率 2022/10,规模度量,每
7、行代码平均成本 Cl=S/L 其中 S 软件项目总开销(元美元) Cl软件项目每行代码的平均成本文档与代码比 Dl=Pd/L 其中 Pd 软件项目文档页数 Dl 每千行代码的平均文档数,2022/11/4,16,规模度量每行代码平均成本2022/10/916,例 软件项目记录,2022/11/4,17,例 软件项目记录项目工作量成本代码行文档页数错误数人数Aa,生产率:Pl=L/E=17.1kLoc/24PM=504Loc/PM出错率:EQRl=Ne/L=29个/12.1kLoc=2.4个/kLoc平均成本:Cl=S/L =168 000美元/12.1kLoc= 13.88美元/Loc每千行代
8、码的平均文档页数:Dl=Pd/L=365Pd/ 12.1kLoc=30.16Pd/kLoc,2022/11/4,18,生产率:Pl=L/E=17.1kLoc/24PM=504Lo,规模度量,用软件代码行数估算软件规模简单易行。缺点代码行数的估算依赖于程序设计语言的功能和表达能力;采用代码行估算方法会对设计精巧的软件项目产生不利的影响;在软件项目开发前或开发初期估算它的代码行数十分困难;代码行估算只适用于过程式程序设计语言,对非过程式的程序设计语言不太适用等等。,2022/11/4,19,规模度量用软件代码行数估算软件规模简单易行。2022/1,根据事务信息处理程序的基本功能定义的,在系统设计初
9、期可以估算出软件项目的规模 FP=CT*0.65+0.01*Fi (2-5) 其中:CT按表2.3计算 Fi 是复杂性调节值 Fi 取值 0,1,.,5 当 Fi = 0 时,表示 Fi 不起作用 Fi = 5 时,表示 Fi 作用最大,7.1.3 面向功能的度量,2022/11/4,20,根据事务信息处理程序的基本功能定义的,在系统设计初期,表7.3 功能点度量,测量参数 值 权值用户输入数 *4 用户输出数 *5 用户查询数 *4 文件数 *7 外部界面数 *7 CT ,2022/11/4,21,表7.3 功能点度量2022/10/921,面向功能的度量,表7.3中的五个信息量按下列方式取
10、值用户输入数 用户为软件提供的输入参数个数用户输出数 软件系统为用户提供的输出参数个数用户查询数 一个联机输入确定一次查询,软件以 联机输出的形式,实时地产生一个响应文件数 统计逻辑的主文件个数外部界面数 统计所有机器可读的界面,利用这些 界面可以将信息从一个系统传送到另一个 系统,2022/11/4,22,面向功能的度量 表7.3中的五个信息量按下列方式取值,面向功能的度量,用功能点定义相应的概念生产率 Pf=FP/E (2-6) 其中 Pf表示每人月完成的功能点数平均成本Ci=S/FP (2-7)其中 Ci表示每功能点的平均成本,2022/11/4,23,面向功能的度量用功能点定义相应的概
11、念2022/10/9,面向功能的度量,文档与功能点比Di=Pd/FP (2-8)其中 Di表示每个功能点平均具有的文档页数代码出错率EORi=Ne/FP (2-9)其中 EORi表示每个功能点的平均错误个数,2022/11/4,24,面向功能的度量文档与功能点比2022/10/924,面向功能的度量,软件规模的功能点度量没有直接涉及软件系统本身的算法复杂性。1986年Jones把软件项目中的算法复杂性因素引入到功能点计算中来,为了避免混淆,我们把Albrecht定义的功能点称为简单功能点,用FPs表示,把Jones推广的功能点称为功能点,用FP表示。推广的功能点包括计算机程序中用于各类问题求解
12、的算法因素,如求解线性代数方程组、遍历二叉树的各个结点、处理中断等等。功能点计算仍用公式(25),其中CT按表2.5计算。,2022/11/4,25,面向功能的度量软件规模的功能点度量没有直接涉及软件系统本,表7.5 推广的功能点度量,测量参数 值 权值用户输入数 *4 用户输出数 *5 用户查询数 *4 文件数 *7 外部界面数 *7 算法 *3 CT ,2022/11/4,26,表7.5 推广的功能点度量 测量参数 值,面向功能的度量,对一般的工程计算或事务处理软件,用表2.3和表2.5两种方法计算出来的FP值应该基本上相同对于比较复杂的软件系统 FP比FPs的值高20%35%,2022/
13、11/4,27,面向功能的度量对一般的工程计算或事务处理软件,用表2.3,面向功能的度量,优点与程序设计语言无关,它不仅适用于过程式语言,也适用于非过程式的语言;软件项目开发初期就能基本上确定系统的输入、输出等参数,功能点度量能用于软件项目的开发初期。,2022/11/4,28,面向功能的度量优点2022/10/928,面向功能的度量,缺点它涉及到的主观因素比较多,如各种权函数的取值;信息领域中的某些数据有时不容易采集;FP的值没有直观的物理意义。,2022/11/4,29,面向功能的度量缺点2022/10/929,2.1.4 代码行度量与功能点度量的比较,代码行度量依赖于程序设计语言,而功能
14、点度量不依赖于程序设计语言。Albrecht和Jones等人对若干软件采用事后处理的方式分别统计出不同程序设计语言每个功能点与代码行数的关系,用LOC/FP的平均值表示。表7.6表明,一行Ada语言代码的“功能”平均是一行FORTRAN语言代码“功能”的1.4倍。一行四代语言代码的“功能”平均是一行传统程序设计语言代码“功能”的3至5倍。,2022/11/4,30,2.1.4 代码行度量与功能点度量的比较代码行度量依赖于程序,表7.6 各种语言的LOC/FP(平均值),程序设计语言 LOC/FP(平均值)汇编语言 300COBOL 100FORTRAN 100Pascal 90Ada 70面向
15、对象的语言 30四代语言(4GL) 20代码生成器 15,2022/11/4,31,表7.6 各种语言的LOC/FP(平均值)程序设计语言,7.2 软件项目估算,当前在基于计算机的系统中,软件开发成本占总成本的比例很大。在软件项目立项和软件项目管理工作中,客户和项目管理人员都十分重视软件项目的成本估算。软件是逻辑产品,成本估算涉及人、技术、环境、政策等多种因素,在项目完成之前,很难精确地估算出项目的开销。,2022/11/4,32,7.2 软件项目估算当前在基于计算机的系统中,软件开发成本,软件项目估算,常用的估算方法参照已经完成的类似项目估算待开发项目的成本和工作量。将大的项目分解成若干子项
16、目,在估算出每个子项目成本和工作量之后,再估算整个项目。将软件项目按软件生存周期分解,分别估算出软件项目在软件开发各个阶段的工作量和成本,然后再把这些工作量和成本汇总估算整个项目。根据实验或历史数据给出软件项目工作量或成本的经验估算公式。,7.2软件项目估算,2022/11/4,33,软件项目估算常用的估算方法7.2软件项目估算2022/10/,软件项目估算,四种方法可以同时、单独或组合使用,以便取长补短,提高项目估算的精度和可靠性。 采用分解技术估算软件项目应考虑系统集成时需要的工作量。为了实现软件项目估算,实践中开发了大量的软件项目自动估算工具,用以支持软件工作量或成本估算。,7.2软件项
17、目估算,2022/11/4,34,软件项目估算四种方法可以同时、单独或组合使用,以便取长补短,,7.2.1代码行、功能点和工作量估算,软件项目的规模是影响软件项目成本和工作量的重要因素。软件项目代码行和功能点估算是成本和工作量估算的基础。采用上述四种估算方法可以估算出LOC或FP的乐观值a,悲观值b和一般值m,然后根据下列加权公式计算出期望值 e=(a4mb)6 (2-10) 希望LOC或FP的值落在区间a,b之外的概率极小,7.2软件项目估算,2022/11/4,35,7.2.1代码行、功能点和工作量估算软件项目的规模是影响软件,代码行、功能点和工作量估算,当LOC或FP的期望值估算出来之后
18、,根据以前软件项目开发的平均生产率LOC/PM或FP/PM就可以计算出工作量。如,软件项目的规模估算为310FP,以前完成的软件项目的生产率为5.5FP/PM,于是工作量估算为E=310/5.5=56PM。如果当前估算的软件子项目比以前完成的项目复杂,那么所用的生产率值可以低于平均生产率,反之也可以高于平均生产率。,7.2软件项目估算,2022/11/4,36,代码行、功能点和工作量估算当LOC或FP的期望值估算出来之后,例 7.2 估算计算机辅助设计软件项目,将CAD项目按功能分解为七个子项目用户界面和控制;二维几何分析;三维几何分析;数据库管理;计算机图形显示;外设控制;设计分析。表7.8
19、 给出七个子项目代码行的乐观估计、悲观计和一般估计值,然后计算出加权平均值。,7.2软件项目估算,2022/11/4,37,例 7.2 估算计算机辅助设计软件项目将CAD项目按功能分,估算计算机辅助设计软件项目,分析七个子项目的规模复杂性和难度,参照以前开发类似项目的经验给出开发每行代码的平均成本,每月开发的代码行数。 用这两组数据计算出七个子项目的开发成本和工作量。 最后汇总的CAD软件开发项目 规模为 33360 LOC 成本为 656680 $ 工作量为 144.5 PM。,7.2软件项目估算,2022/11/4,38,估算计算机辅助设计软件项目 分析七个子项目的规模复杂性,估算计算机辅
20、助设计软件项目,再用第二种方法和第三种方法分别估算软件开发子项目在软件工程各个阶段的工作量,估算结果列入表7.8。两种方法估算的工作量分别为144.5PM和152.5PM,相差5%左右。估算的成本分别为656680$和708075$,相差7%左右。 两种方法估算的工作量和成本基本一致。,7.2软件项目估算,2022/11/4,39,估算计算机辅助设计软件项目再用第二种方法和第三种方法分别估,表7.8 代码行和成本、工作量估算,功能 乐观 一般 悲观 加权 $ LOC 成本 工作量 LOC LOC LOC 平均 /LOC /PM (人月)用户界面控制1790 2400 2650 2340 14
21、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 59920 15.2设计分析 6600 8500 9800 8400 18 300 151200 28.0总计 33360 656680 144.5,7.2软件
22、项目估算,2022/11/4,40,表7.8 代码行和成本、工作量估算 功能 乐观,表7.8 工作量估算,功能 需求分析 设计 编码 测试 总计用户界面控制 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.5 152.5 每人月成本 5200 4800 425
23、0 4500成本() 75400 292800 112625 227250 708075,2.2软件项目估算,2022/11/4,41,表7.8 工作量估算 功能 需求分,7.2.2 经验估算模型之一 CoCoMo模型,计算机软件的估算模型是根据以前完成项目的实际数据导出的,用于软件项目的计划阶段。 模型是根据“从前的”,“局部的”数据得出的,估算模型不可能完全适用于当前所有的软件项目和全部开发环境。这些模型的计算结果仅供参考。 两个常用的估算模型 CoCoMo模型 Putnam模型,7.2软件项目估算,2022/11/4,42,7.2.2 经验估算模型之一 CoCoMo模型计算机软件,CoC
24、oMo模型,1981年Boehm提出“构造性成本模型”(Constructive Cost Model),简称CoCoMo模型。它是在静态、单变量模型的基础上构造出来的。 CoCoMo模型分为基本、中间、详细三个层次,分别用于软件开发的三个不同阶段。,7.2软件项目估算,2022/11/4,43,CoCoMo模型7.2软件项目估算2022/10/943,CoCoMo模型,基本CoCoMo模型 用于系统开发的初期,估算整个系统的工作量(包括软件维护)和软件开发所需要的时间。 中间CoCoMo模型 用于估算各个子系统的工作量和开发时间。 详细CoCoMo模型 用于估算独立的软部件,如子系统内部的各
25、个模块。,7.2软件项目估算,2022/11/4,44,CoCoMo模型7.2软件项目估算2022/10/94,1 基本CoCoMo模型,静态、单变量模型 E = aLb (2-11) D = cEd (2-12)其中: E表示工作量,单位是人月(PM)。 D表示开发时间,单位是月(M)。 L是项目的代码行估计值,单位是千行代码 a,b,c,d是常数,取值如表7.9所示。 Boehm把软件划分为组织型、半独立型和嵌入型三类,允许不同应用领域和复杂程度的软件按照三类软件的适用范围选取相应的参数a,b,c,d。给出了代码行数与工作量、工作量与开发时间之间的函数关系,7.2软件项目估算,2022/1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sw071 软件 项目 管理 课件

链接地址:https://www.31ppt.com/p-1288954.html