第13章软件项目管理方案.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第13章软件项目管理方案.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 软件 项目 管理 方案
- 资源描述:
-
1、第第13章章 软件项目管理软件项目管理13.1 估算软件规模估算软件规模13.2 工作量估算工作量估算13.3 进度计划进度计划13.4 人员组织人员组织13.5 质量保证质量保证13.6 软件配置管理软件配置管理13.7 能力成熟度模型能力成熟度模型13.8 小结小结依据以往开发类似产品的经验和历史数据,估计实依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数。现一个功能所需要的源程序行数。把实现每个功能所需要的源程序行数累加起来,就把实现每个功能所需要的源程序行数累加起来,就可得到实现整个软件所需要的源程序行数。可得到实现整个软件所需要的源程序行数。13.1 13.1
2、 估算软件规模估算软件规模 13.1.1 13.1.1 代码行技术代码行技术由多名有经验的软件工程师分别做出估计。由多名有经验的软件工程师分别做出估计。每个人都估计程序的最小规模每个人都估计程序的最小规模(a)(a)、最大规模、最大规模(b)(b)和和最可能的规模最可能的规模(m)(m),分别算出这,分别算出这3 3种规模的平均值种规模的平均值,再用下式计算程序规模的估计值:再用下式计算程序规模的估计值:L=L=(13.1)(13.1)单位是代码行数(单位是代码行数(LOCLOC)或千行代码数(或千行代码数(KLOCKLOC)64bma 代码行技术的优点代码行技术的优点:代码是所有软件开发项目
3、都有代码是所有软件开发项目都有的的“产品产品”,且容易计算行数。,且容易计算行数。代码行技术的缺点是:代码行技术的缺点是:源程序仅是软件配置的一源程序仅是软件配置的一个成分。个成分。为了克服代码行技术的缺点,人们提出了功能点技为了克服代码行技术的缺点,人们提出了功能点技术。术。依据软件信息域特性和软件复杂性,用功能点(依据软件信息域特性和软件复杂性,用功能点(FPFP)为单位度量软件规模。为单位度量软件规模。1.1.信息域特性信息域特性功能点技术定义了信息域的功能点技术定义了信息域的5 5个特性个特性:输入项数输入项数(Inp)(Inp)、输出项数、输出项数(Out)(Out)、查询数、查询数
4、(Inq)(Inq)、主文件数、主文件数(Maf)(Maf)和外部接口数和外部接口数(Inf)(Inf)。(1 1)输入项数:输入项数:用户向软件输入的项数,这些输用户向软件输入的项数,这些输入给软件提供面向应用的数据。入给软件提供面向应用的数据。13.1.2 13.1.2 功能点技术功能点技术(2 2)输出项数:输出项数:软件向用户输出的项数,它们软件向用户输出的项数,它们向用户提供面向应用的信息,例如,报表和出错信向用户提供面向应用的信息,例如,报表和出错信息等。报表内的数据项不单独计数。息等。报表内的数据项不单独计数。(3 3)查询数:查询数:查询即是一次联机查询即是一次联机输入输入,它
5、导致,它导致软件产生某种即时响应软件产生某种即时响应(输出输出)。(4 4)主文件数:主文件数:逻辑主文件(即数据的一个逻逻辑主文件(即数据的一个逻辑组合,它可能是大型数据库的一部分或是一个独辑组合,它可能是大型数据库的一部分或是一个独立的文件)的数目。立的文件)的数目。(5 5)外部接口数:外部接口数:机器可读的全部接口(例如,机器可读的全部接口(例如,磁盘或磁带上的数据文件)的数量,用这些接口把磁盘或磁带上的数据文件)的数量,用这些接口把信息传送给另一个系统。信息传送给另一个系统。2.2.估算功能点的步骤估算功能点的步骤用下述用下述3 3个步骤,可估算出一个软件的功能点数个步骤,可估算出一
6、个软件的功能点数(即软件规模)。(即软件规模)。FP=UFPFP=UFPTCFTCF(1 1)计算未调整的功能点数计算未调整的功能点数UFPUFP每个特性每个特性(即即InpInp、OutOut、InqInq、MafMaf和和Inf)Inf)都分类为简都分类为简单级、平均级或复杂级单级、平均级或复杂级UFP=aUFP=a1 1Inp+aInp+a2 2Out+aOut+a3 3Inq+aInq+a4 4Maf+aMaf+a5 5InfInf其中,其中,a ai i(1i5)(1i5)是特性系数,其值由相应特性的是特性系数,其值由相应特性的复杂级别决定,如表复杂级别决定,如表13.113.1单击
7、此处编辑母版标题样式单击此处编辑母版标题样式 单击此处编辑母版副标题样式单击此处编辑母版副标题样式(2)(2)计算技术复杂性因子计算技术复杂性因子TCFTCF1414种技术因素种技术因素F Fi i(1i14)(1i14)对软件规模的影响程度。对软件规模的影响程度。每个因素分配一个从每个因素分配一个从0 0(无影响)到(无影响)到5 5(有很大影响)(有很大影响)DI=DI=值在值在070070之间之间技术复杂性因子技术复杂性因子TCFTCF由下式计算:由下式计算:TCF=0.65+0.01TCF=0.65+0.01DIDI(3)(3)计算功能点数计算功能点数FPFPFP=UFPFP=UFPT
8、CFTCF功能点数与所用的编程语言无关。在判断信息域特功能点数与所用的编程语言无关。在判断信息域特性复杂级别和技术因素的影响程度时,存在着相当性复杂级别和技术因素的影响程度时,存在着相当大的主观因素。大的主观因素。141iiF软件估算模型由经验导出的公式来预测软件开发工软件估算模型由经验导出的公式来预测软件开发工作量,工作量是软件规模(作量,工作量是软件规模(KLOCKLOC或或FPFP)的函数,)的函数,工作量的单位通常是人月(工作量的单位通常是人月(pm)pm)。估算模型的经验数据,是从有限个项目的样本集中估算模型的经验数据,是从有限个项目的样本集中总结出来的,因此,没有一个估算模型可以适
9、用于总结出来的,因此,没有一个估算模型可以适用于所有类型的软件和开发环境。所有类型的软件和开发环境。13.2 13.2 工作量估算工作量估算这类模型的总体结构形式如下:这类模型的总体结构形式如下:E=A+BE=A+B(ev)(ev)C C其中,其中,A A、B B和和C C是由经验数据导出的常数,是由经验数据导出的常数,E E是以是以人月为单位的工作量,人月为单位的工作量,evev是估算变量(是估算变量(KLOCKLOC或或FPFP)。下面给出几个典型的静态单变量模型。)。下面给出几个典型的静态单变量模型。1.1.面向面向FPFP的估算模型的估算模型 (1)Albrecht&Gaffney(1
10、)Albrecht&Gaffney模型模型E=-13.39+0.0545FPE=-13.39+0.0545FP(2)Maston,Barnett(2)Maston,Barnett和和MellichampMellichamp模型模型E=585.7+15.12FPE=585.7+15.12FP13.2.1 13.2.1 静态单变量模型静态单变量模型2.2.面向面向KLOCKLOC的估算模型的估算模型(1)Walston_Felix(1)Walston_Felix模型模型E=5.2E=5.2(KLOC)(KLOC)0.910.91(2)Bailey_Basili(2)Bailey_Basili模型模
11、型E=5.5+0.73E=5.5+0.73(KLOC)(KLOC)1.161.16(3)Boehm(3)Boehm简单模型简单模型E=3.2E=3.2(KLOC)(KLOC)1.051.05(4)Doty(4)Doty模型(在模型(在KLOC9KLOC9时适用)时适用)E=5.288E=5.288(KLOC)(KLOC)1.0471.047对于相同的对于相同的KLOCKLOC或或FPFP值,用不同模型估算将得出值,用不同模型估算将得出不同的结果。不同的结果。主要原因是,这些模型多数都是仅根据若干应用领主要原因是,这些模型多数都是仅根据若干应用领域中有限个项目的经验数据推导出来的,适用范围域中有
12、限个项目的经验数据推导出来的,适用范围有限。有限。因此,必须根据当前项目的特点选择适用的估算模因此,必须根据当前项目的特点选择适用的估算模型,并且根据需要适当地调整(例如,修改模型常型,并且根据需要适当地调整(例如,修改模型常数)估算模型。数)估算模型。动态多变量模型是根据从动态多变量模型是根据从40004000多个当代软件项目多个当代软件项目中收集的生产率数据推导出来的。中收集的生产率数据推导出来的。工作量是软件规模和开发时间这两个变量的函数。工作量是软件规模和开发时间这两个变量的函数。E=(LOCE=(LOCB B0.3330.333/P)/P)3 3(1/t)(1/t)4 4(13.2)
13、(13.2)E E是以人月或人年为单位的工作量;是以人月或人年为单位的工作量;t1t1是以月或年为单位的项目持续时间;是以月或年为单位的项目持续时间;B B是特殊技术因子,它随着规模和要求的增加而缓是特殊技术因子,它随着规模和要求的增加而缓慢增加慢增加:小的程序小的程序(KLOC=515)(KLOC=515),B=0.16,B=0.16,超过超过70 70 KLOCKLOC的程序,的程序,B=0.39;B=0.39;P P是生产率参数是生产率参数 (2000-30000)(2000-30000)13.2.2 13.2.2 动态多变量模型动态多变量模型P P生产率参数,反映了下述因素对工作量的影
14、响:生产率参数,反映了下述因素对工作量的影响:总体过程成熟度及管理水平;总体过程成熟度及管理水平;使用良好的软件工程实践的程度;使用良好的软件工程实践的程度;使用的程序设计语言的级别;使用的程序设计语言的级别;软件环境;软件环境;软件项目组的技术及经验;软件项目组的技术及经验;应用系统的复杂程度。应用系统的复杂程度。开发实时嵌入式软件时开发实时嵌入式软件时:P=2000:P=2000;电信系统和系;电信系统和系统软件时统软件时:P=10000:P=10000;商业应用系统;商业应用系统:P=28000:P=28000。如果把如果把项目持续时间延长一些,则可降低完成项目项目持续时间延长一些,则可
15、降低完成项目所需的工作量。所需的工作量。构造性成本模型构造性成本模型:COCOMOCOCOMO(COnstructive COst COnstructive COst Model)Model)。19811981年年BoehmBoehm在在软件工程经济学软件工程经济学中中首次提出了首次提出了COCOMOCOCOMO模型。模型。19971997年年BoehmBoehm等人提等人提出的出的COCOMO2COCOMO2,修订了,修订了COCOMOCOCOMO。3 3个层次的软件开发工作量估算模型:个层次的软件开发工作量估算模型:(1)(1)应用系统组成模型用于估算构建原型的工作量。应用系统组成模型用于
16、估算构建原型的工作量。(2)(2)早期设计模型适用于体系结构设计阶段。早期设计模型适用于体系结构设计阶段。(3)(3)后体系结构模型适用于完成体系结构设计之后后体系结构模型适用于完成体系结构设计之后的软件开发阶段。的软件开发阶段。13.2.3 COCOMO213.2.3 COCOMO2模型模型后体系结构模型软件开发工作量函数:后体系结构模型软件开发工作量函数:E=E=(13.3)(13.3)E E是开发工作量(以人月为单位),是开发工作量(以人月为单位),a a是模型系数,是模型系数,KLOCKLOC是估计的源代码行数(以千行为单位),是估计的源代码行数(以千行为单位),b b是模型指数,是模
17、型指数,f fi i(i=117)(i=117)是成本因素,见下表。是成本因素,见下表。171iibfKLOCa(1 1)新增加了新增加了4 4个成本因素个成本因素:要求的可重用性、需要求的可重用性、需要的文档量、人员连续性(即人员稳定程度)和多要的文档量、人员连续性(即人员稳定程度)和多地点开发。地点开发。(2 2)略去了原始模型中的略去了原始模型中的2 2个成本因素(计算机个成本因素(计算机切换时间和使用现代程序设计实践)。切换时间和使用现代程序设计实践)。(3 3)某些成本因素(分析员能力、平台经验、语某些成本因素(分析员能力、平台经验、语言和工具经验)对生产率的影响(即工作量系数最言和
18、工具经验)对生产率的影响(即工作量系数最大值与最小值的比率)增加了,另一些成本因素大值与最小值的比率)增加了,另一些成本因素(程序员能力)的影响减小了。(程序员能力)的影响减小了。COCOMO2COCOMO2采用了更加精细得多的采用了更加精细得多的b b分级模型,这分级模型,这个模型使用个模型使用5 5个分级因素个分级因素Wi(1i5):Wi(1i5):划分成从甚划分成从甚低(低(Wi=5)Wi=5)到特高到特高 (Wi=0)Wi=0)的的6 6个级别个级别b=b=(13.4)(13.4)b b的取值范围为的取值范围为1.011.261.011.26。5 5个分级因素如下所述:个分级因素如下所
19、述:(1 1)项目先例性项目先例性:该项目的新奇程度。该项目的新奇程度。(2 2)开发灵活性开发灵活性:约束多少。约束多少。(3 3)风险排除度风险排除度:重大风险已被消除的比例。重大风险已被消除的比例。(4 4)项目组凝聚力项目组凝聚力:开发人员相互协作度。开发人员相互协作度。(5 5)过程成熟度过程成熟度:按照能力成熟度模型(见按照能力成熟度模型(见13.713.7节)节)5101.101.1iiW目的目的:保证项目按时完成保证项目按时完成影响工期的因素影响工期的因素:工作量工作量,资源资源(人力人力,设备设备),),项目特点项目特点方法方法:把项目分解成许多小任务以利于估计把项目分解成许
20、多小任务以利于估计,执行执行,监控监控难点难点:根据项目根据项目,合理分配任务合理分配任务,优化使用资源优化使用资源,留有余地留有余地工具工具:经验模型经验模型,GANTTGANTT图图,工程网络工程网络项目管理者必须定义全部项目任务,识别出关键任务,项目管理者必须定义全部项目任务,识别出关键任务,跟踪关键任务的进展状况。跟踪关键任务的进展状况。制定一个详细的进度表,监督项目进度并控制整个项目。制定一个详细的进度表,监督项目进度并控制整个项目。13.3 13.3 进度计划进度计划 什么是项目网络图?项目网络图是项目的所有活动以及它们之间逻辑关系或排序的图形显示。项目网络图是活动排序的输出,它有
21、以下作用:(1)能表示项目活动,并表示活动之间的依赖关系。(2)表明项目活动将以什么顺序继续。(3)在进行工期估计时,表明项目将需要多长时间。(4)当改变某项活动工期时,表明项目工期将如何变化。项目网络图有两种表示形式:(1)前导图法(PDM:Precedence Diagramming Method)(2)箭线图法(ADM:Arrow Diagramming Method)甲项目中包含的活动清单、各个活动的历时以及活动间的依赖关系如下:各活动的依赖关系:各活动的依赖关系:A、B、C可以同时开始;D必须在A完成后开始;E、F必须在B完成后开始;G必须在C完成后开始;H必须在D、E完成后开始;I
22、必须在G完成后开始;J必须在F、H、I完成后开 始。活动历时估计是根据任务分解中定义的项目活动和项目活动清单来估计完成这些项目所需要的工期。工期包括一项活动所消耗的实际工作时间 加上间歇时间。在活动定义、活动排序、和活动历时估计的基础上,综合各个项目活动的开始和结束日期、最终的活动顺序以及工期来确定项目的总体进度计划。甘特图甘特图,通过日历形式列出项目活动及其相 应的开始和结束日期,它为反映项目进度信 息提供了一种标准形式。下图是用下图是用PROJECTPROJECT制作的甲项目的最简单的一个甘特图制作的甲项目的最简单的一个甘特图早期的甘特图的最大缺点是通常不反映依赖关系,早期的甘特图的最大缺
23、点是通常不反映依赖关系,但是如果在但是如果在ProjectProject上建立了依赖关系,这种依赖关系会自动显上建立了依赖关系,这种依赖关系会自动显示在甘特图上。示在甘特图上。使用项目管理软件可以创建更为复杂的甘特图使用项目管理软件可以创建更为复杂的甘特图 跟踪甘特图可以用来评价项目的进展跟踪甘特图可以用来评价项目的进展注意:任务用两种水平横线表示。下部表示计划历史(基准计划历史);上部表示实际历史。由于跟踪甘特图是建立在实际开始与完成日期的基础之上,将计划与实际的项目进度信息进行比较,所以,项目经理可以用它来监控单个任务和整体项目的进展情况。甘特图与网络图的比较l 甘特图甘特图在进度报告中很
24、有效在进度报告中很有效在作管理陈述时易于读懂和使用。在作管理陈述时易于读懂和使用。作为计划编制工具不是太强。作为计划编制工具不是太强。没有表示活动间的逻辑关系。没有表示活动间的逻辑关系。l 网络图网络图表明活动和事件间的相互关系。表明活动和事件间的相互关系。识别关键路径,项目历程和活动排序。识别关键路径,项目历程和活动排序。表明工作流程。表明工作流程。帮助编制计划和组织工作。帮助编制计划和组织工作。查找关键路径实例:使用箭线图来确定关键路径。使用前导图来确定关键路径。单个软件开发人员无法在给定期限内完成软件项目,单个软件开发人员无法在给定期限内完成软件项目,因此,必须把多名软件开发人员合理地组
25、织起来,因此,必须把多名软件开发人员合理地组织起来,使他们有效地分工协作共同完成开发工作。使他们有效地分工协作共同完成开发工作。3 3种典型的组织方式种典型的组织方式:民主制程序员组、主程序员民主制程序员组、主程序员组和现代程序员组。组和现代程序员组。13.4 13.4 人员组织人员组织民主制程序员组民主制程序员组:小组成员完全平等小组成员完全平等,通信信道共有通信信道共有n(n-1)/2n(n-1)/2条。条。程序设计小组的规模应该以程序设计小组的规模应该以2 28 8名成员为宜。名成员为宜。优点优点:组员们对发现程序错误持积极的态度,这种组员们对发现程序错误持积极的态度,这种态度有助于更快
展开阅读全文