Källkodshanteringssystem registrerar olika versioner av kod. Verktygsstöd kan sedan beräkna delta mellan versioner. För att underlätta analys av versionshistoriken behöver vi lämpliga modeller för att representera källkodsenheter. Nu tas naturligtvis frågorna om deras definition, de abstraktioner de använder och API:erna för sådana modeller upp, särskilt i samband med ett reflekterande system som redan erbjuder en modell av sin egen struktur. Vi anser att detta problem beror på bristen på en kraftfull kodmetamodell och en infrastruktur. I Smalltalk, ofta flera källkod meta-modeller samexisterar: Smalltalk reflekterande API samexisterar med en av Refactoring Engine eller distribuerade versionssystem som Monticello eller Store. Även om specifika meta-modeller är en lämplig konstruerad lösning, multiplicerar det meta-modeller och det kräver mer underhållsinsatser (t.ex. dubblering av tester, omvandling mellan modeller), och ännu viktigare hindrar navigeringsverktyg återanvändning när meta-modeller inte erbjuder polymorfa API:er. Som ett första steg för att tillhandahålla en infrastruktur för att stödja historieanalys presenterar denna artikel Ring, en enande källkod meta-modell som kan användas för att stödja flera aktiviteter och föreslår en enhetlig och skiktad strategi för att vara grunden för att bygga en infrastruktur för version och ström av förändringsanalyser. Vi återinförde tre verktyg baserade på Ring för att visa att det kan användas som den underliggande meta-modellen för fjärr- och off-image-bläddring, scoping refaktoring och visualisering och analys av förändringar. Som ett framtida arbete och baserat på Ring kommer vi att bygga en ny generation av verktyg för historieanalys.
Ring Metamodell. Ring REF [16] är en källkodsmetamodell som fungerar som en enhetlig infrastruktur för att bygga verktyg i Pharo.
Ring: a Unifying Meta-Model and Infrastructure for Smalltalk Source Code Analysis Tools
{'venue': 'Comput. Lang. Syst. Struct.', 'journal': 'Comput. Lang. Syst. Struct.', 'mag_field_of_study': ['Computer Science']}