第11章 软件项目管理_第1页
第11章 软件项目管理_第2页
第11章 软件项目管理_第3页
第11章 软件项目管理_第4页
第11章 软件项目管理_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件项目管理,11,第十一章,高等教育出版社高等教育电子音像出版社,项目管理是广泛应用于各种工程、金融等技术管理过程,管理的好坏决定了工程的成败。软件及IT行业,尤其是软件产品的特殊性,软件项目管理对于保证软件产品的质量具有极为重要的作用,是决定一个产品或企业能否成功的最重要的指标。,11.1软件项目管理概述,不可见性不确定性人员流动性,11.1软件项目管理概述,随着软件的规模和复杂度的不断增大,开发人员的增加以及开发时间的增长,这些都增加了软件项目管理的难度。例如:Windows2000的开发是微软公司历史上最艰巨的任务,仅核心部门的的成员就有2500人,测试用的代码就有1000万行,测试中所用到的脚本程序就有6500种规模如此之大的软件系统,如果没有科学、规范的、有效的管理,是不可能成功的。因此软件项目管理成为软件工程的重要研究内容之一。,11.1.1软件项目管理的任务,过程(process),人员(people),工具(tools),项目(Project),一、软件项目管理的“4P”,二、软件项目管理过程,软件项目管理,是对整个软件生存周期的所有活动进行管理。主要过程包括:1.项目启动确定系统范围、组建项目团队、建立项目环境。2.项目规划确定项目活动、项目成本估算、制定进度计划3.项目实施监控项目执行、管理项目风险、控制项目变更4.项目收尾项目验收、软件安装培训、项目总结,11.1.1软件项目管理的任务,11.1.1软件项目管理的任务,三、软件项目管理与过程管理的关系,软件项目管理用于保证项目目标的成功实现,过程管理用于辅助项目管理,将最佳的项目实践用于软件开发过程。,11.1.2项目管理的主要活动,软件项目的规划人员的组织管理软件风险管理软件配置管理,包括:可行性分析软件成本估算软件计划,11.1.2项目管理的主要活动,包括:人员配备原则人员配备模式软件团队建设软件项目沟通活动,软件项目的规划人员的组织管理软件风险管理软件配置管理,11.1.2项目管理的主要活动,包括:风险识别风险分析风险规划风险监控,软件项目的规划人员的组织管理软件风险管理软件配置管理,11.1.2项目管理的主要活动,是为了有效地控制和管理软件开发过程中的变化,进行标识、组织和控制修改的技术。配置管理活动:配置项的标识版本管理系统构建变更控制,软件项目的规划人员的组织管理软件风险管理软件配置管理,11.2成本估算技术,成本估算是可行性分析的重要依据,也是软件管理的重要内容,直接影响到软件开发的风险。软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价,即主要是人的劳动的消耗。以软件计划、需求分析、设计、编码到测试的软件开发全过程所花费的代价为依据。一个大型、复杂的项目,成本估算并不是一件简单的事,必须建立相应的估算模型,按照一定的方法、技术来进行估算。,一、影响成本估算的因素1.软件人员的业务水平2.软件产品的规模及复杂度规模:按YOURDON分类法分为超小型、小型、中型、大型、超大型、极大型。复杂度:应用程序,实用程序,系统程序低高,3.开发所需时间对确定规模、复杂度的软件存在一个”最佳开发时间”。4.软件开发技术水平指开发方法、工具、语言等,技术水平高,效率高。5.软件可靠性要求可靠性要求愈高,成本愈高。,11.2成本估算技术,11.2成本估算技术,二、软件成本的估算量源代码行(LOC)机器指令行/非机器语言的执行步开发工作量人-月(PM)人-年(PY)人-日(PD)软件生产率LOG/PM¥/LOC¥/PM软件开发时间,其中:ai估计的最小行数bi估计的最大行数mi最可能的行数,11.2.1专家估算模型又称为源代码行估算模型(Deiphi技术)。由Rand公司提出的Deiphi技术,是由n位专家进行成本估算。每位专家根据系统规格说明书,反复讨论给出ai、bi及mi的值,并按照下式反复估算源代码的期望值Li,期望中值L。,将估算的源代码行数,乘以根据经验推算的每行源代码所需成本,即为该软件的成本。,11.2.2IBM估算模型1977年由Walston和Felix总结了IBM联合系统分部(FSD)负责的个项目的数据,利用最小二乘法拟合,得到如下估算公式:工作量:E=5.2*L(PM)项目持续时间:D=4.1*L(月)人员需要量:S=0.54*E(人)文档数:DOC=49*L(页)其中:L源代码行,以千行计。,IBM估算模型是一种静态单变量模型,它利用已估算的结果,如源代码行,来估算各种资源的需求量但IBM估算模型不是一种通用模型,因此应用中应根据具体实际情况调整模型中的参数,11.2.3Putnam估算模型,Cktd,Putnam估算模型是一种动态多变量模型,是根据一些大型项目中工作量的分布情况推导出来的。,其中:L源代码行,K所需人力(PY)td开发时间,Ck技术水平常数其值与开发环境有关。(差:25002000,正常:100008000,好:1250011000),CkKtd,大型项目的工作量分布情况,11.2.3Putnam估算模型,COCOMO模型(ConstructiveCostModel)由TRW公司开发,是由Boehm提出的结构型成本估算模型,其特点是精确、易用。是一种层次模型,按照其详细程度分为三级:即基本的COCOMO模型、中间的COCOMO模型和详细的COCOMO模型。,该模型主要对工作量(单位:PM)和进度TDEP(单位:月)进行估算。模型中考虑到估算量与开发环境有关,将开发项目分为三类:,9.5.5COCOMO模型,11.2.4COCOMO模型,11.2.4COCOMO模型,组织型(Organic)程序规模5万行,较简单,开发人员对产品目标理解充分,经验丰富,对软件开发环境熟悉。大多数应用软件及老的操作系统、编译系统属此类。,半独立型(Semidetached)对项目要求界于上述两者之间,规模复杂度中等。如新操作系统、大型数据库、生产控制等软件属此类。,9.5.5COCOMO模型,嵌入型(Embadded)软件、硬件关系紧密,操作有限制条件,对接口、数据结构,算法要求较高。如大型复杂的事务处理系统、大型、超大型的操作系统、军事指挥系统、航天控制系统等,基本的COCOMO模型(静态单变量模型),其中:MM工作量(PM),kloc估计的源代码行Cl模型系数,模型指数,Cl、取决于开发项目的模式为组织型、半独立型或嵌入型。,下表是根据63个项目的数据统计结果,按照基本的COCOMO模型估算的工作量和进度。,其中:fi成本因素包括:生产因素(可靠性,数据库规模,软件复杂度)计算机因素(时间约束,存储约束,环境变更率,计算机换向时间)人员因素(系统分析员能力、经验,程序员能力,开发人员环境知识,程序时间语言知识)项目工程因素(设计技术,软件工具,进度限制约束),详细的COCOMO模型按照开发阶段给出更加详细的成本因素fi。,中间的COCOMO模型进一步考虑了15种影响软件工作量的因素,更加合理的估算软件工作量和进度。,11.2.5成本估算方法,1.自顶向下的估算方法据以前完成的同类项目的总成本推算,再将其分配到各开发任务中。特点:简便、估算工作量小、误差大。2.自底向上的估算法估算每一子任务的开发工作量,将它们累加起来。特点:精确度高、但缺少子任务(模块)间的联系。3.差别估计法与已完成的项目进行类比,对不同部分另行估算。特点:估算较精确、但区分类比较困难。,对于大型软件项目的估算处理,处理手段主要是分解和类比。一般有以下方式。,注意:通常使用综合方法对实际项目进行估算。,11.2.6成本/效益分析,成本效益分析首先估算成本和运行费用(系统的操作费用和维护费用),系统的经济效益则等于因使用新系统而增加的收入,加上使用新系统可以节省的运行费用。1.货币的时间价值通常以利率形式表示。假设,年利率为i,P元钱在n年后的价值F为:2.投资回收期投资回收期即工程累计经济效益等于最初投资所需要的时间。,4.投资回收率用于衡量投资效益的大小,并且可以用它和年利率比较,设现在的投资额为:1/(1+j)2/(1+j)2n/(1+j)n其中:i是第i年年底的效益(i=1,2,3,n);n是系统的使用寿命;j是投资回收率。,3.纯收入在整个生存周期内新系统的累计经济效益与投资之差称为纯收入。,11.3软件开发进度计划,软件开发进度计划安排是一件困难的任务,尽可能并行地安排任务,还要考虑各个子任务之间的相互联系,又要预见潜在的问题,提供意外事件的处理意见。,描述计划进度的主要工具:一般的表格工具、甘特图、PERT技术与CPM方法。,.一般的表格工具例如:进度表,进度表,2.甘特图(GanttChart)用水平线段表示任务的工作阶段;线段的起点和终点分别表示任务的开始和完成时间,线段的长度表示完成任务所需的时间。下图给出了具有5个任务的甘特图。,甘特图,周,优点:标明了各任务的计划进度和当前进度。能够动态反映软件开发的进展情况。缺点:不能够反映多个任务之间的复杂逻辑关系。,3.时标网状图(timescalarnetwork)也称为改进的甘特图,增加了各子任务之间的逻辑依赖关系。如图所示;表示A、B、C、D、E个任务之间在进度上的依赖关系。例如E2的开始取决于A3的完成。虚箭头表示虚任务。,4.PERT技术和CPM方法PERT(Programevaluation重培训;阶梯提升:,四、软件开发小组与软件生产率,随着软件项目规模的增大,需要组成开发小组共同承担软件项目中的某一任务,于是人与人之间必须通过交流来解决各自承担的任务之间的接口问题,即通信问题。通信需要的时间和代价,会降低软件的生产率。开发小组的组织有以下原则:1.软件开发小组的规模不宜太大,人数不能太多,一般以35人为宜。2.切忌在开发过程中增加人员,这将因增加人员之间的联系而降低效率。,四、软件开发小组与软件生产率,例:设一开发小组有4个软件工程师,开发效率为5000行/年,共有6条通信路径,每条路径降低生产率250行/年,则小组生产率为:50004250618500(行/年),如为了加快进度,新增加2人,每人效率为840行/年,通信路径增加到15条,此时的小组生产率为:2000084022501517930(行/年)即新增加人,并未提高生产率。,软件组织结构,11.5软件项目风险管理风险(risk)是一种潜在的危险。软件项目由于其自身的特点而存在风险,甚至是灾难性的风险。项目风险管理主要包括:风险标识、风险估算、风险评价、风险监控和管理。,1.风险标识识别潜在的风险,分别对以下三类风险进行提取、分析:项目风险(projeet)。与项目有关的预算、进度、人力、资源、用户需求、项目规模、复杂性等方面的问题。技术风险(technical)。影响开发质量和交付时间的设计、实现、验证、维护、接口等方面的问题。商业风险(business)。包括与产品的商业运作有关的市场风险、预算风险、决策风险、销售风险等。,Keil.M.等人总结的识别风险的提问单,最终用户对该项目和待构造的系统支持吗?需求已经被软件项目组和用户完全理解吗?软件开发机构的高层管理者和用户方的管理者已正式承诺支持该项目吗?用户已充分参加到需求定义中了吗?最终用户的期望实现了吗?项目的需求稳定吗?项目的工作范围稳定吗?软件项目组拥有合适的技能吗?项目组对所需开发技术有经验吗?项目组人员数量能够完成此项目吗?所有用户对该项目的重要性和系统需求有共识吗?,2.风险估算也称为风险评估,一般是从两方面进行估算:从影响风险的因素考虑风险发生的可能性。风险发生所带来的损失的严重程度。为了反映风险产生的可能程度和风险产生后果的严重程度,建立风险度量的指标体系,如一种简单的风险评估技术是建立风险评估表。,类别,成分,风险评估表,3.风险评价定义项目的风险参考水准,进一步验证风险评估结果的准确性,并按照风险发生概率高低和后果严重的程度进行排序。成本、性能和进度是三个典型的参考量。,进行风险评价,通常由下列三元组形式描述:(ri,li,xi)i=1,2,3,l其中:ri为风险,li为风险发生的概率,xi为风险发生后的影响。i为风险的种类。,4.风险监控和管理风险避免是一种主动避免风险的活动。是在风险发生前分析引起风险的原因,采取措施,避免风险发生。风险监控贯穿在软件开发的全过程,是一种项目跟踪活动。主要监控对项目风险产生主要影响的因素。风险管理监控计划制定风险监控计划RMMP(RiskManagementandMonitoringPlan),保证文档的正确性,按监控计划记录、管理风险分析的全过程。,软件质量是一个软件企业成功的必要条件,其重要性无论怎样强调都不过分。由于软件质量是难于定量度量的软件属性,主要从管理的角度讨论影响软件质量的因素。我们把影响软件质量的因素分成三组:,11.6软件质量保证,可移植性可重用性互运行性(与另一个系统结合),正确性完整性健壮性可用性效率风险性,可理解性可修改性灵活性可测试性,11.6.1软件质量因素的定义,项目经理在微软是负

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论