Modeldrevet arkitektur

Den arkitektur modelldrevet eller MDA (for engelsk modelldrevet arkitektur ) er en realisering prosess programvare foreslått og støttes av OMG . Dette er en spesiell variant av engineering model driven (IDM eller MDE for engelsk modell driven engineering ). Andre varianter av IDM er utviklet, for eksempel av Microsoft med DSL Tools.

Introduksjon

Det grunnleggende prinsippet for MDA er utvikling av forskjellige modeller, fra en forretningsmodell uavhengig av datamatisering ( beregningsuavhengig modell , CIM), og transformerer den til en plattformuavhengig modell ( plattformuavhengig modell , PIM) og til slutt transformasjon av sistnevnte til en modell spesifikk for målplattformen ( plattformspesifikk modell , PSM) for den konkrete implementeringen av systemet. PSMS kan bruke domene-bestemte språk eller generaspråk som Java , C # , Python, etc. Teknikkene som brukes innenfor rammen av MDA tilnærmingen er derfor i hovedsak modelleringsteknikker og modell transformasjonsteknikker .

OMG gir spesifikasjoner for standarder i stedet for implementeringer, oftest etter å ha mottatt en forespørsel om forslag. Implementeringene er da resultatet av arbeidet til private selskaper eller open source-grupper.

MDA-relaterte standarder

MDA-tilnærmingen er knyttet til mange standarder som:

Det skal bemerkes at begrepet arkitektur i MDA ikke refererer til arkitekturen til det modellerte systemet, men snarere til arkitekturen til de forskjellige standardene som danner det teknologiske grunnlaget for MDA.

Varemerker

Den OMG har alle MDA-relaterte merker og mange lignende ord som:

Hovedakronymet som ennå ikke er registrert av OMG er MDE ( Model Driven Engineering ). Som et resultat refererer det vitenskapelige samfunnet ofte til MDE for å uttrykke modelltekniske ideer uten å være begrenset til begrepene MDA beskrevet i OMG-standarder .

MDA tilnærming

Et typisk eksempel på MDA-tilnærmingen er automatisk generering av kildekode fra UML-modellering, som innebærer å kombinere:

Det er selvfølgelig ikke påkrevd at all koden genereres automatisk, men systemets samlede arkitektur (f.eks. Kodeskjeletter) må i det minste oppnås på denne måten.

Transformasjoner mellom CIM, PIM og PSM blir ofte automatisert ved hjelp av verktøy som er mer eller mindre kompatible med QVT , OMG-standarden for modelltransformasjoner.

Overgangen fra PSM til kodegenerering er den logiske fortsettelsen av denne behandlingen. Det kan utføres av generatorer som disse for å produsere alle typer teknologiske mål.

MDA-domene

Den OMG fokuserer på arkitektur for modell-drevet "forward engineering", det vil si, generere koden fra datakilde, slik som diagrammer eller modeller. Analysegruppen og utformingen av OMG (Analysis and Design Task Force, ADTF) leder denne innsatsen. Den samme gruppen valgte begrepet ADM (MDA bakover) for å beskrive studiet av revers engineering.

ADM beskriver moderniseringen av programvare drevet av arkitekturen (her OMG-modelleringsstandardene). Målet med ADM er å produsere standarder for modernisering av gamle dataprogrammer gjennom modellbaserte reverse engineering-metoder. Knowledge Discovery Metamodel (KDM) er en av disse standardene. KDM beskriver således informasjonssystemer som forskjellige data (programmer, spesifikasjoner, data, testfiler, databasediagram, etc.).

Et av hovedmålene med MDA er å skille design fra arkitektur. Ettersom konseptene og teknologiene som ble brukt til å realisere designet og konseptene og teknologiene som ble brukt til å lage arkitekturen til programmene, har utviklet seg i sitt eget tempo, gjør frakobling av designet fra arkitekturen det mulig for utviklere å velge de mest interessante konseptene og teknologiene i hvert område. Designet fokuserer på funksjonelle problemer der arkitekturen gir infrastrukturen som ikke-funksjonelle behov vil bli realisert på, for eksempel oppskalering av systemet, dets robusthet og ytelse.

MDA vurderer at plattformuavhengige modeller (PIM) som representerer design ved å beskrive systemets funksjonelle behov, kan tilpasse seg forskjellige endringer i realiseringen av programvarearkitekturer. Det er viktige forestillinger i MDA som forestillingen om modelltransformasjon og forestillingen om kodegenerering. For modelltransformasjonen ble et standardspråk spesifikt opprettet av OMG , QVT- språket . For transformasjon av modeller til tekst (generering av kode eller dokumentasjon) har OMG dermed opprettet MOFM2T- språket . Nåværende arbeid rundt MDA har en tendens til å styrke rettighetene til modeller og metamodeller , med bruk av metadata .

MDA-verktøy

Den OMG gir spesifikasjoner stedet for implementeringer som svar på forespørsler om forslag. OMG dokumenterer denne prosessen i et dokument kalt MDA Guide.

Enkelt sagt, et MDA-verktøy er et verktøy som brukes til å utvikle, tolke, sammenligne, justere, måle, verifisere, transformere osv. modeller eller metamodeller. I det følgende avsnittet vil begrepet modell brukes til å betegne hvilken som helst type modell (eksempel: en UML- modell ) eller metamodell (eksempel: CWM-metamodellen). I alle typer MDA-tilnærminger er det i utgangspunktet to typer modeller:

For eksempel kan en analytiker lage en UML- modell som et resultat av sine observasjoner av et forretningssystem der en Java-modell kan utledes fra den UML- modellen ved en modelltransformasjon. Et MDA-verktøy er et verktøy av minst en av følgende typer:

Opprettelsesverktøy et verktøy som gjør det mulig å lage en innledende modell og / eller redigere avledede modeller; Analyseverktøy et verktøy som lar deg kontrollere fullstendigheten, inkonsekvensene eller feilene til en modell. Denne typen verktøy kan også beregne forskjellige beregninger på modellen; Transformasjonsverktøy et verktøy som brukes til å transformere modeller til andre typer modeller, eller til tekst (kildekode eller dokumentasjon); Komposisjonsverktøy et verktøy som gjør det mulig å komponere (fusjonere i henhold til en komposisjonssemantikk) flere modeller, fortrinnsvis tilsvarende den samme metamodellen; Testverktøy et verktøy for å definere tester på modellen, som beskrevet av den modellbaserte testtilnærmingen ; Simuleringsverktøy et verktøy som brukes til å simulere kjøringen av et system representert av en gitt modell. Denne typen verktøy er koblet til modellens kjøretidsemne; Metadataadministrasjonsverktøy et verktøy designet for å håndtere forholdet mellom forskjellige modeller, for eksempel metadataene til hver modell (forfatter, opprettelses- eller modifikasjonsdato, skapelsesverktøy osv.) og forholdet mellom disse modellene (en modell kan være metamodellen for ' en annen modell, en modell kan avledes fra en annen modell, etc.); Omvendt verktøy et verktøy som gjør det mulig å transformere en eksisterende kode til en modell.

Mange verktøy utfører mer enn en av rollene beskrevet ovenfor. For eksempel kan et modellbyggingsverktøy også tilby transformasjons- eller testfunksjonaliteter. Imidlertid er det verktøy dedikert til en fasett av MDA. OMG-spesifikasjonsimplementeringer utføres av private selskaper og open source-grupper. En viktig kilde til implementering av OMG-spesifikasjoner er Eclipse Foundation.

Implementeringer av OMG-spesifikasjoner fra Eclipse Foundation

Mange implementeringer av OMG-modelleringsstandarder finnes i Eclipse Modeling Framework (EMF) eller Graphical Modelling Framework (GMF). Eclipse Foundation utvikler også mange verktøy rundt MDA i sitt modelleringsprosjekt, for eksempel:

Imidlertid er ikke alltid Eclipse fundamentverktøy i samsvar med OMG-spesifikasjonene alltid strenge. Dermed er OMG-spesifikasjonen for EMOF-standarden til stede i Eclipse med Ecore-implementeringen som kommer litt fra spesifikasjonen. Andre eksempler finnes i områdene modell-til-modell-transformasjoner mot QVT- standarden eller modeller til teksttransformasjoner mot MOFM2T- standarden .

Listen over MDA-verktøy skal ikke forveksles med listen over UML-verktøy, det er faktisk mange flere MDA-verktøy som vil påvirke metamodeller som noen ganger er forskjellige fra UML .

Det er også mulig å skille mellom verktøy med faste metamodeller og verktøy med variable metamodeller. For eksempel vil en UML-editor ofte være begrenset til en versjon av UML- metamodellen (UML 2.1-eksempel). Tvert imot, noen verktøy har kapasitet til å tilpasse seg flere metamodeller eller til og med metamodeller levert av brukeren. Vanligvis fokuserer MDA-verktøy på spesifikke arkitektoniske spesifikasjoner, selv om det også finnes verktøy uavhengig av en bestemt spesifikasjon. Et eksempel på et verktøy knyttet til en bestemt spesifikasjon kan være en kodegenerator koblet til .NET- eller Java-implementeringen.

MDA-problemer

Mange av nøkkelbegrepene som utgjør grunnlaget for MDA-tilnærmingen (født 2001) ble belyst ved Shlaer-Mellor-metoden på slutten av 1980-tallet. Et sentralt teknologisk begrep for MDA-tilnærmingen, et språk for handling for å kjøre modeller , ble levert av OMG-spesifikasjonsimplementeringer ved å tilpasse originalspråket til Shlaer-Mellor-metoden, engelsk  : Shlaer-Mellor Action Language , som ble modifisert for å bli tilpasset UML.

Men på den tiden klarte ikke MDA-tilnærmingen å bli vedtatt av flertallet av IT-bransjen. Siden da har situasjonen endret seg, men i 2006 identifiserte Gartner-analysegruppen fortsatt MDA som "en teknologi som begynte å ta av" og Forrester Research-gruppen på sin side betraktet MDA som "død ved ankomst". Noen potensielle problemer identifisert med MDA-tilnærmingen, foreslo av OMG, inkluderer:

Se også

Relaterte artikler

Nabokonsepter

Bibliografi

Referanser

  1. http://idm.imag.fr/idm05/documents/23/23.pdf En prosess for validering av metamodeller etter metadata
MDA-verktøy

Eksterne linker