免费智能真题库 > 历年试卷 > 信息系统监理师 > 2009年上半年 信息系统监理师 上午试卷 综合知识
  第33题      
  知识点:   甘特图   Gantt图   软件项目管理   图形   项目管理
  关键词:   软件项目   项目管理        章/节:   进度控制       

 
软件项目管理中可以使用各种图形工具来辅助决策,下面对Gantt图的描述中,不正确的是(33)。
 
 
  A.  Gantt图表现各个活动的持续时间
 
  B.  Gantt图表现了各个活动的起始时间
 
  C.  Gantt图反映了各个活动之间的时间依赖关系
 
  D.  Gantt图表现了完成各个活动的进度
 
 
 

 
  第51题    2012年上半年  
   65%
某工程有10项工作,其相互的依赖关系如下表所示,按照该工作关系,第(50) 天后开始F工作,关键路径为(51)天,I工作的自由时差为..
  第52题    2010年上半年  
   56%
某工程的双代号网络计划如下图所示,则其关键路径时间为(50)天,作业F的自由时差为(51)天,节点5的最迟完成时间为(52)天。..
  第51题    2013年下半年  
   65%
能够反映施工工序在施工中的机动时间的进度计划图是(51)。
   知识点讲解    
   · 甘特图    · Gantt图    · 软件项目管理    · 图形    · 项目管理
 
       甘特图
        甘特图也叫横道图,是一种比较简单的直观进度控制图。应用这种方法进行项目进度控制的思路是首先编制项目进度计划,再按进度计划监督、检查工作实际进度,并在甘特图上做好记录,据此判断项目进度的实施情况,并提出控制措施的完整过程。
        甘特图以横坐标表示每项活动的起止时间,纵坐标表示各分项作业,按一定先后作业顺序、用带时间比例的水平横道线来表示对应项目或工序的持续时间,并以此作为进度管理的图示。例如,下图给出了一个具有5个任务的甘特图。
        
        甘特图
        如果这5条线段(细线)分别代表完成活动的计划时间,则在横坐标方向附加一条可向右移动的纵线。它可随着项目的进展,指明已完成的活动(纵线扫过的)和有待完成的活动(纵线尚未扫过的)。从甘特图上可以很清楚地看出各子活动在时间上的对比关系。
        在甘特图中,每一活动的完成不是以能否继续下一阶段活动为标准,而是以必须交付应交付的文档与通过评审为标准的。因此在甘特图中,文档编制与评审是项目进度的里程碑。甘特图的优点是标明了各活动的计划进度(细线表示)和当前进度(粗线表示),能动态地反映项目进展情况,能反映活动之间的静态逻辑关系。其缺点是难以反映多个活动之间存在的复杂的逻辑关系,没有指出影响项目生命周期的关键所在,不利于合理地组织安排整个系统,更不利于对整个系统进行动态优化管理。
        可以在项目的进度控制中同时采用甘特图法和网络图法。由甘特图法明确各个作业之间的先后顺序,具体做法如下:由项目经理编制时间进度计划甘特图,编制完成并批准实施后,随着开发、实施作业的进程,将各个项目或工作的实际进度画在甘特图相应工作的计划进度横道线的下方。对比甘特图上各工作的计划进度和实际进度,能十分清楚地了解计划执行的偏差,进而对偏差进行处理。同时配以网络图法,它充分提示了各工作项目之间相互制约和相互依赖的关系,并能反应进度计划中的矛盾。从网络图中找出关键路径,对其进行重点控制。用网络图法记录各项工作实际作业时间和起止时间,在网络图上用色彩标明已完工工作,可与未完工工作分开,使相关人员一目了然。
        就网络图和甘特图的比较,可以总结为:甘特图法可以比对各工作的计划进度和实际进度,能十分清楚地显示计划执行的偏差,以便于对偏差进行处理。网络图法能够充分提示各工作项目之间的相互制约和相互依赖的关系,可以从中找出关键路径,进行重点控制。
 
       Gantt图
        Gantt图是一种简单的水平条形图,它以日历为基准描述项目任务。水平轴表示日历时间线(如时、天、周、月和年等),每个条形表示一个任务,任务名称垂直地列在左边的列中,图中水平条的起点和终点对应水平轴上的时间,分别表示该任务的开始时间和结束时间,水平条的长度表示完成该任务所持续的时间。当日历中同一时段存在多个水平条时,表示任务之间的并发。下图所示的Gantt图描述了三个任务的进度安排。任务1首先开始,完成它需要6个月时间;任务2在1个月后开始,完成它需要9个月时间;任务3在6个月后开始,完成它需要5个月时间。
        Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但是其缺点是不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。
        
        Gantt图实例
 
       软件项目管理
        软件项目管理的对象是软件项目。为了使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬/软件)、要实现的任务、经历的里程碑、花费的工作量(成本)以及进度的安排等做到心中有数。而软件项目管理可以提供这些信息。这种管理的范围覆盖了整个软件工程过程,即开始于技术工作开始之前,在软件从概念到实现的过程中持续进行,最后终止于软件工程过程结束。
               成本估算
               由于软件具有可见性差、定量化难等特殊性,因此很难在项目完成前准确地估算出开发软件所需的工作量和费用。通常可以根据以往开发类似软件的经验(也可以是别人的经验)来进行成本估算。也可以将软件项目划分成若干个子系统或按照软件生存周期的各个阶段分别估算其成本,然后汇总出整个软件的成本。此外,还可以使用经验公式和成本估算模型来进行估算。
                      成本估算方法
                      (1)自顶向下估算方法。该方法是估算人员参照以前完成的项目所耗费的总成本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然后把它们按阶段、步骤和工作单元进行分配。这种方法的优点是对系统级工作的重视,所以估算中不会遗漏诸如集成、配置管理之类的系统级事务的成本估算,且估算工作量小、速度快。它的缺点是往往不清楚低级别上的技术性困难问题,而这些困难将会使成本上升。
                      (2)自底向上估算方法。该方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。这种方法的优点是对每一部分的估算工作交给负责该部分工作的人来做,所以估算较为准确。其缺点是其估算往往缺少各项子任务之间相互联系所需要的工作量和与软件开发有关的系统级工作量,所以估算往往偏低。
                      (3)差别估算方法。该方法是将待开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出待开发项目的总成本。该方法的优点是可以提高估算的准确度,缺点是不容易明确“差别”的界限。
                      (4)其他估算方法。主要有专家估算法、类推估算法和算式估算法等。
                      .专家估算法:依靠一个或多个专家对要求的项目做出估算,其精确性取决于专家对估算项目的定性参数的了解和他们的经验。
                      .类推估算法:在自顶向下的方法中,类推估算法将估算项目的总体参数与类似项目进行直接比较得到结果;在自底向上方法中,类推估算法是在两个具有相似条件的工作单元之间进行。
                      .算式估算法:专家估算法和类推估算法的缺点在于它们依靠带有一定盲目性和主观性的猜测对项目进行估算。算式估算法则是企图避免主观因素的影响。用于估算的方法有两种基本类型:由理论导出和由经验导出。
                      成本估算模型
                      常用的软件成本估算模型有Putnam模型和COCOMO模型。Putnam模型是一种动态多变量模型,它是假设在软件开发的整个生存期中工作量有特定的分布。COCOMO模型是最精确、最易于使用的成本估算模型之一。COCOMO模型可以分为如下3种:
                      (1)基本COCOMO模型:是一个静态单变量模型,它是对整个软件系统进行估算。
                      (2)中级COCOMO模型:是一个静态多变量模型,它将软件系统模型分为系统和部件两个层次,系统由部件构成,它把软件开发所需人力(成本)看作是程序大小和一系列“成本驱动属性”的函数。
                      (3)详细COCOMO模型:它将软件系统模型分为系统、子系统和模块三个层次,它除包括中级模型所考虑的因素外,还考虑了在需求分析、软件设计等每一步的成本驱动属性的影响。
               风险分析
               当在软件工程环境中考虑风险时,主要是基于关心未来、关心变化、关心选择这三个概念提出的。在进行软件工程分析时,项目管理人员要进行4种风险评估活动,包括建立表示风险概念的尺度,描述风险引起的后果,估计风险影响的大小,确定风险估计的正确性。
               风险分析实际上是4个不同的活动:风险识别,风险预测,风险评估和风险控制。
                      风险识别
                      风险识别是试图系统化地确定对项目计划(估算、进度、资源分配)的威胁。风险识别的一种方法是建立风险条目检查表。该检查表可以用于识别风险,并使得人们集中来识别下列常见的已知的及可预测的风险:
                      (1)产品规模。与要建造或要修改的软件的总体规模相关的风险。
                      (2)商业影响。与管理或市场所加诸的约束相关的风险。
                      (3)客户特性。与客户的素质以及开发者和客户定期通信的能力相关的风险。
                      (4)过程定义。与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险。
                      (5)开发环境。与用以构建产品的工具的可用性及质量相关的风险。
                      (6)构建的技术。与待开发软件的复杂性及系统所包含技术的“新奇性”相关的风险。
                      (7)人员数目及经验。与参与工作的软件工程师的总体技术水平及项目经验相关的风险。
                      风险预测
                      风险预测,又称风险估算,它从两个方面评估一个风险:风险发生的可能性或概率,以及如果风险发生了,所产生的后果。通常,项目计划人员与管理人员、技术人员一起进行如下所述的4种风险预测活动:
                      (1)建立一个尺度或标准,以反映风险发生的可能性。
                      (2)描述风险的后果。
                      (3)估计风险对项目和产品的影响。
                      (4)标注风险预测的整体精确度,以免产生误解。
                      风险评估
                      一种对风险评估很有用的技术就是定义风险参照水准。对于大多数软件项目来说,成本、进度和性能就是三种典型的风险参照水准。也就是说,对于成本超支、进度延期、性能降低(或它们的某种组合),有一个表明导致项目终止的水准。
                      在进行风险评估时,需要建立(rilixi)形式的三元组。其中,ri表示风险,li表示风险发生的概率,xi则表示风险产生的影响。在风险评估过程中,需要执行以下4个步骤:
                      (1)定义项目的风险参考水平值。
                      (2)建立每一组(rilixi)与每一个参考水平值之间的关系。
                      (3)预测一组临界点以定义项目终止区域,该区域由一条曲线或不确定区域所界定。
                      (4)预测什么样的风险组合会影响参考水平值。
                      风险控制
                      这一步的所有风险分析活动只有一个目的——辅助项目组建立处理风险的策略。一个有效的策略必须考虑风险避免、风险监控、风险管理及意外事件计划方面的问题。
                      如果软件项目组对于风险采用主动的方法,则避免永远是最好的策略。这可以通过建立一个风险缓解计划来达到。
                      风险管理策略可以包含在软件项目计划中,或者风险管理步骤也可以组织成一个独立的风险缓解、监控和管理计划(RMMM计划)。RMMM计划将所有风险分析工作文档化,并由项目管理者作为整个项目计划中的一部分来使用。
               进度管理
               进度的合理安排是如期完成软件项目的重要保证,也是合理分配资源的重要依据,因此进度安排是管理工作的一个重要组成部分。软件开发项目的进度安排有如下两种方式:
               (1)系统最终交付日期已经确定,软件开发部门必须在规定期限内完成。
               (2)系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定。
               进度安排的常用图形描述方法有Gantt图(甘特图)和项目计划评审技术(Program Evaluation&Review Technique,PERT)图。
                      Gantt图
                      Gantt图是一种简单的水平条形图,它以日历为基准描述项目任务。水平轴表示日历时间线(如时、天、周、月和年等),每个条形表示一个任务,任务名称垂直地列在左边的列中,图中水平条的起点和终点对应水平轴上的时间,分别表示该任务的开始时间和结束时间,水平条的长度表示完成该任务所持续的时间。当日历中同一时段存在多个水平条时,表示任务之间的并发。下图所示的Gantt图描述了三个任务的进度安排。任务1首先开始,完成它需要6个月时间;任务2在1个月后开始,完成它需要9个月时间;任务3在6个月后开始,完成它需要5个月时间。
                      Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但是其缺点是不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。
                      
                      Gantt图实例
                      PERT图
                      PERT图是一个有向图,图中的箭头表示任务,它可以标上完成该任务所需的时间;图中的节点表示流入节点的任务的结束,并开始流出节点的任务,这里把节点称为事件。只有当流入该节点的所有任务都结束时,节点所表示的事件才出现,流出节点的任务才可以开始。事件本身不消耗时间和资源,它仅表示某个时间点。一个事件有一个事件号和出现该事件的最早时刻和最迟时刻。最早时刻表示在此时刻之前从该事件出发的任务不可能开始;最迟时刻表示从该事件出发的任务必须在此时刻之前开始,否则整个工程就不能如期完成。每个任务还可以有一个松弛时间(slack time),表示在不影响整个工期的前提下,完成该任务有多少机动余地。为了表示任务间的关系,图中还可以加入一些空任务(用虚线箭头表示),完成空任务的时间为0。下图是PERT图的一个实例。不难看出,下图中的松弛时间为0的这些任务是完成整个工程的关键路径,其事件流为1→2→3→4→6→8→10→11。
                      
                      PERT图实例
                      PERT图不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的关系,即哪些任务完成后才能开始另外一些任务,以及如期完成整个工程的关键路径。图中的松弛时间则反映了完成某些任务时可以推迟其开始时间或延长其完成所需的时间。但是,PERT图不能反映任务之间的并行关系。
               人员管理
               合理地组织好参加软件项目的人员,有利于发挥每个人的作用,有利于软件项目的成功开发。在人员组织时,应考虑软件项目的特点、软件人员的素质等多方面的因素。
               可以按软件项目对软件人员进行分组,如需求分析组、设计组、编码组、测试组和维护组等,为了控制软件的质量,还可以有质量保证组。
               程序设计小组的组织形式也可以有多种,如主程序员组、无主程序员组和层次式程序员组等。
               (1)主程序员组。主程序员组由一名主程序员、一名后备程序员(back up programmer)、一名资料员和若干名程序员组成。主程序员由经验丰富、能力强的高级程序员担任,他是该组织的技术领导和项目负责人,全面负责软件项目的开发。后备程序员是主程序员的助手,协助主程序员工作,必要时能代替主程序员工作。资料员负责保存和管理所有的软件配置元素,如文档资料、程序清单和存储介质等,还编译和链接代码、对提交的所有模块进行初步的测试。程序员则集中精力负责完成主程序员分配给他的最擅长的任务——编程。这种组织形式便于集中领导,步调统一,容易按规范办事,但不利于发挥个人的积极性。
               (2)无主程序员组。无主程序员组中的成员之间相互平等,工作目标和决策都由全体成员民主讨论,根据需要也可以轮流坐庄。这种组民主气氛比较足,依赖个人的成分少,有利于发挥每个人的积极性。但这种组中交流量大,往往职责不明确,出了问题谁也不负责,而且不利于与外界的联系。
               (3)层次式程序员组。层次式组中有一位组长,组长负责全面的工作,他领导若干名高级程序员,每个高级程序员又领导若干名程序员。这种组适合于具有层次结构特点的更大型的软件项目,该项目可分成若干个子项目,每个高级程序员负责一个子项目,然后再对子项目分解,并分配给程序员。
 
       图形
               表示与存储
               图形是指能在人的视觉系统中产生视觉印象的客观对象,它包括人眼观察到的自然景物、拍摄到的图片、绘图工具得到的工程图、用数学方法描述的图像等。图形是客观对象的一种抽象表示,它带有形状和颜色信息。构成图形的要素有几何要素(刻画对象轮廓形状的点、线、面、体等)和非几何要素(刻画对象表面属性或材质的颜色、灰度等)。图形可用形状参数和属性参数表示,即参数表示法;也可用带有灰度或色彩的点阵图表示,简称像素图、图像(数字图像),即点阵表示法。
               图形是计算机图形学(Computer Graphics, CG)研究的对象。ISO给计算机图形学的定义为:研究用计算机进行数据和图形之间相互转换的方法和技术。还有定义为:计算机图形学是运用计算机描述、输入、表示、存储、处理(检索/变换/图形运算)、显示、输出图形的一门学科。计算机图形技术主要研究如何在计算机中表示图形,以及利用计算机进行图形的计算、处理和显示的相关原理和算法,其核心是将客观世界对象以图形的形式在计算机内表示出来,主要包括模型生成和图形显示,如下图所示。模型生成是获取、存储和管理客观世界物体的计算机模型,以在计算机上建立客观世界的模拟环境。图形显示是生成、处理和操纵客观世界物体模型的可视化结果,以在输出设备上呈现客观世界物体的图像。
               
               计算机图形生成模型
               计算机图形技术所涉及的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法、风格化绘制、科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。
               图形的文件格式
               ① TIF。
               TIF格式是平面设计中最常用的一种图形格式,因为其属于跨平台的格式,而且支持CMYK色,所以经常被用于印刷输出的场合。此外还有一个特色就是其支持LZW压缩,即不失真压缩,也就是说不管如何压缩,图档的品质都还能保持原来的水准。
               ②TGA。
               TGA图形格式的最大特点就是可以制作出不规则形状的图档,一般图档都为四方形,若需要圆形、菱形甚至镂空的图档时,TGA格式可能就会派上用场了。TGA格式同样支持压缩,也属于不失真压缩。
               ③ PSD。
               PSD格式是Photoshop专用的图形文件格式,该格式包含图形中的色层、遮罩、色频、选取区等Photoshop可以处理的属性,这样全方位的存储如果运用得当,几乎可以将创作的过程完整地记录,以便日后的修改。
               ④UFO。
               UFO格式是另一个著名制图软件Ulead Photoimapct的专用图形格式,其是致力于追赶Adobe的有力科技,同样也发展出了与PSD格式类似的图档格式,能够完整记录所有处理过的属性,不过在记录原理上却有些不同,UFO以物件代替图层,这一点并无大碍,因为Photoimapct与Photoshop本身就有很多的不同之处。
               ⑤RIF。
               RIF是著名制图软件Painter的专用图形格式,处理方式和前面两种大同小异,都可以存储相当多的属性资料。另外,Painter可以打开PSD文件,而且经过Painter处理的PSD文件可以在Photoshop中通用,这样就可以使同一文件在Photoshop和Painter中交换使用了。
               ⑥ CDR。
               CDR是著名制图软件CorelDRAW的专用图形格式,由于CorelDRAW是向量软件,所以CDR可以记录的资料可以说是千奇百怪,各物件的属性、位置、分页通通可以存储,以便日后修改。在兼容度上,目前基本没有其他软件可以打开CDR文件,这是向量软件的通病。
               ⑦EPS。
               EPS是印刷时经常用到的格式,向量图可以转换成EPS格式,点阵图也可以转成EPS格式。EPS文件可以同时存储点阵以及向量,故专门用于印前操作,如排版等,所以一般在印刷时都使用EPS文件。
               图形处理技术
               图形处理技术的范围很广,这里以真实感图形绘制和非真实感图形绘制为例简单介绍图形处理技术。
               真实感图形绘制是指借助数学、物理、计算机等学科知识使用计算机生成三维场景中真实逼真的图形、图像的过程。真实感图像绘制主要包括两个方面:表面特性的精确表示和场景中光照效果的物理描述。真实感图形绘制的应用非常广泛,例如计算机动画制作、影视特效仿真、计算机游戏、多媒体教育和虚拟现实等。真实感图形绘制所涉及的技术主要有消隐技术、表面细节绘制技术、纹理贴图技术、高级光照与着色技术等。
               非真实感图形绘制是指利用计算机生成不具有照片般真实感而具有手绘风格的图形的技术,其目标不在于表现图形的真实性,而是在于表现图形的艺术特质、模拟艺术作品(甚至包括作品中的缺陷)或作为真实感图形的有效补充。非真实感图形绘制的应用领域也非常广泛,其中一个重要的应用领域就是对绘画进行模拟,主要模拟的画种有油画、水彩画、钢笔画、铅笔画、水墨画和卡通动画。非真实感图形绘制所涉及的技术主要有基于像素的绘制,基于线条、曲线和笔画的绘制,模拟绘画绘制等。
               如下图所示,树和天空是采用真实感图形绘制技术绘制出来的,国画是采用非真实感图形绘制技术绘制出来的。
               
               真实感图形绘制和非真实感图形绘制
 
       项目管理
        构建嵌入式系统是一项复杂的任务,尤其是涉及到很多人员共同长期工作的时候。为了使嵌入式项目开发获得成功,必须对系统开发项目的工作范围、花费的工作量(成本)、可能遇到的风险、进度的安排、要实现的任务、经历的里程碑以及需要的资源(人、硬/软件)等做到心中有数,而项目管理可以提供这些信息。项目管理的过程一般包括初启、计划、执行、监控、结项,项目管理的范围覆盖整个系统生命周期过程。
               管理范围
               有效的项目管理集中于4P,即人员(People)、产品(Product)、过程(Process)和项目(Project)。必须将人员组织起来以有效地完成产品构建工作;必须和客户及其他利益相关者很好地沟通,以便了解产品的范围和需求;必须选择适合于人员和产品的过程;必须估算完成工作任务的工作量和工作时间,从而制订项目计划。
               “人的因素”非常重要,在所有项目中,最关键的因素是人员,涉及项目管理人员、高级管理人员、开发人员、客户和最终用户。人员能力成熟度模型(People Capability Maturity Model,PCMM)针对人员定义了以下关键实践域:人员配备、沟通与协调、工作环境、业绩管理、培训、报酬、能力素质分析与开发、个人事业发展、工作组发展以及团队精神或企业文化培育等。PCMM成熟度达到较高水平的组织,更有可能实现有效的项目管理事件。
               在制订项目计划之前,首先确定产品的目标和范围,考虑可选的解决方案,识别技术和管理上的限制。如果没有这些信息,就无法进行合理(精确)的成本估算,也无法进行有效的风险评估和适当的项目任务划分,更无法制定可管理的项目进度计划来给出意义明确的项目进展标志。确定产品的目标只是识别出产品的总体目标,而不用考虑如何实现这些目标。确定产品的范围是识别出产品的主要数据、功能和行为特性,并且应该用量化的方式界定这些特性。然后开始考虑备选解决方案,不讨论细节,使管理者与参与开发的人员根据特定的约束条件选择相对最佳的方案,约束条件有产品的交付期限、预算限制、可用人员、技术接口以及其他各种因素。
               开发过程提供了一个框架,一小部分框架活动适用于所有的项目,多种不同的任务集合使得框架活动适合于不同项目的特性和项目团队的需求。普适性活动(如质量管理、配置管理、测量等)覆盖了过程模型,独立于任何一个框架活动,且贯穿于整个过程之中。
               为了成功地管理项目,需要有计划、可控制,这样才能管理复杂的系统开发;需要了解可能会出现的各类问题以便加以避免。可以采用的方法有:
               (1)在正确的基础上开始工作。
               (2)保持动力。
               (3)跟踪进度。
               (4)做出正确的决策。
               (5)进行事后分析。
               成本估算
               系统开发成本估算主要指系统开发过程中所花费的工作量及相应的代价。为了使开发项目能够在规定的时间内完成,而且不超过预算,成本预算和管理控制是关键。项目开发成本的估算主要靠分解和类推的手段进行。分解技术是将项目分解成一系列较小的、容易理解的问题进行估算。常用的分解技术有:基于问题的估算、基于代码行(LOC)估算、基于功能点(FP)的估算、基于过程的估算、基于用例的估算。选择或结合使用分解技术,进行成本估算。基本的成本估算方法有如下几种。
               (1)自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成本(或总工作量)来推算将要开发的系统的总成本(或总工作量),然后把它们按阶段、步骤和工作单元进行分配。
               自顶向下估算方法的主要优点是对系统级工作的重视,所以估算中不会遗漏集成、配置管理等系统级事务的成本估算,且估算工作量小、速度快。其缺点是不清楚低级别上的技术性困难,而这些困难将会使成本上升。
               (2)自底向上估算方法。自底向上估算方法是将待开发的系统细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到系统的总开发量。这种方法的优点是对每一部分的估算工作交给负责该部分工作的人来做,所以估算较为准确。其缺点是缺少对各项子任务之间相互联系所需要工作量和与开发有关的系统级工作量的估算,因此预算往往偏低。
               (3)差别估算方法。差别估算方法是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。该方法的优点是可以提高估算的准确度,缺点是不容易明确“差别”的界限。
               除以上方法外,还有许多方法,大致可分为三类:专家估算法、类推估算法和算式估算法。
               (1)专家估算法。该方法依靠一个或多个专家对要求的项目做出估算,其精确性取决于专家对估算项目的定性参数的了解和他们的经验。
               (2)类推估算法。在自顶向下的方法中,它是将估算项目的总体参数与类似项目进行直接比较得到结果;在自底向上方法中,类推是在两个具有相似条件的工作单元之间进行。
               (3)算式估算法。专家估算法和类推估算法的缺点在于它们依靠带有一定盲目性和主观性的猜测对项目进行估算。算式估算法则是企图避免主观因素的影响,用于估算的方法有两种基本类型:由理论导出和由经验导出。
               典型的成本估算模型主要有动态多变量普特南(Putnam)模型和层次结构的结构性成本模型(Constructive Cost Model,COCOMO)的升级模型COCOMOII等。普特南模型基于软件方程,它假设在软件开发的整个生命周期中有特定的工作量分布。COCOMOII模型层次结构中有三种不同的估算选择:对象点、功能点和源代码行。
               风险分析
               新的系统建立时,总是存在某些不确定性。例如,用户要求是否能确切地被理解?在项目最后结束之前要求实现的功能能否建立?是否存在目前仍未发现的技术难题?在项目出现严重延期时是否会发生一些变更?等等。风险是潜在的,需要识别、评估发生的概率、估算其影响、并制定实际发生时的应急计划。
               风险分析在项目管理中具有决定性作用。当在软件工程的环境中考虑风险时,主要关注以下三个方面。一是关心未来。风险是否会导致项目失败;二是关心变化。用户需求、开发技术、目标机器以及所有其他与项目有关的实体会发生什么变化;三是必须解决需要做出选择的问题,即应当采用什么方法和工具,应当配备多少人力,在质量上强调到什么程度才满足要求等。
               风险分析实际上是贯穿软件工程中的一系列风险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监控。
               进度管理
               进度安排包括把一个项目所有的工作分解为若干个独立的活动,并描述这些活动之间的依赖关系,估算完成这些活动所需的工作量,分配人力和其他资源,制定进度时序。进度的合理安排是如期完成软件项目的重要保证,也是合理分配资源的重要依据,因此进度安排是管理工作的一个重要组成部分。有两种安排软件开发项目进度的方式:
               (1)系统最终交付日期已经确定,系统开发部门必须在规定期限内完成;
               (2)系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定。
               进度安排的常用图形描述方法有Gantt图(甘特图)和PERT(Program Evaluation&Review Technique,项目计划评审技术)图。
               (1)Gantt图。Gantt图中横坐标表示时间(如时、天、周、月、年等),纵坐标表示任务,图中的水平线段表示一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所持续的时间。当日历中同一时段中存在多个水平条时,表示任务之间的并发。下图所示的Gantt图描述了三个任务的进度安排。该图表示:任务1首先开始,完成它需要12周时间;任务2在2周后开始,完成它需要18周;任务3在12周后开始,完成它需要10周。
               
               Gantt图实例
               Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性;但是它不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。
               (2)PERT图。PERT图是一个有向图,其基本符号如下图所示。
               
               PERT图的基本符号
               PERT图中的有向弧表示任务,可以标上完成该任务所需的时间,图中的结点表示流入结点的任务已结束,并开始流出结点的任务,这里把结点称为事件。只有当流入该结点的所有任务都结束时,结点所表示的事件才出现,流出结点的任务才可以开始。事件本身不消耗时间和资源,它仅表示某个时间点。每个事件有一个事件号及出现该事件的最早时刻和最迟时刻。最早时刻表示在此时刻之前从该事件出发的任务不可能开始;最迟时刻表示从该事件出发的任务必须在此时刻之前开始,否则整个工程就不能如期完成。每个任务还可以有一个松弛时间(slack time),表示在不影响整个工期的前提下,完成该任务有多少机动时间。为了表示任务间的关系,图中还可以加入一些空任务(用虚线有向弧表示),完成空任务的时间为0。
               PERT图的一个实例如下图所示,该图所表示的工程可分为12个任务,事件号1表示工程开始,事件号11表示工程结束(完成所有任务需要23个时间单位)。松弛时间为0的任务构成了完成整个工程的关键任务,其事件流为1→2→3→4→6→8→10→11,也就是说,这些任务不能拖延,否则整个工程就不能在23个时间单位内完成。
               
               PERT图示例
               PERT图不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的关系,即哪些任务完成后才能开始另外一些任务,还可以找出如期完成整个工程的关键任务。任务的松弛时间则反映了完成任务时可以推迟其开始时间或延长其所需完成的时间。PERT图不能反映任务之间的并行关系。
   题号导航      2009年上半年 信息系统监理师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第33题    在手机中做本题