A multi-paradigm modelling approach to the design and evolution of domain-specific modelling languages

Datum: 16 februari 2016

Locatie: UAntwerpen, Stadscampus, Promotiezaal Grauwzusters - Lange Sint-Annastraat 7 - 2000 Antwerpen

Tijdstip: 17 uur

Promovendus: Bart Meyers

Promotor: Hans Vangheluwe

Korte beschrijving: Doctoraatsverdediging Bart Meyers - Faculteit Wetenschappen, Departement Wiskunde-Informatica



Abstract

Een recente aanpak voor de voortdurende toeneming aan complexiteit in software-intensieve systemen is modelgedreven ontwikkeling (MDE). De ontwikkeling van zulke complexe systemen houdt een grote hoeveelheid verschillende activiteiten in, waaronder het modelleren van vereisten, analyse, ontwerp, testen, enz. voor vaak erg verschillende componenten en facetten van een systeem. Multi-Paradigma Modelleren (MPM) probeert een oplossing te bieden voor deze inherente heterogeniteit door alle aspecten van het systeem expliciet te modelleren, op het (de) meest geschikte abstractieniveau(s), in het (de) meest geschikte formalisme(s). Ook ontwikkelingsprocessen worden expliciet gemodelleerd. Het belangrijkste doel van Domeinspecifiek Modelleren (DSM) is om domeingebruikers toe te laten om systemen te modelleren waarbij ze gebruik maken van concepten en notaties die uit hun domein, die hen bekend zijn. Met technieken zoals metamodelleren en modeltransformatie kunnen taalontwikkelaars en domeinexperts domeinspecifieke talen (DSMLs) voor domeingebruikers ontwikkelen. Omdat syntax en semantiek van DSMLs precies gedefinieerd zijn aan de hand van metamodelleren en modeltransformatie kunnen modellen gebruikt worden voor analyse, simulatie, optimalisatie, documentatie en codegeneratie. Volgens de principes van MPM worden verschillende aspecten, facetten en subsystemen gemodelleerd in verschillende (meest geschikte) DSMLs. Dit betekent dat niet alleen het modelleren van het systeem, maar ook het ontwikkelen van de DSML deel uitmaakt van het ontwikkelingsproces. Taalontwikkeling is dus een essentieel deel van DSM. In deze thesis worden drie contributies in het onderzoeksdomein van taalontwikkeling behandeld, namelijk ondersteuning voor verification voor DSMLs, evolutie van DSMLs en samenstelling van DSMLs. Een controle systeem voor een lift wordt gebruikt als voorbeeld doorheen de thesis.

Ondersteuning voor verification voor DSMLs. Verifiëren of een model voldoet aan de vereisten wordt beschouwd als een belangrijke uitdaging in DSM. Desondanks wordt het niet vaak behandeld in bestaande DSM-oplossingen. We presenteren een oplossing genaamd Pro- MoBox: een raamwerk dat de omschrijving en verificatie van temporele eigenschappen integreert in DSMLs met gedrag in discrete tijd, waarvan de semantiek beschreven kan worden als een structuur met herschrijfregels voor grafen. Omwille van de expressiviteit van het herschrijven van grafen beslaat de oplossing een erg grote klasse van problemen. Met ProMoBox modelleert de domeingebruiker niet alleen het ontwerp van systeem met een DSML, maar ook de eigenschappen, het invoermodel, de run-time staat en de uitvoer. Een DSML bestaat dus uit vijf subtalen, die een domeinspecifieke syntax delen. De subtalen worden gegenereerd uit één enkel metamodel, dat geännoteerd wordt om de rol van elk taalconcept vast te leggen. De operationele semantiek van de DSML wordt als een transformatie gemodelleerd en wordt geännoteerd met informatie over invoer en uitvoer. Het gemodelleerde systeem en zijn eigenschappen worden vertaald naar Promela, en eigenschappen worden geverifieerd met Spin, een programma voor model checking met expliciete staat. Als er een tegenvoorbeeld wordt gevonden, dan wordt de uitvoer van het systeem vertaald naar de domeinspecifieke laag als een model dat afgespeeld kan worden. Dit betekent dat de domeingebruiker tijdens het modelleren en verifiëren van eigenschappen wordt afgeschermd van onderliggende notaties en technieken. Volgens de principes van MPM modelleren we het proces van ProMoBox in een formalismetransformatiegraaf en procesmodel. Verder evalueren we ProMoBox en concluderen we dat het de specificatie en verificatie van eigenschappen ondersteunt op een erg flexibele en geautomatiseerde manier, eveneens volgens de principes van MPM.

