论文

ConcernBERT:利用班级成员身份学习职责

ConcernBERT: Learning Responsibilities Using Class Membership

摘要

关注点分离、高内聚和单一责任原则是软件设计中最著名的原则。然而,它们的应用程序通常仍然是哲学性的,而不是可操作的,严重依赖于开发人员的直觉和经验。许多软件任务,例如神类分解、提取类重构和内聚性测量,都依赖于识别程序实体的内聚组(即共同履行共同职责的实体)的技术。然而,可靠地识别这些群体仍然是一个挑战。在本文中,我们提出了 ConcernBERT,一种在实体级别训练的基于 BERT 的嵌入模型,它使用三元组损失直接优化方法和属性在嵌入空间中的相对定位,并使用类成员上下文来学习责任和关注点。我们还提供了用于训练和评估的大规模复制数据集。我们的数据集跨越 6000 多个存储库,涵盖超过 200 万个 Java 文件。为了评估 ConcernBERT,我们将两个或多个类的方法合并到未标记的组中,并测试模型恢复原始类成员资格的能力。 ConcernBERT 的性能明显高于现有模型,证明了其在编码关注级语义方面的有效性,并为架构恢复、提取类重构和内聚性测量等下游任务奠定了坚实的基础。