Modelowanie specyficzne dla domeny
Modelowanie specyficzne dla domeny ( DSM ) to metodologia inżynierii oprogramowania służąca do projektowania i rozwijania systemów, takich jak oprogramowanie komputerowe . Obejmuje systematyczne stosowanie języka specyficznego dla domeny do reprezentowania różnych aspektów systemu.
Języki modelowania specyficzne dla domeny zwykle obsługują abstrakcje wyższego poziomu niż języki modelowania ogólnego przeznaczenia , więc wymagają mniej wysiłku i mniej szczegółów niskiego poziomu, aby określić dany system.
Przegląd
Modelowanie specyficzne dla domeny często obejmuje również ideę generowania kodu : automatyzację tworzenia wykonywalnego kodu źródłowego bezpośrednio z modeli językowych specyficznych dla domeny. Wolność od ręcznego tworzenia i utrzymywania kodu źródłowego oznacza, że język specyficzny dla domeny może znacznie poprawić produktywność programistów. Niezawodność automatycznego generowania w porównaniu z kodowaniem ręcznym zmniejszy również liczbę defektów w powstałych programach, poprawiając tym samym jakość.
Język specyficzny dla domeny różni się od wcześniejszych prób generowania kodu w narzędziach CASE z lat 80. czy narzędziach UML z lat 90. W obu przypadkach generatory kodu i języki modelowania zostały zbudowane przez dostawców narzędzi. [ potrzebne źródło ] Chociaż możliwe jest, aby dostawca narzędzi stworzył język i generatory specyficzne dla domeny, bardziej normalne jest, że język specyficzny dla domeny występuje w ramach jednej organizacji. Jeden lub kilku doświadczonych programistów tworzy język modelowania i generatory, a reszta programistów z nich korzysta.
Posiadanie języka modelowania i generatora zbudowanego przez organizację, która będzie z nich korzystać, umożliwia ścisłe dopasowanie do ich dokładnej domeny i reagowanie na zmiany w domenie.
Języki specyficzne dla domeny mogą zwykle obejmować zakres poziomów abstrakcji dla określonej domeny. Na przykład język modelowania specyficzny dla domeny dla telefonów komórkowych może pozwolić użytkownikom na określenie abstrakcji wysokiego poziomu dla interfejsu użytkownika , jak również abstrakcji niższego poziomu do przechowywania danych, takich jak numery telefonów lub ustawienia. Podobnie język modelowania specyficzny dla domeny dla usług finansowych mógłby pozwolić użytkownikom na określanie abstrakcji wysokiego poziomu dla klientów, jak również abstrakcji niższego poziomu do implementacji algorytmów handlu akcjami i obligacjami.
Tematy
Definiowanie języków specyficznych dla domeny
Aby zdefiniować język, potrzebny jest język, w którym zostanie napisana definicja. Język modelu jest często nazywany metamodelem , stąd język definiowania języka modelowania jest meta-metamodelem. Meta-metamodele można podzielić na dwie grupy: te, które wywodzą się z istniejących języków lub dostosowują je, oraz te, które zostały opracowane specjalnie jako meta-metamodele.
Pochodne meta-metamodele obejmują diagramy relacji encji , języki formalne , rozszerzoną formę Backusa-Naura (EBNF), języki ontologii , schemat XML i Meta-Object Facility (MOF). Siłą tych języków jest zwykle znajomość i standaryzacja języka oryginalnego.
Etos modelowania specyficznego dla domeny faworyzuje tworzenie nowego języka do określonego zadania, dlatego też, jak można się było spodziewać, nowe języki są projektowane jako meta-metamodele. Najszerzej używaną rodziną takich języków jest OPRR, GOPRR i GOPPRR, które skupiają się na wspieraniu rzeczy znalezionych w językach modelowania przy minimalnym wysiłku.
Obsługa narzędzi dla języków specyficznych dla domeny
Wiele języków modelowania ogólnego przeznaczenia ma już dostępne wsparcie narzędziowe w postaci narzędzi CASE . Języki specyficzne dla domeny mają zwykle zbyt mały rozmiar rynku, aby wspierać tworzenie od podstaw narzędzia CASE na zamówienie. Zamiast tego większość narzędzi obsługujących języki specyficzne dla domeny jest zbudowana w oparciu o istniejące ramy językowe specyficzne dla domeny lub za pośrednictwem środowisk językowych specyficznych dla domeny.
Środowisko językowe specyficzne dla domeny może być traktowane jako narzędzie do metamodelowania, tj. narzędzie do modelowania używane do definiowania narzędzia do modelowania lub narzędzia CASE. Powstałe narzędzie może albo działać w środowisku języka specyficznego dla domeny, albo rzadziej być tworzone jako oddzielny, samodzielny program. W bardziej powszechnym przypadku środowisko językowe specyficzne dla domeny obsługuje dodatkową warstwę abstrakcji w porównaniu z tradycyjnym narzędziem CASE.
Korzystanie ze środowiska języka specyficznego dla domeny może znacznie obniżyć koszt uzyskania wsparcia narzędziowego dla języka specyficznego dla domeny, ponieważ dobrze zaprojektowane środowisko języka specyficznego dla domeny zautomatyzuje tworzenie części programu, których zbudowanie od podstaw jest kosztowne, takich jak edytory, przeglądarki i komponenty specyficzne dla domeny. Ekspert domeny musi tylko określić konstrukcje i reguły specyficzne dla domeny, a środowisko językowe specyficzne dla domeny zapewnia narzędzie do modelowania dostosowane do domeny docelowej.
Większość istniejących języków specyficznych dla domeny ma miejsce w środowiskach językowych specyficznych dla domeny, komercyjnych, takich jak MetaEdit + lub Actifsource , open source, takich jak GEMS , lub akademickich, takich jak GME . Rosnąca popularność języka specyficznego dla domeny doprowadziła do dodania frameworków języka specyficznego dla domeny do istniejących IDE, np. Eclipse Modeling Project (EMP) z EMF i GMF lub w DSL Tools for Software Factories firmy Microsoft .
Język specyficzny dla domeny i UML
Unified Modeling Language (UML) to język modelowania ogólnego przeznaczenia dla systemów intensywnie korzystających z oprogramowania, zaprojektowany do obsługi głównie programowania obiektowego . W konsekwencji, w przeciwieństwie do języków specyficznych dla domeny, UML jest używany do wielu różnych celów w szerokim zakresie domen. Prymitywy oferowane przez UML to prymitywy programowania obiektowego, podczas gdy języki specyficzne dla domeny oferują prymitywy, których semantyka jest znana wszystkim praktykom w tej dziedzinie. Na przykład w dziedzinie inżynierii samochodowej będą dostępne modele oprogramowania reprezentujące właściwości układu przeciwblokującego lub kierownicy itp.
UML zawiera mechanizm profilu, który pozwala na ograniczenie i dostosowanie go do określonych domen i platform. Profile UML wykorzystują stereotypy , atrybuty stereotypów (znane jako wartości tagowane przed UML 2.0) oraz ograniczenia w celu ograniczenia i rozszerzenia zakresu UML na określoną domenę. Być może najbardziej znanym przykładem dostosowywania języka UML do określonej domeny jest SysML , specyficzny dla domeny język inżynierii systemów .
UML jest popularnym wyborem dla różnych podejść programistycznych opartych na modelach, w których artefakty techniczne, takie jak kod źródłowy, dokumentacja, testy i inne, są generowane algorytmicznie z modelu domeny. Na przykład profile aplikacji standardu dokumentów prawnych Akoma Ntoso mogą być rozwijane poprzez reprezentowanie pojęć prawnych i ontologii w obiektach klasy UML.
Zobacz też
- Inżynieria oprogramowania wspomagana komputerowo
- Projekt oparty na domenie
- Język specyficzny dla domeny
- Język modelowania specyficzny dla frameworka
- Modelowanie ogólnego przeznaczenia
- Multimodelowanie specyficzne dla domeny
- Inżynieria oparta na modelach
- Architektura oparta na modelach
- Fabryki oprogramowania
- Modelowanie specyficzne dla dyscypliny
Linki zewnętrzne
- Modelowanie specyficzne dla domeny na potrzeby generatywnego tworzenia oprogramowania Zarchiwizowane 2010-01-31 w Wayback Machine , artykuł internetowy autorstwa Martijna Isegera, 2010
- Modelowanie specyficzne dla domeny w ramach IoC Artykuł internetowy autorstwa Ke Jin, 2007
- Modelowanie specyficzne dla domeny w celu generowania pełnego kodu z metod i narzędzi Artykuł internetowy autorstwa Juha-Pekka Tolvanen, 2005
- Tworzenie specyficznego dla domeny języka modelowania dla istniejącej struktury Artykuł internetowy autorstwa Juha-Pekka Tolvanen, 2006