QVT | ||
QVT: n muunnoksen periaate | ||
Toimittaja | Kohteenhallintaryhmä (OMG) | |
---|---|---|
Kirjailijat | Codagen Technologies Corporation, Compuware , DSTC (en) , France Télécom , Inria , Interactive Objects Software, IBM , King's College London , Laboratoire d'Informatique de Paris 6 , OMG, Softeam, Sun Microsystems , TNI-Valiosys, Tata Consultancy Services , Thales , Yorkin yliopisto . | |
Ystävällinen | Virallinen eritelmä | |
osavaltio | Versio 1.3 | |
Ensimmäinen julkaisu | marraskuu 2005 | |
Viimeinen viesti | kesäkuu 2016 | |
Vakio | omg.org/spec/QVT | |
In malliperustaisia engineering , Kysely / View / Transformation ( QVT ), joka voidaan kääntää ” Kysely / View / Transformation ”, on standardi määrittää mallin muunnoksia . Se tarjoaa erillisen arkkitehtuurin ja kielet, joten mallien luominen muista malleista on helppoa . Ensin määritelty2002 sitten hyväksytty vuonna 2005jonka Object Management Group (OMG), QVT kuuluu Meta-Object Facility (MOF) -standardin. Sellaisena se on tärkeä komponentti Model Driven Architecture (MDA) -mallissa .
QVT standardi esitetään pääasiassa kaksi mallin muutos kielet: QVT suhteet (QVT-R), joka on deklaratiivisen kielen , ja QVT Toiminnallinen (QVT-O), joka on välttämätöntä kielen . Muut mallimuunnoskielten, kuten ATL, inspiroivat myös standardin käsitteet. QVT: n toteuttaminen on monimutkaisuutensa vuoksi kesken2019.
Mallinnus on yhteistä lähestymistapaa insinöörin analysoida, suunnitella ja hallita kompleksisuutta järjestelmän . Mallinnuksen tuote, malli on abstrakti esitys järjestelmän toiminnasta tai käyttäytymisestä. Koska malli ei edusta kaikkia sen näkökohtia, malli on yksinkertaistettu järjestelmä: se antaa siten paremman käsityksen siitä. Esimerkiksi maa- ja vesirakentamisen ammattilaiset tuottavat staattisia ja dynaamisia siltamalleja ennen niiden rakentamista turvallisuuden varmistamiseksi.
Vuonna tietojenkäsittelytieteen ja tarkemmin ottaen ohjelmistotuotannossa , malleja käytetään yleisesti. Ensinnäkin mallit mahdollistavat ohjelmistojen rakentamisen yksinkertaistamisen etenkin muille kuin kehittäjille . Ne auttavat visualisoimaan, määrittelemään, rakentamaan ja dokumentoimaan ohjelmistojärjestelmiä . Toiseksi mallien tarjoama abstraktio antaa mahdollisuuden suunnitella ohjelmia, jotka perustuvat suunnittelutavoitteisiin eikä tiettyyn ympäristöön . Esimerkiksi tietomalli kuvaa abstraktisti ja ilman teknisiä yksityiskohtia, kuinka tietojoukko on järjestetty tietokantaan . Monet ohjelmistojen analysointi- ja suunnittelumenetelmät , esimerkiksi UML- mallinnuskieli , perustuvat mallin käsitteeseen. Tällöin malleja käytetään viestintään tai määrittelyyn .
Ohjelmistosuunnittelumallien erityispiirre on, että ne voivat toimia myös ohjelmina , toisin sanoen ne voivat joskus korvata lähdekoodin . Sitten mallin sanotaan olevan suoritettava . Tämä periaate on peräisin malliperustaisia Engineering , haara järjestelmien suunnittelu . Sen sovellusta ohjelmistokehitykseen kutsutaan mallipohjaiseksi kehitykseksi . Käytäntö malliperustaisia kehitys vaatii siten samanaikaisen suunnittelun ja manipulointi lukuisia malleja, jotka edustavat eri puolia järjestelmän ( turvallisuus , suorituskyky , liike , jne. ). Yhdessä nämä mallit voidaan muuntaa ohjelmistosovelluksen tuottamiseksi.
Toimintoja, joiden avulla voit manipuloida malleja automaattisesti tai puoliautomaattisesti, esimerkiksi luoda lähdekoodia, kutsutaan mallimuunnoksiksi . Niistä mallista malliin -muunnokset ryhmittävät muunnokset, joiden tulos on malli. Niitä käytetään erityisesti malliperheen yhtenäisyyden varmistamiseen tai maailmanlaajuisen esityksen luomiseen järjestelmästä, jonka mallit kuvaavat eri näkökohtia.
Mallipohjaisen suunnittelun lupausten toteuttaminen vaatii mallien ja mallimuunnosten mukautettujen työkalujen kehittämistä. Arkkitehtuuri mallipohjaisia (Englanti, malliperustaisia arkkitehtuuria tai MDA) on merkittävä aloite toteutumista mallin ajettu Engineering. Esiintyimarraskuu 2000, MDA on tietotekniikkaan erikoistuneen standardointiorganisaation Object Management Group (OMG) lähestymistapa . OMG kehittää lähinnä spesifikaatioita edistääkseen objektiparadigmaa ja erityisesti esineiden mallintamista . Näitä vaatimuksia, kuten UML, pyritään takaamaan yhteentoimivuus sekä siirrettävyys ja ohjelmistoja teollisuudelle.
Mallipohjainen arkkitehtuuri hyödyntää OMG-määrityksiä.
Ehdotettu vuonna 2002 ja sitten vuonna 2005 hyväksytty QVT-standardi määrittelee joukon kieliä, joiden avulla voidaan ilmaista muunnoksia mallista malliin:
Kysely on lauseke arvioidaan tiettyä mallia. Kyselyn tulos koostuu yhdestä tai useammasta tyypistä, jotka on määritelty mallissa tai kyselykielellä . MOF- pohjaiseen malliin kyselyn tulos voi olla esimerkiksi Boolen-arvo tai joukko metamallin metaluokan esiintymiä . OCL- kieli on esimerkki kielestä, jota käytetään mallien kyselyjen arviointiin.
NäkymätNäkymä ( näkymä ) on täysin johdettu toisesta mallimallista (kutsutaan perusmalliksi ). Näkymän tarkoituksena on järjestää malli kokonaan tai osittain uudelleen tiettyä tarkoitusta varten. Useimmiten näkymä on käytettävissä vain luku -muodossa. Kysely voidaan ajatella erityistyyppiseksi näkymäksi.
MuutoksetMuunnos ( muunnos ) on ohjelma, joka tuottaa kohdemallin lähdemallista. Näkymä voidaan ajatella tietyn tyyppisen muunnoksen tuloksena, jossa kohdemalli on täysin riippuvainen lähdemallista. Muunnoksen, joka käyttää vain QVT-R-kielen elementtejä, sanotaan olevan relaatio, kun taas muunnoksen, joka käyttää vain QVT-O-kielen elementtejä, sanotaan olevan toiminnallinen .
QVT-standardilla on siis hybridi luonne, sekä julistava että välttämätön. QVT: n selittävä osa on standardin sydän. Se muodostaa arkkitehtuurin kahdessa kerroksessa. QVT-C ( Core ) -kieli on arkkitehtuurin alempi kerros. Se määrittelee matalan tason käsitteet, jotka ovat tarpeen muunnosten määrittelemiseksi EMOF: n metametallimallista ja OCL-kielestä. Lisäksi siinä määritellään perustuslakia ja jäljittää malleja , eli mallintaminen välivaiheita muodonmuutoksen. QVT-R ( Relations ) -kieli on arkkitehtuurin ylempi kerros. Se korostaa käytettävyyttä , tekee jälkimallien kirjoittamisesta implisiittisen ja tarjoaa ominaisuuksia, kuten kuvioiden suodattamisen . Näiden kahden kerroksen välinen suhde ydinmuunnokseen on systemaattinen tapa kääntää QVT-R: ssä kirjoitettu muunnos ja annettu suoritussuunta muunnokseksi, joka on kirjoitettu QVT-C: ssä.
QVT-arkkitehtuurissa standardin deklaratiivisiin kerroksiin lisätään kaksi lisämekanismia välttämättömän paradigman lisäämiseksi. Ensinnäkin operatiivisten kartoitusmekanismien avulla määritellään QVT-O. Tämä määritelmä perustuu itse asiassa QVT-R: n määritelmään. Pakottavan paradigman intressi on sallia QVT-R-suhteiden selkeä toteutus. Tämä toteutus voi itse sisältää viittauksia muihin suhteisiin, aivan kuten toimintokutsu . Tässä QVT-O: ta pidetään välttämättömänä kielenä (kun kaikki muunnokset ovat toiminnassa) tai hybridinä (relaatiomuutosten tueksi). Toinen tapa, jonka Black Box -mekanismi tarjoaa , on toteuttaa suhde omistettuun kieleen samalla kun kunnioitetaan suhteen allekirjoitusta . Tällöin toteutus muodostaa mustan laatikon . Yhteentoimivuus on mahdollista, jos kieli itsessään on MOF-metamallin, esimerkiksi Java, mukainen .
QVT-metamalli, joka määrittelee QVT-R: n, QVT-O: n ja QVT-C: n elementit, on rakennettu EMOF ( Essential MOF ) -meta-metamallista ja Essential OCL: stä .
Vuonna 1980 , menettelyyn ohjelmointi antoi tapa olio-ohjelmointi ja sitten komponentti-ohjelmointi . Ohjelmistokriisi, jonka Frederick Brooks korosti erityisesti kuukauden myytissä , kuvaa suurten ohjelmistoprojektien toteuttamisen vaikeuksia. Objektit ja sitten ohjelmistokomponentit näkyvät sitten ratkaisuna vankempien ohjelmistoarkkitehtuurien kehittämiseen . Smalltalkin , C ++: n ja Java: n kaltaisten kielten myötä objektisuuntautunut ohjelmointi sai vauhtia teollisuudessa ja siitä tuli tärkein lähestymistapa ohjelmistokehitykseen 1990-luvun alusta lähtien.
Myös kehityssykliohjelmisto muuttuu. Vesiputousmalli , katsotaan tehoton, on syrjäyttää muita suunnittelun malleja, kuten kierre malli ja sitten ketterä malli . Tarveanalyysi , The riskienhallinnan , kirjoittaminen ohjelmistojen dokumentoinnin ja lavan suunnittelua kasvavat näissä malleissa. Sisään1999, Tietotekniikan tutkijoita Ivar Jacobson , Grady Booch ja James Rumbaugh on kehittää Unified Process (PU), yleinen menetelmä olio-järjestelmät, joka sisältää sekä tuotekehityksen ja joukon parhaita käytäntöjä analyysi, järjestelmien suunnitteluun ja dokumentointiin. Alalla laajasti käytetty yhtenäistetty prosessi käyttää laajasti UML: ää, olio-orientoitua mallintamiskieliä. Malleja , kuten UML , sitten tulee esineitä välttämättömiä tuotannon ohjelmiston.
2000- luvun alussa syntyi ajatus siitä, että mallit voisivat myös korvata lähdekoodin kehityksen aikana. Tämä merkitsee mallivetoisen suunnittelun alkua, joka määritellään kahden peruskäsitteen yhdistelmänä: mallit ja mallimuunnokset . Mallit, jotka edustavat saman järjestelmän eri puolia, rakennetaan mallintamiskielellä , kuten UML. Transformaatioilla tarkoitetaan operaatioita, jotka manipuloivat malleja, mikä mahdollistaa esimerkiksi koodin luomisen malleista.
Sisään 2000, jolla on kokemusta ohjelmistomallinnuksesta UML: n kanssa, OMG toteuttaa mallipohjaista arkkitehtuuria ( englanniksi : Model-Driven Architecture tai MDA), aloitteen mallien ohjaaman suunnittelun lupausten toteuttamiseksi. MDA: n meta-metamalli Meta-Object Facility (MOF) luodaan kuvaamaan OMG: n nykyisiä ja tulevia metamalleja, mukaan lukien UML ja CORBA . Tässä yhteydessä syntyy tarve standardille mallien muuntamiseksi MDA-lähestymistavassa.
Voimalaitokset, joiden arkkitehtuuria ohjaavat mallit, muutokset mallista malliin, ovat olleet OMG : n ehdotuspyynnön ( englanniksi : Request For Ehdotuksen ) kohteena vuodesta 2002 lähtien . Tämän ehdotuspyynnön tarkoituksena on kehittää MOF-metamallin ja nykyisten MOF-tekniikoiden kanssa yhteensopiva mallimuunnosstandardi. Se on kuudes OMG: n seitsemästä kutsusta rakentaa MOF-versio 2.0. Kyselyn , näkymän ja muunnoksen käsitteet esitellään ehdotuspyynnössä vastausten yhtenäistämiseksi ja ennen standardointia jo saavutettujen edistysaskeleiden, kuten Common Warehouse Metamodel -muunnosmallin, hyödyntämiseksi .
QVT-ehdotuspyynnössä on 13 vaatimusta, joista seitsemän on pakollisia:
Valinnaiset vaatimukset tarjoavat ominaisuuksia, jotka voidaan sisällyttää muunnoksen määrittelykieleen, mukaan lukien kaksisuuntaisuus ja muunnosten periytyminen .
Ehdotuspyyntö sai kahdeksan vastausta. Nämä vasteet yhteisesti tekemät kolmisenkymmentä kustantajat ohjelmistojen ja tutkimuslaitosten vuonna ohjelmistotuotannossa , kuten IBM , Thales , The Kings College London ja University of Yorkin .
Kaikissa vastauksissa kyselyt ovat osa muunnoksia ja välttämättömiä niiden määrittelylle. Kyselykielestä ei ole yksimielisyyttä: neljä kirjoitusta ehdottaa deklaratiivista kieltä (mukaan lukien OCL tai F-logiikka ), kolme vastausta ehdottaa yhdistettyä tai välttämätöntä kieltä ja yksi ei ehdota mitään kieltä. Seitsemän kahdeksasta vastauksesta katsoo, että muutoksen tuloksen pitäisi olla näky. Viime kädessä kaikki vastaukset lukuun ottamatta määrittelevät yhtenäisen kehyksen kyselyille, näkymille ja muunnoksille. Neljä heistä ehdottaa yhden kielen käyttöä näille kolmelle näkökohdalle, kun taas kolme muuta ehdottaa OCL: n käyttöä kyselyille, sitten erilaisia muodollisuuksia näkemyksille ja muunnoksille.
Hyväksynnän jälkeen eritelmä julkaistaan viimeistelyvaiheessa ensimmäistä kertaa vuonnamarraskuu 2005eli yli kolme vuotta ehdotuspyynnön jälkeen. Tämä on merkittävä viive verrattuna tavanomaisiin OMG-standardointiprosesseihin. Valittu kyselykieli on OCL, kun taas näkymän käsite ei näy määrityksessä.
Viimeistelyvaihe päättyy Huhtikuu 2008 julkaisemalla QVT-standardin versio 1.0.
Versio | Hyväksyminen | Isoja muutoksia |
---|---|---|
Beeta 1 | marraskuu 2005 | QVT-standardin ensimmäinen käyttöönotto |
Beeta 2 | Heinäkuu 2007 | QVT-yhteensopivuus MOF-metamallin kanssa |
1.0 | Huhtikuu 2008 | QVT-standardin ensimmäinen julkaisu |
1.1 | tammikuu 2011 | Sukupolven Abstract Syntax of QVT kielten |
1.2 | helmikuu 2015 | Korjattu epäjohdonmukaisuuksia QVT-metamalleissa, päivitetyt kaaviot |
1.3 | kesäkuu 2016 | Kuvaus QVT Operationalista (muunnosallekirjoitukset, jäljet), OCL: n käyttö QVT: ssä |
Kuvateksti: Vanha versio Vanha versio, tuettu edelleen Viimeisin vakaa versio Uusin edistynyt versio Tuleva versio |
QVT-standardia on useita toteutuksia. Suurin osa niistä on hylätty tai puutteellinen, usein standardien kielien riittämättömän virallistamisen vuoksi. Standardin tarkistuksen jälkeen vuonna 2016 toteutusta toteutetaan pääasiassa Eclipse MMT (in) -projektissa ( mallien väliset muunnokset ), joka itse käyttää Eclipse Modeling Framework -hankkeen työkaluja .
Mallipohjaisessa suunnittelussa on tapana määrittää erikseen muunnokset, jotka käyttävät tai tuottavat tekstiä (esimerkiksi lähdekoodia tai dokumentaatiota ), vaikka itse teksti onkin malli. Tämä mahdollistaa kääntäjien tiettyjen ominaisuuksien , kuten koodin luomisen tai jäsentämisen, uudelleenkäytön .
QVT-standardi on suunniteltu mallista malliin (M2M) -muunnoksiin. Malli-teksti (M2T) -muunnoksia varten OMG tarjoaa MOF2Text- standardin .
” Tässä RFP-ohjelmassa pyritään standardoimaan tapa, jolla kartoitukset saavutetaan mallien välillä, joiden kielet määritellään MOF: n avulla. Lisäksi RFP vaatii tavanomaista tapaa kysellä MOF-malleja ja luoda näkemyksiä näihin malleihin. Tämä on samanlainen kuin XML: n tarve XML: lle, jossa XSLT-komentosarja määrittelee DTD-parien välisen kartoituksen ja sanelee, kuinka XML (DTD: n mukainen) muunnetaan. "
- Objektinhallintaryhmä, ehdotuspyyntö: MOF 2.0 Query / Views / Transformations RFP
MDE: ssä perusperiaatteella, että " kaikki on malli ", on monia mielenkiintoisia ominaisuuksia, muun muassa kyky luoda realistinen tutkimusohjelma.
- IDM: ssä perusperiaatteella, että kaikella on malli, on monia mielenkiintoisia ominaisuuksia, joista yksi on mahdollisuus luoda realistinen tutkimusohjelma. "
: tämän artikkelin lähteenä käytetty asiakirja.
: tämän artikkelin lähteenä käytetty asiakirja.