[yippit]的博客:
http://forpmp.mypm.net
功能点分析方法的应用 

功能点是软件规模的度量,是对软件的功能的细分和量化。将功能点和其它度量数据一起分析,可以实现对软件产品的各个属性的定量、定性描述。例如和质量参数结合分析时的缺陷密度;和生产力参数结合分析时的生产率;和成本参数结合分析是的单位开发成本等等。
      成功地实施功能点分析,可以在很大程度上帮助我们掌控项目,提高工作水平。
      a) 有效地沟通和交流;
      b) 建立度量基线,并加以跟踪;
      c) 尽早地发现并解决问题;
      d) 在做权衡决策的时候有明确的参考数据;

      以下讨论在项目生命周期内各个阶段内功能点分析方法起到的作用。
      1. 项目立项阶段
      项目立项阶段的主要工作是做可行性分析,其中一个很重要的部分是对项目商业上的可行性进行分析,也就是要判断赚不赚钱。对于软件项目来说,这是一个难以量化的工作,软件项目中有太多的不确定因素,客户需求不明确而且容易发生变化。
      这是最重要的工作就是进行初步的需求分析,以期确定项目的基本范围。如果这个项目的行业领域是企业或者项目团队比较熟悉的领域,可以根据历史经验进行分 析。如果一个企业已经实施了功能点分析方法,并且建立起了基本基础数据库,就可以在分析的时候使用这些量化的数据,这样可以使决策更加科学。

      2. 项目计划编制
      项目计划的主要内容就是根据项目范围和需求分析,编制软件项目计划,确定时间周期、工作进度、成本、资源等等。
      在软件项目计划工作中最重要的工作就是估计。估计工作包括估计产品规模、选择生命周期、估计工作进度等任务。估计得到的数据是编制项目计划的基础,在所有 的估计活动中,估计产品规模是最基础的工作。使用功能点分析方法能够很好地量化需求,比起按照经验估算来说更加科学。

      2.1. 需求分析和评估
      在实际工作中,项目的功能性需求往往不能够一下子就分析清楚,项目的范围也不是一下就能够决定的,这是一个反复迭代的过程。使用功能点分析方法,在这个反复收集、分析、测量的过程中,澄清了项目的需求,将含糊的内容都明确下来,逐步建立完整和详实的工作计划。
做好需求分析工作使实施功能点分析方法的基础,这对于项目团队使一个挑战,也是一个改进的机会。改进需求工作往往很空泛,一个重要的原因就是不知道也很难把握改进的程度,功能点分析方法使一个很好的检验方法,项目的需求工作的详细程度必须满足功能度量的要求。
将项目的功能点分析结果与行业功能点基准数据进行比较,可以通过行业的基准数据发现问题。

      2.2. 项目范围的确定和评估
软件的项目范围要有明确的规定,必须形成描述项目范围的说明。
清晰的需求分析通常能够使我们了解项目的范围,但是很难找到一个表示项目范围的量化的指标,而功能点分析方法就可以为项目组和项目关系人建立一个项目的范围的量化认识。
计 算功能点指数数量的过程就是得到项目范围量化指标的过程。层层细分业务功能,不仅可以对项目的范围有清晰明确的认识,而且可以方便地计算处每个业务模块或 者功能模块的功能点指数数量,以至整个应用软件系统的功能点指数数量,并可以建立功能点指数数量和项目范围、业务模块或者功能模块之间的对应关系。另外一 个好处就是分解工作按照层次进行,因此结合每个部分的功能点指数,可以形成比较清晰的图表,项目组内部之间以及与客户进行沟通更加容易,这样建立起来的项 目范围是比较合理而且共同认可的。
      项目范围的量化数据可以作为基线的一部分,作为日后跟踪监控项目的基础。这样在进行项目范围评估的时候:
      a) 看项目范围是否合理,项目关系人是否接受和认可
      b) 结合功能点分析计算过程,判断是否充分分析了项目范围。
      c) 根据功能点分析计算的结果,结合经验和行业基准库,判断项目范围内,与项目配置的资源、时间是否合理。
      d) 在需求变更的时候,量化变更的范围和变更的规模和数量。

      2.3. 购买/外包决策和费用评估
对待购买的应用软件的规模进行测量,分析产品的需求,估计软件的规模和成本,然后判断是自己开发,还是购买。

      2.4. 生命周期模型
对于迭代模型或者增量模型而言,结合功能点分析方法,估计出每个阶段需要完成的功能点指数数量以及可能变化的需求功能点指数数量,并结合项目的架构进行评估,对需要各个阶段之间额外增加的接口数量进行计划和安排。

      2.5. 日程进度资源的估计
