您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第11章 软件项目管理
项目管理是广泛应用于各种工程、金融等技术管理过程,管理的好坏决定了工程的成败。软件及IT行业,尤其是软件产品的特殊性,软件项目管理对于保证软件产品的质量具有极为重要的作用,是决定一个产品或企业能否成功的最重要的指标。11.1软件项目管理概述不可见性不确定性人员流动性11.1软件项目管理概述随着软件的规模和复杂度的不断增大,开发人员的增加以及开发时间的增长,这些都增加了软件项目管理的难度。例如:Windows2000的开发是微软公司历史上最艰巨的任务,仅核心部门的的成员就有2500人,测试用的代码就有1000万行,测试中所用到的脚本程序就有6500种…。象规模如此之大的软件系统,如果没有科学的、规范的、有效的管理,是不可能成功的。因此软件项目管理成为软件工程的重要研究内容之一。11.1.1软件项目管理的任务过程(process)人员(people)工具(tools)产品(Product)项目(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。ai+4mi+bi61nniiL1Li=L=将估算的源代码行数,乘以根据经验推算的每行源代码所需成本,即为该软件的成本。11.2.2IBM估算模型1977年由Waiston和Felix总结了IBM联合系统分部(FSD)负责的60个项目的数据,利用最小二乘法拟合,得到如下估算公式:工作量:E=5.2*L(PM)项目持续时间:D=4.1*L(月)人员需要量:S=0.54*E(人)文档数:DOC=49*L(页)其中:L_源代码行,以千行计。IBM估算模型是一种静态单变量模型,它利用已估算的结果,如源代码行,来估算各种资源的需求量.但IBM估算模型不是一种通用模型,因此应用中应根据具体实际情况调整模型中的参数.11.2.3Putnam估算模型LCktd334K=3134L=CkKtdPutnam估算模型是一种动态多变量模型,是根据一些大型项目中工作量的分布情况推导出来的。其中:L—源代码行,K—所需人力(PY)td—开发时间,CK—技术水平常数其值与开发环境有关。(差:2500-2000,正常:10000-8000,好:12500-11000)LCktd334K=3134L=CkKtd大型项目的工作量分布情况运行与维护系统开发功能设计规格说明系统定义安装测试与确认设计与编码系统定义功能设计规格说明时间11.2.3Putnam估算模型COCOMO模型(ConstructiveCostModel)由TRW公司开发,是由Boehm提出的结构型成本估算模型,其特点是精确、易用。是一种层次模型,按照其祥细程度分为三级:即基本的COCOMO模型、中间的COCOMO模型和详细的COCOMO模型。该模型主要对工作量MM(单位:PM)和进度TDEP(单位:月)进行估算。模型中考虑到估算量与开发环境有关,将开发项目分为三类:9.5.5COCOMO模型11.2.4COCOMO模型11.2.4COCOMO模型组织型(Organic)规模5万,较简单,开发人员对产品目标理解充分,经验丰富,对软件开发环境熟悉。大多数应用软件及老的操作系统、编译系统属此类。嵌入型(Embadded)软件、硬件关系紧密,操作有限制条件,对接口、数据结构,算法要求较高。如大型复杂的事务处理系统,大型、超大型的操作系统,军事指挥系统,航天控制系统等半独立型(Semidetached)对项目要求界于上述两者之间,规模复杂度中等。如新操作系统,大型数据库,生产控制等软件属此类。9.5.5COCOMO模型alkloccMM=①基本的COCOMO模型(静态单变量模型)其中:MM—工作量(PM),KLOC—估计的源代码行Cl—模型系数,—模型指数.Cl、取决于开发项目的模式为组织型、半独立型或嵌入型。下表是根据63个项目的数据统计结果,按照基本的COCOMO模型估算的工作量和进度。总体类型工作量进度组织型MM=10.4(KLOG)1.05TDEV=10.5(MM)0.38半独立型MM=3.0(KLOG)1.12TDEV=10.5(MM)0.35嵌入型MM=3.6(KLOG)1.20TDEV=10.5(MM)0.32其中:fi—成本因素包括:生产因素(可靠性,数据库规模,软件复杂度)计算机因素(时间约束,存储约束,环境变更率,计算机换向时间)人员因素(系统分析员能力、经验,程序员能力,开发人员环境知识,程序时间语言知识)项目工程因素(设计技术,软件工具,进度限制约束)③详细的COCOMO模型按照开发阶段给出更加详细的成本因素fi。alklocc151iifMM=②中间的COCOMO模型进一步考虑了15种影响软件工作量的因素,更加合理的估算软件工作量和进度。11.2.5成本估算方法1、自顶向下的估算方法据以前完成的同类项目的总成本推算,再将其分配到各开发任务中。特点:简便、估算工作量小、误差大。2、自底向上的估算法估算每一子任务的开发工作量,将它们累加起来。特点:精确度高、但缺少子任务(模块)间的联系。3、差别估计法与已完成的项目进行类比,对不同部分另行估算。特点:估算较精确、但区分类比较困难。对于大型软件项目的估算处理,处理手段主要是分解和类比。一般有以下方式:注意:通常使用综合方法对实际项目进行估算。8.2.6成本/效益分析成本/效益分析首先估算成本和运行费用(系统的操作费用和维护费用),系统的经济效益则等于因使用新系统而增加的收入,加上使用新系统可以节省的运行费用。1.货币的时间价值通常以利率形式表示。假设,年利率为i,P元钱在n年后的价值F为:2.投资回收期投资回收期即工程累计经济效益等于最初投资所需要的时间。nF=P(1+i)4.投资回收率用于衡量投资效益的大小,并且可以用它和年利率比较,设现在的投资额为P:P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)n其中:Fi是第i年年底的效益(i=1,2,3,…n);n是系统的使用寿命;j是投资回收率。参考书:软件工程经济学[美]巴里.W.贝姆.赵越等译中国铁道出版社3.纯收入在整个生存周期内新系统的累计经济效益与投资之差称为纯收入。11.3软件开发进度计划软件开发进度计划安排是一件困难的任务,尽可能并行地安排任务,还要考虑各个子任务之间的相互联系,又要预见潜在的问题,提供意外事件的处理意见。描述计划进度的主要工具:一般的表格工具、甘特图、PERT技术与CPM方法。1、一般的表格工具例如:进度表▲▲▲软件测试▲▲▲编码▲▲详细设计▲▲▲总体设计▲▲▲需求分析123456789101112任务月份010203040506070一月二月三月四月五月六月需求分析总体设计详细设计编码、测试进度表2.甘特图(GanttChart)用水平线段表示任务的工作阶段;线段的起点和终点分别表示任务的开始和完成时间,线段的长度表示完成任务所需的时间。下图给出了具有五个任务的甘特图。甘特图周1234567891011任务ABCDE当前进度○△○△○△○△○△优点:标明了各任务的计划进度和当前进度。能够动态反映软件开发的进展情况。缺点:不能够反映多个任务之间的复杂逻辑关系。完成计划完成○文档编写△评审图例3.时标网状图(timescalarnetwork)也称为改进的Gantt图,增加了各子任务之间的逻辑依赖关系。如图所示;表示A、B、C、D、E5个任务之间在进度上的依赖关系。例如E2的开始取决于A3的完成。虚箭头表示虚任务。120378456周任务5101520A1A2A3B1B2E1E2CD1D2D3时标网状图4.PERT技术和CPM方法PERT(Programevaluation&reviewtechnique)计划评审技术或CPM(Criticalpathmethod)关键路径法,都是采用网络图来描述项目的进度安排。如图描述了开发模块A、B、C的任务网络图。各边上所标注的数字为该任务所持续的时间,数字结点为任务的起点和终点。023456718起点A编码A调试B编码6687887968BC组装测试5任务网络图假设红线为关键路径,即完成所有任务的主要路径。8.4人员配备与组织三、评价人员的条件1、固掌握计算机软件的基本知识和技能;2、善于分析和综合问题,具有严密的逻辑思维能力;3、工作踏实、细致、不靠运气,遵循标准和规范,具有严格的科学作风;4、工作中耐心、有毅力、有责任心;5、善于听取意见,善于团结协作,有良好的人际关系;6、具有良好的书面和口头表达能力。合理的配备人员是成功的完成软件项目的切实保证。一、项目各阶段所需人员按Putnam_Norden曲线分配。Putnam_Norden曲线高低计划需求分析初步设计详细设计编码单元测试整体测试功能测试管理人员高级技术人员初级技术人员二、配备人员遵守的原则重质量;重培训;阶梯提升:四、软件开发小组与软件生产率随着软件项目规模的增大,需要组成开发小组共同承担软件开发项目中的某一任务,于是人与人之间必须通过交流来解决各自承担任务之间的接口问题,即通信问题。通信需要的时间和代价,会降低软件的生产率。开发小组的组织有以下原则:1.软件开发小组的规模不
本文标题:第11章 软件项目管理
链接地址:https://www.777doc.com/doc-3775075 .html