środa, 11 czerwca 2014

UML 2.0 w pigułce

Dziś mam przyjemność zebrać w jednym miejscu same najważniejsze teoretyczne aspekty języka UML. Poniżej tekst, który może zarówno pełnić rolę popularnej ściągi jak i całościowego podsumowania UML w celu ugruntowania wiedzy.
 
Dla osób, które pragną więcej polecam książkę:
 
UML czyli Zunifikowany Język Modelowania (z ang. Unified Modeling Language) używany do opisania tworzone systemu.Utworzony grupę trzech specjalistów:  Grandy Boocha, Jamesa Rumbaugham, Ivara Jackobsona. Rozwijany przez OMG (z ang. Object Management Group).
 
Składa się z notacji (elementy graficzne, składnia języka) oraz metamodelu (definicje pojęć języka, istotny przy graficznym programowaniu)
 
UML jako język modelowania obiektowego jest ściśle powiązany z następującymi pojęciami:
  • Obiekt - każdy byt, pojęcie lub rzecz.
  • Komunikat - specyfikacja wymiany informacji między obiektami .
  • Hermetyzacja (enkapsulacja) - dawanie dostępu do obiektu po przez ujawnianie tylko tych informacji, które są niezbędne.
  • Polimorfizm - nadawanie tej samej nazwy atrybutom i operacjom.
  • Dziedziczenie - przyporządkowanie atrybutów i operacji klasom obiektów na podstawie hierarchicznej zależności między nimi .
Zastosowanie podejścia obiektowego wykorzystywane jest w:
  • Metodyce RUP
  • UML
  • Obiektowych językach programowania
  • Bazach danych
Analiza to badanie problemu i wymagań. Analiza obiektowa to badanie i klasyfikacja obiektów pojęciowych, czyli pojęć ze świata rzeczywistego.
Projektowanie - wymyślanie koncepcyjnego rozwiązania (programistycznego i sprzętowego), które realizuje wymagania.
Projektowanie obiektów określa się mianem projektowania obiektowego.
Proces wytwórczy - kaskadowe podejście do procesu wytwórczego nie jest dobrym pomysłem. Lepszym jest podejście iteracyjne. W każdej integracji wykonuje się zarówno analizę, projektowanie jak i kod.
Metodologia - zbiór metod procedur i reguł używanych prze osoby zajmujące się daną dziedziną przedmiotową.
UML jest językiem, nie zawiera opisu procedur, czy metod, więc nie może być użyty wszędzie.
 
Model - wzorzec, przedmiot służący do naśladowania.
Modelowanie - konstruowanie planu według pewnego wzorca.
Model obiektowy opiera się na pojęciach przyjętych w obiektowości.
UML wyróżnia 13 diagramów (graficzna reprezentacjach konstrukcji oraz zależności):
 
  1.  Diagram klas - graficzne przedstawienie statycznych, deklaratywnych elementów oraz związków między nimi.
  2.  Diagram obiektów - wystąpienie diagramu klas odwzorowujące strukturę systemu w wybranym momencie jego działania.
  3.  Diagram pakietów -  graficzne przedstawienie struktury systemu w postaci pakietów połączonych zależnościami i zagnieżdżeniami.
  4.  Diagram struktur połączonych - graficzne przedstawienie wzajemnie współdziałających części dla osiągnięcia pożądanej funkcjonalności współbieżności.
  5.  Diagram komponentów - modelowanie elementów oprogramowania i związków między nimi.
  6.  Diagram rozlokowania - modelowanie rozmieszczenia infrastruktury oraz platform użytkownika systemu.
  7.  Diagram przypadków użycia - graficzna reprezentacja aktorów, przypadków użycia oraz związków między nimi.
  8.  Diagram czynności - graficzne przedstawienie sekwencyjnych i współbieżnych przepływów sterowania oraz danych pomiędzy uporządkowanymi akcjami i czynnościami obiektów.
  9.  Diagram maszyny stanowej - graficzne odzwierciedlenie dyskretnego skokowego zachowania systemów stan-przejście. Przejścia pomiędzy stanami.
  10.  Diagram sekwencji - interakcje między instancjami klasyfikatorów systemu w postaci komunikatów między nimi.
  11.  Diagram komunikacji - specyfikuje strukturalne związki między instancjami klasyfikatorów biorącymi udział w interakcji oraz wymienia komunikaty. Diagram jest izomorficzny (są łatwo przenośne) względem diagramu sekwencji.
  12.  Diagram harmongramowania - reprezentuje dopuszczalne stany jakie może przyjmować instancja klasyfikatora uczestnicząca w interakcji.
  13.  Diagram sterowania interakcją - przepływ sterowania pomiędzy logiczne powiązanymi diagramami i fragmentami interakcji z wykorzystaniem kategorii modelowania diagramu czynności.
  
Diagramy można zgrupować według podziału:
Diagramy struktury, czyli:
  • Diagram klas,
  • Diagram pakietów,
  • Diagram obiektów,
  • Diagram struktur połączonych
Diagramy dynamiki, czyli:
  • Diagram przypadków użycia,
  • Diagram czynności,
  • Diagram maszyny stanowej,
Diagramy wdrożeniowe, czyli:
  • Diagram rozlokowania,
  • Diagram komponentów
Diagramy interakcji, czyli:
  • Diagram sekwencji,
  • Diagram harmonogramowania
  • Diagram komunikacji
  • Diagram sterowania interakcją
Może je także zgrupować według perspektyw które prezentują, czyli:
Perspektywa przypadków użycia:
  • Diagram przypadków użycia, Diagram pakietów.
Perspektywa dynamiczna:
  • Diagram interakcji, Diagram czynności,  Diagram maszyny stanowej, Diagram pakietów
Perspektywa logiczna:
  • Diagram klas, Diagram obiektów, Diagram struktur połączonych, Diagram pakietów
Perspektywa komponentów:
  • Diagram komponentów, Diagram pakietów
Perspektywa rozlokowania:
  • Diagram rozlokowania, Diagram pakietów
Klasyfikator to każdy byt modelu (np. przypadek użycia, klasa, aktor etc.)
Instancją nazywany pojedyńcze wywołanie klasyfikatora.
 
Mechanizmy rozszerzalności, które oferuje UML to:
Stereotyp - tekstowe lub graficzne doprecyzowanie semantyki (np. <<include>> lub <<extend>>). Tekstowo zawsze zawierane w nawiasach << >>
Ograniczenie - wyrażenie formy językiem OCL (ang. Object Constroint Language) - formalne wyrażenie ograniczeń w UML.
Metka - przyporządkowanie nazwie wartości, notatka do elementu.
 
Najpopularniejsze narzędzia CASE (ang. Computer Aided Software Engineering) wspomagające modelowanie w języku UML:
  • ArgoUML
  • IBM Rational Rose
  • Enterprise Architect
  • Modelio
  • Netbeans
  • Eclipse
  • Microsoft Visio

Brak komentarzy:

Prześlij komentarz