Software Effort Estimation: a Review of Taxonomies for use to-wards a Probabilistic Evidence Synthesis
本文对六种软件工作量估算分类法进行了系统性的文献综述,揭示了显著的结构性碎片化、对移动端和人工智能等新兴应用领域覆盖不足的问题,以及普遍缺乏外部验证的现状,从而强调了对统一且经过工业验证的分类法的迫切需求。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
从一个简单的移动应用程序到一个复杂的银行系统,每一个软件项目都始于一个看似简单得有些欺骗性的问题:这需要多少工作量?在软件工程领域,这被称为工作量估算(effort estimation)。它是指在编写第一行代码之前,预测构建一段软件所需的时间和资源的过程。这种预测至关重要;它决定了预算、进度表,以及是否能为项目配备合适的人员。然而,预测软件的未来是出了名的困难,因为影响项目耗时的因素是庞大、多样且往往具有不确定性的。一个项目之所以进展缓慢,可能是因为团队缺乏经验,可能是因为技术很新,也可能是因为需求不断变化。为了理清这种混乱,研究人员数十年来一直试图将这些因素组织成结构化的列表或分类法(taxonomies),将其作为地图,帮助专家们在复杂的软件开发领域中导航。
尽管存在这种明确的需求,但一项针对该领域的新综述显示,现有的“地图”是碎片化且不完整的。丹麦奥胡斯大学的研究人员埃米莉亚·门德斯(Emilia Mendes)和马克·索莱·埃斯特拉格斯(Marc Solé Estragués)着手检查了所有已知的软件工作量估算分类系统。他们的目标是观察这些系统是否可以合并以创建一个面向未来的统一工具,或者它们是否因差异过大而无法调和。他们进行了一项系统性综述,这是一种严谨的方法,通过检索科学文献来寻找并分析每一个提出了关于如何对影响软件工作的因素进行分类的研究。在筛选了来自主要学术数据库的数千篇文章后,他们发现实际上只有六项研究提出了用于这一特定目的的分类法。这个极小的数字本身就是一个重要的发现,表明虽然这个问题众所周知,但在过去二十年中,解决这一问题的努力却是零星且分散的。
研究人员随后详细检查了这六种分类法,观察了它们的构建方式及其包含的内容。他们发现这些地图的绘制风格迥异。有些很宽泛,涵盖了从软件规模到团队经验以及用于进行估算的特定技术等各个方面。另一些则很狭窄,仅关注一个方面,例如仅关注代码的大小或仅关注用于预测工作的具体方法。其结构也千差万别,有些列表仅包含寥寥数个类别,而另一些则扩展到了数百个具体的细节。当研究人员将这些列表并排对比,寻找共同的术语和概念时,他们发现了一种令人震惊的缺乏一致性的现象。在所有六种分类法列出的数百个具体因素中,只有极小一部分是以相同的方式描述的。大多数术语都是某个单一研究所特有的,这意味着使用不同地图的两位专家会产生沟通障碍——他们可能对同一个概念使用不同的词汇,或者对同一个词汇理解为不同的概念。
该综述还强调了覆盖范围上的显著空白。现有的地图过度集中于传统的软件类型,例如商业应用和嵌入在设备中的嵌入式系统。然而,它们在很大程度上忽略了快速发展的人工智能软件和现代移动应用领域。此外,研究人员发现,大多数此类分类法从未在现实世界中经过测试。它们是以理论框架或构想的形式提出的,但几乎没有证据表明它们确实帮助了工业界的从业者做出更好的预测。在六种分类法中,只有一种在现实场景中得到了应用,以验证其是否有效。其他分类法都未经验证,这使得它们的实际用途留下了一个问号。
作者认为,这种碎片化是进步的障碍。当研究人员和从业者无法就一套通用的语言达成共识时,分享知识、比较结果或在以往发现的基础上进行深入研究就会变得困难。该综述表明,该领域需要超越这些孤立的列表。研究人员提出,下一步要么是扩展现有的地图以覆盖缺失的软件开发领域,要么是构建一个涵盖所有软件类型的单一统一分类法。这样一个统一的系统需要经过工业界的测试,以确保它确实是有益的。在此之前,该领域仍然是一系列互不相连的孤岛,实现清晰、共享的软件工作量理解的潜力仍在等待着被挖掘。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。