通 常估计项目计划就是做WBS分解,根据每个子任务进行日程安排和进度规划。很多估计完全是经验型的,这种方法的可预测性和可重复性不强,而且在实践活动 中,容易受到权威和权利的干扰,效果有限。使用功能点分析方法则可以提高这些估计活动的准确性,通过量化产品规模和日程进度的关系,提高估计的效率。

      2.6. 质量估计
      产品质量的度量:一种比较常用的度量方法是在产品提交之后,运行一段时间内发生的所有问题和提交的产品规模的比例。另外一种质量估计方法是,根据历史记录 分析各个阶段发现的缺陷数量,对产品质量轻跨国内进行估计。使用工业数据库或者公司历史资料数据库做为质量要求的基线,对产品质量进行评估,如果不符合, 则必须分析项目的开发进程,找出问题的关键,从而改进开发流程,以保证质量符合项目需求。
      统计表明,在一个软件组织中,一定规模的应用软件其缺陷发生的概率是一定的,因此根据该项目的产品规模,就可以估算该产品的大概质量水平,从而采取相应的措施。

      2.7. 软件项目计划制定和评审
      计划评审关注:
      a) 生命周期是否合理;
      b) 进度安排、日常安排、资源分配计划是否可行;
      c) 成本因素方面是否可行,采购安排是否可行;
      d) 风险计划是否充分合理;
      e) 项目干系人是否接受
      计划评审过程本质上就是对上述计划数量的获取过程以及结构的确认。在这个过程中,综合利用功能点方法的具体做法是:准备号用于平时的各种数据,特别是项目基础数据和基准数据,以推理的方式说明是如何得到各种项目计划数据的。
      功能点分析方法是一个全新的方法,它是软件项目计划脱离了定性估算,建立了定量估算的基础。使对软件项目的整体规模安排有了一个相对合理的度量单位-功能点指数。

      3. 在项目执行过程中的应用
      对项目执行情况进行跟踪监控,使整个团队和项目关系人能够确切地知道项目的进展,这样使项目绩效在偏离目标的时候采取适当的纠正措施。
在项目执行过程中,监控任务的重点分成两个部分,第一部分根据计划监控项目的执行过程,第二部分则是管理纠正措施,直到问题解决。
      监控的主要内容:项目计划的参数指标;承诺;项目风险;数据管理;项目关系人的参与;进行进度评审。纠正措施的主要内容:分析问题;采取纠正措施;对纠正措施进行全过程管理。
监 控项目计划的参数指标,就是监控和测量项目过程和项目产品。对于项目过程来说,有过程的工作产品、任务花费、工作量和进度等过程属性。对于产品来说,是产 品的规模、复杂度、重量、形式、适合度和功能等产品属性。监控其实是对这些属性进行量化的测量,并结合项目计划进行比较,从而确认与计划的相同点和不同 点,以便进行分析和采取纠正措施。
      在项目监控过程中都可以采用功能点分析方法,其中最主要的是在监控项目的参数指标和进度里程碑评审中使用,主要的内容就是范围变更管理、项目进度跟踪、质量跟踪和绩效跟踪几个方面。

      3.1. 范围变更的管理
      分析变更带来的影响,量化变更的范围。在项目进行过程中,当确认了功能变更,就需要重新计算这个应用软件的功能点指数,以反映这些功能需求的变化。这样就容易对项目的范围进行监控,每个项目里程碑都可以量化确认项目需求的变更情况。
      如果项目的需求变更情况超过初始估计时确定的数值,就相当于给项目团队提示了一个早期的警告,即初始的估计存在问题,项目需要再做一次估计、计划评审以及 相应的风险评估活动,以避免可能存在的问题,并采取一定的措施。例如,更改软件计划,减少本次发布软件的功能。
如果变更较小,影响较小,再进度评审时进行确认,再里程碑评审的时候对阶段性所有的项目范围的变更进行确认,如果有突发的、很大的变更,对项目的影响很大,则是在基本的变更流程基础上,深入分析并且及时和项目关系人取得沟通和共识,确保项目顺利进行。

      3.2. 项目进展的跟踪
      在功能点跟踪矩阵中,对于设计、编码、测试等工作整体完成的情况做量化测量。还可以根据功能点对应的价值进行挣值管理。

      3.3. 质量跟踪
      在项目执行过程中,缺陷的发生、分析、决计和严重的管理过程试质量跟踪最重要的任务之一。
质量度量:缺陷密度就是在一个预定义的时间段内,所有发现并确认的缺陷数量和软件规模的比率。
对缺陷数据进行统计学的分析,可以判断出项目过程中哪些方面的对缺陷密度有最大的影响。可以通过控制这些特征和监控软件项目判断缺陷密度趋势是否达到了期望目标,并且可以在缺陷密度达到警戒线前采取措施,使项目质量控制在计划范围内。

      3.4. 项目绩效
      绩效跟踪是项目管理的一个重要缓解,主要是对人员和项目组的绩效数据进行跟踪采集。跟踪的方法没有特殊性,关键在于数据的收集和分析。
例如需求人员的生产绩效:需求人员的生成绩效的主要跟踪内容是,跟踪需求调研工作的功能规模、完成相应规模的需求工作锁花费的时间、以及将两个数据进行相应计算得到的单位时间内的需求生产率,这样就可以跟踪需求人员的工作绩效。
      跟踪需求调研工作的功能规模通常是以初步确定需求为基础,完成相应的工作所花费的时间主要是访谈、评审和编写文档等工作时间,将两种相除即可以得到每人天完成的需求的功能点指数数量。


      4. 项目收尾阶段
      项目收尾分为合同收尾和管理收尾。与一般的软件项目管理收尾不同,PMBOK中的管理收尾并不仅仅是项目块结束了才执行,而是在每个阶段都需要执行的一项任务。一般软件项目管理中的里程碑评审基本包括了PMBOK中的管理收尾的概念,而且包括更多的内容。

      4.1. 软件项目的投资回报分析
      投资回报分析是一个项目实施后基本的工作,也就是看看投资一个下过面后是否达到预期的目标,是否赚钱,并建立投资与软件规模大小的关系。
      对于产品部门,投资回报分析主要是计算开发所用的投资以及获得的产品规模,计算项目成本的投入,与标准成本对比,就可以得到这个项目的投资回报率。

yippit 发表于 2007/3/27 13:07:00 阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志

发表评论:

    昵称:
    密码:
    主页:
    标题:
公 告
登 陆
日志日历
搜 索
日 志
评 论
链 接
统 计