第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.1工作量估算工作量估算13.2进度计划进度计划13.3人员组织人员组织13.4 软件配置管理软件配置管理13.6能力成熟度模型能力成熟度模型13.7小小 结结13.8质量保证质量保证13.5 13.1.1 13.1.1 代码行技术代码行技术 代码行技术是比较简单的定量估算软代码行技术是比较简单的定量估算软件规模的方法。这种方法根据以往开发类件规模的方法。这种方法根据以往开发类似
2、产品的经验和历史数据,估计实现一个似产品的经验和历史数据,估计实现一个功能需要的源程序行数。功能需要的源程序行数。由多名有经验的软件工程师分别作出估计。由多名有经验的软件工程师分别作出估计。每个人都估计程序的每个人都估计程序的最小规模最小规模(a)(a)、最大规最大规模模(b)(b)和和最可能的规模最可能的规模(m)(m),分别算出这三种,分别算出这三种规模的平均值规模的平均值a a,b b,和,和m m之后,再用下式计之后,再用下式计算程序规模的估计值:算程序规模的估计值:64bmaL 13.1.2 13.1.2 功能点技术功能点技术 功能点技术依据对软件信息域特性和功能点技术依据对软件信息
3、域特性和软件复杂性的评估结果,估算软件规模。软件复杂性的评估结果,估算软件规模。这种方法用功能点这种方法用功能点(FP)(FP)为单位,度量软件为单位,度量软件的规模。的规模。1.1.信息域特性信息域特性 功能点技术定义了信息域的功能点技术定义了信息域的5 5个特性,个特性,分别是分别是输入项数输入项数(Inp(Inp)、输出项数、输出项数(Out)(Out)、查询数查询数(Inq(Inq),主文件数,主文件数(Maf)和和外部接口外部接口数数(Inf)。2.2.估算功能点的步骤估算功能点的步骤 用下述三个步骤,可以估算出一个软用下述三个步骤,可以估算出一个软件的功能点数件的功能点数(即软件规
4、模即软件规模)。(1)(1)计算未调整的功能点数计算未调整的功能点数UFPUFP 首先,把产品信息域的每个特性首先,把产品信息域的每个特性(即即InpInp、OutOut、InqInq、MafMaf和和InfInf)都分类成简单都分类成简单级、平均级或复杂级。级、平均级或复杂级。根据其等级,为每个特性都分配一个根据其等级,为每个特性都分配一个功能点数,例如,一个平均级的输入项分功能点数,例如,一个平均级的输入项分配配4 4个功能点,一个简单级的输入项是个功能点,一个简单级的输入项是3 3个个功能点,而一个复杂级的输入项分配功能点,而一个复杂级的输入项分配6 6个功个功能点。能点。然后,用下式计
5、算未调整的功能点数然后,用下式计算未调整的功能点数UFPUFP=aUFPUFP=a1 1Inp+aInp+a2 2Out+aOut+a3 3Inq+aInq+a4 4MafMaf+a+a5 5InfInf其中,其中,a ai i(1i5)(1i5)是信息域特性是信息域特性系数,其值由相应特性的复杂级别决定,系数,其值由相应特性的复杂级别决定,如表如表13.113.1所示。所示。(2)(2)计算技术复杂性因子计算技术复杂性因子TCFTCF 这一步将度量这一步将度量1414种技术因素对软件种技术因素对软件规模的影响程度。这些因素包括高处理规模的影响程度。这些因素包括高处理率、性能标准率、性能标准(
6、例如,响应时间例如,响应时间)、联机、联机更新等,在表更新等,在表13.213.2中列出了全部技术因中列出了全部技术因素,并用素,并用F Fi i(1i14)(1i14)代表这些因素。代表这些因素。表 10.2 技术因素序号Fi技术因素1 F1 数据通信2 F2 分布式数据处理3 F3 性能标准4 F4 高负荷的硬件5 F5 高处理率6 F6 联机数据输入7 F7 终端用户效率8 F8 联机更新9 F9 复杂的计算10 F10 可重用性11 F11 安装方便12 F12 操作方便13 F13 可移植性14 F14 可维护性 根据软件特点,为每个因素分配一个根据软件特点,为每个因素分配一个从从0
7、(0(不存在或对软件规模无影响不存在或对软件规模无影响)到到5(5(有有很大影响很大影响)的值。然后,用下式计算技术的值。然后,用下式计算技术因素对软件规模的综合影响程度因素对软件规模的综合影响程度DIDI:141iiFDI 技术复杂性因子技术复杂性因子TCFTCF由下式计算:由下式计算:TCF=0.65+0.01TCF=0.65+0.01DIDI 因为因为DIDI的值在的值在0 07070之间,所以之间,所以TCFTCF的的值在值在0.650.651.351.35之间。之间。(3)(3)计算功能点数计算功能点数FPFP 功能点数功能点数FPFP由下式计算:由下式计算:FP=UFPFP=UFP
8、TCFTCF 功能点数与所用的编程语言无关,因此,功能点数与所用的编程语言无关,因此,功能点技术比代码行技术更合理一些。功能点技术比代码行技术更合理一些。计算机软件估算模型使用由经验导出计算机软件估算模型使用由经验导出的公式来预测软件开发的工作量,的公式来预测软件开发的工作量,工作量工作量是软件规模是软件规模(LOC(LOC或或FP)FP)的函数的函数,工作量的单,工作量的单位通常是人月位通常是人月(pm)(pm)。支持大多数估算模型的经验数据,都支持大多数估算模型的经验数据,都是从有限个项目的样本集中总结出来的,是从有限个项目的样本集中总结出来的,因此,没有一个估算模型能够适用于所有因此,没
9、有一个估算模型能够适用于所有类型的软件和开发环境。类型的软件和开发环境。13.2.1 13.2.1 静态单变量模型静态单变量模型 这类模型的总体结构形式如下:这类模型的总体结构形式如下:E=A+BE=A+B(ev(ev)C C 大多数模型都有某种形式的调整成分,使大多数模型都有某种形式的调整成分,使得得E E能够依据项目的其他特性能够依据项目的其他特性(例如,问题例如,问题的复杂程度、开发人员的经验、开发环境的复杂程度、开发人员的经验、开发环境等等)加以调整。加以调整。下面给出几个典型的静态单变量模型。下面给出几个典型的静态单变量模型。1.1.面向面向LOCLOC的估算模型的估算模型 (1)W
10、alston(1)WalstonFelixFelix模型模型 E=5.2E=5.2(KLOC)(KLOC)0.910.91 (2)Bailey(2)BaileyBasiliBasili模型模型 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模型模型(在在KLOCKLOC9 9的情况下的情况下)E=5.288 E=5.288(KLOC)(KLOC)1.4071.407 2.2.面向面向FPFP的估算模型的估算模型(1)Alb
11、recht&Gaffney(1)Albrecht&Gaffney模型模型E=-13.39+0.0545FPE=-13.39+0.0545FP(2)Kemerer(2)Kemerer模型模型 E=60.62E=60.627.7287.7281313-8-8FPFP3 3(3)Maston(3)Maston、BarnettBarnett和和MellichampMellichamp模型模型 E=585.7+5.12FPE=585.7+5.12FP 13.2.2 13.2.2 动态多变量模型动态多变量模型 动态多变量模型也称为动态多变量模型也称为软件方程式软件方程式,它是根据从它是根据从4000400
12、0多个当代软件项目中收集多个当代软件项目中收集的生产率数据推导出来的。的生产率数据推导出来的。这种模型把工作量看作是软件规模和这种模型把工作量看作是软件规模和开发时间这两个变量的函数。动态多变量开发时间这两个变量的函数。动态多变量估算模型的形式如下:估算模型的形式如下:E=E=LOCLOCB B0.3330.333/P P3 3(1/t)(1/t)4 4 总体的过程成熟度及管理水平;总体的过程成熟度及管理水平;使用良好的软件工程实践的程度;使用良好的软件工程实践的程度;使用的程序设计语言的级别;使用的程序设计语言的级别;软件环境的状态;软件环境的状态;软件项目组的技术及经验;软件项目组的技术及
13、经验;应用应用系统的复杂程度。系统的复杂程度。当开发实时嵌入式软件时,典型值是当开发实时嵌入式软件时,典型值是P=2000P=2000;对于电信和系统软件来说,对于电信和系统软件来说,P=13000P=13000;对于商业系统应用,对于商业系统应用,P=28000P=28000。适用于当前项目的生产率参数,可以从历史适用于当前项目的生产率参数,可以从历史数据导出。数据导出。从从(13.2)(13.2)式可以看出,开发同一个软式可以看出,开发同一个软件件(即即LOCLOC固定固定)的时候,如果把项目持续时的时候,如果把项目持续时间延长一些,则可降低完成项目所需要的间延长一些,则可降低完成项目所需
14、要的工作量。工作量。1997年年Boehm等人提出的等人提出的COCOMO2模型,是原始的模型,是原始的COCOMO模型的修订版,模型的修订版,它反映了十多年来在成本估计方面所积累它反映了十多年来在成本估计方面所积累的经验。的经验。下面以后体系结构模型为例,介绍下面以后体系结构模型为例,介绍COCOMO2COCOMO2模型。该模型把软件开发工作量模型。该模型把软件开发工作量表示成代码行数(表示成代码行数(KLOCKLOC)的非线性函数:)的非线性函数:i=1 每个成本因素都根据它的重要程度和每个成本因素都根据它的重要程度和对工作量影响大小被赋予一定数值(称为对工作量影响大小被赋予一定数值(称为
15、工作量系数)。工作量系数)。(1 1)新增加了新增加了4 4个成本因素,它们个成本因素,它们分别是要求的分别是要求的可重用性、需要的文档可重用性、需要的文档量、人员连续性(即人员稳定程度)量、人员连续性(即人员稳定程度)和多地点开发和多地点开发。这个变化表明,这些。这个变化表明,这些因素对开发成本的影响日益增加。因素对开发成本的影响日益增加。(2 2)略去了原始模型中的略去了原始模型中的2 2个成本个成本因素(计算机切换时间和使用现代程因素(计算机切换时间和使用现代程序设计实践)。现在,开发人员普遍序设计实践)。现在,开发人员普遍使用工作站开发软件,批处理的切换使用工作站开发软件,批处理的切换
16、时间已经不再是问题。时间已经不再是问题。而而“现代程序设计实践现代程序设计实践”已经发展成已经发展成内容更广泛的内容更广泛的“成熟的软件工程实践成熟的软件工程实践”的的概念,并且在概念,并且在COCOMO2工作量方程的指工作量方程的指数数b中考虑了这个因素的影响。中考虑了这个因素的影响。(3 3)某些成本因素(分析员能力、某些成本因素(分析员能力、平台经验、语言和工具经验)对生产平台经验、语言和工具经验)对生产率的影响(即工作量系数最大值与最率的影响(即工作量系数最大值与最小值的比率)增加了,另一些成本因小值的比率)增加了,另一些成本因素(程序员能力)的影响减小了。素(程序员能力)的影响减小了
17、。COCOMO2采用了更加精细得多的采用了更加精细得多的b分级模型,这个模型使用分级模型,这个模型使用5个分级因素个分级因素Wi(1i5),其中每个因素都划分成从甚),其中每个因素都划分成从甚低(低(Wi=5)到特高()到特高(Wi=0)的的6个级别,个级别,然后用下式计算然后用下式计算b的数值:的数值:b=1.01+0.01Wi COCOMO2使用的使用的5个分级因素如下个分级因素如下所述:所述:(1 1)项目先例性。项目先例性。(2 2)开发灵活性。开发灵活性。(3 3)风险排除度。风险排除度。(4 4)项目组凝聚力。项目组凝聚力。(5 5)过程成熟度。过程成熟度。项目管理者的目标是定义全
18、部项目任项目管理者的目标是定义全部项目任务,识别出关键任务,跟踪关键任务的进务,识别出关键任务,跟踪关键任务的进展状况,以保证能及时发现拖延进度的情展状况,以保证能及时发现拖延进度的情况。况。软件计划软件计划最详尽地描述了软件过程,最详尽地描述了软件过程,它包括采用的生命周期模型、开发组织的它包括采用的生命周期模型、开发组织的组织结构、责任分配、管理目标和优先级、组织结构、责任分配、管理目标和优先级、所用的技术和所用的技术和CASECASE工具,以及详细的进度、工具,以及详细的进度、预算和资源分配。预算和资源分配。整个计划的基础是工作整个计划的基础是工作量估算和完成期限估算。量估算和完成期限估
19、算。软件项目的进度安排是一项活动,它软件项目的进度安排是一项活动,它通过把工作量分配给特定的软件工程任务,通过把工作量分配给特定的软件工程任务,并规定完成并规定完成各项任务的起、止日期,从而各项任务的起、止日期,从而将估算的工作量分布于计划好的项目持续将估算的工作量分布于计划好的项目持续期内。期内。13.3.1 13.3.1 估算开发时间估算开发时间 13.3.2 Gantt13.3.2 Gantt图图 GanttGantt图图(甘特图甘特图)是历史悠久、应用广是历史悠久、应用广泛的进度计划工具,下面通过一个非常简泛的进度计划工具,下面通过一个非常简单的例子介绍这种工具。单的例子介绍这种工具。
20、表10.5 各道工序估计需用的时间(小时)工序墙壁刮旧漆刷新漆清理1或32312或4462图图13.1 13.1 旧木板房刷漆工程的旧木板房刷漆工程的GanttGantt图图 为了醒目地表示里程碑,可以在为了醒目地表示里程碑,可以在Gantt图中加上菱形标记,一个菱形代表一个里图中加上菱形标记,一个菱形代表一个里程碑,如图程碑,如图13.2所示。所示。图图13.2 13.2 标有里程碑的标有里程碑的GanttGantt图图 13.3.3 13.3.3 工程网络工程网络 上一小节介绍的上一小节介绍的GanttGantt图能很形象地描图能很形象地描绘任务分解情况,以及每个子任务绘任务分解情况,以及
21、每个子任务(作业作业)的开始时间和结束时间,因此是进度计划的开始时间和结束时间,因此是进度计划和进度管理的有力工具。它具有直观简明和进度管理的有力工具。它具有直观简明和容易掌握、容易绘制的优点,但是和容易掌握、容易绘制的优点,但是GanttGantt图也有三个主要缺点:图也有三个主要缺点:不能显式地描绘各项作业彼此间的不能显式地描绘各项作业彼此间的依赖关系;依赖关系;进度计划的关键部分不明确,难于进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;判定哪些部分应当是主攻和主控的对象;计划中有潜力的计划中有潜力的部分及潜力的大小部分及潜力的大小不明确,往往造成潜力的浪费。不明确,往
22、往造成潜力的浪费。当把一个工程项目分解成许多子任务,当把一个工程项目分解成许多子任务,并且它们彼此间的依赖关系又比较复杂时,并且它们彼此间的依赖关系又比较复杂时,仅仅用仅仅用GanttGantt图作为安排进度的工具是不够图作为安排进度的工具是不够的,不仅难于做出既节省资源又保证进度的,不仅难于做出既节省资源又保证进度的计划,而且还容易发生差错。的计划,而且还容易发生差错。工程网络是制定进度计划时另一种常工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,况以及每项作业的开始时间和结束时间,此外,它还显式地描
23、绘各个作业彼此间的此外,它还显式地描绘各个作业彼此间的依赖关系。依赖关系。因此,工程网络是系统分析和系统设因此,工程网络是系统分析和系统设计的强有力的工具。计的强有力的工具。图图13.3 13.3 旧木板房刷漆工程的工程网络旧木板房刷漆工程的工程网络图中:图中:1212刮第刮第1 1面墙上的旧漆;面墙上的旧漆;2323刮第刮第2 2面墙上的旧漆;面墙上的旧漆;2424给第给第1 1面墙刷新漆;面墙刷新漆;3535刮第刮第3 3面墙上旧漆;面墙上旧漆;4646给第给第2 2面墙刷新漆;面墙刷新漆;4747清理第清理第1 1面墙窗户;面墙窗户;5858刮第刮第4 4面墙上旧漆;面墙上旧漆;6868
24、给第给第3 3面墙刷新漆;面墙刷新漆;7979清理第清理第2 2面墙窗户;面墙窗户;813813给第给第4 4面墙刷新漆;面墙刷新漆;913913清理第清理第3 3面墙窗户;面墙窗户;13111311清理第清理第4 4面墙窗户;面墙窗户;虚拟作业:虚拟作业:3434;5656;6767;8989。在工程网络中的一个事件,如果既有在工程网络中的一个事件,如果既有箭头进入又有箭头离开,则它既是某些作箭头进入又有箭头离开,则它既是某些作业的结束又是另一些作业的开始。业的结束又是另一些作业的开始。例如,图例如,图13.313.3中事件中事件2 2既是作业既是作业1 12(2(刮第刮第1 1面墙上的旧漆
25、面墙上的旧漆)的结束,又是作业的结束,又是作业2 23(3(刮第刮第2 2面墙上旧漆面墙上旧漆)和作业和作业2 24(4(给第给第1 1面墙刷新漆面墙刷新漆)的开始。的开始。也就是说,只有第也就是说,只有第1 1面墙上的旧漆刮完面墙上的旧漆刮完之后,才能开始刮第之后,才能开始刮第2 2面墙上旧漆和给第面墙上旧漆和给第1 1面墙刷新漆这两个作业。因此,工程网络面墙刷新漆这两个作业。因此,工程网络显式地表示了作业之间的依赖关系。显式地表示了作业之间的依赖关系。在图在图13.313.3中还有一些虚线箭头,它们中还有一些虚线箭头,它们表示虚拟作业,也就是事实上并不存在的表示虚拟作业,也就是事实上并不存
展开阅读全文