MDA - Model Driven Architecture

Rozwijana przez Object Management Group inicjatywa Model Driven Architecture dostarcza wizji modelowania, rozwoju, wdrażania oraz eksploatacji systemów informatycznych i stanowi nadzieję na poprawę efektywności inżynierii oprogramowania. Tradycyjne metody rozwoju oprogramowania załamują się w obliczu coraz większej złożoności i wymagań na systemy. Głównym celem MDA jest tworzenie oprogramowania w oparciu o modele biznesowe (przypadki użycia) oraz separacja modelu na model niezależny od platformy i model zależny od platformy.
Co jest jednym z najwiekszych problemow w procesie wytwarzania oprogramowania? Mianowicie wielkie zróżnicowanie technologii :
- Języki programowania – w użyciu jest wiele różnych języków programowania – COBOL, VB, C/C++,...
- Systemy operacyjne – Unix, Windows, MacOS, PalmOS, Win3.1(ponoć jeszcze w użyciu), systemy wbudowane
- Sieci – Ethernet, ATM, IP, Firewire, USB, Bluetooth, 802.11b
Nie trzeba być specjalistą, żeby stwierdzić....:)
- There will not be consensus on hardware platforms
- There will not be consensus on operating systems
- There will not be consensus on network protocols
- There will not be consensus on programming languages
Musi być zatem porozumienie interfejsów oraz wydajna współpraca !!!
Niezwykle gwałtowny rozwój technologii informatycznych oraz postępująca globalizacja gospodarki powodują powstawanie nowych problemów podczas tworzenia korporacyjnych systemów informatycznych. Nowo powstające platformy informatyczne oraz aplikacje, które zostały zbudowane na ich podstawie muszą mieć możliwość współpracy z już istniejącymi, starszymi systemami. Jednocześnie globalizacja spowodowała, że dzisiejsze korporacje muszą mieć możliwość połączenia wielu swoich działów pracujących w różnych lokalizacjach, wykorzystujących różne platformy sprzętowo-programowe, jak również różne aplikacje w jeden spójny organizm.
Grupa OMG zaproponowała standard definiujący rozwiązanie tych problemów. Standard ten to MDA - daje większą szansę przetrwania w przypadku zmiany technologii na rynku, dla którego budujemy systemy. MDA opisuje kompletny cykl wytwórczy systemów informatycznych korzystających z otwartych standardów, takich jak Corba bądź J2EE, który umożliwia wyspecyfikowanie działania systemu przy pominięciu kwestii związanych z zastosowanymi technologiami informatycznymi. MDA daje możliwość wydłużenia czasu życia systemu informatycznego poza czas życia technologii informatycznej na podstawie której został on stworzony. Jeżeli na horyzoncie pojawi się kolejna nowinka w postaci kolejnego otwartego standardu informatycznego, będącego rozwiązaniem wszystkich dotychczasowych bolączek, będzie można przenieść nasz system na tę nową platformę.
Troszkę teorii...:) (Charakterystyka + rysunek !!)
MDA wykorzystuje standardy związane z modelowaniem systemów informatycznych, które udało się opracować podczas wcześniejszych prac, i które są powszechnie wykorzystywane w praktyce produkcyjnej firm informatycznych, w celu stworzenia modelu, który będzie wyrażał sposób działania naszego systemu.
Standardy te to:
- UML (Unified Modeling Language),
- MOF (Meta Object Facility),
- CWM (Common Warehouse Metamodel).

