Transformacje modeli UML do kodu w Rational Software Architect

MDA jest podejściem, w którym UML jest traktowany jako język programowania. Głównym celem MDA jest tworzenia oprogramowania w oparciu o modele biznesowe oraz separacja modelu na zależny oraz niezależny od platformy. Dzięki MDA te same rozwiązania mogą być realizowane na wielu różnych platformach. Ponadto stworzone na bazie MDA systemy mogą być łatwo integrowane oraz łączone z innymi systemami. Nic nie stoi też na przeszkodzie aby ponownie używać opracowane rozwiązania.

Wyróżnia się cztery poziomy w MDA, ale najczęściej stosowane to:

  • Platform Independent Model (PIM), który można traktować jako abstrakcyjną specyfikację systemu, gdyż nie jest na tym poziomie wskazana konkretna platforma na której zostanie osadzone tworzone rozwiązanie,
  • Platform Specific Model (PSM), który jest modelem o najniższym poziome abstrakcji, odwzorowanym na konkretne rozwiązania wybranej platformy.

Transformacje są mechanizmem pozwalającym na transformowanie modeli jednego typu w drugi, również na różnych poziomach abstrakcji.

Rational Software Architekt posiada nie tylko możliwość budowa­nia projektów w języku UML , ale także umożliwa wygenerowanie zrębów kodu źródłowego na podstawie modelu. Te transformacje to przede wszystkim możliwości generowania szkieletów kodu systemu za pomocą metod inżynierii wprzód oraz tworzenie na podstawie kodu aplikacji równoważnej mu specyfikacji wyrażonej w języku UML (za pomocą metod inżynierii wstecz).

Celem zaprezentowania transformacji utworzyłem projektu UML o nazwie ACMETransformProject (rysunek 1). W projekcie tym umieściłem model o nazwie TransformModel wraz z  diagramem klas.

clip_image002

Rys. 1 Tworzenie nowego projektu ACMETransformProject

Kolejnym etapem jest dodanie do stworzonego przez kreator diagramu klas w modelu TransformModel trzech klas o nazwach: Employee, PhoneNumber, Zipcode.

Następnie przy pomocy narzędzi w widoku Palette trzeba stworzyć skierowane związki asocjacji od klasy Employee do klasy PhoneNumber oraz od klasy Employee od kasy Zipcode.

Kolejnym krokiem jest dodanie do klasy PhoneNumber atrybutu prywatnego o nazwie theNumber typu String oraz operacji o nazwie isPhoneNumber przyjmującej argument typu String i zwracającej wartość typu boolean. Gotowy diagram został przedstawiony poniżej:

clip_image004

Rys. 2 Stworzony diagram klas zawierający związki asocjacji

Przykładowy (rys. 2) diagram klas pokazuje klasy, które można  przetransformować w klasy (kod źródłowy) występujące w projekcie Java. W praktyce oznacza to przejście z modelu klas do kodu zaimplementowanego w języku Java – modelu implementacji.

Celem przekształcenia modelu na kod należy stworzyć nową transformację wybierając z menu głównego opcje Modeling > Transform > New Configuration. Nowa transformacja została nazwana ACMETransformUMLToJava

clip_image006

Rys. 3 Tworzenie nowej transformacji

Transformacja jest tylko elementem konfiguracyjnym, który zawiera informacje o modelach źródłowym oraz repozytorium kodu JAVA oraz parametrach transformacji. Z tego też powodu aby przekaszłacić kod należy zaznaczyć w widoku Project Explorer trzy klasy Employee, PhoneNumber, Zipcode a następnie użyć na nich stworzonej przed chwilą transformacji. Wynik powstałych w ten sposób klas JAVA prezentuje poniższy rysunek (rysunek 4.).

clip_image008

Rys. 4. Efekt wykonania transformacji modelu klas w języku UML na klasy w języku Java

Ostatecznym rezultatem transformacji stały się wygenerowane na podstawie diagramu klas UML zręby kodu w języku Java.

clip_image010

Rys. 5 Fragment kodu Java wygenerowanego przy pomocy transformacji UMLtoJava

Technorati Tagi: inżynieria oprogramowania,modelowanie systemów informatycznych,Rational Software Architect

Podobne wpisy

  • Model Driven Architecture modele PIM a PSM Zazwyczaj sporo mówi się na temat tego, że model musi być odseparowany od swojej implementacji. Oznacza to, że w pierwszej fazie modelowania nie należy zastanawiać się nad tym, jak będzie […]
  • Nazywanie procesu Modelując procesy biznesowe czy też scenariusze działania systemów IT często dochodzi do dyskusji jak nazwać proces.Poniżej są wskazówki i lista sugerowanych nazw, które można zastosować […]
  • Wersjonowanie i automatyczny backup plików z modelami Pracując nad projektem staram się zawsze robić backup. Słowa staram się jest kluczowe. Do tego kopia musi być zaszyfrowana, gdyż zdarza się, że rzeczy są ważne i praca nad nimi wymaga […]
  • Statyczna analiza kodu w Rational Software Modeler Kilka dni temu pisałem a statycznej analizie kodu (Dwa słowa o statycznej analizie kodu).  W praktyce taka analiza nie jest trudna o czym można się przekonać stosując bardziej […]
  • Dynamiczna analiza kodu w RSA W dobie dążenia do budowania wysokiej jakości systemów informatycznych istotne jest badanie dynamicznych własności kodu. W Rational Software Architect ten obszar wspomaga mechanizm Runtime […]
Reklama

1 thought on “Transformacje modeli UML do kodu w Rational Software Architect”

Leave a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *