Empirical results in software engineering have long started to show that findings are unlikely to be applicable to all software systems, or any domain: results need to be evaluated in specified contexts, and limited to the type of systems that they were extracted from. This is a known issue, and requires the establishment of a classification of software types. This paper makes two contributions: the first is to evaluate the quality of the current software classifications landscape. The second is to perform a case study showing how to create a classification of software types using a curated set of software systems. Our contributions show that existing, and very likely even new, classification attempts are deemed to fail for one or more issues, that we named as the `antipatterns' of software classification tasks. We collected 7 of these antipatterns that emerge from both our case study, and the existing classifications. These antipatterns represent recurring issues in a classification, so we discuss practical ways to help researchers avoid these pitfalls. It becomes clear that classification attempts must also face the daunting task of formulating a taxonomy of software types, with the objective of establishing a hierarchy of categories in a classification.
翻译:软件工程的经验性结果早已开始表明,发现的结果不可能适用于所有软件系统或任何领域:结果需要在特定情况下加以评价,并限于从这些系统中提取的系统类型。这是一个已知的问题,需要对软件类型进行分类。本文作出了两项贡献:第一是评价当前软件分类系统的质量;第二是进行案例研究,说明如何利用一套经整理的软件系统对软件类型进行分类。我们的贡献表明,现有甚至很可能是新的分类尝试被认为在一个或多个问题上失败,我们称之为软件分类任务的“对应模式”。我们从案例研究和现有分类中收集了7种反模式。这些反模式是分类中反复出现的问题,因此我们讨论了帮助研究人员避免这些陷阱的实用方法。显然,分类尝试还必须面临制定软件类型分类的艰巨任务,目的是在分类中确定类别等级。