51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5680|回复: 4
打印 上一主题 下一主题

[讨论] 关于功能点估计法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-4-16 15:27:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟在搞一个软件项目成本估计的方法,其中在看到功能点估计法的时候,对该方法理解不到位,哪位兄弟给点资料或实例,谢谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    慵懒
    2016-4-26 13:27
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2008-4-16 15:51:37 | 只看该作者
    使用用例点数进行项目估算

    作者:RoyClem.
    译者:freechow
    1        简介
    面向对象的应用经常使用用例来描述一个软件应用的业务过程。用例通常由评估业务领域的战略目标和场景组成,它们也用来说明软件应用的复杂度。 通过分析用例的角色和场景,可以得到可靠的一个应用程序的规模和工作量的估算值。 用例点数是一个项目估算方法,它使用项目的用例来准确的估算项目规模和工作量。
    2        用例点数
    用例建模是一种得到广泛使用的技术,用来获取软件应用的业务过程和需求。既然用例提供了应用的功能范围,分析它们的内容将对需要进行设计和实现这个应用有很大作用。通常, 具有大而复杂用例的应用需要更多的工作量来设计和实现。此外,完成应用程序的时间受到下列因素的影响:
            完成用例需要的步骤.
            角色的复杂性和数目.
            用例的技术需求,如:并发性、安全性和性能。
            各种环境因素,如:开发团队的经验和知识.
    用例点数根据一个应用程序的用例来估算它的规模和工作量。依据Gustav Karner1993年的工作,UCP分析用例角色,场景和各种技术、环境因素,并抽象它们,得到一个计算公式。计算公式包含下面四个参数组成:
            技术复杂度因素 (TCF).
            环境复杂度因素 (ECF).
            原始用例点数 (UUCP).
            生产力因素 (PF).

    每个参数都独立定义和计算,各个参数计算中,部分使用分析得到的值,部分使用常量。完整的公式为:
    UCP = TCP * ECF * UUCP * PF
    依据UCP方法进行估算的步骤如下:
            确定并计算技术因素.
            确定并计算环境因素.
            计算原始用例点数.
            确定生产力.
            算用例点数(UCP).
    3        技术复杂度因素
    13个标准技术因素对估算生产力存在影响,这些生产力可能涉及应用中的各种技术问题。每种因素都有与其相关影响相应的权重。权重为0意味着完全无关;权重为5则意味着有极大的影响。
    技术因素        说明        权重
    T1        分布式系统        2
    T2        性能        1
    T3        终端用户效率        1
    T4           复杂的内部处理        1
    T5        可重用性          1
    T6        易安装性        0.5
    T7        易用性        0.5
    T8        可移植性        2
    T9        易更改性        1
    T10        并发性        1
    T11        特别的安全性        1
    T12        提供给第三方接口        1
    T13        需要特别的用户培训        1
    每个项目的技术因素由开发团队来估算,根据相应的复杂度(如可重用性)来设定从0到5之间的值,多线程应用需要更高的技能和更多的时间。复杂度为0意味着技术因素与本项目无关;3意味着一般;5意味对项目有很强的影响。
    每项因素的权重与复杂度相乘得到(中间)计算结果。计算结果相加得到总因素值。
    复杂度使用样例值后的计算示例如下:

    技术因素        说明        权重        复杂度        计算结果 (权重*复杂度)
    T1        分布式系统        2        5        10
    T2        性能        1        4        4
    T3        终端用户效率        1        2        2
    T4           复杂的内部处理        1        4        4
    T5        可重用性          1        2        2
    T6        易安装性        0.5        5        2
    T7        易用性        0.5        3        2
    T8        可移植性        2        3        6
    T9        易更改性        1        3        3
    T10        并发性        1        2        2
    T11        特别的安全性        1        2        2
    T12        提供给第三方接口        1        5        5
    T13        需要特别的用户培训        1        3        3
            总因素值                        47
    上表中, 通过加和计算结果,得到总因素值为47。为了计算TCF,两个常量将会用来计算。计算TCF的计算公式如下:
    TCF = 0.6 + (0.01*Total Factor). 图1中, TCF = 1.07
    4        环境复杂度因素
    环境复杂度因素估算各种环境因素对应用生产力的影响。每种环境因素都被评估,并根据其影响加权,权重值在0和5之间。权重为0意味着环境因素对本项目完全无关;权重为3意味着一般影响;5意味着很大影响。
    环境因素        说明        权重
    E1        熟悉UML程度        1.5
    E2        开发应用程序经验        0.5
    E3        面向对象经验        1
    E4        主分析师能力        0.5
    E5        激励        1
    E6        需求稳定度          2
    E7        兼职人员        -1
    E8        不同的编程语言        2
    每种因素的权重与影响相乘,得到本项计算结果,计算结果相加得到总计值。
    样例:
    环境因素        说明        权重        影响       
    E1        熟悉UML程度        1.5        4        6
    E2        开发应用程序经验        0.5        2        1
    E3        面向对象经验        1        5        5
    E4        主分析师能力        0.5        2        1
    E5        激励        1        1        1
    E6        需求稳定度          2        5        10
    E7        兼职人员        -1        0        0
    E8        不同的编程语言        2        1        2
            总计                        26
    上表中,通过加和各项计算值得到的总因素值为26。为了计算ECF,两个常量将会用来计算。计算ECF的计算公式如下:
    ECF = 1.4 + (-0.03*Total Factor). 对图4, ECF = 0.62
    5        原始用例点数(UUCP)
    原始用例点数有下面两部分组成:
            原始用例权重 (UUCW) :基于用例场景中包含的活动数或流程部数。
            原始角色权重 (UAW): 基于用例角色中多角色的组合复杂性。
    1.        UUCW
    单个用例可被分成简单、普通和复杂三种,它们的权重依赖于它们包含的(操作)步骤(包含可选流程)。
    用例类别        说明        权重
    简单        仅涉及一个数据库实体(表或视图);操作不超过3步;实现用到5个以下类.        5
    普通        涉及两个或以上数据库实体(表或视图);操作不超过4步到7步;实现用到5到10个类        10
    复杂        复杂的用户界面或涉及三个或以上数据库实体(表或视图);操作超过7步;实现用到超过10个类.        15



    通过计算各个种类用例的数目,乘上各种用例的权重,然后加和,就得到UUCW。
    用例类别        说明        权重        用例数        结果
    简单        仅涉及一个数据库实体(表或视图);操作不超过3步;实现用到5个以下类.        5        8        40
    普通          涉及两个或以上数据库实体(表或视图);操作不超过4步到7步;实现用到5到10个类        10        12        120
    复杂        复杂的用户界面或涉及三个或以上数据库实体(表或视图);操作超过7步;实现用到超过10个类.        15        4        60
            总 UUCW                        220
    2.        UAW
    跟UUCW一样,根据角色间的相互作用,角色分为简单、普通和复杂。
    角色类别        说明        权重
    简单        角色代表一个定义好了API的另外一个系统。        1
    普通        角色代表一个通过协议,如TCP/IP相互作用的另外一个系统。        2
    复杂        角色是通过接口相互作用的人。        3
    通过计算各个种类用例中的角色数目,乘上各种角色类别的权重,然后加和,就得到UAW。
    角色类别        说明        权重        角色数        结果
    简单        角色代表一个定义好了API的另外一个系统。        1          8        8
    普通        角色代表一个通过协议,如TCP/IP相互作用的另外一个系统。        2        12        24
    复杂        角色是通过接口相互作用的人。        3        4        12
            总Total UAW                        44
    最终,由UUCW和UAW相加得到UUCP。在上图中,UUCP = 220 + 44 = 264。
    生产力因素
    生产力因素 (PF)是根据过去的项目得到的平均每个用例所花的人时比率。如果没有历史数据可供参考,行业专家推荐使用15-30之间的一个数字,典型的,你可以使用20。
    最终结果
    用例点数由下列参数相乘得到:
    UCP = TCP * ECF * UUCP * PF
    以本文使用的值举例:
    UCP = 1.07 * 0.62 * 264 * 20 = 3502.752 or 3503 小时.
    用40(小时)来除UCP (每人每周工作40小时)得到88人*周。这样,依本文中的值,整个应用程序需要一个人开发88周,大约22个月。
    6        注意
    与人类专家估算相比,用例点数估算可能偏高。这也许是件好事,因为很多项目都延迟了,但是估算也不能太高。为了得到准确结果,公式中的变量需要进行调整,特别是刚开始这样估算时。
            场景中的步数。很多的步数将使复杂性偏高,用例点数增大。较少的步数将使复杂性偏低。有时,不用影响业务过程,步骤组数也能减到更少。尽力统一细节标准,但也不要强迫用例遵守估算方法。
            包含和扩充用例增大了复杂性。将这些记为单独的用例。
            用例中的角色数也影响估算。如果可能,将角色归纳为更高层次的角色。这将减少复杂性而不影响用例。另一方面,也不要强行归纳,如果根本不能概括的话。
            技术和环境因素值需要根据不断获得的实际数据来做调整。越多项目使用用例点数来估算,估算将越准确。
            用人类专家的估算来与UCP估算相比较。如果有差异,选择人类专家的估算,并相应调整UCP因素。
            生产力因素只能从历史资产中获得。跟踪设计和实现用例的时间,相应调整生产力因素。
    7        结论
    用例点数能够得到可靠的结果,是因为它的估算由实际的业务过程――软件应用的用例――得到。另外,在众多的传统估算方法中,技术因素和环境因素并没有得到充分考虑。用例点数包含并抽象了这些主观的因素,并将它们使用进计算公式。随着项目进程,将会发现使用用例点数得到的估算非常可靠。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2008-4-17 08:03:31 | 只看该作者
    极力反对功能点
    在一般成熟度和偏差容许范围
    三点法(Pert)或者宽带Delphi法就可以了
    您所要做的就是把WBS分分细再估
    利用测试,需求,设计等工作的配比来验算一下估算的可信度。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-4-26 13:27
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
    发表于 2008-4-17 11:45:32 | 只看该作者
    能否说细说明一下Delphi 法
    或者提供相应的文档
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2008-12-22 00:21:37 | 只看该作者
    学习中,多谢了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-28 06:22 , Processed in 0.068022 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表