软件工程 第19章:软件项目管理与计划.ppt
《软件工程 第19章:软件项目管理与计划.ppt》由会员分享,可在线阅读,更多相关《软件工程 第19章:软件项目管理与计划.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程Software Engineering2023/1/31广东工业大学计算机学院第第19章章 软件项目管理与计划软件项目管理与计划o软件工程中程序出错、成本超支和没完成要求等都软件工程中程序出错、成本超支和没完成要求等都可以归结到软件项目管理太弱。因此,工程中要进可以归结到软件项目管理太弱。因此,工程中要进行管理与计划行管理与计划o本章内容:本章内容:o 19.1 软件项目管理概述软件项目管理概述o19.2 项目管理过程项目管理过程o19.3 软件开发成本估算软件开发成本估算o19.4 风险分析风险分析o19.5 进度安排进度安排o19.6 软件项目的组织软件项目的组织2023
2、/1/32广东工业大学计算机学院19.1 软件项目管理概述软件项目管理概述o19.1.1 软件管理的对象软件管理的对象o在软件项目管理中,重要的是人、问题和过程三者。在软件项目管理中,重要的是人、问题和过程三者。其中人是最重要的管理对象。其中人是最重要的管理对象。o组成一个软件工程的开发项目的人员有以下几类:组成一个软件工程的开发项目的人员有以下几类:o(1)高级管理者:负责确定软件的问题。)高级管理者:负责确定软件的问题。o(2)项目技术管理者:管理软件开发人员。)项目技术管理者:管理软件开发人员。o(3)开发人员:软件开发的专门的技术人员。)开发人员:软件开发的专门的技术人员。o(4)客户
3、:负责说明软件需求的人员。)客户:负责说明软件需求的人员。o(5)最终用户:最终使用软件的人员。)最终用户:最终使用软件的人员。2023/1/33广东工业大学计算机学院19.1.2 软件开发中的资源软件开发中的资源o软件项目计划的第二个任务是对完成该软件项目所软件项目计划的第二个任务是对完成该软件项目所需的资源进行估算。需的资源进行估算。图图19-1 软件开发所需的资源软件开发所需的资源2023/1/34广东工业大学计算机学院1.人力资源是最重要的资源人力资源是最重要的资源o在安排开发活动时必须考虑人员的技术水平、专业、在安排开发活动时必须考虑人员的技术水平、专业、人数以及在开发过程各阶段中对
4、各种人员的需要。人数以及在开发过程各阶段中对各种人员的需要。o对一些规模较大的项目,在整个软件生存期中,各对一些规模较大的项目,在整个软件生存期中,各种人员的参与情况是不一样的。如图种人员的参与情况是不一样的。如图19-2所示所示 2023/1/35广东工业大学计算机学院o图19-2 管理人员与技术人员的参与情况2023/1/36广东工业大学计算机学院2.硬件硬件/软件资源软件资源 o硬件是作为软件开发项目的一种工具而投入的。在硬件是作为软件开发项目的一种工具而投入的。在软件项目计划期间,考虑三种硬件资源:软件项目计划期间,考虑三种硬件资源:o(1)宿主机()宿主机(Host machine)
5、软件开发软件开发时使用的计算机及外围设备。时使用的计算机及外围设备。o(2)目标机()目标机(Target machine)运行已运行已开发成功软件的计算机及外围设备。开发成功软件的计算机及外围设备。o(3)其他硬件设备)其他硬件设备专用软件开发时需要的特专用软件开发时需要的特殊硬件资源。殊硬件资源。2023/1/37广东工业大学计算机学院o宿主机连同必要的软件工具构成软件开发系统。宿主机连同必要的软件工具构成软件开发系统。o软件资源包括用于开发的运行平台、各种软件资源包括用于开发的运行平台、各种CASE工工具可以帮助分析和设计软件、开发程序所有的编程具可以帮助分析和设计软件、开发程序所有的编
6、程语言等。语言等。2023/1/38广东工业大学计算机学院3.可复用构件资源可复用构件资源o为了促成软件的复用,以提高软件的生产率和软件为了促成软件的复用,以提高软件的生产率和软件产品的质量,可建立可复用的软件部件库。根据需产品的质量,可建立可复用的软件部件库。根据需要,对软件部件稍做加工,就可以构成一些大的软要,对软件部件稍做加工,就可以构成一些大的软件包。这要求这些软件部件应加以编目,以利于引件包。这要求这些软件部件应加以编目,以利于引用,并进行标准化和确认,以利于应用和集成。用,并进行标准化和确认,以利于应用和集成。o遗憾的是,在计划阶段,人们往往忽视软件资源。遗憾的是,在计划阶段,人们
7、往往忽视软件资源。直到软件工程过程的开发阶段,软件资源成为一个直到软件工程过程的开发阶段,软件资源成为一个重大问题时才引起人们的重视。最好是尽早确定软重大问题时才引起人们的重视。最好是尽早确定软件资源的需求,这样可以对各种候选方案进行技术件资源的需求,这样可以对各种候选方案进行技术评价,并及时地获取这些软件。评价,并及时地获取这些软件。2023/1/39广东工业大学计算机学院19.1.3 分解技术分解技术 o当一个待解决的问题过于复杂时,可以把它进一步当一个待解决的问题过于复杂时,可以把它进一步分解,直到分解后的子问题变得容易解决为止。然分解,直到分解后的子问题变得容易解决为止。然后,分别解决
8、每一个子问题,并将这些子问题的解后,分别解决每一个子问题,并将这些子问题的解答综合起来,从而得到原问题的解答。答综合起来,从而得到原问题的解答。2023/1/310广东工业大学计算机学院19.2 项目管理过程项目管理过程o软件项目管理的对象是软件工程项目。它所涉及的软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。范围覆盖了整个软件工程过程。o1.启动一个软件项目启动一个软件项目o2.成本估算成本估算o3.风险分析风险分析o4.进度安排进度安排o5.追踪和控制追踪和控制2023/1/311广东工业大学计算机学院19.3 软件开发成本估算软件开发成本估算19.3.1 软件开
9、发成本估算方法软件开发成本估算方法 o1.自顶向下的估算方法自顶向下的估算方法o这种方法的想法是从项目的整体出发,进行类推。这种方法的想法是从项目的整体出发,进行类推。表19-1 软件开发各阶段工作量的分配 软件库存情况更新开发者W.Ward日期2/8/82阶段项目任务工作量分布(1/53)小计(1/53)计划和需求划内软件需求定义56开发计划1产品设计产品设计610初步的用户手册3测试计划1详细设计详细PDL描述412数据定义4测试数据及过程设计2正式的用户手册2编码与单元测试编码616单元测试结果10组装与联合测试按实际情况编写文档49组装与测试5总计532023/1/312广东工业大学计
10、算机学院o2.自底向上的估算法自底向上的估算法 这种方法的想法是把待开发的软件细分,直到每这种方法的想法是把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量。把它们加起来,得到软件开发的总工作量。这是一种常见的估算方法。它的优点是估算各个这是一种常见的估算方法。它的优点是估算各个部分的准确性高。缺点是缺少各项子任务之间相互部分的准确性高。缺点是缺少各项子任务之间相互联系所需要的工作量,还缺少许多与软件开发有关联系所需要的工作量,还缺少许多与软件开发有关的系统级工作量(配置管理、质量管理、项目管理
11、)的系统级工作量(配置管理、质量管理、项目管理)。所以往往估算值偏低,必须用其他方法进行检验。所以往往估算值偏低,必须用其他方法进行检验和校正。和校正。2023/1/313广东工业大学计算机学院o3.差别估算法差别估算法 这种方法综合了上述两种方法的优点,其想法是这种方法综合了上述两种方法的优点,其想法是把待开发的软件项目与过去已完成的软件项目进行把待开发的软件项目与过去已完成的软件项目进行类比,从其开发的各个子任务中区分出类似的部分类比,从其开发的各个子任务中区分出类似的部分和不同的部分。类似的部分按实际量进行计算,不和不同的部分。类似的部分按实际量进行计算,不同的部分则采用相应的方法进行估
12、算。这种方法的同的部分则采用相应的方法进行估算。这种方法的优点是可以提高估算的准确度,缺点是不容易明确优点是可以提高估算的准确度,缺点是不容易明确“类似类似”的界限。的界限。2023/1/314广东工业大学计算机学院19.3.2 软件开发成本估算的经验模型软件开发成本估算的经验模型o1.IBM模型模型o1977年,年,Walston和和Felix总结了总结了IBM联合系联合系统分部(统分部(FSD)负责的)负责的60个项目的数据。其中各个项目的数据。其中各项目的源代码行数从项目的源代码行数从400行到行到467000行,开发行,开发工作量从工作量从12PM到到11758PM,共使用,共使用29
13、种不同种不同语言和语言和66种计算机。利用最小二乘法拟合,得到种计算机。利用最小二乘法拟合,得到如下估算公式:如下估算公式:oE=5.2L0.19 D=4.1L0.36=17.47E0.35oS=0.54E0.6 DOC=49L1.012023/1/315广东工业大学计算机学院o其中,其中,L是源代码行数(以是源代码行数(以KLOC计),计),E是工作是工作量(以量(以PM计),计),D是项目持续时间(以月计),是项目持续时间(以月计),S是人员需要量(以人计),是人员需要量(以人计),DOC是文档数量(以是文档数量(以页计)。因此估算出了源代码的数量,就可以对工页计)。因此估算出了源代码的数
14、量,就可以对工作量、文档数量等进行估算了。作量、文档数量等进行估算了。oIBM模型是一个静态单变量模型,它利用已估算的模型是一个静态单变量模型,它利用已估算的特性,例如源代码行数,来估算各种资源的需要量。特性,例如源代码行数,来估算各种资源的需要量。IBM模型是一个静态单变量模型,但不是一个通用模型是一个静态单变量模型,但不是一个通用公式。在应用中有时要根据具体实际情况,对公式公式。在应用中有时要根据具体实际情况,对公式中的参数进行修改。中的参数进行修改。2023/1/316广东工业大学计算机学院2.Putnam模型模型o这是这是1978年年Putnam提出的模型,是一种动态多变量模提出的模型
15、,是一种动态多变量模型。该模型的基础是假定在软件开发的整个生存期中工作型。该模型的基础是假定在软件开发的整个生存期中工作量有特定的分布。它把项目的资源需求当做时间的函数。量有特定的分布。它把项目的资源需求当做时间的函数。根据对一些大型项目的统计分析,软件开发工作量分布可根据对一些大型项目的统计分析,软件开发工作量分布可用如图用如图19-3所示的曲线表示。所示的曲线表示。2023/1/317广东工业大学计算机学院o图图19-3 大型项目的工作量分布情况大型项目的工作量分布情况2023/1/318广东工业大学计算机学院o如图如图19-3所示中的曲线被称为所示中的曲线被称为Rayleigh-Nord
16、en曲线。利用该曲线得到如下的经验公式:曲线。利用该曲线得到如下的经验公式:L=CkK1/3td4/3 其中,其中,td是开发持续时间(以年计),是开发持续时间(以年计),K是软件开是软件开发与维护在内的整个生存期所花费的工作量(以人发与维护在内的整个生存期所花费的工作量(以人年计),年计),L是源代码行数(以是源代码行数(以LOC计),计),Ck是技术是技术状态常数,它反映出状态常数,它反映出“妨碍程序员进展的限制妨碍程序员进展的限制”,并因开发环境而异。并因开发环境而异。2023/1/319广东工业大学计算机学院3.COCOMO模型(模型(Constructive Cost Model)o
17、Barry Boehm提出的一种软件估算模型的层次体系,称提出的一种软件估算模型的层次体系,称为结构型成本估算模型。是一种比较精确、易于使用的综为结构型成本估算模型。是一种比较精确、易于使用的综合成本估算方法。合成本估算方法。o该模型分为三个层次:该模型分为三个层次:o基本的基本的COCOMO模型:只是将工作量(成本)作为程序规模型:只是将工作量(成本)作为程序规模的函数进行计算。模的函数进行计算。o中级的中级的COCOMO模型:除了工作量以外,还将对产品、硬模型:除了工作量以外,还将对产品、硬件、人员及项目属性的主观评价作为件、人员及项目属性的主观评价作为“成本驱动因子成本驱动因子”加加入估
18、算模型中。入估算模型中。o高级的高级的COCOMO模型:除了中级模型的因素外,还加入了模型:除了中级模型的因素外,还加入了成本驱动因子对软件开发的每一个过程的影响的评估。成本驱动因子对软件开发的每一个过程的影响的评估。2023/1/320广东工业大学计算机学院COCOMO规定了三种项目属性:规定了三种项目属性:o(1)组织型()组织型(Organic):较小、较简单的软件):较小、较简单的软件项目。项目组人员经验丰富,对软件的使用环境很项目。项目组人员经验丰富,对软件的使用环境很熟悉,受硬件的约束较少,程序的规模不是很大熟悉,受硬件的约束较少,程序的规模不是很大(5万行)。万行)。o(2)嵌入
19、型()嵌入型(Embadded):此种软件要求在):此种软件要求在紧密联系的硬件、软件和操作的限制条件下运行的紧密联系的硬件、软件和操作的限制条件下运行的软件。比如航天用控制系统属此种类型。软件。比如航天用控制系统属此种类型。o(3)半独立型()半独立型(Semidetached):对此种软):对此种软件的要求介于上述两种软件之间,但软件规模和复件的要求介于上述两种软件之间,但软件规模和复杂性都属于中等以上,最大可达杂性都属于中等以上,最大可达30万行。例如,万行。例如,大多数事务处理系统属此种类型。大多数事务处理系统属此种类型。2023/1/321广东工业大学计算机学院基本的基本的COCOM
20、O模型的估计方式模型的估计方式 oE=a*KLOCb oD=c*EdoE是以人月为单位的工作量,是以人月为单位的工作量,D是以月表示的开发时间,是以月表示的开发时间,KLOC是项目的代码行(以千行为单位),是项目的代码行(以千行为单位),a、b、c、d是系数,如表是系数,如表19-2所示。所示。软件项目abcd组织型2.41.052.50.38半独立型3.01.122.50.35嵌入型3.61.202.50.322023/1/322广东工业大学计算机学院19.4 风险分析风险分析o风险含义风险含义o在软件工程的环境中考虑时,风险的含义一是关心在软件工程的环境中考虑时,风险的含义一是关心未来,风
21、险是否会导致软件项目失败;二是关心变未来,风险是否会导致软件项目失败;二是关心变化,在用户需求、开发技术、目标机器,以及所有化,在用户需求、开发技术、目标机器,以及所有其他与项目有关的实体中会发生的变化?三是必须其他与项目有关的实体中会发生的变化?三是必须解决选择问题:应当采用什么方法和工具,应当配解决选择问题:应当采用什么方法和工具,应当配备多少人力,在质量上强调到什么程度才满足要求备多少人力,在质量上强调到什么程度才满足要求?o风险分析实际上是风险分析实际上是4个不同的活动:风险识别、风个不同的活动:风险识别、风险估算、风险评价和风险驾驭。险估算、风险评价和风险驾驭。2023/1/323广
22、东工业大学计算机学院19.4.1 风险识别风险识别o可用不同的方法对风险进行分类。可用不同的方法对风险进行分类。o从宏观上来看,可将风险分为项目风险、技术风险从宏观上来看,可将风险分为项目风险、技术风险和商业风险。项目风险包括潜在的预算、进度、个和商业风险。项目风险包括潜在的预算、进度、个人(包括人员和组织)、资源用户和需求方面的问人(包括人员和组织)、资源用户和需求方面的问题,以及它们对软件项目的影响。技术风险包括潜题,以及它们对软件项目的影响。技术风险包括潜在的设计、实现、接口、检验和维护方面的问题。在的设计、实现、接口、检验和维护方面的问题。此外,规格说明的多义性、技术上的不确定性、技此
23、外,规格说明的多义性、技术上的不确定性、技术陈旧、最新技术(不成熟)也是风险因素。术陈旧、最新技术(不成熟)也是风险因素。2023/1/324广东工业大学计算机学院商业风险主要有以下几种:商业风险主要有以下几种:o(1)建立的软件虽然很优秀但不是真正所想要的)建立的软件虽然很优秀但不是真正所想要的(市场风险)。(市场风险)。o(2)建立的软件不适用整个软件产品战略。)建立的软件不适用整个软件产品战略。o(3)销售部门不清楚如何推销这种软件。)销售部门不清楚如何推销这种软件。o(4)失去上级管理部门的支持。)失去上级管理部门的支持。o(5)失去预算或人员的承诺(预算风险)。)失去预算或人员的承诺
24、(预算风险)。o(6)最终用户的水平。)最终用户的水平。o风险识别就是要识别属于上述类型中某些特定项目风险识别就是要识别属于上述类型中某些特定项目的风险。的风险。2023/1/325广东工业大学计算机学院oBoehm建议的方法是使用一个建议的方法是使用一个“风险项目检查表风险项目检查表”,列出所有可能的与每一个风险因素有关的提问。,列出所有可能的与每一个风险因素有关的提问。o对于这些提问,通过判定分析或假设分析,给出确对于这些提问,通过判定分析或假设分析,给出确定的回答,就可以帮助管理计划人员估算风险的影定的回答,就可以帮助管理计划人员估算风险的影响。响。2023/1/326广东工业大学计算机
25、学院19.4.2 风险估算风险估算 o风险估算,又叫风险预测。通常进行风险估算,又叫风险预测。通常进行4种风险估算种风险估算活动:活动:o(1)建立一个尺度或标准来表示一个风险的可能)建立一个尺度或标准来表示一个风险的可能性。性。o(2)描述风险的结果。)描述风险的结果。o(3)估计风险对项目和产品的影响。)估计风险对项目和产品的影响。o(4)确定风险估计的正确性。)确定风险估计的正确性。o可以通过检查风险表来度量各种风险。尺度可以用可以通过检查风险表来度量各种风险。尺度可以用布尔值、定性的、或定量的方式定义。布尔值、定性的、或定量的方式定义。o最后,根据已掌握的风险对项目的影响,可以最后,根
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第19章:软件项目管理与计划 19 软件 项目 管理 计划
限制150内