« poprzedni punkt 


3. Język UML

Jednym z najbardziej znanych obecnie obiektowych języków modelowania jest język UML (Unified Modeling Language). Według definicji podanej przez firmę Rational: "The Unified Modeling Language (UML) is a language for specifying, constructing, visualizing, and documenting the artifacts of a software-intensive system.", co oznacza, że jest to język służący do specyfikowania, konstruowania, obrazowania i dokumentowania składowych systemów oprogramowania.

Twórcami UML są trzej sławni metodolodzy inżynierii oprogramowania: Grady Booch, Ivar Jacobson oraz James Rumbaugh. Każdy z nich jest autorem własnej metodyki i związanej z nią notacji. Ich intencją było stworzenie takiego języka modelowania, który nie miałby wad ich własnych rozwiązań oraz mógłby być wykorzystany w dowolnej metodyce obiektowej. Krótką charakterystykę tych metodyk zamieszczamy poniżej:

Wiele ważnych zagadnień z zakresu konstruowania systemów informatycznych nie zostało objętych przez żadną z wyżej wymienionych metodyk, jak na przykład prototypowanie, komponenty, przystosowanie notacji do indywidualnych preferencji projektantów, itd. Celem twórców UML'a było uwzględnienie również tych aspektów.

UML cieszy się aktualnie bardzo dużą popularnością i prawdopodobnie przez wiele najbliższych lat będzie dominował w obszarze analizy i projektowania. Należy jednak pamiętać, że UML jest językiem, a nie metodyką konstruowania oprogramowania. Oznacza to, że nie podaje on wskazówek, jak należy organizować poszczególne fazy procesu wytwórczego, zaś jako notacja może być zastosowany praktycznie w dowolnej metodyce obiektowej. Niezależnie od tego, zgodnie z intencją jego twórców, pojęcia wspierane przez ten język mają w założeniu odnosić się do większości istotnych aspektów budowanych współcześnie systemów informatycznych.

UML posiada wiele zalet, nie jest jednak wolny od wad. Wielu specjalistów krytycznych w stosunku do niego zwraca uwagę na to, że jego definicja jest zbyt obszerna (kilkaset stron tekstu i rysunków) oraz niestabilna (co kilka lat pojawia się nowa wersja). Co więcej, definicja ta zawiera sporą liczbę nieścisłości, które sprawiają, że często różne osoby różnie interpretują te same elementy języka, przez co jego rola jako standardowego języka modelowania jest w konsekwencji znacznie ograniczona.

Diagramy UML

Język UML definiuje następujący zestaw diagramów:

Powyższe diagramy pozwalają opisać projektowany system z wielu perspektyw, razem składając się na jego szczegółowy opis. Zależności pomiędzy diagramami i różnymi rodzajami modelów, oraz definiowane przez nie pojęcia, są przedstawione w Tab. 1.

Główny obszar działania

Modele

Diagramy UML

Podstawowe pojęcia

struktura

model obiektowy

diagram klas

klasa, obiekt, asocjacja, generalizacja, zależność, realizacja, interfejs

diagram obiektów

model przypadków użycia

diagram przypadków użycia

aktor, przypadek użycia, «include», «extend», generalizacja

model implementacji

diagram komponentów

komponent, interfejs, zależność, realizacja

diagram wdrożeniowy

węzeł, komponent, zależność, lokacja

dynamika

model dynamiczny

diagram stanów

stan, zdarzenie, przejście, akcja, aktywność

diagram aktywności

stan, aktywność, fork, join, romb decyzyjny

diagram interakcji

interakcja, współpraca, komunikat, aktywacja

zarządzanie

model zarządzania

diagram pakietów

pakiet, podsystem

rozszerzalność

wszystkie modele

wszystkie diagramy

stereotyp, wartość etykietowana, ograniczenie

Tab. 1. Modele a diagramy UML

Mechanizmy rozszerzalności

Istniejące w języku UML mechanizmy rozszerzalności umożliwiają definiowanie i wykorzystywanie nowych elementów składniowych diagramów oraz przedstawianie na diagramach dodatkowych informacji, których nie można wyrazić za pomocą standardowych elementów języka. Głównym przeznaczeniem tego rodzaju mechanizmów jest uczynienie z UML elastycznego narzędzia modelowania, które można przystosować do specyficznych preferencji analityka. W UML występują następujące mechanizmy rozszerzalności:


« poprzedni punkt