2012年软考软件设计师辅导:估算方法

来源:微学教育网发布时间:2012-04-27

  无论有经验的软件工程师还是新手软件开发人员,在开始开发项目之前,都会有一个或粗或细的开发计划,如何使计划更接近实际?

  为了更精确地制订计划,可以把项目划分为若干个小任务,分别制定每个任务的完成计划。工作量的安排可参考LOC估算工作量或FP估算工作量,通过LOC估算表或FP估算表,可以查看估算工作量的值,随后将会详细介绍项目应该文档化项目计划,该计划包括产品规模、资源、成员水平、进度和里程碑的估算。历史数据表明,软件项目的成本和进度会被低估很多。其原因如下:

  A) 成本和进度经常被外界因素提前决定

  B) 没有对软件开发过程进行深度分析或者因一些原因没有被完全理解

  C) 通常欠缺软件开发是一项昂贵的工作的意识

  对于软件项目而言,精确估计产品的开发与交付进度是很困难的。对此微软采取的方法是将进度安排和工作管理的责任推到最底层,即单个的开发人员和测试人员那儿去。这保证了每个人除了作为小组的一部分外,还负有个人的责任。单独的开发人员设立他们自已的进度表,程序经理把单独的进度表汇总起来,再加上缓冲时间,以制定出一个全面的项目进度表。顶层的总经理也固定人员与时间等基本资源,以确保项目集中并限制其努力与创造程序。

  开发人员做出他们自已的进度估计。但是开发人员一般会做出较乐观的估计,因此开发经理还需对他们所提供的日期进行调整并加上缓冲时间以避免因因信息不完全而出现的问题。微软这种制定进度的方法的优点在于:它从人们那儿得到更多的合作,因为日期是自已定的,不是经理定的;进度总是富有进取性,因为开发人员不可避免地会低估他们真正需要的时间。

  与开发人员一起来确定每项任务的工作量和工期,充分利用了集体的智慧,调动了所有员工的积极性。

  对工作结构分解:

  进行估算最精确的方法通常是建立一个将工作分解开的结构。这就需要在一个很高的层面描述工作,然后将该工作分解成更小的部分,直到每项活动都能够被估算在80/40小时以内完成。(或者如果项目比较小的话,就是40/20个小时。)这通常也需要花费很多时间和精力。但是,如果你非常好地了解了这项工作,而且如果你能够确定所需要的工作都已经包括进了你的工作分解结构里,那么你就常常取得获得一个精确的估算。

  功能估算和预算制订

  a.估算方法

  i. Delphi technique 德尔菲法

  ii. Function points 功能点

  德尔菲法

  德尔菲法是在20世纪60年代由美国兰德公司首创和使用的一种特殊的策划方法。德尔菲是古希腊的一座城市,因阿波罗神殿而驰名,由于阿波罗有着高超的预测未来的能力,故德尔菲成了预测、策划的代名词。

  所谓德尔菲法是指采用函询的方式或电话、网络的方式,反复咨询专家们的建议,然后由策划人作出统计,如果结果不趋向一致,那么就再征询专家,直至得出比较统一的方案。这种策划方法的优点是:专家们互不见面,不能产生权威压力,因此,可以自由地充分地发表自己的意见,从而得出比较客观的策划案。

  运用这种策划方法时,要求专家具备策划主题相关的专业知识,熟悉市场的情况,精通策划的业务操作。专家的意见得出结果后,策划人需要对结果进行统计处理。但是这种方法缺乏客观标准,主要凭专家判断,再者由于次数较多,反馈时间较长,有的专家可能因工作忙或其它原因而中途退出,影响策划的准确性。

  FP(功能点)估算代码尺寸

  项目的功能点数是几个测量参数(用户输入数、用户输出数、用户查询数、文件数、外部接口数)的功能点之和。

  用户输入数:计算每个用户输入,它们向软件提供面向应用的数据。输入应该与查询区分开来,分别计算。

  用户输出数:计算每个用户输出,它们向软件提供面向应用的信息。这里,输出是指报表、屏幕、出错信息,等等。一个报表中的单个数据项不单独计算。

  用户查询数:一个查询被定义为一次联机输入,它导致软件以联机输出的方式产生实时的响应。每一个不同的查询都要计算。

  文件数:计算每个逻辑的主文件(如数据的一个逻辑组合,它可能是某个大型数据库的一部分或是一个独立的文件)。

  外部接口数:计算所有机器可读的接口(如磁带或磁盘上的数据文件),利用这些接口可以将信息从一个系统传送到另一个系统。

  FP估算表包括

  1、每个测量参数的估算FP计数=估算值*加权因子

  2、项目估算FP=各参数FP计数之和*复杂度调整因子

  3、估算生产率由经验获得

  4、估算工作量=项目估算FP/估算生产率

  5、估算总成本=日薪*估算工作量

  6、单个FP估算成本=估算总成本/估算FP

  LOC(Lines of Code)估算代码尺寸

  把项目划分为若干个功能,分别计算每个功能的代码长度,所有功能代码行之和即项目的代码长度。

  LOC估算表包括:

  1、每个功能的代码长度估算值=(乐观值+4*可能值+悲观值)/6

  2、估算工作量=代码总估算长度/估算生产率

  3、估算总成本=日薪*估算工作量

  4、估算行成本=估算总成本/估算代码长度

  5、估算生产率由经验获得

  b.利用计划评审技术