Кіріспе

Домендік инженерия – жаңа бағдарламалық қамтамасыз ету жүйелерін жасауда домендік білімді қайта пайдаланудың толық процесі. Бұл жүйелі бағдарламалық жасақтаманы қайта пайдалану және өнімдік желіні құрудың маңызды түсінігі. Жүйелі бағдарламалық жасақтаманы қайта пайдаланудағы негізгі ұғым – домен. Көптеген ұйымдар тек бірнеше доменде жұмыс істейді. Олар клиенттердің әртүрлі қажеттіліктерін қанағаттандыру үшін белгілі бір доменде ұқсас жүйелерді әртүрлі өзгерістермен қайта-қайта құрастырады. Әрбір жаңа жүйе нұсқасын бастапқыдан құрудың орнына, домендегі бұрынғы жүйелердің бөліктерін қайта пайдалану арқылы айтарлықтай үнемдеуге қол жеткізуге болады. Домендерді анықтау, олардың шектерін белгілеу және домендегі жүйелер арасындағы ортақ белгілер мен айырмашылықтарды анықтау процесі – домендік талдау деп аталады. Бұл ақпарат модельдерде сақталады, олар домендік іске асыру кезеңінде қайта пайдаланылатын компоненттер, доменге тән тіл немесе доменде жаңа жүйелер құруға арналған қосымша генераторлары сияқты артефакттарды жасау үшін қолданылады. ISO26550:2015 стандарты бойынша анықталған өнімдік желінің инженериясында Домендік инженерия Қолданбалық инженериямен толықтырылады, ол өнімдік желіден алынған жеке өнімдердің өмірлік циклын басқарады.

Мақсаты

Домендік инженерия бағдарламалық жасақтама артефактілерін қайта пайдалану арқылы әзірленген бағдарламалық өнімдердің сапасын арттыруға бағытталған. Домендік инженерия көрсеткендей, көптеген дамытылған бағдарламалық жүйелер жаңа емес, бір сала ішіндегі басқа жүйелердің түрленулері болып табылады. Осының нәтижесінде, домендік инженерияны қолдану арқылы бизнес пайданы максималды деңгейге жеткізе алады және бұрынғы бағдарламалық жүйелерден алынған түсініктер мен іске асыруларды мақсатты жүйеге қолданып, нарыққа шығу уақытын қысқарта алады. Қабылданатын шығындар азаюы тіпті іске асыру кезеңінде де байқалады. Бір зерттеу көрсеткендей, доменге тән тілдерді қолдану код мөлшерін – әдістер мен символдар санын 50%-дан астамға, ал кодтың жалпы жолдар санын шамамен 75%-ға дейін азайтуға мүмкіндік берді. Домендік инженерия бағдарламалық жасақтаманы жасау процесінде жиналған білімді жинақтауға шоғырланады. Қайта пайдалануға болатын артефактілерді жасау арқылы компоненттерді жаңа бағдарламалық жүйелерде төмен құнмен және жоғары сапада қайта пайдалануға болады. Бұл бағдарламалық жасақтаманы әзірлеу циклінің барлық кезеңдеріне қатысты болғандықтан, домендік инженерия үш негізгі кезеңге де назар аударады: талдау, жобалау және іске асыру, бұл қолданбалық инженериямен паралель жүреді. Бұл доменге қатысты бағдарламалық жасақтаманы іске асыру компоненттерінің жиынтығын ғана емес, сонымен қатар қайта пайдалануға және конфигурациялауға болатын талаптар мен жобаларды да қамтиды. Вебтегі деректердің және Заттар Интернетінің өсуіне байланысты, домендік инженерия тәсілі басқа салалар үшін де маңызды бола бастады. Веб-қызметтердің күрделі тізбектерінің пайда болуы қызмет түсінігінің салыстырмалы екенін көрсетеді. Бір ұйым әзірлеген және басқаратын веб-қызметтер басқа ұйымның платформасының бөлігі ретінде пайдаланылуы мүмкін. Қызметтер әртүрлі контексттерде қолданылуы мүмкін, сондықтан оларға әртүрлі конфигурациялар қажет, сондықтан қызметтер отбасын жобалау домендік инженерия тәсілінен пайда көреді.

Фазалары

Домендік инженерия, қолданбалы инженерия сияқты, үш негізгі кезеңнен тұрады: талдау, жобалау және іске асыру. Бірақ, бағдарламалық жасақтама инженериясы бір жүйеге назар бөлер болса, домендік инженерия жүйелер тобына назар бөледі.

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

