书签 分享 收藏 举报 版权申诉 / 150
上传文档赚钱

类型第13章软件项目管理课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4906903
  • 上传时间:2023-01-24
  • 格式:PPT
  • 页数:150
  • 大小:661.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第13章软件项目管理课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    13 软件 项目 管理 课件
    资源描述:

    1、 所谓所谓管理管理就是通过计划、组织和控制就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。源,以达到既定目标的过程。估算软件规模估算软件规模13.1工作量估算工作量估算13.2进度计划进度计划13.3人员组织人员组织13.4 软件配置管理软件配置管理13.6能力成熟度模型能力成熟度模型13.7小小 结结13.8质量保证质量保证13.5 13.1.1 13.1.1 代码行技术代码行技术 代码行技术是比较简单的定量估算软代码行技术是比较简单的定量估算软件规模的方法。这种方法根据以往开发类件规模的方法。这种方法根据以往开发类似

    2、产品的经验和历史数据,估计实现一个似产品的经验和历史数据,估计实现一个功能需要的源程序行数。功能需要的源程序行数。由多名有经验的软件工程师分别作出估计。由多名有经验的软件工程师分别作出估计。每个人都估计程序的每个人都估计程序的最小规模最小规模(a)(a)、最大规最大规模模(b)(b)和和最可能的规模最可能的规模(m)(m),分别算出这三种,分别算出这三种规模的平均值规模的平均值a a,b b,和,和m m之后,再用下式计之后,再用下式计算程序规模的估计值:算程序规模的估计值:64bmaL 13.1.2 13.1.2 功能点技术功能点技术 功能点技术依据对软件信息域特性和功能点技术依据对软件信息

    3、域特性和软件复杂性的评估结果,估算软件规模。软件复杂性的评估结果,估算软件规模。这种方法用功能点这种方法用功能点(FP)(FP)为单位,度量软件为单位,度量软件的规模。的规模。1.1.信息域特性信息域特性 功能点技术定义了信息域的功能点技术定义了信息域的5 5个特性,个特性,分别是分别是输入项数输入项数(Inp(Inp)、输出项数、输出项数(Out)(Out)、查询数查询数(Inq(Inq),主文件数,主文件数(Maf)和和外部接口外部接口数数(Inf)。2.2.估算功能点的步骤估算功能点的步骤 用下述三个步骤,可以估算出一个软用下述三个步骤,可以估算出一个软件的功能点数件的功能点数(即软件规

    4、模即软件规模)。(1)(1)计算未调整的功能点数计算未调整的功能点数UFPUFP 首先,把产品信息域的每个特性首先,把产品信息域的每个特性(即即InpInp、OutOut、InqInq、MafMaf和和InfInf)都分类成简单都分类成简单级、平均级或复杂级。级、平均级或复杂级。根据其等级,为每个特性都分配一个根据其等级,为每个特性都分配一个功能点数,例如,一个平均级的输入项分功能点数,例如,一个平均级的输入项分配配4 4个功能点,一个简单级的输入项是个功能点,一个简单级的输入项是3 3个个功能点,而一个复杂级的输入项分配功能点,而一个复杂级的输入项分配6 6个功个功能点。能点。然后,用下式计

    5、算未调整的功能点数然后,用下式计算未调整的功能点数UFPUFP=aUFPUFP=a1 1Inp+aInp+a2 2Out+aOut+a3 3Inq+aInq+a4 4MafMaf+a+a5 5InfInf其中,其中,a ai i(1i5)(1i5)是信息域特性是信息域特性系数,其值由相应特性的复杂级别决定,系数,其值由相应特性的复杂级别决定,如表如表13.113.1所示。所示。(2)(2)计算技术复杂性因子计算技术复杂性因子TCFTCF 这一步将度量这一步将度量1414种技术因素对软件种技术因素对软件规模的影响程度。这些因素包括高处理规模的影响程度。这些因素包括高处理率、性能标准率、性能标准(

    6、例如,响应时间例如,响应时间)、联机、联机更新等,在表更新等,在表13.213.2中列出了全部技术因中列出了全部技术因素,并用素,并用F Fi i(1i14)(1i14)代表这些因素。代表这些因素。表 10.2 技术因素序号Fi技术因素1 F1 数据通信2 F2 分布式数据处理3 F3 性能标准4 F4 高负荷的硬件5 F5 高处理率6 F6 联机数据输入7 F7 终端用户效率8 F8 联机更新9 F9 复杂的计算10 F10 可重用性11 F11 安装方便12 F12 操作方便13 F13 可移植性14 F14 可维护性 根据软件特点,为每个因素分配一个根据软件特点,为每个因素分配一个从从0

    7、(0(不存在或对软件规模无影响不存在或对软件规模无影响)到到5(5(有有很大影响很大影响)的值。然后,用下式计算技术的值。然后,用下式计算技术因素对软件规模的综合影响程度因素对软件规模的综合影响程度DIDI:141iiFDI 技术复杂性因子技术复杂性因子TCFTCF由下式计算:由下式计算:TCF=0.65+0.01TCF=0.65+0.01DIDI 因为因为DIDI的值在的值在0 07070之间,所以之间,所以TCFTCF的的值在值在0.650.651.351.35之间。之间。(3)(3)计算功能点数计算功能点数FPFP 功能点数功能点数FPFP由下式计算:由下式计算:FP=UFPFP=UFP

    8、TCFTCF 功能点数与所用的编程语言无关,因此,功能点数与所用的编程语言无关,因此,功能点技术比代码行技术更合理一些。功能点技术比代码行技术更合理一些。计算机软件估算模型使用由经验导出计算机软件估算模型使用由经验导出的公式来预测软件开发的工作量,的公式来预测软件开发的工作量,工作量工作量是软件规模是软件规模(LOC(LOC或或FP)FP)的函数的函数,工作量的单,工作量的单位通常是人月位通常是人月(pm)(pm)。支持大多数估算模型的经验数据,都支持大多数估算模型的经验数据,都是从有限个项目的样本集中总结出来的,是从有限个项目的样本集中总结出来的,因此,没有一个估算模型能够适用于所有因此,没

    9、有一个估算模型能够适用于所有类型的软件和开发环境。类型的软件和开发环境。13.2.1 13.2.1 静态单变量模型静态单变量模型 这类模型的总体结构形式如下:这类模型的总体结构形式如下:E=A+BE=A+B(ev(ev)C C 大多数模型都有某种形式的调整成分,使大多数模型都有某种形式的调整成分,使得得E E能够依据项目的其他特性能够依据项目的其他特性(例如,问题例如,问题的复杂程度、开发人员的经验、开发环境的复杂程度、开发人员的经验、开发环境等等)加以调整。加以调整。下面给出几个典型的静态单变量模型。下面给出几个典型的静态单变量模型。1.1.面向面向LOCLOC的估算模型的估算模型 (1)W

    10、alston(1)WalstonFelixFelix模型模型 E=5.2E=5.2(KLOC)(KLOC)0.910.91 (2)Bailey(2)BaileyBasiliBasili模型模型 E=5.5+0.73E=5.5+0.73(KLOC)(KLOC)1.161.16(3)Boehm(3)Boehm简单模型简单模型 E=3.2E=3.2(KLOC)(KLOC)1.051.05 (4)Doty(4)Doty模型模型(在在KLOCKLOC9 9的情况下的情况下)E=5.288 E=5.288(KLOC)(KLOC)1.4071.407 2.2.面向面向FPFP的估算模型的估算模型(1)Alb

    11、recht&Gaffney(1)Albrecht&Gaffney模型模型E=-13.39+0.0545FPE=-13.39+0.0545FP(2)Kemerer(2)Kemerer模型模型 E=60.62E=60.627.7287.7281313-8-8FPFP3 3(3)Maston(3)Maston、BarnettBarnett和和MellichampMellichamp模型模型 E=585.7+5.12FPE=585.7+5.12FP 13.2.2 13.2.2 动态多变量模型动态多变量模型 动态多变量模型也称为动态多变量模型也称为软件方程式软件方程式,它是根据从它是根据从4000400

    12、0多个当代软件项目中收集多个当代软件项目中收集的生产率数据推导出来的。的生产率数据推导出来的。这种模型把工作量看作是软件规模和这种模型把工作量看作是软件规模和开发时间这两个变量的函数。动态多变量开发时间这两个变量的函数。动态多变量估算模型的形式如下:估算模型的形式如下:E=E=LOCLOCB B0.3330.333/P P3 3(1/t)(1/t)4 4 总体的过程成熟度及管理水平;总体的过程成熟度及管理水平;使用良好的软件工程实践的程度;使用良好的软件工程实践的程度;使用的程序设计语言的级别;使用的程序设计语言的级别;软件环境的状态;软件环境的状态;软件项目组的技术及经验;软件项目组的技术及

    13、经验;应用应用系统的复杂程度。系统的复杂程度。当开发实时嵌入式软件时,典型值是当开发实时嵌入式软件时,典型值是P=2000P=2000;对于电信和系统软件来说,对于电信和系统软件来说,P=13000P=13000;对于商业系统应用,对于商业系统应用,P=28000P=28000。适用于当前项目的生产率参数,可以从历史适用于当前项目的生产率参数,可以从历史数据导出。数据导出。从从(13.2)(13.2)式可以看出,开发同一个软式可以看出,开发同一个软件件(即即LOCLOC固定固定)的时候,如果把项目持续时的时候,如果把项目持续时间延长一些,则可降低完成项目所需要的间延长一些,则可降低完成项目所需

    14、要的工作量。工作量。1997年年Boehm等人提出的等人提出的COCOMO2模型,是原始的模型,是原始的COCOMO模型的修订版,模型的修订版,它反映了十多年来在成本估计方面所积累它反映了十多年来在成本估计方面所积累的经验。的经验。下面以后体系结构模型为例,介绍下面以后体系结构模型为例,介绍COCOMO2COCOMO2模型。该模型把软件开发工作量模型。该模型把软件开发工作量表示成代码行数(表示成代码行数(KLOCKLOC)的非线性函数:)的非线性函数:i=1 每个成本因素都根据它的重要程度和每个成本因素都根据它的重要程度和对工作量影响大小被赋予一定数值(称为对工作量影响大小被赋予一定数值(称为

    15、工作量系数)。工作量系数)。(1 1)新增加了新增加了4 4个成本因素,它们个成本因素,它们分别是要求的分别是要求的可重用性、需要的文档可重用性、需要的文档量、人员连续性(即人员稳定程度)量、人员连续性(即人员稳定程度)和多地点开发和多地点开发。这个变化表明,这些。这个变化表明,这些因素对开发成本的影响日益增加。因素对开发成本的影响日益增加。(2 2)略去了原始模型中的略去了原始模型中的2 2个成本个成本因素(计算机切换时间和使用现代程因素(计算机切换时间和使用现代程序设计实践)。现在,开发人员普遍序设计实践)。现在,开发人员普遍使用工作站开发软件,批处理的切换使用工作站开发软件,批处理的切换

    16、时间已经不再是问题。时间已经不再是问题。而而“现代程序设计实践现代程序设计实践”已经发展成已经发展成内容更广泛的内容更广泛的“成熟的软件工程实践成熟的软件工程实践”的的概念,并且在概念,并且在COCOMO2工作量方程的指工作量方程的指数数b中考虑了这个因素的影响。中考虑了这个因素的影响。(3 3)某些成本因素(分析员能力、某些成本因素(分析员能力、平台经验、语言和工具经验)对生产平台经验、语言和工具经验)对生产率的影响(即工作量系数最大值与最率的影响(即工作量系数最大值与最小值的比率)增加了,另一些成本因小值的比率)增加了,另一些成本因素(程序员能力)的影响减小了。素(程序员能力)的影响减小了

    17、。COCOMO2采用了更加精细得多的采用了更加精细得多的b分级模型,这个模型使用分级模型,这个模型使用5个分级因素个分级因素Wi(1i5),其中每个因素都划分成从甚),其中每个因素都划分成从甚低(低(Wi=5)到特高()到特高(Wi=0)的的6个级别,个级别,然后用下式计算然后用下式计算b的数值:的数值:b=1.01+0.01Wi COCOMO2使用的使用的5个分级因素如下个分级因素如下所述:所述:(1 1)项目先例性。项目先例性。(2 2)开发灵活性。开发灵活性。(3 3)风险排除度。风险排除度。(4 4)项目组凝聚力。项目组凝聚力。(5 5)过程成熟度。过程成熟度。项目管理者的目标是定义全

    18、部项目任项目管理者的目标是定义全部项目任务,识别出关键任务,跟踪关键任务的进务,识别出关键任务,跟踪关键任务的进展状况,以保证能及时发现拖延进度的情展状况,以保证能及时发现拖延进度的情况。况。软件计划软件计划最详尽地描述了软件过程,最详尽地描述了软件过程,它包括采用的生命周期模型、开发组织的它包括采用的生命周期模型、开发组织的组织结构、责任分配、管理目标和优先级、组织结构、责任分配、管理目标和优先级、所用的技术和所用的技术和CASECASE工具,以及详细的进度、工具,以及详细的进度、预算和资源分配。预算和资源分配。整个计划的基础是工作整个计划的基础是工作量估算和完成期限估算。量估算和完成期限估

    19、算。软件项目的进度安排是一项活动,它软件项目的进度安排是一项活动,它通过把工作量分配给特定的软件工程任务,通过把工作量分配给特定的软件工程任务,并规定完成并规定完成各项任务的起、止日期,从而各项任务的起、止日期,从而将估算的工作量分布于计划好的项目持续将估算的工作量分布于计划好的项目持续期内。期内。13.3.1 13.3.1 估算开发时间估算开发时间 13.3.2 Gantt13.3.2 Gantt图图 GanttGantt图图(甘特图甘特图)是历史悠久、应用广是历史悠久、应用广泛的进度计划工具,下面通过一个非常简泛的进度计划工具,下面通过一个非常简单的例子介绍这种工具。单的例子介绍这种工具。

    20、表10.5 各道工序估计需用的时间(小时)工序墙壁刮旧漆刷新漆清理1或32312或4462图图13.1 13.1 旧木板房刷漆工程的旧木板房刷漆工程的GanttGantt图图 为了醒目地表示里程碑,可以在为了醒目地表示里程碑,可以在Gantt图中加上菱形标记,一个菱形代表一个里图中加上菱形标记,一个菱形代表一个里程碑,如图程碑,如图13.2所示。所示。图图13.2 13.2 标有里程碑的标有里程碑的GanttGantt图图 13.3.3 13.3.3 工程网络工程网络 上一小节介绍的上一小节介绍的GanttGantt图能很形象地描图能很形象地描绘任务分解情况,以及每个子任务绘任务分解情况,以及

    21、每个子任务(作业作业)的开始时间和结束时间,因此是进度计划的开始时间和结束时间,因此是进度计划和进度管理的有力工具。它具有直观简明和进度管理的有力工具。它具有直观简明和容易掌握、容易绘制的优点,但是和容易掌握、容易绘制的优点,但是GanttGantt图也有三个主要缺点:图也有三个主要缺点:不能显式地描绘各项作业彼此间的不能显式地描绘各项作业彼此间的依赖关系;依赖关系;进度计划的关键部分不明确,难于进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;判定哪些部分应当是主攻和主控的对象;计划中有潜力的计划中有潜力的部分及潜力的大小部分及潜力的大小不明确,往往造成潜力的浪费。不明确,往

    22、往造成潜力的浪费。当把一个工程项目分解成许多子任务,当把一个工程项目分解成许多子任务,并且它们彼此间的依赖关系又比较复杂时,并且它们彼此间的依赖关系又比较复杂时,仅仅用仅仅用GanttGantt图作为安排进度的工具是不够图作为安排进度的工具是不够的,不仅难于做出既节省资源又保证进度的,不仅难于做出既节省资源又保证进度的计划,而且还容易发生差错。的计划,而且还容易发生差错。工程网络是制定进度计划时另一种常工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,况以及每项作业的开始时间和结束时间,此外,它还显式地描

    23、绘各个作业彼此间的此外,它还显式地描绘各个作业彼此间的依赖关系。依赖关系。因此,工程网络是系统分析和系统设因此,工程网络是系统分析和系统设计的强有力的工具。计的强有力的工具。图图13.3 13.3 旧木板房刷漆工程的工程网络旧木板房刷漆工程的工程网络图中:图中:1212刮第刮第1 1面墙上的旧漆;面墙上的旧漆;2323刮第刮第2 2面墙上的旧漆;面墙上的旧漆;2424给第给第1 1面墙刷新漆;面墙刷新漆;3535刮第刮第3 3面墙上旧漆;面墙上旧漆;4646给第给第2 2面墙刷新漆;面墙刷新漆;4747清理第清理第1 1面墙窗户;面墙窗户;5858刮第刮第4 4面墙上旧漆;面墙上旧漆;6868

    24、给第给第3 3面墙刷新漆;面墙刷新漆;7979清理第清理第2 2面墙窗户;面墙窗户;813813给第给第4 4面墙刷新漆;面墙刷新漆;913913清理第清理第3 3面墙窗户;面墙窗户;13111311清理第清理第4 4面墙窗户;面墙窗户;虚拟作业:虚拟作业:3434;5656;6767;8989。在工程网络中的一个事件,如果既有在工程网络中的一个事件,如果既有箭头进入又有箭头离开,则它既是某些作箭头进入又有箭头离开,则它既是某些作业的结束又是另一些作业的开始。业的结束又是另一些作业的开始。例如,图例如,图13.313.3中事件中事件2 2既是作业既是作业1 12(2(刮第刮第1 1面墙上的旧漆

    25、面墙上的旧漆)的结束,又是作业的结束,又是作业2 23(3(刮第刮第2 2面墙上旧漆面墙上旧漆)和作业和作业2 24(4(给第给第1 1面墙刷新漆面墙刷新漆)的开始。的开始。也就是说,只有第也就是说,只有第1 1面墙上的旧漆刮完面墙上的旧漆刮完之后,才能开始刮第之后,才能开始刮第2 2面墙上旧漆和给第面墙上旧漆和给第1 1面墙刷新漆这两个作业。因此,工程网络面墙刷新漆这两个作业。因此,工程网络显式地表示了作业之间的依赖关系。显式地表示了作业之间的依赖关系。在图在图13.313.3中还有一些虚线箭头,它们中还有一些虚线箭头,它们表示虚拟作业,也就是事实上并不存在的表示虚拟作业,也就是事实上并不存

    26、在的作业。引入虚拟作业是为了显式地表示作作业。引入虚拟作业是为了显式地表示作业之间的依赖关系。例如,事件业之间的依赖关系。例如,事件4 4既是给第既是给第1 1面墙刷新漆结束,又是给第面墙刷新漆结束,又是给第2 2面墙刷新漆面墙刷新漆开始开始(作业作业4 46)6)。但是,在开始给第但是,在开始给第2 2面墙刷新漆之前,面墙刷新漆之前,不仅必须已经给第不仅必须已经给第1 1面墙刷完了新漆,而且面墙刷完了新漆,而且第第2 2面墙上的旧漆也必须已经刮净面墙上的旧漆也必须已经刮净(事件事件3)3)。也就是说,在事件也就是说,在事件3 3和事件和事件4 4之间有依之间有依赖关系,或者说在作业赖关系,或

    27、者说在作业2 23(3(刮第刮第2 2面墙上面墙上旧漆旧漆)和作业和作业4 46(6(给第给第2 2面墙刷新漆面墙刷新漆)之间之间有依赖关系,虚拟作业有依赖关系,虚拟作业3 34 4明确地表示了明确地表示了这种依赖关系。注意,虚拟作业既不消耗这种依赖关系。注意,虚拟作业既不消耗资资源也不需要时间。源也不需要时间。13.3.4 13.3.4 估算工程进度估算工程进度 画出类似图画出类似图13.313.3那样的工程网络之后,那样的工程网络之后,系统分析员就可以借助它的帮助估算工程系统分析员就可以借助它的帮助估算工程进度了。为此需要在工程网络上增加一些进度了。为此需要在工程网络上增加一些必要的信息。

    28、必要的信息。首先,把每个作业估计需要使用的时首先,把每个作业估计需要使用的时间写在表示该项作业的箭头上方。间写在表示该项作业的箭头上方。注意,注意,箭头长度和它代表的作业持续时间没有关箭头长度和它代表的作业持续时间没有关系,箭头仅表示依赖关系,它上方的数字系,箭头仅表示依赖关系,它上方的数字才表示作业的持续时间。才表示作业的持续时间。其次,为每个事件计算下述两个统计其次,为每个事件计算下述两个统计数字数字:最早时刻:最早时刻EETEET和最迟时刻和最迟时刻LETLET。这两。这两个数字将分别写在表示事件的圆圈的右上个数字将分别写在表示事件的圆圈的右上角和右下角,如图角和右下角,如图13.413

    29、.4左下角的符号所示。左下角的符号所示。图图13.4 13.4 旧木板房刷漆工程的完整的工程网络旧木板房刷漆工程的完整的工程网络(粗线箭头是关键路径粗线箭头是关键路径)事件的最早时刻是该事件可以发生的事件的最早时刻是该事件可以发生的最早时间。通常工程网络中第一个事件的最早时间。通常工程网络中第一个事件的最早时刻定义为零,其他事件的最早时刻最早时刻定义为零,其他事件的最早时刻在工程网络上从左至右按事件发生顺序计在工程网络上从左至右按事件发生顺序计算。算。计算最早时刻计算最早时刻EETEET使用下述三条简单规使用下述三条简单规则:则:考虑进入该事件的所有作业;考虑进入该事件的所有作业;对于每个作业

    30、都计算它的持续时间对于每个作业都计算它的持续时间与起始事件的与起始事件的EETEET之和;之和;选取上述和数中的最大值作为该事选取上述和数中的最大值作为该事件的最早时刻件的最早时刻EETEET。事件的最迟时刻是在不影响工程竣工事件的最迟时刻是在不影响工程竣工时间的前提下,该事件最晚可以发生的时时间的前提下,该事件最晚可以发生的时刻。按惯例,最后一个事件刻。按惯例,最后一个事件(工程结束工程结束)的的最迟时刻就是它的最早时刻。其他事件的最迟时刻就是它的最早时刻。其他事件的最迟时刻在工程网络上从右至左按逆作业最迟时刻在工程网络上从右至左按逆作业流的方向计算。流的方向计算。计算最迟时刻计算最迟时刻L

    31、ETLET使用下述三条规则:使用下述三条规则:考虑离开该事件的所有作业;考虑离开该事件的所有作业;从每个作业的结束事件的最迟时刻从每个作业的结束事件的最迟时刻中减去该作业的持续时间;中减去该作业的持续时间;选取上述差选取上述差数中的最小值做为该事数中的最小值做为该事件的最迟时刻件的最迟时刻LETLET。13.3.5 13.3.5 关键路径关键路径 图图13.413.4中有几个事件的最早时刻和最中有几个事件的最早时刻和最迟时刻相同,这些事件定义了关键路径,迟时刻相同,这些事件定义了关键路径,在图中关键路径用粗线箭头表示。在图中关键路径用粗线箭头表示。关键路径上的事件关键路径上的事件(关键事件关键

    32、事件)必须准必须准时发生,组成关键路径的作业时发生,组成关键路径的作业(关键作业关键作业)的实际持续时间不能超过估计的持续时间,的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束。否则工程就不能准时结束。13.3.6 13.3.6 机动时间机动时间 不在关键路径上的作业有一定程度的不在关键路径上的作业有一定程度的机动余地机动余地实际开始时间可以比预定时间实际开始时间可以比预定时间晚一些,或者实际持续时间可以比预计的晚一些,或者实际持续时间可以比预计的持续时间长一些,而并不影响工程的结束持续时间长一些,而并不影响工程的结束时间。时间。一个作业可以有的全部机动时间等于一个作业可以有的全部

    33、机动时间等于它的结束事件的最迟时刻减去它的开始事它的结束事件的最迟时刻减去它的开始事件的最早时刻,再减去这个作业的持续时件的最早时刻,再减去这个作业的持续时间:间:机动时间机动时间=(LET)=(LET)结束结束-(EET)-(EET)开始开始-持续时间持续时间 对于前述油漆旧木板房的例子,计算对于前述油漆旧木板房的例子,计算得到的非关键作业的机动时间列在表得到的非关键作业的机动时间列在表13.613.6中。中。表 10.6 旧木板房刷漆网络中的机动时间作业LET(结束)EET(开始)持续时间机动时间24623135116234718611156128045815843671812067920

    34、122689201505910211515 在工程网络中每个作业的机动时间写在工程网络中每个作业的机动时间写在代表该项作业的箭头下面的括弧里在代表该项作业的箭头下面的括弧里(参看参看图图13.4)13.4)。在制定进度计划时仔细考虑和利用工在制定进度计划时仔细考虑和利用工程网络中的机动时间,往往能够安排出既程网络中的机动时间,往往能够安排出既节省资源又不节省资源又不影响最终竣工时间的进度表。影响最终竣工时间的进度表。图图13.5 13.5 旧木板房刷漆工程改进的旧木板房刷漆工程改进的GanttGantt图之一图之一13.4 人员组织 13.4.1 民主制程序员组民主制程序员组 有两种极端方法可

    35、用来组织程序员组,有两种极端方法可用来组织程序员组,这两种组织方法分别称为民主制程序员组和这两种组织方法分别称为民主制程序员组和主程序员组。主程序员组。构成民主制程序员组的基本概念构成民主制程序员组的基本概念是是“无私编程无私编程”。必须改变评价程序员价值的标准,每必须改变评价程序员价值的标准,每名程序员都应该鼓励该组其他成员找出自名程序员都应该鼓励该组其他成员找出自己编写的代码中的错误。不要认为存在错己编写的代码中的错误。不要认为存在错误是坏事,而应该认为是正常的事情,应误是坏事,而应该认为是正常的事情,应该把找出模块中的一个错误看作是取得了该把找出模块中的一个错误看作是取得了一个胜利。一个

    36、胜利。任何人都不能嘲笑程序员所犯的编码任何人都不能嘲笑程序员所犯的编码错误。程序员组作为一个整体,将培养一错误。程序员组作为一个整体,将培养一种平等的团队精神,坚信种平等的团队精神,坚信“每个模块都是每个模块都是属于整个程序员组的,而不是属于某个人属于整个程序员组的,而不是属于某个人的的”。一组无私的程序员将构成一个民主。一组无私的程序员将构成一个民主制程序员组。制程序员组。民主制程序员组的一个重要特点是,民主制程序员组的一个重要特点是,小组成员完全平等,享有充分民主,通过小组成员完全平等,享有充分民主,通过协商做出技术决策。因此,小组成员间的协商做出技术决策。因此,小组成员间的通信是平行的,

    37、如果一个小组有通信是平行的,如果一个小组有n n个成员,个成员,则可能的通信信道有则可能的通信信道有n(n-1)/2n(n-1)/2条。条。一般说来,程序设计小组的规模应该比较小,一般说来,程序设计小组的规模应该比较小,以以2 28 8名成员为宜。如果项目规模很大,用一个名成员为宜。如果项目规模很大,用一个小组不能在预定时间内完成开发任务,则应该使小组不能在预定时间内完成开发任务,则应该使用多个程序设计小组,每个小组承担工程项目的用多个程序设计小组,每个小组承担工程项目的一部分任务,在一定程度上独立自主地完成各自一部分任务,在一定程度上独立自主地完成各自的任务。的任务。系统的总体设计应该能够保

    38、证由各个系统的总体设计应该能够保证由各个小组负责开发的各部分之间的接口是良好小组负责开发的各部分之间的接口是良好定义的,并且是尽可能简单的。定义的,并且是尽可能简单的。小组规模小,不仅可以减少通信问题,小组规模小,不仅可以减少通信问题,而且还有其他好处。例如,容易确定小组而且还有其他好处。例如,容易确定小组的质量标准,而且用民主方式确定的标准的质量标准,而且用民主方式确定的标准更容易被大家遵守;组员间关系密切,能更容易被大家遵守;组员间关系密切,能够互相学习等。够互相学习等。民主制程序员组通常采用非正式的组民主制程序员组通常采用非正式的组织方式,也就是说,虽然名义上有一个组织方式,也就是说,虽

    39、然名义上有一个组长,但是他和组内其他成员完成同样的任长,但是他和组内其他成员完成同样的任务。在这样的小组中,由全体讨论决定应务。在这样的小组中,由全体讨论决定应该完成的工作,并且根据每个人的能力和该完成的工作,并且根据每个人的能力和经验分配适当的任务。经验分配适当的任务。为了使少数经验丰富、技术高超的程为了使少数经验丰富、技术高超的程序员在软件开发过程中能够发挥更大作用,序员在软件开发过程中能够发挥更大作用,程序设计小组也可以采用下一小节中介绍程序设计小组也可以采用下一小节中介绍的另外一种组织形式。的另外一种组织形式。美国美国IBMIBM公司在公司在2020世纪世纪7070年代初期开始年代初期

    40、开始采用主程序员组的组织方式。采用这种组采用主程序员组的组织方式。采用这种组织方式主要出于下述几点考虑:织方式主要出于下述几点考虑:软件开发人员多数比较缺乏经验;软件开发人员多数比较缺乏经验;程序设计过程中有许多事务性的工程序设计过程中有许多事务性的工作,例如,大量信息的存储和更新;作,例如,大量信息的存储和更新;多渠道通信很费时间,将降低程序多渠道通信很费时间,将降低程序员的生产率。员的生产率。BakerBaker描述的一个典型的主程序员组如图描述的一个典型的主程序员组如图13.513.5所示。所示。实际的实际的“主程序员主程序员”应该由两个人来应该由两个人来担任:一个技术负责人,负责小组的

    41、技术担任:一个技术负责人,负责小组的技术活动;一个行政负责人,负责所有非技术活动;一个行政负责人,负责所有非技术的管理决策。这样的组织结构如图的管理决策。这样的组织结构如图13.613.6所所示。示。图图13.6 13.6 现代程序员组现代程序员组 由于程序员组的成员人数不宜过多,由于程序员组的成员人数不宜过多,当软件项目规模较大时,应该把程序员分当软件项目规模较大时,应该把程序员分成若干个小组,采用图成若干个小组,采用图13.713.7所示的组织结所示的组织结构。构。图图13.7 13.7 大型项目的技术管理大型项目的技术管理组织结构组织结构 把民主制程序员组和主程序员组的优点把民主制程序员

    42、组和主程序员组的优点结合起来的另一种方法,是在合适的地方采结合起来的另一种方法,是在合适的地方采用分散做决定的方法,如图用分散做决定的方法,如图13.813.8所示。所示。图图13.8 13.8 包含分散决策的组织包含分散决策的组织方式方式 质量是产品的生命,不论生产什么产质量是产品的生命,不论生产什么产品,质量都是极端重要的。软件产品开发品,质量都是极端重要的。软件产品开发周期长,耗费巨大的人力和物力,更必须周期长,耗费巨大的人力和物力,更必须特别注意保证质量。特别注意保证质量。13.5.1 13.5.1 软件质量软件质量 概括地说,软件质量就是概括地说,软件质量就是“软件与明软件与明确地和

    43、隐含地定义的需求相一致的程度确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件符合明更具体地说,软件质量是软件符合明确地叙述的功能和性能需求、文档中明确确地叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。上述定义件都应具有的隐含特征的程度。上述定义强调了下述的三个要点。强调了下述的三个要点。软件需求是度量软件质量的基础,软件需求是度量软件质量的基础,与需求不一致就是质量不高。与需求不一致就是质量不高。指定的标准定义了一组指导软件开指定的标准定义了一组指导软件开发的准则,如果没有遵守这些准则,几乎发

    44、的准则,如果没有遵守这些准则,几乎肯定会导致质量不高。肯定会导致质量不高。通常,有一组没有显式描述的隐含通常,有一组没有显式描述的隐含需求需求(例如,期望软件是容易维护的例如,期望软件是容易维护的)。如。如果软件满足明确描述的需求,但却不满足果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得隐含的需求,那么软件的质量仍然是值得怀疑的。怀疑的。下面介绍影响软件质量的主要因素,下面介绍影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。这些因素是从管理角度对软件质量的度量。可以把这些质量因素划分成三组,它们分可以把这些质量因素划分成三组,它们分别反映用户在使用软件产

    45、品时的三种不同别反映用户在使用软件产品时的三种不同倾向或观点。倾向或观点。这三种倾向是:产品运行,产品修改这三种倾向是:产品运行,产品修改和产品转移。图和产品转移。图13.913.9描绘了软件质量因素描绘了软件质量因素和上述三种倾向和上述三种倾向(或称为产品活动或称为产品活动)之间的之间的关系,表关系,表13.713.7给出了软件质量因素的简明给出了软件质量因素的简明定义。定义。图图13.9 13.9 软件质量因素与产品软件质量因素与产品活动的关系活动的关系12.3 软件质量因素的定义质量因素定义正确性系统满足规格说明和用户目标的程度,即,在预定环境下能正确地完成预期功能的程度健壮性在硬件发生

    46、故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度效率为了完成预定的功能,系统需要的计算资源的多少完整性(安全性)对未经授权的人使用软件或数据的企图,系统能够控制(禁止)的程度可用性系统在完成预定应该完成的功能时令人满意的程度风险按预定的成本和进度把系统开发出来,并且为用户所满意的概率可理解性理解和使用该系统的容易程度可维修性诊断和改正在运行现场发现的错误所需要的工作量的大小灵活性(适应性)修改或改进正在运行的系统需要的工作量的多少可测试性软件容易测试的程度可移植性把程序从一种硬件配置和(或)软件系统环境转移到另一种配置和环境时,需要的工作量多少。有一种定量度量的方法是:用原

    47、来程序设计和调试的成本除移植时需用的费用可再用性在其他应用中该程序可以被再次使用的程度(或范围)互运行性把该系统和另一个系统结合起来需要的工作量的多少 13.5.2 13.5.2 软件质量保证措施软件质量保证措施 软件质量保证软件质量保证(Software Quality(Software Quality AssuranceAssurance,通常缩写为,通常缩写为SQA)SQA)的措施主要有,的措施主要有,基于非执行的测试基于非执行的测试(也称为复审也称为复审)、基于执、基于执行的测试行的测试(以前讲述的软件测试以前讲述的软件测试)。1.1.技术复审的必要性技术复审的必要性 正式技术复审的明

    48、显优点是,能够较正式技术复审的明显优点是,能够较早地发现错误,防止错误被传播到软件过早地发现错误,防止错误被传播到软件过程的后续阶段程的后续阶段。正式技术复审实际上是一类复审方法,正式技术复审实际上是一类复审方法,包括走查包括走查(Walkthrough)(Walkthrough)和审查和审查(Inspection)(Inspection)等具体方法。走查的步骤比等具体方法。走查的步骤比审查少,而且没有审查那样正规。审查少,而且没有审查那样正规。2.2.走查走查 (1)(1)参与者驱动法参与者驱动法 参与者按照事先准备好的列表,提出参与者按照事先准备好的列表,提出他们不理解的术语和认为不正确的

    49、术语。他们不理解的术语和认为不正确的术语。文档编写组的代表必须对每个质疑做出回文档编写组的代表必须对每个质疑做出回答,要么承认确实有错误,要么对质疑做答,要么承认确实有错误,要么对质疑做出解释。出解释。(2)(2)文档驱动法文档驱动法 文档编写者向走查组成员仔细解释文文档编写者向走查组成员仔细解释文档。走查组成员在此过程中不时针对事先档。走查组成员在此过程中不时针对事先准备好的问题或解释过程中发现的问题提准备好的问题或解释过程中发现的问题提出质疑。出质疑。3.3.审查审查 审查的范围要比走查广泛得多,它的审查的范围要比走查广泛得多,它的步骤也比较多。一般来说,审查有步骤也比较多。一般来说,审查

    50、有5 5个基本个基本步骤。步骤。综述:综述:由负责编写文档的一名成员由负责编写文档的一名成员向审查组成员综述该文档。在综述会议结向审查组成员综述该文档。在综述会议结束时把文档分发给每位与会者。束时把文档分发给每位与会者。准备准备:评审员仔细阅读文档。最好:评审员仔细阅读文档。最好列出在审查中发现的错误的类型,并按发列出在审查中发现的错误的类型,并按发生频率把错误类型分级,以辅助审查工作生频率把错误类型分级,以辅助审查工作的进行。这些列表有助于评审员们把注意的进行。这些列表有助于评审员们把注意力集中到最常发生错误的区域。力集中到最常发生错误的区域。审查审查:评审组仔细走查整个文档。:评审组仔细走

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第13章软件项目管理课件.ppt
    链接地址:https://www.163wenku.com/p-4906903.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库