功能点与代码行,谁将最后胜出?
                                                                                                           作者:肖鹤
 
    功能点与代码行,作为两种度量方法已经长期并存又竞争,他们的支持者已进行了大量的争论,如今这种争论仍未停息。人们似乎想看到:功能点与代码行,到底谁将最后胜出? 
 
     众所周知,用“平方米”可以衡量住房大小,用“台”可以表示汽车数量,然而,长久以来,软件产品的规模(Size)度量却是个争论不休的问题。
    不论是对软件开发企业,还是对软件用户,软件规模度量的重要性都是不容置疑的。因为它极大影响着甲方对发包产品的成本估算、乙方对自身开发成本的预测、乙方对开发过程的量化管理等诸多方面。
    比如,A软件项目的规模是100功能点,我们根据行业基准(Benchmarking)知道平均成本是5000元/功能点,那么本项目的成本预测就是50万元;我们又根据行业基准知道平均生产率为1功能点/人天,则计算得到项目需要投入100个人天的工作量,这些计算的结果将成为签定合同的依据和软件项目管理的基础。

    功能点与代码行,作为两种度量方法已经长期并存又竞争,他们的支持者已进行了大量的争论,如今这种争论仍未停息。
   

    人们似乎想看到:功能点与代码行,到底谁将最后胜出?
    国际软件工程权威专家Roger S. Pressman在2001年曾经对LOC和FP的辩论结果进行总结。
   
代码行的支持者认为,LOC是所有软件开发项目的生成品,并且很容易进行计算;许多现有的软件估算模型使用LOC作为输入,并且关于LOC已经有大量的文献数据。
    代码行的反对者认为:LOC测量依赖于程序设计语言,它们对设计很好但较小的程序会产生不利的评判,不适合于非过程语言,在估算时需要一些可能难以得到的信息(例如,在分析和设计之前,计划者就必须估算要产生的LOC)。
    功能点(及其扩展)的支持者认为:FP和程序设计语言无关,使得它既适合于传统的语言,也可用于非过程语言;它是基于项目开发初期就可能得到的数据。
    反对者声称:该方法需要某种“人的技巧”,因为计算是基于主观的而非客观的数据;信息域(及其它维)的计算可能难以搜集事后信息;FP没有直接的物理含义——它仅仅是个数据而已。

    究竟如何看待这些争论?笔者认为应该用发展的眼光来判断,特别是考虑近年来软件开发技术的迅猛发展以及国际软件产业商业模式的变革趋势。
    最近的技术发展包括诸如可视化编程工作的大量采用,以及摸板库、类库的广泛采用,在程序的结果中有大量的自动生成的代码、复杂的自动配置脚本或资源文件设置,在采用这些工具的项目中,用LOC分析方法得到的数据的意义已经大大降低了。
    从产业商业模式来看,由于软件系统已经变的更大和更复杂,软件工程化分工加剧,专门从事软件下游业务的商业组织大量涌现,特别是随着国际产业转移带来的服务外包的巨大发展,需求和架构设计等上游工程与详细设计、编码、测试、信息录入和处理等下游工程分别在不同的组织中实现。上下游组织之间在业务管理和开发技术方面的沟通需要更加标准化的度量语言。而实际上,LOC从来没有在满足客户需求方面有什么重大意义,代码行数对客户来说没有什么实际意义,客户关心的是“功能”。
    有研究者认为,LOC在帮助管理者开展项目管理方面也差强人意,LOC只是对技术人员有一定意义。
    实际上,LOC带来的误导越来越严重,以至于著名的软件度量专家,美国软件生产率研究所的首席科学家Capers·Jones指出,“使用代码行数进行涉及多种语言和生命周期活动的生产率研究,应该被认为是一种职业的不良实践。”

    与LOC方法陷入的窘境相比,FP正逐步突破其原有缺陷,重新受到重视。
    这些趋势包括,来自许多国家的软件度量团体,一直不停的对FP方法进行改进和完善,FP的历史数据也已经有了非常大的积累,这促使FP技术向成熟快速迈进;在应用方面,随着相关培训和认证制度的不断完善,专业人员将更方便地获得认证,对人员的统一资质认定,将极大的提高功能点计数的“一致性”, 从而减少计数结果的“差异性”。
    国际上最近的进展包括:
 1998年:ISO公布ISO/IEC 14143 ,功能点成为国际标准
 2000年:功能点分析方法开始和挣值管管理(EVM)结合
 2001年:功能点分析和平衡计分卡结合使用
    国内的最新进展包括:
    国内在中国软件行业协会系统与软件过程改进分会等机构主持了一些基础工作:
 2005年:与IFPUG达成谅解备忘录,引进和翻译《功能点计数标准手册》
 2006年:成立ISBSG中国代表处(CSBSG),开始搜集中国功能点数据并建立行业软件过程能力基准。
 2006年:与台北、台中和台南软体协会签署备忘录,将建立海峡两岸一致的度量元标准,并开展数据交换。
 2006年:与Total Metrics等国际机构合作,引进CFPS 认证前培训
 2007年:筹划建立“中日韩软件度量联盟”。


    FP的发展,来自于有关国际组织和研究团体的协同努力。这方面最有影响力的国际组织包括IFPUG(美国国际功能点组织)和ISBSG(国际软件过程基准组织)以及各国的软件度量协会。事实上,在经历了90年代的发展低谷后,FP正再一次受到广泛重视,FP应用中存在的一些困难正在被一一克服。最显著的事例是韩国,由于政府的高度重视,发布政府公文促进产业界对FP的使用,韩国的认证功能点专家(CFPS)数量目前已经跃居全球第一,仅仅三星总部一家就有超过100名的CFPS。
    值得说明的是,尽管代码行有很多的缺点,也不应该弃置不用,在开发管理的某些环节和某些应用方面,它仍是一件很方便使用的有效工具,比如具体一个项目内部的缺陷密度统计等等。所以在实践应用中,在全生命周期采用FP的同时,在项目内部局部结合使用LOC作为补充手段,也是有价值的选择。
    从这个意义上来讲,FP和LOC应该还会继续并存,随着对两者换算因子的更深入研究,二者的竞争将显得不重要,而配合应用将成为主流。

   
    目前,国内部分知名咨询公司已经尝试开展软件度量相关领域的专项业务,包括:Soft Tech、赛柏科技、随济公司等。其中的部分公司也在推动功能点的应用,这些工作将会带来有益的变化,有助于增加各类专项服务的提供,使过程方法论服务市场得到进一步的丰富和发展。

 

 

 

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