单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2021-01-12,软件工程,#,第十一章软件工程管理Chapter 11,Software Engineering Management,1,软件工程,第十一章软件工程管理Chapter 11Softwa,11.1 管理的目的与内容,管理的目的,:,按预定的时间和费用,成功地完成软件的计划、开发和维护任务,。,管理的内容,1.,费用管理,估算软件的开发费用;,管理开发费用的有效使用。,2.,质量管理,(包括,配置管理,),3.项目的其它管理,项目,进度安排,;,人员的分配与组织,。,2,软件工程,11.1 管理的目的与内容管理的目的:按预定的时间和费用,11.2 软件估算模型,(Resource Estimation Model),11.2.1 资源估算模型,(Resource Estimation Model),资源模型用来估算软件在开发中花费的资源,如开发时间、开发人数以及工作量等(人-月 或 人-年)。,3,软件工程,11.2 软件估算模型资源模型用来估算软件在开发中花费的,1.静态单变量资源模型,资源=c1 (估计的软件特征),c2,其中:,资源为开发工作量 E(人-月)、开发时间 T(月)或开发人数 P;,“,估计的软件特征”通常用源程序长度L(千行)表示;,c1、c2为依赖于开发环境和应用领域的2个经验常数。,如:E=5.1 L,0.91,(人-月),T=2.47 E,0.35,(月),4,软件工程,1.静态单变量资源模型4软件工程,2.Putnam(普特南)资源模型,Putnam 资源模型是动态多变量资源模型,。用以下的方程式表示:,K=L,3,/(c,3,T,4,),其中:,L(行):源程序长度。,T(年):开发时间。,K(人-年):全生存周期工作量。,c,:与开发环境有关的常数。,5,软件工程,2.Putnam(普特南)资源模型Putnam 资源模,11.2.2 COCOMO模型,(COnstructive COst MOdel,结构性成本模型),COCOMO模型分为,基本,COCOMO模型、,中间,COCOMO模型 和,详细,COCOMO模型三种。,6,软件工程,11.2.2 COCOMO模型6软件工程,基本COCOMO模型是静态单变量模型,,它将软件分类为:组织型、半独立型和嵌入型 3种类型,每类分别使用一组不同的模型方程(见表11.1)。,例11.1 有一个嵌入型的电信处理程序,程序规模为10000行。计算所需的工作量与开发时间。,E=2.8 10,1.20,=44.4 (人-月),T=2.5 44.4,0.32,=8.4 (月),中间COCOMO模型,以静态单变量模型为基础,增加15个工作量调节因子,,是静态多变量模型,。,7,软件工程,基本COCOMO模型是静态单变量模型,它将软件分类为:组织,表11.1 不同类型软件的 COCOMO模型,软件,类别,模 型,方 程,适用范围,组织型,E=3.2L,1.05,T=2.5E,0.38,高级语言应用程序,如科学计算、数据处理、企业管理程序等,规模较小的软件产品,半独立型,E=3.0L,1.12,T=2.5E,0.35,大多数实用程序,如编辑程序、连接程序、编译程序等。,(,规模较大的软件产品,),嵌入型,E=2.8L,1.20,T=2.5E,0.32,与硬件关系密切的程序,,如操作系统、数据库管理系统、实时处理与控制程序等。,8,软件工程,表11.1 不同类型软件的 COCOMO模型 软件模 型,表11.2 调节因子和它的值范围,属性,调节因子,调节值范围,例11.1中,使用的值,产品,属性,要求的可靠性等级,数据库规模,产品复杂度,0.75-1.40,0.94-1.16,0.70-1.65,1.00,0.94,1.30,计算机,属性,对程序执行时间的约束,对程序占用存储容量的约束,开发环境的变动,开发环境的响应时间,1.00-1.66,1.00-1.56,0.87-1.30,0.87-1.15,1.11,1.06,1.00,1.00,人员,属性,分析员水平,程序员水平,对应用领域的熟悉程度,对开发环境的熟悉程度,对所用语言的熟悉程度,1.46-0.71,1.42-0.70,1.29-0.82,1.21-0.90,1.14-0.95,0.86,0.86,1.00,1.10,1.00,项目,属性,开发方法的现代化,软件工具的数质量,完成时间的限制,1.24-0.82,1.24-0.83,1.23-1.10,0.91,1.10,1.00,9,软件工程,表11.2 调节因子和它的值范围 属性调节因子调节值范,11.3 软件成本估计,软件成本估计方法有主要,类,:,自顶向下成本估计、由底向上成本估计和算法模型估计,。,10,软件工程,11.3 软件成本估计软件成本估计方法有主要类,.自顶向下成本估计,(1)首先估算总成本(可以采用特尔斐专家估计法);,特尔斐(Delphi)法:,多个专家各自填“成本估计表”;,综合专家意见,把摘要意见通知大家;,开始新一轮估计;,多次反复,直到专家意见接近。,(2)然后在项目内部(按阶段或任务单元)进行成本分配。,自顶向下成本估计的缺点是:对某些局部问题或特殊困难容易低估;如果所开发的软件缺乏可以借鉴的经验,估计时就可能出现较大的误差。,11,软件工程,.自顶向下成本估计11软件工程,2.由底向上成本估计,(1)先将开发任务分解为许多子任务;,(2)子任务再分成子子任务,直到每一个任务单元;,(3)估计各个任务单元的成本;,(4)汇合成项目总成本。,由底向上成本估计的缺点是:具体工作人员往往只注意到自己范围内的工作,对涉及全局的花费可能估计不足,可能使成本估计偏低。,3.算法模型估计,算法模型就是资源模型,要选择适用的模型。,算法模型估计法常与自顶向下估计或由底向上估计结合使用。,12,软件工程,2.由底向上成本估计 (1)先将开发任务分解为许多子任务,11.4 人员的分配与组织,各个开发阶段需要的人力并不相同。一般地说,计划与分析阶段只需要很少的人;概要设计的人多一些;详细设计的人又多一些;编码和测试阶段的人数最多;在运行初期,需要较多的人参加维护,但很快就可以减少下来,只需保留很少的维护人员就可以满足需要。,13,软件工程,11.4 人员的分配与组织13软件工程,1.Rayleigh-Norden 曲线,t,d,t,人力,t,d,相当于,软件开发完成的时间,;,用虚线画出来的矩形,显示了平均使用人力的问题:浪费的人力不足的人力过晚的人力。,图11.5,Rayleigh-Norden 曲线,14,软件工程,1.Rayleigh-Norden 曲线 td,MAINTENANCE,SYSTEM,DESIGN,REQUIREMENTS,ANALYSIS,PROGRAM,DESIGN,PROGRAM,IMPLEMENTATION,UNIT,TESTING,INTEGRATION,TESTING,SYSTEM,TESTING,SYSTEM,DELIVERY,SOFTWARE DEVELOPMENT STEPS,ANALYST,DESIGNER,PROGRAMMER,TESTER,TRAINER,15,软件工程,MAINTENANCESYSTEMREQUIREMENTSP,2.两条重要的定律,(1)人员-时间权衡定律,软件项目开发存在一个最佳的开发时间。不能通过增加人员来缩短开发时间,因为人员的增加意味着增加相互通信的时间,从而减少直接用于软件生产的时间,导致开发时间的增加,所以“,时间与人员不能互换,”。,(2)Brooks定律,向一个已经延晚的项目追加开发人员,可能使它完成得更晚。,16,软件工程,2.两条重要的定律(1)人员-时间权衡定律16软件工程,3.人员组织,通常采用,层次型组织结构,:,软件经理项目经理开发小组,(1),民主开发小组,组长轮流担任;组内人人平等;一切问题集体决定。,(2),主程序员小组,一元化领导;主程序员分配工作;主程序员决定重大问题。,主程序员(组长),文档员,25名程序员,后援程序员(副组长),图11.6 主程序员小组,17,软件工程,3.人员组织主程序员(组长)文档员25名程序员后援程序员(,11.5 项目进度安排,1.,计划评审技术图,(,Program Evaluation and Review Techniques,简称PERT图),也称为工程网络图。,(1)建立PERT图,图中的每一圆圈,代表一项开发活动;,圈内的数字,表示完成这一项活动所需的时间;,圈间的箭头,表示活动发生的先后顺序。,18,软件工程,11.5 项目进度安排1.计划评审技术图(Progra,图11.7 一个简单软件开发项目的PERT图,测试,数据,编码,产品,测试,测试,软件,测试,计划,起点,分析,3,终点,文档,设计,19,软件工程,图11.7 一个简单软件开发项目的PERT图测试编码产品测,(2)找出,关键路径,(,Critical Path,),从起点到终点,耗时最长的路径就是关键路径,它决定了完成整个工程所需要的时间,。,最早开始时间(Earliest Start time,ES)是指某项活动能够开始的最早时间。,。,最早结束时间(Earliest Finish time,EF)是指某项活动能够完成的最早时间。,EF=ES+该,项活动的时间,最早开始时间,采取从前往后的计算方法,,它等于所有“紧前活动”的,最早结束时间的最大值,在每个活动框的上方标出该项活动的,最早,起止时间。,20,软件工程,(2)找出关键路径(Critical Path)20软件,编码,产品,测试,测试,软件,测试数据,测试,计划,起点,终点,文档,设计,分析,(0,0),(0,3),(0,2),(3,5),(2,8),(3,7),(7,9),(7,11),(15,15),(11,15),图11.8 某软件开发项目的关键路径,21,软件工程,编码产品测试测试数据测试起点终点文档设计分析(0,0)(0,(3)标出最迟开始时间,最迟结束时间(Latest Finish time,LF)是指为了使整个项目在要求完工时间内完成,某项活动必须完成的最迟时间。,最迟开始时间(Latest Start time,LS)是指某项活动必须开始的最迟时间:LS=LF,该,活动的时间。,关键路径上各项活动的最迟起止时间等于该活动的最早起止时间。,非关键路径上各项活动的最迟结束时间采取从后往前的计算方法,它等于所有“紧后活动”的,最迟开始时间的最小值,。,每个活动的最迟起止时间均标在活动框的下方。,22,软件工程,(3)标出最迟开始时间最迟结束时间(Latest F,编码,产品,测试,测试,软件,测试数据,测试,计划,起点,终点,文档,设计,分析,(0,0),(0,3),(0,2),(3,5),(2,8),(3,7),(7,9),(7,11),(15,15),(11,15),(3,5),(5,11),(9,11),(13,15),图11.9 注有最迟开始时间的PERT图,(15,15),23,软件工程,编码产品测试测试数据测试起点终点文档设计分析(0,0)(0,(4)PERT图的使用,确保关键路径上的各项活动按时完成,。,通过缩短关键路径上某项活动的时间,达到缩短项目开发时间的目的。,对于不处在关键路径上的活动时间,可以根据需要,或者调整其起止时间,或者延缓活动的进度,。,24,软件工程,(4)PERT图的使用 确保关键路径上的各项活动按时完成,2.,Gantt 图(Gantt Chart,甘特图,),Gantt图中,左方列出项目的开发活动,上方列出时间,水平线段表示对活动的进度安排。,在每一活动的开始时间和结束时间各画一个小三角形,当活动已经开始或结束时,就把小三角形涂黑。,25,软件工程,2.Gantt 图(Gantt Chart,活动,2008,1,2,3,