A tartományspecifikus modellezés (DSM) egy szoftverfejlesztési módszertan olyan rendszerek, például számítógépes szoftverek tervezésére és fejlesztésére. A rendszer különböző aspektusainak reprezentálására szisztematikusan használnak tartományspecifikus nyelv nyelvet.
A terület-specifikus modellező nyelvek általában magasabb szintű absztrakciókat támogatnak, mint az általános célú modellező nyelvek, így kevesebb erőfeszítést és kevesebb alacsony szintű részletet igényelnek egy adott rendszer specifikálásához.
Áttekintés A doménspecifikus modellezés gyakran magában foglalja a kódgenerálás gondolatát is: a futtatható forráskód létrehozásának automatizálása közvetlenül a doménspecifikus nyelvi modellekből. A forráskód kézi létrehozásától és karbantartásától való megszabadulás azt jelenti, hogy a tartomány-specifikus nyelv jelentősen javíthatja a fejlesztők termelékenységét. Az automatikus generálás megbízhatósága a kézi kódoláshoz képest csökkenti a hibák számát is az eredményül kapott programokban, így javítja a minőséget.
A doménspecifikus nyelv különbözik a korábbi kódgenerálási kísérletektől az 1980-as évek CASE eszközeiben vagy az 1990-es évek UML eszközeiben. Mindkettőben a kódgenerátorokat és a modellező nyelveket az eszközgyártók készítették. Bár lehetséges, hogy egy eszközgyártó hozzon létre egy tartományspecifikus nyelvet és generátorokat, sokkal inkább az a szokásos, hogy a tartományspecifikus nyelv egy szervezeten belül fordul elő. Egy vagy néhány szakértő fejlesztő készíti el a modellező nyelvet és a generátorokat, a többi fejlesztő pedig használja azokat.
Ha a modellezési nyelvet és a generátort az a szervezet építi, amelyik használni fogja, akkor az pontosan illeszkedik a saját területéhez, és reagál a terület változásaira.
A szakterület-specifikus nyelvek általában egy adott szakterület absztrakciós szintjeinek széles skáláját fedhetik le. Például egy mobiltelefonok számára kifejlesztett szakterület-specifikus modellező nyelv lehetővé teheti a felhasználók számára, hogy magas szintű absztrakciókat adjanak meg a felhasználói felülethez, valamint alacsonyabb szintű absztrakciókat az adatok, például a telefonszámok vagy a beállítások tárolásához. Hasonlóképpen, egy pénzügyi szolgáltatásokhoz használt, terület-specifikus modellező nyelv lehetővé teheti a felhasználók számára, hogy magas szintű absztrakciókat adjanak meg az ügyfelek számára, valamint alacsonyabb szintű absztrakciókat a részvény- és kötvénykereskedési algoritmusok megvalósításához.
Témák
Tartományspecifikus nyelvek definiálása Egy nyelv definiálásához szükség van egy nyelvre, amelyen a definíciót meg lehet írni. A modell nyelvét gyakran metamodellnek nevezik, ezért a modellezési nyelv definiálására szolgáló nyelv a meta-metamodell. A meta-metamodellek két csoportra oszthatók: azokra, amelyek létező nyelvekből származnak vagy azok testreszabásai, és azokra, amelyeket kifejezetten meta-metamodellként fejlesztettek ki.
A származtatott meta-metamodellek közé tartoznak az entitás-reláció diagramok, a formális nyelvek, a kiterjesztett Backus-Naur űrlap (EBNF), az ontológiai nyelvek, az XML sémák és a Meta-Object Facility (MOF). E nyelvek erőssége általában az eredeti nyelv ismertségében és szabványosításában rejlik.
A szakterület-specifikus modellezés etikája kedvez egy új nyelv létrehozásának egy adott feladatra, így nem meglepő módon vannak új, metamodellként tervezett nyelvek. Az ilyen nyelvek legszélesebb körben használt családja az OPRR, GOPRR, és GOPPRR, amelyek a modellező nyelvekben található dolgok minimális erőfeszítéssel történő támogatására összpontosítanak.
Eszköztámogatás domain-specifikus nyelvekhez Számos általános célú modellezőnyelv már rendelkezik eszköz-támogatással CASE-eszközök formájában. A szakterület-specifikus nyelvek piaca általában túl kicsi ahhoz, hogy a semmiből kiindulva támogassák egy egyedi CASE-eszköz létrehozását. Ehelyett a szakterület-specifikus nyelvek eszköztámogatásának nagy része a meglévő szakterület-specifikus nyelvi keretrendszerek alapján vagy szakterület-specifikus nyelvi környezeteken keresztül épül fel.
A szakterület-specifikus nyelvi környezetet metamodellező eszköznek, azaz egy modellező eszköznek tekinthetjük, amelyet egy modellező eszköz vagy CASE-eszköz definiálására használnak. Az így létrehozott eszköz vagy a szakterület-specifikus nyelvi környezetben működik, vagy ritkábban különálló, önálló programként készül. A gyakoribb esetben a szakterület-specifikus nyelvi környezet a hagyományos CASE-eszközhöz képest az absztrakció egy további rétegét támogatja.
Egy szakterület-specifikus nyelvi környezet használata jelentősen csökkentheti a szakterület-specifikus nyelvhez szükséges eszköztámogatás beszerzésének költségeit, mivel egy jól megtervezett szakterület-specifikus nyelvi környezet automatizálja a nulláról való létrehozásukkal költséges programrészek, például a szakterület-specifikus szerkesztők, böngészők és komponensek létrehozását. A szakterületi szakértőnek csak a szakterület-specifikus konstrukciókat és szabályokat kell megadnia, a szakterület-specifikus nyelvi környezet pedig a célterületre szabott modellező eszközt biztosít.
A legtöbb létező szakterületspecifikus nyelvi fejlesztés szakterületspecifikus nyelvi környezetekkel történik, akár kereskedelmi, mint a MetaEdit+ vagy az Actifsource, akár nyílt forráskódú, mint a GEMS, vagy akadémiai, mint a GME. A szakterület-specifikus nyelvek növekvő népszerűsége azt eredményezte, hogy a szakterület-specifikus nyelvi keretrendszereket hozzáadták a meglévő IDE-khez, például az Eclipse Modeling Projecthez (EMP) EMF és GMF segítségével, vagy a Microsoft DSL eszközei a szoftvergyárak számára.
Szakterület-specifikus nyelv és UML Az egységes modellezési nyelv (UML) egy általános célú modellezési nyelv szoftverintenzív rendszerekhez, amelyet úgy terveztek, hogy főként objektumorientált programozás támogasson. Következésképpen, ellentétben a szakterület-specifikus nyelvekkel, az UML-t a legkülönbözőbb célokra használják a legkülönbözőbb területeken. Az UML által kínált primitívek az objektumorientált programozás primitívjei, míg a szakterület-specifikus nyelvek olyan primitíveket kínálnak, amelyek szemantikája az adott szakterületen minden gyakorlója számára ismerős. Például az autóipar területén a blokkolásgátló fékrendszer vagy a kormánykerék stb. tulajdonságainak ábrázolására szoftvermodellek állnak rendelkezésre.
Az UML tartalmaz egy profilmechanizmust, amely lehetővé teszi, hogy korlátozni és testre szabni lehessen az egyes területekhez és platformokhoz. Az UML-profilok sztereotípiákat, sztereotípus-attribútumokat (az UML 2.0 előtt címkézett értékekként ismertek) és korlátozásokat használnak az UML hatókörének egy adott területre való korlátozására és kiterjesztésére. Az UML egy adott területre történő testreszabásának talán legismertebb példája a SysML, egy területspecifikus rendszermérnöki nyelv.
Az UML népszerű választás a különböző modellvezérelt fejlesztési megközelítésekhez, amelyek során a technikai artefaktumok, például a forráskód, a dokumentáció, a tesztek és egyéb dokumentumok algoritmikusan generálódnak a tartományi modellből. Például az Akoma Ntoso jogi dokumentumszabvány alkalmazási profiljai úgy fejleszthetők ki, hogy a jogi fogalmakat és ontológiákat UML-osztályobjektumokban reprezentálják.
Jegyzetek
Fordítás
További információk
Kategória:Szoftverfejlesztés