Домендік талдау доменді анықтау, домен туралы ақпаратты жинау және домендік модельді құру үшін қолданылады. Ерекшелік модельдерін пайдалану арқылы (алғаш рет ерекшеліктерге бағытталған домендік талдау әдісінің құрамдас бөлігі ретінде ұсынылған), домендік талдау домендегі ортақ және өзгешеліктерді анықтауға бағытталған. Домендік талдауды қолдану арқылы дәстүрлі қолданбалық инженерия тәсілімен жасалатын статикалық конфигурациялардың орнына, конфигурацияланатын талаптар мен архитектураларды жасауға болады. Домендік талдау талаптарды инженериядан едәуір өзгеше, сондықтан домендік модельде кездесетін конфигурацияланатын талаптарды жасау үшін дәстүрлі талаптарды алу тәсілдері тиімсіз. Домендік инженерияны тиімді қолдану үшін, бағдарламалық жасақтаманы әзірлеу өмірлік циклінің бастапқы кезеңдерінде қайта пайдалануды қарастыру қажет. Дамытылған ерекшелік модельдерінен ерекшеліктерді таңдау арқылы технологияны қайта пайдалану мүмкіндігі ерте кезеңде қарастырылады және оны даму процесінің барлық кезеңінде тиімді қолдануға болады. Домендік талдау, негізінен, домендегі бұрынғы тәжірибеден алынған деректерге сүйенеді. Алайда, талаптарды инженериядан айырмашылығы, домендік талдау тек ақпаратты жинау және формалдаудан ғана тұрмайды, сонымен қатар шығармашылық компонентті де қамтиды. Домендік талдау процесінде инженерлер домен туралы білімді қазіргі білімнен асырып, қайта конфигурациялау мүмкіндігін арттыру үшін ұқсастықтар мен айырмашылықтар бойынша жіктеуге тырысады. Тиімді домендік модель домендегі өзгермелі және тұрақты ерекшеліктерді ғана емес, сонымен қатар доменде қолданылатын терминологияны, жүйедегі ұғымдарды, идеяларды және құбылыстарды анықтайды. Ерекшелік модельдері ұғымдарды қажетті және қосымша ерекшеліктерге бөліп, конфигурацияланатын талаптардың толыққанды формалдануын қамтамасыз етеді.

Доменді жобалау

Домендік дизайн домендік талдау кезеңінде жасалған домендік модельді пайдаланады және домендегі барлық жүйелерге сәйкес келетін жалпы архитектураны жасауға бағытталған. Қолданбалық инженерия функционалдық және функционалдық емес талаптарды жоба жасау үшін қолданатыны сияқты, домендік инженерияның домендік жобалау кезеңі домендік талдау кезеңінде әзірленген конфигурацияланатын талаптарды қабылдайды және жүйелер отбасы үшін конфигурацияланатын, стандартталған шешімді шығарады. Домендік дизайнның мақсаты – әртүрлі талаптар конфигурацияларына қарамастан, домендегі жүйелерде ортақ проблеманы шешетін архитектуралық үлгілерді жасау. Домендік дизайн кезінде үлгілерді әзірлеумен қатар, инженерлер үлгінің қолданылу аймағын және контекстің үлгіге қатыстылығын анықтауы керек. Контекстің шектелуі маңызды: тым көп контекст үлгінің көптеген жүйелерге қолданылмауына әкеледі, ал тым аз контекст үлгінің пайдалы болу үшін жеткіліксіз күшті болуына себеп болады. Пайдалы үлгі жиі қайталанатын және жоғары сапалы болуы тиіс. Домендік дизайнның мақсаты – дамытылған мүмкіндіктер моделі ұсынатын икемділікті сақтай отырып, мүмкіндігінше көп домендік талаптарды қанағаттандыру. Архитектура домендегі барлық жүйелердің талаптарын қанағаттандыру үшін жеткілікті икемді, ал шешімді негіздеуге арналған сенімді базаны қамтамасыз ету үшін жеткілікті қатаң болуы керек.

Доменді іске асыру

Домендік ішкі жүйелерді жасау – белгілі бір сала бойынша жекешелендірілген бағдарламаны тиімді түрде жасауға арналған процестер мен құралдарды құру.

Сын

Домендік инженерия жалпы бағдарламалық қамтамасыз ету мүмкіндіктерін "қайта пайдалану үшін инженерияға" немесе "қайта пайдаланумен инженерияға" тым көп назар бөлгені үшін сынға ұшырады, оның орнына жеке адамның көзқарасы, тілі немесе жағдайы бағдарламалық қамтамасыз етуді жобалау кезінде ескерілуі керек.