第3章-软件项目管理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第3章-软件项目管理课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 项目 管理 课件
- 资源描述:
-
1、第三章第三章 软件项目管理软件项目管理n项目管理的概念项目管理的概念n软件项目度量软件项目度量n软件项目计划与估算软件项目计划与估算n风险分析和管理风险分析和管理n项目进度安排项目进度安排n软件质量保证软件质量保证n软件配置管理软件配置管理项目管理的谱系项目管理的谱系人员管理人员管理产品管理产品管理项目管理项目管理过程管理过程管理软件项目管理软件项目管理项项目目参参与与者者项项目目负负责责人人软软件件项项目目组组协协调调通通信信问问题题软软件件范范围围问问题题分分解解确确定定软软件件过过程程模模型型过过程程分分解解确确定定危危险险信信息息确确定定解解决决方方案案 软件项目管理的目的、任务和内容
2、软件项目管理的目的、任务和内容目的目的 为了使软件项目能够在预定成本、进度、质为了使软件项目能够在预定成本、进度、质量的前提下顺利完成,必须对软件工程项目进量的前提下顺利完成,必须对软件工程项目进行计划、组织、监控和管理行计划、组织、监控和管理 任务任务n制定软件项目的实施计划和方案;制定软件项目的实施计划和方案;n对人员进行组织和分工;对人员进行组织和分工;n按照计划进度,以及成本管理、风险管理、质按照计划进度,以及成本管理、风险管理、质量管理的要求进行软件开发,完成软件项目的量管理的要求进行软件开发,完成软件项目的各项要求和任务。各项要求和任务。3.1.1 软件度量软件度量3.1 软件项目
3、度量软件项目度量软件度量分类软件度量分类3.1.1.1 度量、估算度量、估算n度量度量 metrics度量具有数字特征,软件工程范围的度量是软度量具有数字特征,软件工程范围的度量是软件开发过程、软件资源或软件产品简单属性的件开发过程、软件资源或软件产品简单属性的定量描述。定量描述。如,程序规模、操作符个数、程序中错误的个数如,程序规模、操作符个数、程序中错误的个数等。等。n估算估算 estimation对软件产品、过程、资源进行预测对软件产品、过程、资源进行预测估算可以采用经验公式、或参考历史资料估算可以采用经验公式、或参考历史资料估算用于事前签订合同、立项、制定工作计划估算用于事前签订合同、
4、立项、制定工作计划等等 软件的外部属性和内部属性软件的外部属性和内部属性n外部属性外部属性 软件产品、过程、资源与环境的关系软件产品、过程、资源与环境的关系如,成本、效益、劳动生产率、可靠性、可如,成本、效益、劳动生产率、可靠性、可维护性维护性n内部属性内部属性 软件产品、过程、资源、环境自身的属性软件产品、过程、资源、环境自身的属性如,产品结构、模块化程度、复杂性、程序如,产品结构、模块化程度、复杂性、程序长度等。长度等。产品产品-过程过程-资源资源n产品的内部属性产品的内部属性程序代码长度程序代码长度 程序功能程序功能 模块化模块化 重用性重用性控制流控制流 数据流数据流 模块耦合度与内聚
5、度模块耦合度与内聚度 n产品的外部属性产品的外部属性程序的可靠性程序的可靠性 可用性可用性 可维护性可维护性软件的可理解性软件的可理解性 有效性有效性 可移植性可移植性 n过程的内部属性过程的内部属性 工作量工作量 计划和进度计划和进度 一段时间内某类事件一段时间内某类事件发生的次数发生的次数 n过程的外部属性过程的外部属性 成本成本 可控制性可控制性 可观察性可观察性 稳定性稳定性n资源的内部属性资源的内部属性 人人 软硬件环境软硬件环境 方法方法 经验经验n资源的外部属性资源的外部属性 成本成本 时间时间3.1.1.2 面向规模的度量面向规模的度量n代码行数代码行数 LOC或或KLOCn生
6、产率生产率 Pl=L/E 其中其中 L 软件项目代码行数软件项目代码行数 E 软件项目工作量(人月软件项目工作量(人月 PM)Pl 软件项目生产率(软件项目生产率(LOC/PM)n代码出错率代码出错率 EQRl=Ne/L 其中其中 Ne 软件项目的代码错误数软件项目的代码错误数 EQRl 每千行代码的错误数每千行代码的错误数n每行代码平均成本每行代码平均成本 Cl=S/L 其中其中 S 软件项目总开销(元美元)软件项目总开销(元美元)Cl软件项目每行代码的平均成本软件项目每行代码的平均成本n文档与代码比文档与代码比 Dl=Pd/L 其中其中 Pd 软件项目文档页数软件项目文档页数 Dl 每千行
7、代码的平均文档数每千行代码的平均文档数例例 软件项目记录软件项目记录项目项目工作量工作量 PM成本成本万美元万美元代码行代码行kLOC文档页数文档页数 Pd错误数错误数 Ne人数人数 MAaa-012416.812.1365293Ccc-046244.027.21224865Fff-034331.420.21050646生产率:生产率:Pl=L/E=12.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 规模度量的优缺点规模度量的优缺点用软件代码行数估算软件规模简单易行。用软件代码行数估算软件规模简单易行。缺点缺点n代码行数的估算依赖于程序设计语言的功能和表代码行数的估算依赖于程序设计语言的功能和表达能力;达能力;n采用代码行估算方法会对设计精巧的软件项目产采用代码行估算方法会对设计精巧的软件项目产生不利的影响;生不利的影响;n在软件项目开发前或开发初期估算它的代码行数在软件项目开发前或开发初期估算它的代码行数十分困难;十分困难;n代码行估算代码行估算只适用于过程式程序设计语言只适用于过
9、程式程序设计语言,对非,对非过程式的程序设计语言不太适用等等。过程式的程序设计语言不太适用等等。根据事务信息处理程序的基本功能定义的,根据事务信息处理程序的基本功能定义的,在系统设计初期可以估算出软件项目的规模在系统设计初期可以估算出软件项目的规模 FP=CT*0.65+0.01*Fi 其中:其中:CT按表按表3.1计算计算()Fi 是复杂性调节值是复杂性调节值 Fi 取值取值 0,1,.,5 当当 Fi=0 时,表示时,表示 Fi 不起作用不起作用 Fi=5 时,表示时,表示 Fi 作用最大作用最大3.1.1.3 面向功能的度量面向功能的度量 表表3.1 功能点度量功能点度量测量参数测量参数
10、 值值 权值权值用户输入数用户输入数 *4 用户输出数用户输出数 *5 用户查询数用户查询数 *4 文件数文件数 *7 外部界面数外部界面数 *7 CT 表表3.1中的五个信息量按下列方式取值中的五个信息量按下列方式取值用户输入数用户输入数 用户为软件提供的输入参数个数用户为软件提供的输入参数个数用户输出数用户输出数 软件系统为用户提供的输出参数个数软件系统为用户提供的输出参数个数用户查询数用户查询数 一个联机输入确定一次查询,软件以一个联机输入确定一次查询,软件以 联机输出的形式联机输出的形式,实时地产生一个响应实时地产生一个响应文件数文件数 统计逻辑的主文件个数统计逻辑的主文件个数外部界面
11、数外部界面数 统计所有机器可读的界面,利用这些统计所有机器可读的界面,利用这些 界面可以将信息从一个系统传送到另一界面可以将信息从一个系统传送到另一 个系统个系统 用功能点定义相应的概念用功能点定义相应的概念n生产率:生产率:Pf=FP/E 其中其中 Pf表示每人月完成的功能点数表示每人月完成的功能点数n平均成本:平均成本:CiCi=S/FP =S/FP 其中其中 CiCi表示每功能点的平均成本表示每功能点的平均成本n文档与功能点比:文档与功能点比:Di=Pd/FP Di=Pd/FP 其中其中 DiDi表示每个功能点平均具有的文档页数表示每个功能点平均具有的文档页数n代码出错率:代码出错率:E
12、ORiEORi=NeNe/FP /FP 其中其中 EORiEORi表示每个功能点的平均错误个数表示每个功能点的平均错误个数 面向功能的度量面向功能的度量n软件规模的功能点度量没有直接涉及软件系统本软件规模的功能点度量没有直接涉及软件系统本身的算法复杂性。身的算法复杂性。n1986年年Jones把软件项目中的算法复杂性因素引入把软件项目中的算法复杂性因素引入到功能点计算中来,为了避免混淆,我们把到功能点计算中来,为了避免混淆,我们把Albrecht定义的功能点称为定义的功能点称为简单功能点简单功能点,用,用FPs表表示,把示,把Jones推广的功能点称为推广的功能点称为功能点功能点,用,用FP表
13、示。表示。n推广的功能点包括计算机程序中用于各类问题求推广的功能点包括计算机程序中用于各类问题求解的算法因素,如求解线性代数方程组、遍历二解的算法因素,如求解线性代数方程组、遍历二叉树的各个结点、处理中断等等。叉树的各个结点、处理中断等等。n功能点计算仍用上面的公式功能点计算仍用上面的公式,其中其中CT按表按表3.2计算。计算。表表3.2 推广的推广的功能点度量功能点度量 测量参数测量参数 值值 权值权值用户输入数用户输入数 *4 用户输出数用户输出数 *5 用户查询数用户查询数 *4 文件数文件数 *7 外部界面数外部界面数 *7 算法算法 *3 CT n对一般的工程计算或事务处理软件,用表
14、对一般的工程计算或事务处理软件,用表3.1和表和表3.2两两种方法计算出来的种方法计算出来的FP值应该基本上相同值应该基本上相同n对于比较复杂的软件系统对于比较复杂的软件系统 FP比比FPs的值高的值高20%35%面向功能的度量的优缺点面向功能的度量的优缺点优点优点与程序设计语言无关,与程序设计语言无关,它不仅适用于过程式语它不仅适用于过程式语言,也适用于非过程式的语言言,也适用于非过程式的语言;软件项目开发初期就能基本上确定系统的输入、软件项目开发初期就能基本上确定系统的输入、输出等参数,功能点度量能用于软件项目的开输出等参数,功能点度量能用于软件项目的开发初期。发初期。缺点缺点它涉及到的主
15、观因素比较多,如各种权函数的它涉及到的主观因素比较多,如各种权函数的取值;取值;信息领域中的某些数据有时不容易采集;信息领域中的某些数据有时不容易采集;FPFP的值没有直观的物理意义。的值没有直观的物理意义。3.1.1.4 代码行度量与功能点度量的比较代码行度量与功能点度量的比较n代码行度量依赖于程序设计语言,而功能点度代码行度量依赖于程序设计语言,而功能点度量不依赖于程序设计语言。量不依赖于程序设计语言。nAlbrecht和和Jones等人对若干软件采用事后处理等人对若干软件采用事后处理的方式分别统计出不同程序设计语言每个功能的方式分别统计出不同程序设计语言每个功能点与代码行数的关系,用点与
16、代码行数的关系,用LOC/FP的平均值表示。的平均值表示。n表表3.3表明,表明,一行一行Ada语言代码的语言代码的“功能功能”平均平均是一行是一行FORTRAN语言代码语言代码“功能功能”的的1.4倍。倍。一行四代语言代码的一行四代语言代码的“功能功能”平均是一行传统平均是一行传统程序设计语言代码程序设计语言代码“功能功能”的的3至至5倍。倍。表表3.3 各种语言的各种语言的LOC/FP(平均值平均值)程序设计语言程序设计语言 LOC/FP(平均值平均值)汇编语言汇编语言 300COBOL 100FORTRAN 100Pascal 90Ada 70面向对象的语言面向对象的语言 30四代语言四
17、代语言(4GL)20代码生成器代码生成器 15 3.1.2软件复杂性度量软件复杂性度量1976年年 T.J.McCabe McCabeMcCabe度量法又称环路复杂性度量度量法又称环路复杂性度量,基于程序控制基于程序控制结构的软件复杂性度量模型。结构的软件复杂性度量模型。程序控制结构图程序控制结构图 n程序结构对应于有一个入口结点和一个出口结点的有向图程序结构对应于有一个入口结点和一个出口结点的有向图n图中每个结点对应一个语句或一个顺序流程的程序代码块图中每个结点对应一个语句或一个顺序流程的程序代码块n弧对应于程序中的转移弧对应于程序中的转移n它它,因此计算它,因此计算它先要画出程序图。先要画
18、出程序图。n程序图是退化的程序流程图。流程图中每个处理都退化成程序图是退化的程序流程图。流程图中每个处理都退化成一个结点,流线变成连接不同结点的有向弧。一个结点,流线变成连接不同结点的有向弧。McCabeMcCabe度量法度量法 McCabe用程序控制结构图的用程序控制结构图的巡回秩数巡回秩数V(G)作作为程序结构复杂性的度量为程序结构复杂性的度量 V(G)=e-n+2 其中:其中:e为结构图的边数为结构图的边数 n为结构图的结点数为结构图的结点数 可以证明可以证明 V(G)等于结构图中有界或无界的封等于结构图中有界或无界的封闭区域个数闭区域个数例例3.1计算计算程序控制结构的程序控制结构的V
19、(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例例3.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.示例:示例:在前面的例示中,n11,m13,V(G)mnp131113.p1nMcCabe建议把建议把V(G)作为模块规模的定量指标,作为模块规模的定量指标,
20、一个模块一个模块V(G)的值不要大于的值不要大于10 n当当V(G)10时,模块内部结构就会变得复杂,给时,模块内部结构就会变得复杂,给编码和测试带来困难。编码和测试带来困难。n这种度量的缺点是:这种度量的缺点是:对于不同种类的控制流的复杂性不能区分对于不同种类的控制流的复杂性不能区分 简单简单IF语句语句与与循环语句循环语句的复杂性同等看待的复杂性同等看待 嵌套嵌套IF语句语句与与简单简单CASE语句语句的复杂性是的复杂性是一样的一样的 模块间接口模块间接口当成当成一个简单分支一个简单分支一样处理一样处理 一个一个具有具有1000行的顺序程序行的顺序程序与与一行语句一行语句的复杂性相同的复杂
21、性相同3.2 软件项目计划与估算软件项目计划与估算3.2.1 3.2.1 软件项目计划软件项目计划3.2.2 软件项目估算软件项目估算常用的估算方法常用的估算方法参照已经完成的类似项目估算待开发项目的成本和工作参照已经完成的类似项目估算待开发项目的成本和工作量。量。将大的项目分解成若干子项目,在估算出每个子项目成将大的项目分解成若干子项目,在估算出每个子项目成本和工作量之后,再估算整个项目。本和工作量之后,再估算整个项目。将软件项目按软件生存周期分解,分别估算出软件项目将软件项目按软件生存周期分解,分别估算出软件项目在软件开发各个阶段的工作量和成本,然后再把这些工在软件开发各个阶段的工作量和成
22、本,然后再把这些工作量和成本汇总估算整个项目。作量和成本汇总估算整个项目。根据实验或历史数据给出软件项目工作量或成本的经验根据实验或历史数据给出软件项目工作量或成本的经验估算公式。估算公式。n四种方法可以同时、单独或组合使用,以便取长四种方法可以同时、单独或组合使用,以便取长补短,提高项目估算的精度和可靠性。补短,提高项目估算的精度和可靠性。n采用采用分解技术分解技术估算软件项目应考虑系统集成时需估算软件项目应考虑系统集成时需要的工作量。要的工作量。n为了实现软件项目估算,实践中开发了大量的软为了实现软件项目估算,实践中开发了大量的软件项目件项目自动估算工具自动估算工具,用以支持软件工作量或成
23、,用以支持软件工作量或成本估算。本估算。n分解技术分解技术采用采用”分而治之分而治之”的策略进行软件项目估算的策略进行软件项目估算.将项目分将项目分解为若干个主要的功能及相关的软件工程活动解为若干个主要的功能及相关的软件工程活动,通通过逐步求精的方式进行成本及工作量估算。过逐步求精的方式进行成本及工作量估算。n经验估算模型经验估算模型可用于补充分解技术可用于补充分解技术n自动估算工具自动估算工具实现一种或多种分解技术或经验模型,与人机交互实现一种或多种分解技术或经验模型,与人机交互结合,自动估算将是很好的选择。结合,自动估算将是很好的选择。3.2.2.1 3.2.2.1 代码行、功能点和工作量
24、估算代码行、功能点和工作量估算n软件项目的规模是影响软件项目成本和工作量的软件项目的规模是影响软件项目成本和工作量的重要因素。重要因素。n软件项目软件项目代码行和功能点估算是成本和工作量估代码行和功能点估算是成本和工作量估算的基础。算的基础。n采用上面的估算方法可以估算出采用上面的估算方法可以估算出LOCLOC或或FPFP的的乐观值乐观值a a,悲观值悲观值b b和和一般值一般值m m,然后根据下列加权公式计然后根据下列加权公式计算出期望值算出期望值 e=(ae=(a4m4mb)b)6 6 希望希望LOCLOC或或FPFP的值落在区间的值落在区间a,ba,b之外的概率极小之外的概率极小 n当当
25、LOC或或FP的期望值估算出来之后,根据以前软的期望值估算出来之后,根据以前软件项目开发的平均生产率件项目开发的平均生产率LOC/PM或或FP/PM就可就可以计算出工作量。以计算出工作量。n如,软件项目的规模估算为如,软件项目的规模估算为310FP,以前完成的以前完成的软件项目的生产率为软件项目的生产率为5.5FP/PM,于是工作量估算于是工作量估算为为E=310/5.5=56PM。例例 3.2 估算计算机辅助设计软件项目估算计算机辅助设计软件项目将将CAD项目按功能分解为七个子项目项目按功能分解为七个子项目用户界面和控制;用户界面和控制;二维几何分析;二维几何分析;三维几何分析;三维几何分析
展开阅读全文