Кіріспе

Домендік ерекшеліктерді модельдеу (DSM) – компьютерлік бағдарламалық қамтамасыз ету сияқты жүйелерді жобалау және дамытуға арналған бағдарламалық инженерия әдістемесі. Ол жүйенің әртүрлі аспектілерін бейнелеу үшін белгілі бір доменге арналған тілді жүйелі түрде пайдалануды қамтиды. Домендік модельдеу тілдері, жалпы мақсаттағы модельдеу тілдеріне қарағанда, жоғары деңгейдегі абстракцияларды қолдайды, сондықтан берілген жүйені сипаттау үшін аз күш жұмсалып, төмен деңгейдегі егжей-тегжейлердің саны азаяды.

Шолу

Домендік үлгілеу көбінесе кодты генерациялау идеясын қамтиды: домендік тіл модельдерінен орындалатын бастапқы кодты автоматты түрде құру. Деректер кодтарын қолмен жасау және күтіп ұстау қажеттілігінен босату домендік тілдің әзірлеушілердің өнімділігін едәуір арттыруына мүмкіндік береді. Автоматты генерацияның қолмен кодтауға қарағанда сенімділігі жоғары болғандықтан, нәтижедегі бағдарламалардағы қателер саны азаяды, соның салдарынан сапа жақсарады. Домендік тіл 1980 жылдардағы CASE құралдары немесе 1990 жылдардағы UML құралдарындағы кодты генерациялауға жасалған бұрынғы тыраштардан өзгеше. Бұл екі жағдайда да код генераторлары мен модельдеу тілдерін құрал жеткізушілер жасаған. Құрал жеткізушіге домендік тіл мен генераторларды жасау мүмкін болғанымен, домендік тіл көбінесе бір ұйым ішінде пайда болады. Бір немесе бірнеше тәжірибелі әзірлеушілер модельдеу тілі мен генераторларды жасайды, ал қалған әзірлеушілер оларды қолданады. Модельдеу тілі мен генераторды оны пайдаланатын ұйым жасағанда, олардың нақты доменіне және домендегі өзгерістерге бейімделуге мүмкіндік туады. Домендік тілдер әдетте белгілі бір домен үшін абстракция деңгейлерінің кең ауқымын қамтуы мүмкін. Мысалы, ұялы телефондарға арналған домендік үлгілеу тілі пайдаланушыларға пайдаланушы интерфейсі үшін жоғары деңгейдегі абстракцияларды, сондай-ақ телефон нөмірлері немесе параметрлер сияқты деректерді сақтау үшін төменгі деңгейдегі абстракцияларды анықтауға мүмкіндік береді. Сол сияқты, қаржылық қызметтерге арналған домендік үлгілеу тілі пайдаланушыларға клиенттер үшін жоғары деңгейдегі абстракцияларды, ал акциялар мен облигациялар саудасы алгоритмдерін іске асыру үшін төменгі деңгейдегі абстракцияларды анықтауға мүмкіндік береді.

Домендік тілдерді анықтау

Тілді анықтау үшін, оның анықтамасын жазу үшін тіл қажет. Модельдің тілі көбінесе метамодель деп аталады, сондықтан модельдеу тілін анықтау тілі – мета-метамодель. Мета-метамодельдерді екі топқа бөлуге болады: бұрыннан бар тілдерден туындаған немесе оларға сәйкес келтірілгендері, және мета-метамодель ретінде арнайы жасалғандары. Туындаған мета-метамодельдерге қатыстылық-қатынас диаграммалары, формальды тілдер, кеңейтілген Бэкус-Наур формасы (EBNF), онтология тілдері, XML схемасы және Meta Object Facility (MOF) жатады. Бұл тілдердің артықшылықтары бастапқы тілдің таныс болуы мен стандартталуында. Доменге қатысты нақты модельдеу философиясы белгілі бір міндет үшін жаңа тіл жасауға басымдық береді, сондықтан мета-метамодель ретінде жаңа тілдер жасалғаны түсінікті. Мұндай тілдердің ең көп қолданылатын тобы – OPRR, GOPRR және GOPPRR, олар модельдеу тілдерінде кездесетін нәрселерді ең аз күш жұмсап қолдауға бағытталған.

Домендік тілдерге арналған құралдарды қолдау

Көптеген жалпы мақсаттағы модельдеу тілдері үшін CASE құралдары түрінде қолдау бар. Доменге арналған тілдердің нарық көлемі арнайы CASE құралын бастапқыдан құруды қолдау үшін тым кішкентай. Оның орнына, доменге арналған тілдерге қолдау көбінесе доменге арналған тілдер шеңберлері немесе доменге арналған тілдер ортасы негізінде құрылады. Доменге арналған тілдер ортасын метамодельдеу құралы деп қарастыруға болады, яғни модельдеу құралын немесе CASE құралын анықтауға қолданылатын модельдеу құралы. Соның нәтижесінде құрал доменге арналған тілдер ортасында жұмыс істей алады, немесе сирек жеке бағдарлама ретінде жасалады. Көбінесе доменге арналған тілдер ортасы дәстүрлі CASE құралымен салыстырғанда қосымша абстракция деңгейін ұсынады. Доменге арналған тілдер ортасын пайдалану доменге арналған тілдерге қолдау құнын айтарлықтай төмендетуі мүмкін, себебі жақсы жобаланған доменге арналған тілдер ортасы доменге арналған редакторлар, шолғыштар және компоненттер сияқты бастапқыдан құруға қымбат түсетін бағдарламалық бөліктерді автоматты түрде құрады. Домендік сарапшыға тек доменге арналған құрылымдар мен ережелерді көрсету қажет, ал доменге арналған тілдер ортасы мақсатты доменге арналған модельдеу құралын ұсынады. Қазіргі доменге арналған тілдердің көпшілігі доменге арналған тілдер орталарында қолданылады, коммерциялық (мысалы, MetaEdit+ немесе Actifsource), ашық кодты (мысалы, GEMS) немесе академиялық (мысалы, GME). Доменге арналған тілдердің танымалдылығының артуы қолданыстағы IDE-лерге доменге арналған тілдер шеңберлерін қосуға әкелді, мысалы, EMF және GMF-пен Eclipse Modeling Project (EMP) немесе Microsoft-тың Software Factories үшін DSL Tools.

Доменге тән тіл және UML

Бірыңғай модельдеу тілі (UML) – бағдарламалық жасақтамаға көп көмек қажет болатын жүйелер үшін арналған, жалпы мақсаттағы модельдеу тілі. Ол негізінен объектіге бағытталған бағдарламалауды қолдау үшін жасалған. Сәйкесінше, салалық тілдерге қарағанда, UML кең ауқымды салаларда әртүрлі мақсаттарда қолданылады. UML ұсынатын бастапқы элементтер объектіге бағытталған бағдарламалаудың бастапқы элементтері болып табылады, ал салалық тілдер сол саланың барлық мамандарына таныс семантикалық бастапқы элементтерді ұсынады. Мысалы, автомобиль құрылысы саласында, антиблокировкалық тежегіш жүйесінің немесе рульдің және т.б. қасиеттерін көрсететін бағдарламалық модельдер болады. UML белгілі бір салалар мен платформалар үшін шектеулер мен бейімдеуге мүмкіндік беретін профильдік механизмді қамтиды. UML профильдері стереотиптерді, стереотип атрибуттарын (UML 2.0 нұсқасынан бұрын таңбаланған мәндер деп аталған) және UML-дің қолданылу аясын белгілі бір салаға шектеу және кеңейту үшін шектеулерді пайдаланады. Белгілі бір сала үшін UML-ді бейімдеудің ең танымал мысалы – жүйелік инженерияға арналған салалық тіл болып табылатын SysML. UML әртүрлі модельге негізделген әзірлеу тәсілдері үшін танымал таңдау болып табылады, онда бастапқы код, құжаттама, тесттер және басқа да техникалық артефакттар домендік модельден алгоритмдік түрде жасалады. Мысалы, құқықтық құжат стандартының қолданыс профильдері Akoma Ntoso құқықтық ұғымдар мен онтологияларды UML сынып объектілерінде бейнелеу арқылы жасалуы мүмкін.