paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Class Archetypes: Principles, Detection, Evolution

类原型:原理、检测与演化
FSE Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering2026匹配度 2/10 · 论文使用 CodeQL 进行面向对象类角色的静态识别与演化分析,属于软件工程/程序分析,但未涉及 LLM/Agent、ML 系统、浮点程序分析或贝叶斯程序分析,与画像中的核心交叉方向基本无关。引用 0 inbox
Mattia Giannaccari, Marco Raglianti, Michele Lanza
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出基于 CodeQL 的自动类角色识别方法,定义类原型并初步揭示类角色的演化趋势。

论文关注面向对象系统中类角色难以从源码直接理解、且随演化不断变化的问题。作者提出一种启发式、全自动的类刻板识别方法:利用 CodeQL 查询抽取类的结构属性(如属性组成、继承模式)和行为属性(如方法交互、属性访问),据此推断类固有角色与系统级角色,并定义“类原型”以统一模式语言表示单一或共现角色。作者在超过 650 个 Java GitHub 仓库上应用该启发式,验证了方法的可扩展性,并初步观察到某些类角色出现、持续或演化的时间趋势,说明基于属性的自动类角色推断可支持软件设计与系统演化研究。

问题
面向对象系统中类的角色难以仅从源码理解,且类在演化中会承担新职责、角色变得复杂。
方法
使用 CodeQL 查询提取类的结构与行为属性,基于启发式推断固有与系统级角色,并用常见模式语言定义类原型来表示单一与共现角色。
评估
在超过 650 个 Java GitHub 仓库上应用,考察方法的可扩展性,并初步分析类角色随时间出现、持续与演化的趋势。
原文摘要(Abstract)

Classes are the basic building blocks of object-oriented software systems. To understand key parts of the system we need to understand the roles that classes play by looking at their structure and their behavior. However, source code alone is too opaque to convey such roles, especially in large and complex systems. Moreover, as software evolves, classes originally designed for a single purpose often get new responsibilities, changing, expanding, and complicating their roles over time. We present a heuristic-based approach for fully automatic class stereotypes identification. We use CodeQL queries to capture structural properties (e.g., attribute composition, inheritance patterns) and to infer behavioral properties (e.g., method interactions, attribute accesses) of classes. We leverage this information to determine intrinsic and system-level class roles. Based on these properties, we define class archetypes that simplify system understanding by using a common pattern language to highlight single and co-occurring roles. We applied our heuristics to a dataset of over 650 Java GitHub repositories. Besides the scalability of our approach, preliminary observations reveal underlying temporal trends in how certain class roles emerge, endure, or evolve, suggesting that automated, property-based class role inference can support future research on software design and system evolution analyses.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{GiannaccariRL26a,
  title = {Class Archetypes: Principles, Detection, Evolution},
  author = {Mattia Giannaccari and Marco Raglianti and Michele Lanza},
  booktitle = {FSE},
  year = {2026},
  doi = {10.1145/3803437.3805584}
}