《第11章 软件工程管理.pptx》由会员分享,可在线阅读,更多相关《第11章 软件工程管理.pptx(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十一章第十一章软件工程管理软件工程管理Chapter 11Software Engineering Management111.1 管理的目的与内容管理的目的与内容管理的目的管理的目的:按预定的时间和费用,成功地按预定的时间和费用,成功地完成软件的计划、开发和维护任务完成软件的计划、开发和维护任务。管理的内容管理的内容 1.费用管理费用管理 估算软件的开发费用估算软件的开发费用; 管理开发费用的有效使用。管理开发费用的有效使用。 2.质量管理质量管理(包括(包括配置管理配置管理) 3.项目的其它管理项目的其它管理 项目项目进度安排进度安排; 人员的分配与组织人员的分配与组织。211.2 软件
2、估算模型软件估算模型 (Resource Estimation Model)11.2.1 资源估算模型资源估算模型 (Resource Estimation Model)资源模型用来估算软件在开发中花费的资源模型用来估算软件在开发中花费的资源,如开发时间、开发人数以及工作量资源,如开发时间、开发人数以及工作量等(人等(人-月月 或或 人人- 年)。年)。31.静态单变量资源模型静态单变量资源模型资源资源 = c1 (估计的软件特征估计的软件特征) c2 其中其中: 资源为开发工作量资源为开发工作量 E(人人-月月)、开发时间、开发时间 T(月月)或开发人数或开发人数 P; “估计的软件特征估计
3、的软件特征”通常用源程序长度通常用源程序长度L(千千行行)表示表示; c1、c2为依赖于开发环境和应用领域的为依赖于开发环境和应用领域的2个个经验常数。经验常数。如:如: E = 5.1 L 0.91 (人人-月月) T = 2.47 E 0.35 (月月) 42. Putnam (普特南普特南)资源模型资源模型Putnam 资源模型是动态多变量资源模型资源模型是动态多变量资源模型。用以下的方程式表示:用以下的方程式表示:K = L3 / ( c3 T4 )其中其中: L (行行):源程序长度。:源程序长度。 T (年年):开发时间。:开发时间。 K (人人-年年): 全生存周期工作量。全生存
4、周期工作量。 c: 与开发环境有关的常数。与开发环境有关的常数。5 11.2.2 COCOMO模型模型(COnstructive COst MOdel,结构性,结构性成本模型)成本模型)COCOMO模型分为模型分为基本基本COCOMO模模型、型、中间中间COCOMO模型模型 和和 详细详细COCOMO模型三种。模型三种。6基本基本COCOMO模型是静态单变量模型模型是静态单变量模型,它,它将软件分类为:组织型、半独立型和嵌入型将软件分类为:组织型、半独立型和嵌入型 3种类型,每类分别使用一组不同的模型方程种类型,每类分别使用一组不同的模型方程(见表(见表11.1)。)。 例例11.1 有一个嵌
5、入型的电信处理程序,程序有一个嵌入型的电信处理程序,程序规模为规模为10000行。计算所需的工作量与开发时间。行。计算所需的工作量与开发时间。 E = 2.8 10 1.20 = 44.4 (人人-月月) T = 2.5 44.4 0.32 = 8.4 (月月) 中间中间COCOMO模型模型以静态单变量模型为基以静态单变量模型为基础,增加础,增加15个工作量调节因子,个工作量调节因子,是静态多变量是静态多变量模型模型。7表表11.1 不同类型软件的不同类型软件的 COCOMO模型模型 软件软件类别类别模模 型型 方方 程程适用范围适用范围组织型组织型E=3.2L1.05T=2.5E0.38高级
6、语言应用程序,如科学高级语言应用程序,如科学计算、数据处理、企业管理计算、数据处理、企业管理程序等程序等规模较小的软件产品规模较小的软件产品半独立半独立型型E=3.0L1.12T=2.5E0.35大多数实用程序,如编辑程大多数实用程序,如编辑程序、连接程序、编译程序等。序、连接程序、编译程序等。(规模较大的软件产品规模较大的软件产品)嵌入型嵌入型E=2.8L1.20T=2.5E0.32与硬件关系密切的程序与硬件关系密切的程序,如,如操作系统、操作系统、 数据库管理系统、数据库管理系统、实时处理与控制程序等。实时处理与控制程序等。8表表11.2 调节因子和它的值范围调节因子和它的值范围 属性属性
7、调节因子调节因子调节值范围调节值范围例例11.1中中使用的值使用的值产品产品属性属性要求的可靠性等级要求的可靠性等级数据库规模数据库规模产品复杂度产品复杂度0.75 - 1.400.94 - 1.160.70 - 1.651.000.941.30计算机计算机属性属性对程序执行时间的约束对程序执行时间的约束对程序占用存储容量的约束对程序占用存储容量的约束开发环境的变动开发环境的变动开发环境的响应时间开发环境的响应时间1.00 - 1.66 1.00 - 1.560.87 - 1.300.87 - 1.151.111.061.001.00人员人员属性属性分析员水平分析员水平程序员水平程序员水平对应
8、用领域的熟悉程度对应用领域的熟悉程度对开发环境的熟悉程度对开发环境的熟悉程度对所用语言的熟悉程度对所用语言的熟悉程度1.46 - 0.711.42 - 0.701.29 - 0.821.21 - 0.901.14 - 0.950.860.861.001.101.00项目项目属性属性开发方法的现代化开发方法的现代化软件工具的数质量软件工具的数质量完成时间的限制完成时间的限制1.24 - 0.821.24 - 0.831.23 - 1.100.911.101.00911.3 软件成本估计软件成本估计软件成本估计方法有主要软件成本估计方法有主要类类:自顶自顶向下成本估计、由底向上成本估计和算向下成本
9、估计、由底向上成本估计和算法模型估计法模型估计。10. . 自顶向下成本估计自顶向下成本估计 (1)(1)首先估算总成本首先估算总成本( (可以采用特尔斐专家估计可以采用特尔斐专家估计法法);); 特尔斐特尔斐( Delphi )( Delphi )法法: : 多个专家各自填多个专家各自填“成本估计表成本估计表”; ; 综合专家意见,把摘要意见通知大家综合专家意见,把摘要意见通知大家; ; 开始新一轮估计开始新一轮估计; ; 多次反复,直到专家意见接近。多次反复,直到专家意见接近。( (2)2)然后在项目内部(按阶段或任务单元)进然后在项目内部(按阶段或任务单元)进行成本分配。行成本分配。自顶
10、向下成本估计的缺点是:对某些局部问自顶向下成本估计的缺点是:对某些局部问题或特殊困难容易低估;如果所开发的软件缺题或特殊困难容易低估;如果所开发的软件缺乏可以借鉴的经验,估计时就可能出现较大的乏可以借鉴的经验,估计时就可能出现较大的误差。误差。112. 由底向上成本估计由底向上成本估计 (1)(1)先将开发任务分解为许多子任务先将开发任务分解为许多子任务; ; (2) (2)子任务再分成子子任务子任务再分成子子任务, ,直到每一个任务单元直到每一个任务单元; ; (3) (3)估计各个任务单元的成本估计各个任务单元的成本; ; (4) (4)汇合成项目总成本。汇合成项目总成本。 由底向上成本估
11、计的缺点是:具体工作人员往往由底向上成本估计的缺点是:具体工作人员往往只注意到自己范围内的工作,对涉及全局的花费可能只注意到自己范围内的工作,对涉及全局的花费可能估计不足,可能使成本估计偏低。估计不足,可能使成本估计偏低。3. 3. 算法模型估计算法模型估计 算法模型就是资源模型,要选择适用的模型。算法模型就是资源模型,要选择适用的模型。 算法模型估计法常与自顶向下估计或由底向上估算法模型估计法常与自顶向下估计或由底向上估计结合使用。计结合使用。1211.4 11.4 人员的分配与组织人员的分配与组织各个开发阶段需要的人力并不相同。各个开发阶段需要的人力并不相同。一般地说一般地说, , 计划与
12、分析阶段只需要很少计划与分析阶段只需要很少的人的人; ; 概要设计的人多一些概要设计的人多一些; ; 详细设计详细设计的人又多一些的人又多一些; ; 编码和测试阶段的人数编码和测试阶段的人数最多最多; ; 在运行初期在运行初期, , 需要较多的人参加需要较多的人参加维护维护, , 但很快就可以减少下来但很快就可以减少下来, , 只需保只需保留很少的维护人员就可以满足需要。留很少的维护人员就可以满足需要。131. Rayleigh-Norden 曲线曲线 td t 人力人力 td 相当于相当于软件开发完成的时间软件开发完成的时间; 用虚线画出来的矩形用虚线画出来的矩形,显示了平均使用人力的问题显
13、示了平均使用人力的问题:浪费的人力不足的人力过晚的人力。:浪费的人力不足的人力过晚的人力。 图图11.5 Rayleigh - Norden 曲线曲线14MAINTENANCESYSTEMDESIGNREQUIREMENTSANALYSIS PROGRAMDESIGNPROGRAMIMPLEMENTATIONUNITTESTINGINTEGRATIONTESTINGSYSTEMTESTINGSYSTEMDELIVERYSOFTWARE DEVELOPMENT STEPSANALYSTDESIGNERPROGRAMMERTESTERTRAINER152.两条重要的定律两条重要的定律(1)人员)人
14、员-时间权衡定律时间权衡定律 软件项目开发存在一个最佳的开发时间。不软件项目开发存在一个最佳的开发时间。不能通过增加人员来缩短开发时间,因为人员的增能通过增加人员来缩短开发时间,因为人员的增加意味着增加相互通信的时间,从而减少直接用加意味着增加相互通信的时间,从而减少直接用于软件生产的时间,导致开发时间的增加,所以于软件生产的时间,导致开发时间的增加,所以“时间与人员不能互换时间与人员不能互换”。(2)Brooks定律定律向一个已经延晚的项目追加开发人员,可能向一个已经延晚的项目追加开发人员,可能使它完成得更晚。使它完成得更晚。163.人员组织人员组织通常采用通常采用层次型组织结构层次型组织结
15、构:软件经理软件经理项目经理项目经理开发小组开发小组(1)民主开发小组民主开发小组 组长轮流担任;组内人人平等;一切问题集体决定。组长轮流担任;组内人人平等;一切问题集体决定。(2)主程序员小组主程序员小组 一元化领导;主程序员分配工作;主程序员决定重大一元化领导;主程序员分配工作;主程序员决定重大问题。问题。主程序员主程序员(组长组长)文档员文档员25名程序员名程序员后援程序员后援程序员(副组长副组长)图图11.6 主程序员小组主程序员小组1711.5 项目进度安排项目进度安排1.计划评审技术图计划评审技术图( Program Evaluation and Review Techniques
16、, 简称简称PERT图图 ) , 也称为工也称为工程网络图。程网络图。(1)建立建立PERT图图图中的每一圆圈图中的每一圆圈, 代表一项开发活动代表一项开发活动;圈内的数字圈内的数字, 表示完成这一项活动所需的时间表示完成这一项活动所需的时间;圈间的箭头圈间的箭头, 表示活动发生的先后顺序。表示活动发生的先后顺序。18图图11.7 一个简单软件开发项目的一个简单软件开发项目的PERT图图测试测试数据数据编码编码产品产品测试测试测试测试软件软件测试测试计划计划起点起点分析分析3终点终点文档文档设计设计19 (2)找出找出关键路径关键路径(Critical Path) 从起点到终点从起点到终点,
17、耗时最长的路径就是关键路耗时最长的路径就是关键路径,它决定了完成整个工程所需要的时间径,它决定了完成整个工程所需要的时间。最早开始时间最早开始时间(Earliest Start time,ES)是指是指某项活动能够开始的最早时间。某项活动能够开始的最早时间。最早结束时间最早结束时间(Earliest Finish time,EF)是指是指某项活动能够完成的最早时间。某项活动能够完成的最早时间。 EF = ES + 该该项活动的时间项活动的时间最早开始时间最早开始时间采取从前往后的计算方法,采取从前往后的计算方法,它它等于所有等于所有“紧前活动紧前活动”的的最早结束时间的最大最早结束时间的最大值
18、值在每个活动框的上方标出该项活动的在每个活动框的上方标出该项活动的最早最早起起止时间。止时间。20编码编码产品产品测试测试测试测试软件软件测试测试数据数据测试测试计划计划起点起点终点终点文档文档 设计设计 分析分析 (0,0)(0,3)(0,2)(3,5)(2,8)(3,7)(7,9)(7,11)(15,15)(11,15)图图11.8 某软件开发项目的关键路径某软件开发项目的关键路径21(3) 标出最迟开始时间标出最迟开始时间最迟结束时间最迟结束时间 (Latest Finish time,LF)是指为了是指为了使整个项目在要求完工时间内完成,某项活动必须使整个项目在要求完工时间内完成,某项
19、活动必须完成的最迟时间。完成的最迟时间。最迟开始时间最迟开始时间(Latest Start time,LS)是指某项活是指某项活动必须开始的最迟时间:动必须开始的最迟时间:LS=LF该该活动的时间。活动的时间。关键路径上各项活动的最迟起止时间等于该活动关键路径上各项活动的最迟起止时间等于该活动的最早起止时间。的最早起止时间。非关键路径上各项活动的最迟结束时间采取从后非关键路径上各项活动的最迟结束时间采取从后往前的计算方法,它等于所有往前的计算方法,它等于所有“紧后活动紧后活动”的的最迟最迟开始时间的最小值开始时间的最小值。每个活动的最迟起止时间均标在活动框的下方。每个活动的最迟起止时间均标在活
20、动框的下方。22编码编码产品产品测试测试测试测试软件软件测试测试数据数据测试测试计划计划起点起点终点终点文档文档 设计设计 分析分析 (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(4) PERT图的使用图的使用 确保关键路径上的各项活动按时完成确保关键路径上的各项活动按时完成。 通过缩短关键路径上某项活动的时间,达通过缩短关键路径上某项活动的时间,达到缩短项目开发时间的目的。到缩短项目开发时间的目的。
21、对于不处在关键路径上的活动时间,可以对于不处在关键路径上的活动时间,可以根据需要,或者调整其起止时间,或者延缓活根据需要,或者调整其起止时间,或者延缓活动的进度动的进度。242. Gantt 图图 ( Gantt Chart, 甘特图甘特图 )Gantt图中,左方列出项目的开发活动,图中,左方列出项目的开发活动,上方列出时间,水平线段表示对活动的上方列出时间,水平线段表示对活动的进度安排。进度安排。在每一活动的开始时间和结束时间各在每一活动的开始时间和结束时间各画一个小三角形,当活动已经开始或结画一个小三角形,当活动已经开始或结束时,就把小三角形涂黑。束时,就把小三角形涂黑。25活动活动200
22、8123456789101112分析分析测试计划测试计划设计设计编码编码测试软件测试软件测试数据测试数据图图11.11 Gantt图示例图示例26 Gantt图的优点:简单易用,容易修图的优点:简单易用,容易修改,直观方便,能够描述改,直观方便,能够描述各个任务的起各个任务的起止时间止时间以及以及各个任务之间的并行性各个任务之间的并行性。 Gantt图的缺点:图的缺点:不能显示各项活动不能显示各项活动之间的依赖关系之间的依赖关系,难以确定整个项目的难以确定整个项目的关键所在关键所在。 27习题习题6:图:图11.12是某项目的是某项目的PERT图图起点起点A3F5H2B6C5I3D3G8J2E
23、3终点终点28图图11.12 习题习题6 (关键路径关键路径)起点起点A3F5H2B6C5I3D3G8J2E3终点终点(18, 18)(0, 0)29图图11.12 习题习题6 (活动的最早活动的最早起止起止时间时间)起点起点A3F5( 0, 5 )H2( 0, 2 )B6( 5, 11)C5( 11,16)I3( 5, 8 )D3( 11,14 )G8( 5, 13)J2( 13,15 )E3( 15,18 )终点终点(18, 18)(0, 0)( 0, 3 )30图图11.12 习题习题6 (活动的最迟活动的最迟起止起止时间时间)起点起点A3( 0, 3 )( 3, 6 )F5( 0, 5 )H2( 0, 2 )( 3, 5 )B6( 5, 11)( 6,12 )C5( 11,16)(13, 18)I3( 5, 8 )( 10,13 )D3(11,14)( 12,15 )G8( 5, 13)J2( 13,15 )E3( 15,18 )终点终点(18, 18)(0, 0)31
限制150内