Co to za standardy (dalej troszkę teorii...:)) ?
- CWM - Common Warehouse Metamodel(Powszechny metamodel hurtowni danych)
- definiuje metamodel reprezentujący zarówno biznesowe jak również techniczne metadane, często występujące w hurtowniach danych jak również w systemach pozwalających na analizy danych biznesowych. Standard ten jest wykorzystywany jako podstawa do wymiany instancji metadanych pomiędzy heterogenicznymi systemami informatycznymi pochodzącymi od różnych dostawców takimi jak hurtownie danych czy też systemami pozwalającymi na analizę danych biznesowych.
- MOF - Meta Object Facility - jest standardem OMG definiującym typowy abstrakcyjny język pozwalający na specyfikowanie metamodeli. MOF definiuje podstawowe elementy, składnię oraz strukturę metamodeli, które są wykorzystywane w celu budowy zorientowanych obiektowo modeli systemów dyskretnych. Specyfikacja MOF dostarcza: - Abstrakcyjny model typowych obiektów zdefiniowanych przez standard MOF oraz związków pomiędzy tymi obiektami. - Zbiór reguł dotyczących transformacji dowolnego metamodelu opartego na MOF na niezależną od języka programowania definicję interfejsów. - Reguły definiujące cykl życia oraz kompozycję elementów wykorzystywanych w opartych na MOF metamodelach.
- UML - Unified Modeling Language - definiuje zunifikowany język do modelowania, zawierający pojęcia i notacje służące do obiektowej analizy, modelowania i projektowania.
Jak to naprawdę działa...:)
Więc wyróżniono 4 modele (poziomy) w MDA:
- Computation Independent Model (CIM) (albo: domain model, vocabulary) – model biznesowy, nie precyzujący zakresu odpowiedzialności oprogramowania,
- Platform Independent Model (PIM) – abstrakcyjna specyfikacja systemu
- Platform Specific Model (PSM) – model odwzorowany na konkretne rozwiązania wybranej platformy,
- Implementation Model – proste przełożenie decyzji z modelu platformowego – generacja kodu.
Dwa podstawowe typy modeli w MDA to PIM i PSM:
Modele stworzone w ramach PIM odpowiadają za dostarczenie specyfikacji ogólnej struktury, jak również funkcjonalności oferowanej przez projektowany system informatyczny. Na tym poziomie nie wprowadza się żadnych elementów specyficznych dla danej technologii, w której może być budowany system informatyczny. Modele wchodzące w skład PIM budowane są na podstawie notacji UML.
Modele stworzone w ramach PSM zawierają szczegóły związane z implementacją poszczególnych podsystemów zdefiniowanych w PIM. Szczegóły implementacyjne zawarte w PSM są na tyle dokładne, że na ich podstawie można generować kod dla konkretnej, wybranej wcześniej technologii. Modele w ramach PSM tworzy się poprzez iteracyjne uszczegóławianie modelu aplikacji stworzonego w czasie pracy nad PIM o elementy zdefiniowane w ramach konkretnej technologii. Na etapie prac związanych z definiowaniem PSM następuje więc proces transformacji pewnego standardowego zbioru elementów które były wykorzystywane do definiowania PIM na elementy występujące w danej platformie, na którą chcemy wyprodukować nasz system informatyczny. W trakcie dokonywania transformacji modelu PIM w model PSM następuje stopniowe zmniejszanie poziomu abstrakcji pojęć, którymi się posługujemy.
Aby stworzyć model PSM musimy wybrać konkretną platformę informatyczną dla budowanego systemu. Aby można było zautomatyzować prace związane z budową modelu PSM narzędzie, które będziemy wykorzystywać powinno wiedzieć, w jaki sposób w wybranej przez nas platformie realizowane są standardowe usługi, z których korzystaliśmy podczas budowania modelu PIM. Podczas dokonywania tego typu transformacji wielce pomocne okażą się zapewne stereotypy, jakie możemy przypisywać poszczególnym elementom zdefiniowanym w notacji UML, za pomocą których został zbudowany model PIM.

Podczas budowy modelu PSM dla konkretnej platformy narzędzie powinno wykorzystywać te predefiniowane stereotypy do sterowania procesu automatycznej transformacji PIM-PSM. Oczywiście nie należy oczekiwać zautomatyzowania całego procesu transformacji. Niemniej jednak będzie można uzyskać istotne przyspieszenie pracy nad systemem poprzez zdefiniowanie np. pewnych wzorców projektowych wykorzystywanych przez poszczególne platformy.
W końcu generacja kodu...:)
Po uzupełnieniu modelu PSM, który uzyskano podczas procesu automatycznej transformacji, pozostaje posłużyć się tym modelem do wygenerowania kodu naszego systemu. Automatyzacja tego kroku prawdopodobnie nie będzie pełna. Umożliwi ona jednak wygenerowanie plików niezbędnych dla danej platformy takich, jak definicja poszczególnych interfejsów, pliki źródłowe, pliki konfiguracyjne itp. W przypadku plików zawierających kod źródłowy będzie można na pewno wygenerować strukturę poszczególnych klas podobnie jak robi się to w chwili obecnej z wykorzystaniem typowych narzędzi Case. Przy odpowiednim wykorzystaniu diagramów i stereotypów UML podczas definiowania modelu PSM będzie można również automatyzować proces generacji kodu dla niektórych metod wyspecyfikowanych operacji.
Podsumowujac...
MDA jest kolejnym krokiem uczynionym przez OMG w celu rozwiązywania problemów związanych z integracją systemów informatycznych pochodzących od różnych dostawców oraz działających na różnych platformach informatycznych. MDA wykorzystuje doświadczenia, jakie zostały zbudowane podczas definiowania takich standardów, jak CORBA, UML,CWM czy też MOF. Wiele niezależnych raportów wskazuje, że standard ten może stać się jednym z kluczowych trendów w przemyśle informatycznym.
Wiadomości zaczerpnięte ze strony OMG ( www.omg.org ), artykułu „MDA: Standard OMG dla budowy korporacyjnych systemów rozproszonych” Piotra Wilka, oraz prezentacji : - „Model Driven Architecture (MDA) – założenia koncepcyjne oraz istniejące specyfikacje” – Piotr Habela - „Model Driven Architecture: An Introduction” - Richard Mark Soley
Aby dodawać komentarze musisz być zalogowany!
