08软件项目管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件工程北京工业大学·计算机学院·软件系苏航主讲suhang@bjut.edu.cn8软件项目管理软件项目管理软件项目管理概述项目估算进度管理配置管理软件项目管理概述管理目标通常认为,项目成功的标志,也是项目管理人员争取的目标,应该包括以下几个方面:1.达到项目预期的软件产品功能和性能要求——也就是软件产品达到了用户已认可的需求规格说明的要求2.时限要求——项目应在合同规定的期限内完成3.项目开销限制在预算之内管理涉及的范围软件项目管理涉及的几个主要方面是人员、产品、过程和项目,即所谓4P(People、Product、Process、Project)1.人员管理美国卡内基·梅隆大学软件工程研究所的BillCurtis在1994年发表了“人员管理能力成熟度模型”(peoplecapabilitymaturitymodel,P-CMM),该模型力图通过吸引、培养、激励、部署和骋用高水平的人才来提升软件组织的软件开发能力管理涉及的范围人员管理涉及:共利益者,包括:项目的高级管理者:负责项目商务问题的决策项目经理:负责项目的计划与实施以及开发人员的组织与管理开发人员:项目开发的实施者客户:提出需求并代表用户与开发人员交往的人员最终用户:直接使用项目成果(产品)的人员团队负责人,在小项目的情况下,项目经理就是团队负责人。而大型项目也许会有若干个设计、编程团队或是若干个测试团队。团队负责人除去负有团队日常工作的安排、组织和管理之外,还应特别注意发挥团队成员的潜能管理涉及的范围人员管理涉及(续):团队集体,团队内部有分工是必要的,但必须很好地配合,做到步调一致,为此必须强调以下3点:个人的责任心,这是团队完成工作的基本条件互相信任、尊重以及互相支持充分的交流与沟通管理涉及的范围2.产品管理项目经理必须在项目开始时就明确项目的以下3个目标:产品的工作环境产品的功能和性能产品工作处理的是什么数据,经它处理后得到什么数据只有明确了项目的这些基本要求才能着手项目管理的各项工作,如项目估算、风险分析、项目计划的制定等管理涉及的范围3.过程管理过程在软件工程项目中是重要的因素,它决定着项目中开展哪些活动以及对活动的要求和开展活动的顺序4.项目管理项目管理的任务是如何利用已有的资源,组织实施既定的项目,提交给用户适用的产品管理涉及的范围项目管理要开展的主要工作可分为3类:1.计划及计划管理包括项目策划及计划制定、项目估算、风险分析及风险管理、进度管理、计划跟踪与监督2.资源管理包括人员管理(人员安排、使用)、成本管理、信息管理3.成果要求管理包括需求管理、配置管理、质量管理项目估算通常在项目的目标确定和软件基本功能确定之后,就应该着手项目计划的制定工作项目估算是制订计划的基础和依据项目策划与项目估算项目策划是项目开展初期阶段的重要工作,其主要目标是得到项目计划,或者说计划(plan)是策划(planning)的结果项目估算项目策划中需要开展的活动1.确认并分析项目的特征2.选择项目将遵循的生存期模型,确定各阶段的任务3.确定应得到的阶段性工作产品以及最终的产品4.开展项目估算,包括估算产品规模、工作量、成本以及所需的关键计算机资源5.制订项目进度计划6.对项目风险进行分析7.制订项目计划项目估算在项目估算中,要解决的问题是项目实施的几个主要属性,即将要开发产品的规模(size)、项目所需的工作量(effort)以及项目的成本(cost)规模项目的规模指的是得到最终软件产品的大小一般以编程阶段完成以后得到程序的代码行表示,如以1千行代码为单位,记为KLOC,当然,在项目的开始只是对代码行的估计值另一表示方法是功能点,记为FP,它是根据软件需求中的功能估算的项目估算2.工作量项目的工作量按项目将要投入的人工来考虑,以一个人工作一个月为单位,记为“人月”3.成本软件项目的成本通常只考虑投入的人工成本,如某项目投入的总人工费用为12万元项目估算成本计算一个软件组织在完成多个项目以后积累了一些数据,进行成本分析后便可得到自己的生产率数值和人工价格生产率是平均每个人月完成的源程序行数,可记为KLOC/人月或FP/人月人工价则为每人月的价值有了这两个数值,如果在估出项目规模以后就可以很容易得到项目的工作量和成本,即工作量=规模/生产率成本=工作量×人工价项目估算项目估算的功能点方法功能点方法(functionpoint)简称FP方法,该方法克服了项目开始时无法得知源程序行数的实际困难,从软件产品的功能度(functionality)出发估算出软件产品的规模1.功能度功能点方法是以项目的需求规格说明中已经得到确认的软件功能为依据,着重分析要开发系统的功能度,并且认为,软件的大小与软件的功能度相关,而与软件功能如何描述无关,也与功能需求如何设计和实现无关项目估算功能度为具体说明功能点方法,区分各种不同的功能,需要建立应用系统边界的概念应用系统边界把目标应用系统与用户和与其相关的应用系统分割开来内部功能仅限于应用系统的边界之内,而外部功能则是跨边界的项目估算系统边界图中系统A有4项功能都是跨越边界的,称其为外部功能项目估算5种类型的功能:1.外部输入:外部输入处理那些进入应用系统边界的数据或是控制信息经特定的逻辑处理后,形成内部逻辑文件2.外部输出:外部输出处理离开应用系统边界的数据或控制信息3.内部逻辑文件:是用户可识别的逻辑相关数据或控制信息组,它可在应用系统边界之内使用内部逻辑文件代表应用系统可支持的数据存储需求项目估算5种类型的功能:4.外部接口文件外部接口文件是用户可识别的逻辑相关数据或控制信息构成的集合,该控制信息为应用系统所使用,却被另一应用系统所支持外部接口文件代表应用系统外部支持的数据存储需求5.外部查询外部查询是唯一的输入/输出组合,它为实现即时输出引起所需数据的检索外部查询代表了应用系统查询处理的需求项目估算功能复杂性软件项目每类功能的复杂程度可能各不相同,为表明功能复杂性的差别,将其分为简单的、中等的和复杂的3个等级。同时为表示其差异程度,分别给予不同的影响参数下表列出了功能复杂性的影响参数值项目估算未调节功能点只要能够从规格说明中得到了以上5种功能度的各级复杂性功能点的个数C,不难计算出未调节功能点的值i代表功能度类型号;i=1,2,…,5j代表复杂性的等级;j=1,2,3ωij是第i类功能度和第j级复杂性的影响参数,即上表中第i行,第j列的参数值Cij是第i类功能度和第j级复杂度功能点的个数项目估算调节因子任何软件都会有其自身特性,在考虑其各种自身特性时,从以下两个方面分解功能点计算的调节因子1.影响因子,经过对各类软件的分析,综合出以下14种类型的影响因子:数据通信联机更新分布数据处理复杂的处理逻辑性能目标可复用性系统配置要求易安装性事务率易操作性联机数据录入多工作场所最终用户效率设施变更项目估算2.影响级,上述影响因子对软件功能度的影响有多大必须加以区分,于是将影响因子的影响程度分为6级,即0级无影响1级微小影响2级轻度影响3级中度影响4级显著影响5级重大影响综合考虑14类影响因子的影响度N,应是将14种影响叠加起来,其值为0~70(14×5)。由此得到复杂度调节因子(complexityadjustmentfactor,CAF)CAF=0.65+0.01N其值应在0.65~1.35,其中基本调节常数是0.65,可见最大的调节量为35%。项目估算交付功能点经过调节因子调节后的功能点值被称为交付功能点(deliveredfunctionpoint,DFP)DFP=CAF×UFP交付功能点与软件规模一些研究成果表明,上述计算出的功能点的值可以代表软件的规模,也可作为估算成本的依据软件的规模可用交付的源代码行数(deliveredlinesofcode,DLOC)来表示。项目估算功能点与DLOC的对应关系如下表所示1DFP相当于105DLOC(COBOL程序)1DFP相当于128DLOC(C程序)项目估算功能点方法的优点1.DFP只与由规格说明得到的信息相关,而交付代码的行数若不通过功能点计算是不能直接从规格说明中得到的2.DFP与实现软件的语言无关项目估算功能点方法的不足之处1.针对需求规格说明进行分析时,主观因素难以完全排除,这包括:对于规格说明,每人可能有不同的解释对于功能度的复杂性估计也可能因人而异CAF计算时会有主观因素2.非数据处理问题,如实时软件、系统软件、科学计算软件等功能点的上述计算方法并不适用3.DFP的计算目前尚不能借助工具自动完成软件开发成本估算1.专家判定——Delphi方法专家判定技术就是由多位专家进行成本估算,取得多个估算值有多种方法把这些估算值合成一个估算值,Read公司提出了Delphi技术,作为统一专家意见的方法,可得到极为准确的估算值软件开发成本估算标准Delphi技术的步骤:1.组织者发给每位专家一份软件系统的规格说明书(略去名称和单位)和一张记录估算值的表格,请他们进行估算2.专家详细研究软件规格说明书的内容,然后组织者召集小组会议,在会上,专家们与组织者一起对估算问题进行讨论软件开发成本估算标准Delphi技术的步骤:3.各位专家对该软件提出3个软件规模的估算值,即ai:该软件可能的最小规模(最少源代码行数)mi:该软件最可能的规模(最可能的源代码行数)bi:该软件可能的最大规模(最多源代码行数)无记名地填写表格,并说明做此估算的理由软件开发成本估算标准Delphi技术的步骤:4.组织者对各位专家在表中填写的估算值进行综合和分类,做以下事情:计算各位专家(序号为i,i=1,2,…,n)的估算期望值Ei和估算值的期望中值E对专家的估算结果进行分析软件开发成本估算标准Delphi技术的步骤:5.组织者召集会议,请专家们对其估算值有很大差异之处进行讨论。专家对此估算值另做一次估算6.在综合专家估算结果的基础上,组织专家再次无记名地填写表格从步骤4到步骤6适当重复几次,最终可获得一个得到多数专家共识的软件规模(源代码行数)最后,通过与历史资料进行类比,根据过去完成项目的规模和成本等信息,推算出该软件每行源代码所需成本。然后再乘以该软件源代码行数的估算值,得到该软件的成本估算值软件开发成本估算2.COCOMO模型软件工程专家BarryBoehm在其著作《软件工程经济学》中提出了软件估算模型层次结构,称为构造式成本模型COCOMO(COnstructiveCostMOdel),也许这是在软件界影响最为广泛、最为著名的估算模型软件开发成本估算COCOMO是针对Boehm划分的3种类型软件进行估算的1.固有型(organicmode)项目规模较小,较为简单的项目,开发人员对项目有较好的理解和较为丰富的工作经验2.嵌入型(embeddedmode)项目这类项目的开发工作紧密地与系统中的硬件、软件和运行限制联系在一起,如飞机的飞行控制软件3.半独立性(semi-detachedmode)项目项目的性质介于上述两个类型之间,其规模与复杂性均属中等,如事务处理系统,数据库管理系统等软件开发成本估算COCOMO的3级模型1.基本COCOMO模型(basicmodel)该模型为静态、单变量,以估算出的源代码行数计算开发工作量(人月)其中,KLOC为交付的千行代码数。ab、bb为模型系数开发周期(月)基本COCOMO模型系数如下表所示软件开发成本估算2.中级COCOMO模型(intermediate)该模型除考虑源代码行数外,还考虑调节因子(EAF),用其体现产品、软件、人员和项目等因素开发工作量系数软件开发成本估算调节因子EAF(effortadjustmentfactor),包含了4类15种属性,其值为0.7~1.6软件开发成本估算3.高级COCOMO模型(adva

1 / 88
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功