Connecting the Models: A Global Mega-model of MDE Projects on GitHub
Dit artikel presenteert een globaal mega-model afgeleid van het minen van meer dan 7.400 GitHub-projecten met 325.000 Model-Driven Engineering-artefacten, met als doel een fundamentele dataset vast te stellen voor het empirisch analyseren van het werkelijke gebruik, de combinatie en het onderhoud van MDE-tools en -technologieën.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je de wereld van softwareontwikkeling voor als een enorme, chaotische bibliotheek. In deze bibliotheek is er een speciale sectie genaamd Model-Driven Engineering (MDE). In plaats van regel voor regel code te schrijven zoals een traditionele programmeur, bouwen MDE-engineers "blauwdrukken" (modellen) en gebruiken ze vervolgens speciale tools om de eigenlijke software automatisch uit deze blauwdrukken te genereren.
Jarenlang was de theorie dat deze engineers geweldige, op maat gemaakte werkplaatsen zouden bouwen met behulp van een reeks standaardtools (zoals EMF, ATL, Xtext, etc.). Het idee was dat ze deze tools aan elkaar zouden klikken als Lego-blokjes om perfecte omgevingen te creëren. Maar niemand wist echt of dit in de echte wereld ook daadwerkelijk gebeurde, of de werkplaatsen uit elkaar vielen, of hoe de engineers de tools eigenlijk gebruikten.
Het Probleem: Een Bibliotheek Zonder Catalogus
De onderzoekers in dit artikel realiseerden zich dat hoewel er duizenden van deze MDE-projecten op GitHub zitten (een gigantische website voor het delen van code), ze allemaal geïsoleerd waren. Het was alsoals het hebben van miljoenen boeken die verspreid over de vloer liggen zonder catalogus. Je kon niet zien:
- Welke projecten gerelateerd zijn aan andere projecten.
- Hoe engineers verschillende tools combineren.
- Of engineers oude blauwdrukken aan het kopiëren en plakken zijn in plaats van nieuwe te bouwen.
- Welke tools daadwerkelijk populair zijn.
De Oplossing: Een "Mega-Kaart" Bouwen
De auteurs besloten een Global Mega-Model te bouwen. Denk hierbij niet aan een enkele kaart, maar aan een gigantisch, onderling verbonden web dat elke enkele blauwdruk, tool en project in deze bibliotheek met elkaar verbindt.
Zo hebben ze het gedaan, stap voor stap:
1. De Grote Speurtocht (Dataverzameling)
Eerst gingen ze op een enorme speurtocht over GitHub. Ze zochten niet alleen naar code; ze zochten naar specifieke "MDE-artefacten".
- De Analogie: Stel je voor dat ze op zoek waren naar specifieke soorten Lego-steentjes: blauwe basisplaten (meta-modellen), rode verbindingsstukken (transformaties) en instructiehandleidingen (syntaxisdefinities).
- Ze vonden 7.436 projecten met meer dan 327.000 van deze specifieke bestanden. Ze downloadden de volledige geschiedenis van deze projecten om een compleet beeld te krijgen.
2. Reverse Engineering van de Blauwdrukken (Relaties Herstellen)
Zodra ze de bestanden hadden, moesten ze uitzoeken hoe deze bij elkaar pasten. Dit was lastig omdat de verbindingen niet altijd expliciet werden opgeschreven.
- De Analogie: Stel je voor dat je een recept vindt (een transformatiebestand) dat zegt: "Maak een taart," maar de ingrediënten niet vermeldt. Je moet dan kijken op het aanrecht (configuratiefiles) of raden op basis van het type taart om te achterhalen dat het bloem en eieren nodig heeft.
- De onderzoekers bouwden speciale "inspecteurs" (digitale detectives) voor elk type tool. Deze detectives lazen de bestanden en ontdekten:
- Welke blauwdruk gebruikt deze tool?
- Welke andere bestanden importeert het?
- Wat genereert het?
- Ze veranderden elk project in een klein "web" van verbindingen.
3. De Webs Samenvoegen tot een Gigantisch Spinnenweb (Het Global Mega-Model)
Dit is het meest creatieve deel. In de softwarewereld bestaat er geen "App Store" voor deze blauwdrukken. Als een engineer een specifieke blauwdruk nodig heeft, wordt deze vaak gewoon gekopieerd en geplakt vanuit een ander project.
- De Analogie: Stel je voor dat twee mensen in verschillende steden allebei een kopie hebben van dezelfde "Huis-Blauwdruk". In een normale bibliotheek zouden dit twee aparte boeken zijn. Maar de onderzoekers realiseerden zich: "Hé, dit is dezelfde blauwdruk!"
- Ze gebruikten een speciaal algoritme om bijna-duplicaten te vinden. Als twee projecten dezelfde (of licht gewijzigde) blauwdruk hadden, voegden ze deze samen tot een enkele node in hun gigantische kaart.
- Dit creëerde een Global Mega-Model: één enkele, enorme graaf waar elke unieke blauwdruk één stip is, en elk project een cluster van stippen is die ermee verbonden zijn.
Wat Hebben Ze Ontdekt? (De Resultaten)
Door naar deze gigantische kaart te kijken, konden ze eindelijk de "vorm" van de MDE-wereld zien:
- De "Hubs": Ze vonden enorme centrale knooppunten, zoals Ecore (een standaard blauwdrukformaat), waar bijna elk project mee verbonden is. Het is als de "Hoofdstraat" van deze bibliotheek.
- De "Kopieer-en-Plak"-cultuur: Ze ontdekten dat er een enorme hoeveelheid duplicatie bestaat. Veel projecten zijn simpelweg kopieën van anderen met kleine aanpassingen. Dit suggereert dat MDE-engineers moeite hebben met het goed delen van hun werk omdat ze een "package manager" (zoals een App Store) missen om afhankelijkheden te beheren.
- Eilanden: Ongeveer 60% van de projecten is "geïsoleerd", wat betekent dat ze niet met iets anders verbonden lijken te zijn. Het zijn eilanden in de oceaan, gebouwd vanuit het niets zonder bestaande onderdelen te hergebruiken.
- Tool Populariteit: Ze konden precies zien welke tools samen worden gebruikt. Zo zagen ze bijvoorbeeld dat Xtext (een tool voor het maken van tekstgebaseerde talen) in ongeveer 40% van de projecten wordt gebruikt, terwijl sommige andere tools zelden worden gebruikt.
De Toolkit
De auteurs stopten niet alleen bij de kaart. Ze bouwden:
- Een Dataset: Een downloadbare database met al deze informatie.
- Een Interactieve Tool: Een website waar iedereen dit gigantische web kan verkennen, kan inzoomen op specifieke projecten en kan zien hoe ze met elkaar verbonden zijn.
Waarom Is Dit Belangrijk?
Vóór dit artikel was het stellen van vragen als "Hoe gebruiken engineers deze tools daadwerkelijk?" of "Welke tools worden verouderd?" alsof je de vorm van een bos probeert te raden door naar één enkele boom te kijken. Nu hebben onderzoekers een satellietbeeld van het hele bos.
Ze kunnen nu eindelijk vragen beantwoorden zoals:
- "Worden deze projecten onderhouden, of zijn ze verlaten?"
- "Hoe hergebruiken engineers elkaars werk?"
- "Wat is de meest voorkomende manier om deze tools te combineren?"
Kortom, dit artikel heeft de eerste Google Maps voor Model-Driven Engineering gebouwd, waardoor een chaotische hoop verspreide projecten is veranderd in een navigeerbare, verbonden wereld die onderzoekers eindelijk kunnen bestuderen.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.