Evolutie van DSMLs. In softwareontwikkeling is de evolutie van softwareartifacten alomtegenwoordig. In DSM, waar modelleertalen een centrale rol spelen, komt evolutie niet alleen voor op het niveau van modellen, maar ook van modelleertalen. Er is dan ook nood aan (semi-)geautomatiseerde ondersteuning voor co-evolutie van instantiemodellen of transformatiemodellen. We presenteren een raamwerk dat alle mogelijke gevolgen van taalevolutie in een DSML relationeel ecosysteem behandelt. We definiëren de doelen consistentie en continuïteit, wat betekent dat de evolutie syntactisch correct moet zijn (de conformantierelatie wordt gerespecteerd in het systeem) en semantisch correct (het systeem is geëvolueerd volgens bedoelde veranderingen). In tegenstelling tot ander onderzoek concentreren we ons op het grotendeels genegeerde onderwerp van transformatie co-evolutie. We deconstrueren alle mogelijke consequenties van evolutie in de context van een DSML relationeel ecosysteem en we identificeren vier basisscenarios voor evolutie: modelevolutie, beeldevolutie, domeinevolutie en transformatie-evolutie, die elk een (semi- )automatische oplossing krijgen. Deze oplossingen gebruiken we om een aanpak te definiëren en implementeren voor de co-evolutie van instanties en transformaties, via een flexibele en modulaire pipeline. Vervolgens presenteren we een featurediagram van alle consequenties van evolutie en een algoritme dat de ruggegraat vormt van ons raamwerk, dat alle mogelijke co-evolutiescenarios in detail beschrijft.

Samenstelling van DSMLs. Gewoonlijk starten de taalontwikkelaars van nul af aan bij ontwikkeling van DSMLs. Toch is er een duidelijke nood aan hergebruik van bestaande talen of taalmodules. We gebruiken drie compositiemechanismen van de metaDepth-tool, namelijk extentie, concepten en sjablonen, en onderzoeken of ze geschikt zijn om op een gestructureerde manier modelleertalen samen te stellen. Elk van de drie facetten – abstracte syntax, (tekstuele) concrete syntax en (operationele) semantiek – van een modelleertaal wordt gecombineerd met deze mechanismen. Door deze mechanismen te gebruiken, mikken we op een generieke toepasbaarheid van onze aanpak, onder de voorwaarde dat deze mechanismen ondersteund worden. We besluiten echter dat enkel eenvoudige semantische samenstellingen op een gestructureerde manier gemodelleerd kunnen worden. Niettemin kan de samenstelling van de operationele semantiek van talen erg complex, maar ook erg nuttig zijn in MPM. Heterogene systemen moeten correct uitgevoerd kunnen worden, maar ondertussen moet de modulariteit van de samengestelde talen behouden blijven, om zo hergebruik en het samenstellen van talen als zwarte dozen toe te laten. Een oplossing is om expliciet een semantische adaptatie te definiëren tussen heterogene delen van een model. Boulanger et al. ontwikkelden ModHel’X, een tool voor heterogeen modelleren en semantische adaptatie. In ModHel’X moeten semantische adaptaties echter gecodeerd worden, wat tijdsintensief is en gevoelig voor fouten. Wij presenteren een DSML met visuele concrete syntax voor het modelleren van zulke heterogene systemen. Vervolgens definiëren we een tweede DSML met tekstuele concrete syntax voor het modelleren van semantische adaptatie. Deze DSML laat gebruikers toe om een data-, bestuurs- en tijdsadaptatie te specificeren als een groep van regels. Beide DSMLs worden vertaald naar het ModHel’X raamwerk.

Alle oplossingen in de thesis volgen de principes van MPM: alles is expliciet gemodelleerd, op het meest geschikte abstractieniveau, in het meest geschikte formalisme. De gebruikers van deze formalismen worden afgeschermd van “incidentele” complexiteit omdat we gebruik maken van generatieve technieken en automatisering. De oplossingen in deze thesis illustreren de toolbouwerbenadering, omdat de contributies ondersteund worden door implementatieprototypes.