第9章软件工程管理.ppt
《第9章软件工程管理.ppt》由会员分享,可在线阅读,更多相关《第9章软件工程管理.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9章章 面向对象技面向对象技术术 内容介绍内容介绍n n9.1 9.1 软件工程管理概述软件工程管理概述软件工程管理概述软件工程管理概述n n9.2 9.2 软件规模估算软件规模估算软件规模估算软件规模估算n n9.3 9.3 软件项目的组织与计划软件项目的组织与计划软件项目的组织与计划软件项目的组织与计划n n9.4 9.4 软件质量软件质量软件质量软件质量 n n9.5 ISO90009.5 ISO9000软件质量体系软件质量体系软件质量体系软件质量体系n n9.6 9.6 软件配置管理软件配置管理软件配置管理软件配置管理n n9.7 CMM9.7 CMM软件能力成熟度模型软件能力成熟
2、度模型软件能力成熟度模型软件能力成熟度模型n n9.8 9.8 软件工程标准与软件文档软件工程标准与软件文档软件工程标准与软件文档软件工程标准与软件文档n n9.9 9.9 小结小结小结小结9.1 软件工程管理概述软件工程管理概述 n n软件工程管理的目的是为了按照预定的时间和费用,成功软件工程管理的目的是为了按照预定的时间和费用,成功软件工程管理的目的是为了按照预定的时间和费用,成功软件工程管理的目的是为了按照预定的时间和费用,成功地完成软件的计划、开发和维护任务地完成软件的计划、开发和维护任务地完成软件的计划、开发和维护任务地完成软件的计划、开发和维护任务。n 1 1费用管理费用管理 目的
3、是对软件开发进行成本核算,使软件生产按照商品生产的经济规律办事。其主要任务是:以简单实用和科学的方法估算出软件的开发费用,作为签订开发合同的根据;管理开发费用的有效使用,用经济手段来保证产品如期按质完成。9.1 软件工程管理概述软件工程管理概述 n 2 2质量管理质量管理 目的在于保证软件产品(包括最终程序和文档)的质量,为了贯彻全面质量控制(TQC)的原则,每个项目都要订出“质量保证计划”,并由专设的质量保证小组负责贯彻,确保在各个阶段的开发和维护工作全都按软件工程的规范进行。配置管理是质量管理的重要组成部分,包括对于程序、文档和数据的各种版本所进行的管理,以保证资料的完整性与一致性。对于重
4、要的和大型的软件,需要制订单独的”配置管理计划”,并由专设的人员进行管理。9.1 软件工程管理概述软件工程管理概述 n 3 3项目的其他管理项目的其他管理除项目经费和软件质量外,项目的进度和人员也是项目管理的重要内容。9.2 软件规模估算软件规模估算n n9.2.1软件开发成本估算方法软件开发成本估算方法n n9.2.2代码行技术和任务估算技术代码行技术和任务估算技术n n9.2.3 COCOMO模型模型 9.2.1软件开发成本估算方法软件开发成本估算方法n n软件开发成本主要是指软件开发过程中所花费的工作量及相软件开发成本主要是指软件开发过程中所花费的工作量及相软件开发成本主要是指软件开发过
5、程中所花费的工作量及相软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价,主要是人的劳动的消耗。软件开发成本的估算,应的代价,主要是人的劳动的消耗。软件开发成本的估算,应的代价,主要是人的劳动的消耗。软件开发成本的估算,应的代价,主要是人的劳动的消耗。软件开发成本的估算,应是从软件计划、需求分析、设计、单元测试、组装测试到应是从软件计划、需求分析、设计、单元测试、组装测试到应是从软件计划、需求分析、设计、单元测试、组装测试到应是从软件计划、需求分析、设计、单元测试、组装测试到确认测试,整个软件开发过程所花费的代价作为依据的。确认测试,整个软件开发过程所花费的代价作为依据的。确认测试,
6、整个软件开发过程所花费的代价作为依据的。确认测试,整个软件开发过程所花费的代价作为依据的。n n基于估算方法分为三类:基于估算方法分为三类:基于估算方法分为三类:基于估算方法分为三类:(1)(1)(1)(1)自顶向下估算方法自顶向下估算方法自顶向下估算方法自顶向下估算方法 估算人员参照以前完成的项目所耗费的总成本,来推算将要估算人员参照以前完成的项目所耗费的总成本,来推算将要估算人员参照以前完成的项目所耗费的总成本,来推算将要估算人员参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段、步骤和工作单元开发的软件的总成本,然后把它们按阶段、步骤和工作单元开发的软件的总
7、成本,然后把它们按阶段、步骤和工作单元开发的软件的总成本,然后把它们按阶段、步骤和工作单元进行分配进行分配进行分配进行分配.9.2.1软件开发成本估算方法软件开发成本估算方法(3)(3)(3)(3)差别估算方法差别估算方法差别估算方法差别估算方法 差别估算是将开发项目与一个或多个已完成的类似项目进行差别估算是将开发项目与一个或多个已完成的类似项目进行差别估算是将开发项目与一个或多个已完成的类似项目进行差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找到与某个相类似项目的若干不同之处,并估算每个比较,找到与某个相类似项目的若干不同之处,并估算每个比较,找到与某个相类似项目的若干不同之处
8、,并估算每个比较,找到与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。不同之处对成本的影响,导出开发项目的总成本。不同之处对成本的影响,导出开发项目的总成本。不同之处对成本的影响,导出开发项目的总成本。(4)(4)(4)(4)专家估算法。专家估算法。专家估算法。专家估算法。(5)(5)(5)(5)类推估算法。类推估算法。类推估算法。类推估算法。(6)(6)(6)(6)算式估算法。算式估算法。算式估算法。算式估算法。(2)(2)(2)(2)自底向上估算方法自底向上估算方法自底向上估算方法自底向上估算方法 将待开发的软件细分,分别估算每一个子任务所需要的开发将
9、待开发的软件细分,分别估算每一个子任务所需要的开发将待开发的软件细分,分别估算每一个子任务所需要的开发将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来工作量,然后将它们加起来工作量,然后将它们加起来工作量,然后将它们加起来 ,得到软件的总开发量。,得到软件的总开发量。,得到软件的总开发量。,得到软件的总开发量。9.2.2代码行技术和任务估算技代码行技术和任务估算技术术 有时难以根据经验估算所需代码行数,为了使得对程序有时难以根据经验估算所需代码行数,为了使得对程序有时难以根据经验估算所需代码行数,为了使得对程序有时难以根据经验估算所需代码行数,为了使得对程序规模的估
10、计值更接近实际值,可以由多名有经验的软件工程规模的估计值更接近实际值,可以由多名有经验的软件工程规模的估计值更接近实际值,可以由多名有经验的软件工程规模的估计值更接近实际值,可以由多名有经验的软件工程师分别作出估计。每个人都估计程序的最小规模(师分别作出估计。每个人都估计程序的最小规模(师分别作出估计。每个人都估计程序的最小规模(师分别作出估计。每个人都估计程序的最小规模(a a a a)、最)、最)、最)、最大规模(大规模(大规模(大规模(b b b b)和最可能的规模()和最可能的规模()和最可能的规模()和最可能的规模(m m m m),分别算出这三种规模的),分别算出这三种规模的),分
11、别算出这三种规模的),分别算出这三种规模的平均值,和之后,再利用下面公式计算程序规模的估计值:平均值,和之后,再利用下面公式计算程序规模的估计值:平均值,和之后,再利用下面公式计算程序规模的估计值:平均值,和之后,再利用下面公式计算程序规模的估计值:n n代码行技术是把开发每个软件功能的成本和实现这个功能需代码行技术是把开发每个软件功能的成本和实现这个功能需代码行技术是把开发每个软件功能的成本和实现这个功能需代码行技术是把开发每个软件功能的成本和实现这个功能需要用的源代码行数据联系起来。通常根据经验和历史数据估要用的源代码行数据联系起来。通常根据经验和历史数据估要用的源代码行数据联系起来。通常
12、根据经验和历史数据估要用的源代码行数据联系起来。通常根据经验和历史数据估计实现一个功能需要的源程序行数。计实现一个功能需要的源程序行数。计实现一个功能需要的源程序行数。计实现一个功能需要的源程序行数。当程序较小时常用的单位是代码行数(LOC),当程序较大时常用的单位是千代码行(KLOC)9.2.2代码行技术和任务估算技代码行技术和任务估算技术术 在估计每个任务的成本时,通常先估计完成该项任务需要在估计每个任务的成本时,通常先估计完成该项任务需要在估计每个任务的成本时,通常先估计完成该项任务需要在估计每个任务的成本时,通常先估计完成该项任务需要用的人力(一人月为单位),再乘以每人每月的平均工资而
13、用的人力(一人月为单位),再乘以每人每月的平均工资而用的人力(一人月为单位),再乘以每人每月的平均工资而用的人力(一人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。得出每个任务的成本。得出每个任务的成本。得出每个任务的成本。n n任务估算技术实际是一种任务分解技术,它首先把软件开发任务估算技术实际是一种任务分解技术,它首先把软件开发任务估算技术实际是一种任务分解技术,它首先把软件开发任务估算技术实际是一种任务分解技术,它首先把软件开发工程分解为若干个相对独立的任务,再分别估计每个单独开工程分解为若干个相对独立的任务,再分别估计每个单独开工程分解为若干个相对独立的任务,再分别估计每个
14、单独开工程分解为若干个相对独立的任务,再分别估计每个单独开发任务的成本,最后累加起来得出软件开发工程的总成本。发任务的成本,最后累加起来得出软件开发工程的总成本。发任务的成本,最后累加起来得出软件开发工程的总成本。发任务的成本,最后累加起来得出软件开发工程的总成本。9.2.3 COCOMO模型模型 构造性成本模型构造性成本模型构造性成本模型构造性成本模型COCOMOCOCOMOCOCOMOCOCOMO(COnstructiveCOnstructiveCOnstructiveCOnstructive COstCOstCOstCOst MOdelMOdelMOdelMOdel)是)是)是)是最精确
15、、最易于使用的成本估算方法之一。最精确、最易于使用的成本估算方法之一。最精确、最易于使用的成本估算方法之一。最精确、最易于使用的成本估算方法之一。该模型分为:基本该模型分为:基本该模型分为:基本该模型分为:基本COCOMOCOCOMOCOCOMOCOCOMO模型,是一个静态单变量模型,模型,是一个静态单变量模型,模型,是一个静态单变量模型,模型,是一个静态单变量模型,它是对整个软件系统进行估算;中级它是对整个软件系统进行估算;中级它是对整个软件系统进行估算;中级它是对整个软件系统进行估算;中级COCOMOCOCOMOCOCOMOCOCOMO模型,是一个静模型,是一个静模型,是一个静模型,是一个
16、静态多变量模型;详细态多变量模型;详细态多变量模型;详细态多变量模型;详细COCOMOCOCOMOCOCOMOCOCOMO模型,将软件系统模型分为系统、模型,将软件系统模型分为系统、模型,将软件系统模型分为系统、模型,将软件系统模型分为系统、子系统和模块三个层次。子系统和模块三个层次。子系统和模块三个层次。子系统和模块三个层次。9.2.3 COCOMO模型模型n n1.1.1.1.基本基本基本基本COCOMOCOCOMOCOCOMOCOCOMO模型模型模型模型 E E为开发所需的人力(人/月),D D为所需的开发时间(月),L L是项目的源代码行估计值,不包括程序中的注释和文档,单位是千代码行
17、。a、b、c、d指不同软件开发方式的值,是常数。其取值如表9-2所示。9.2.3 COCOMO模型模型n n2.2.2.2.中级中级中级中级COCOMOCOCOMOCOCOMOCOCOMO模型模型模型模型 L L是软件产品的目标代码行数,单位是千代码行,a,b是常数,取值如表9-3所示。9.2.3 COCOMO模型模型n n2.2.2.2.中级中级中级中级COCOMOCOCOMOCOCOMOCOCOMO模型模型模型模型 表9-4给出了影响工作量的因素及其取值,每个调节因子Fi的取值分为很低、低、正常、高、极高6级,正常情况下Fi=1;当15个Fi选定后,可得:9.2.3 COCOMO模型模型n
18、 n3.3.3.3.详细详细详细详细COCOMOCOCOMOCOCOMOCOCOMO模型模型模型模型 详细COCOMO模型的估算公式与中级COCOMO模型相同,并按分层、分阶段的形势给出其工作量影响因素分级表。针对每一个影响因素,按模块层、子系统层、系统层,有3张工作量因素分级表,供不同层次的估算使用。每一张表中又按开发各个不同阶段给出。9.3 软件项目的组织与计划软件项目的组织与计划n n9.3.1 软件项目管理的特点软件项目管理的特点 n n9.3.2 软件开发进度计划软件开发进度计划 n n9.3.3 人员配备与组织人员配备与组织 9.3.1 软件项目管理的特点软件项目管理的特点 n n
19、软件项目管理是为了使软件项目能够按照预定的成本、进软件项目管理是为了使软件项目能够按照预定的成本、进软件项目管理是为了使软件项目能够按照预定的成本、进软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(度、质量顺利完成,而对人员(度、质量顺利完成,而对人员(度、质量顺利完成,而对人员(PeoplePeoplePeoplePeople)、产品)、产品)、产品)、产品(ProductProductProductProduct)、过程()、过程()、过程()、过程(ProcessProcessProcessProcess)和项目)和项目)和项目)和项目(Project)(P
20、roject)(Project)(Project)进行分进行分进行分进行分析和管理的活动。析和管理的活动。析和管理的活动。析和管理的活动。n n软件项目管理的根本目的是为了让软件项目尤其是大型项软件项目管理的根本目的是为了让软件项目尤其是大型项软件项目管理的根本目的是为了让软件项目尤其是大型项软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维目的整个软件生命周期(从分析、设计、编码到测试、维目的整个软件生命周期(从分析、设计、编码到测试、维目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,护全过
21、程)都能在管理者的控制之下,以预定成本按期,护全过程)都能在管理者的控制之下,以预定成本按期,护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。按质的完成软件交付用户使用。按质的完成软件交付用户使用。按质的完成软件交付用户使用。n n研究软件项目管理为了从已有的成功或失败的案例中总结研究软件项目管理为了从已有的成功或失败的案例中总结研究软件项目管理为了从已有的成功或失败的案例中总结研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的出能够指导今后开发的通用原则,方法,同时避免前人的出能够指导今后开发的通用原则,方法,同
22、时避免前人的出能够指导今后开发的通用原则,方法,同时避免前人的失误。失误。失误。失误。9.3.1 软件项目管理的特点软件项目管理的特点 n n1 1 1 1软件项目的特点软件项目的特点软件项目的特点软件项目的特点n n2 2 2 2软件项目管理的困难软件项目管理的困难软件项目管理的困难软件项目管理的困难n n3 3 3 3造成软件失误的原因造成软件失误的原因造成软件失误的原因造成软件失误的原因n n4 4 4 4软件管理的主要职能软件管理的主要职能软件管理的主要职能软件管理的主要职能9.3.2 软件开发进度计划软件开发进度计划 n n1 1 1 1基本原则基本原则基本原则基本原则软件开发进度计
23、划是根据系统开发目标、时间要求和技术力量情况来制定的,主要确定各项具体开发工作的所需时间、开始与完成日期以及相互之间的前后衔接关系。(1)划分必须把项目划分成若干个可以管理的活动和任务,这些活动和任务由所采用的软件过程模型定义。为了完成项目划分,对产品和过程都需要进行分解。9.3.2 软件开发进度计划软件开发进度计划(2)相互依赖性必须确定划分出的各个活动或任务之间的相互依赖性。某些任务必须顺序完成,而其他的任务可以并发进行。有些活动只有在其他活动产生的工作产品完成之后才能够开始,而其他的活动可以独立地进行。(3)时间分配必须给每个任务都分配一定数量的工作单位(例如,若干人天的工作量)。此外,
24、必须为每个任务都指定开始日期和结束日期,在确定这些日期时既要考虑各个任务之间的相互依赖性,又要考虑开发人员每日工作时间的长短(全职还是兼职)。9.3.2 软件开发进度计划软件开发进度计划(4)工作量确认在制定进度计划时,项目管理者必须确保在任意时段中分配给任务的人员数量,不超过项目组中的人员数量。(5)定义责任每个任务都应该指定具体的负责人。(6)定义结果每个任务都应该有一个定义好的输出结果。对于软件项目而言,输出通常是一个工作产品或工作产品的一部分。通常把多个工作产品组合成一个“可交付产品”。(7)定义里程碑 9.3.2 软件开发进度计划软件开发进度计划 n 2 2计划评审技术计划评审技术
25、PERT(Program Evaluation and Review Technique)即计划评审技术,最早是由美国海军在计划和控制北极星导弹的研制时发展起来的。(1)建立PERT图图中的每一圆圈,都代表一项开发活动。箭头代表活动发生的先后顺序,箭头上的数字表示完成这一活动所需的时间。9.3.2 软件开发进度计划软件开发进度计划(2)找出关键路径(Critical Path)从起点到终点,可能有多条路径。其中耗时最长的路径就是关键路径,它决定了完成整个工程所需要的时间。(3)标出最迟开始时间箭头下面括号中的数字表示该任务的机动时间,图中的圆表示与某个子任务开始或结束事件的时间点。9.3.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 管理
限制150内