Modelowanie specyficzne dla domeny - Domain-specific modeling

Modelowanie specyficzne dla domeny ( DSM ) to metodologia inżynierii oprogramowania służąca do projektowania i opracowywania systemów, takich jak oprogramowanie komputerowe . Obejmuje systematyczne używanie 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ż koncepcję generowania kodu : automatyzację tworzenia wykonywalnego kodu źródłowego bezpośrednio z modeli językowych specyficznych dla domeny. Brak konieczności 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 wynikowych 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. lub narzędziach UML z lat 90. W obu przypadkach generatory kodu i języki modelowania zostały zbudowane przez dostawców narzędzi. Chociaż dostawca narzędzi może utworzyć język i generatory specyficzne dla domeny, bardziej normalne jest, że język specyficzny dla domeny występuje w 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 ich używać, pozwala na ścisłe dopasowanie do ich dokładnej domeny oraz w odpowiedzi 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 mógłby umożliwić użytkownikom określenie abstrakcji wysokiego poziomu dla interfejsu użytkownika , a także 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ślenie abstrakcji wysokiego poziomu dla klientów, a także abstrakcji niższego poziomu do implementacji algorytmów handlu akcjami i obligacjami. Modelowanie specyficzne dla domeny jest również pomocne w wnioskach o artefaktach oprogramowania niskiego poziomu.

Tematy

Definiowanie języków specyficznych dla domeny

Aby zdefiniować język, potrzebny jest język, w którym należy zapisać definicję. Język modelu często nazywany jest metamodelem , stąd też językiem służącym do definiowania języka modelowania jest meta-metamodel. Meta-metamodele można podzielić na dwie grupy: te, które pochodzą z istniejących języków lub ich dostosowania, oraz te, które zostały opracowane specjalnie jako metamodele.

Pochodne meta-metamodele obejmują diagramy relacji encji , języki formalne , rozszerzony formularz Backus-Naur (EBNF), języki ontologiczne , schemat XML i narzędzie Meta-Object Facility (MOF). Mocną stroną tych języków jest zazwyczaj znajomość i standaryzacja języka oryginalnego.

Etos modelowania specyficznego dla domeny sprzyja tworzeniu nowego języka do określonego zadania, dlatego nie jest zaskakujące, że istnieją nowe języki zaprojektowane jako meta-metamodele. Najczęściej używaną rodziną takich języków jest OPRR, GOPRR i GOPPRR, które skupiają się na wspieraniu elementów występujących 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ępną obsługę narzędzi w postaci narzędzi CASE . Języki specyficzne dla domeny mają zwykle zbyt mały rozmiar rynkowy, aby wspierać tworzenie od podstaw narzędzia CASE na zamówienie. Zamiast tego większość narzędzi do obsługi języków specyficznych dla domeny jest zbudowana w oparciu o istniejące struktury językowe specyficzne dla domeny lub za pośrednictwem środowisk językowych specyficznych dla domeny.

Specyficzne dla domeny środowisko językowe można traktować jako narzędzie do metamodelowania, tj. Narzędzie do modelowania używane do definiowania narzędzia do modelowania lub narzędzia CASE. Wynikowe narzędzie może działać w środowisku językowym specyficznym dla domeny lub 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ęzykowego 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 tworzenie 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 jest obsługiwana przez środowiska językowe specyficzne dla domeny, komercyjne, takie jak MetaEdit + lub Actifsource , open source, takie jak GEMS , lub akademickie, takie jak GME . Rosnąca popularność języka specyficznego dla domeny doprowadziła do dodania struktur językowych specyficznych dla domeny do istniejących IDE, np. Eclipse Modeling Project (EMP) z EMF i GMF lub w narzędziach DSL firmy Microsoft dla fabryk oprogramowania .

Język specyficzny dla domeny i UML

Unified Modeling Language (UML) jest modelowanie ogólnego przeznaczenia języka dla systemów oprogramowania intensywnie, że jest przeznaczony do wspierania głównie programowania obiektowego . W rezultacie, w przeciwieństwie do języków specyficznych dla domeny, UML jest używany do wielu różnych celów w szerokim zakresie dziedzin. Prymitywy oferowane przez UML to te z 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 pojawią się modele oprogramowania reprezentujące właściwości układu przeciwblokującego , kierownicy itp.

UML zawiera mechanizm profilu, który umożliwia ograniczenie i dostosowanie go do określonych domen i platform. Profile UML używają stereotypów , atrybutów stereotypów (znanych jako wartości oznakowane przed UML 2.0) i ograniczeń ograniczających i rozszerzających zakres UML do określonej domeny. Być może najbardziej znanym przykładem dostosowywania UML dla określonej domeny jest SysML , język specyficzny dla domeny do inżynierii systemów .

Zobacz też

Bibliografia

Linki zewnętrzne