Mechanizmy rozszerzania UML
Język UML zapewnia standardowe środki wyrazu przydatne w modelowaniu systemu.
Jednakże nie ma takiego uniwersalnego języka, w którym dałoby się wyrazić
wszystkie niuanse każdego modelu z każdej dziedziny.
Mechanizmy rozszerzania UML
UML jest językiem otwartym i można go rozszerzać. Dostępne są 3 mechanizmy rozszerzania języka UML:
stereotypy,
metki,
ograniczenia.
Stereotypy
Stereotyp umożliwia rozszerzenie słownictwa języka UML.
Idea stereotypów polega na meta-klasyfikacji obiektów w UML. Pozwala na wprowadzenie graficznych ograniczeń klas zgodnych z tą
klasyfikacją.
Stereotypy są bardzo ogólnym pojęciem w UML i pozwalają na rozszerzanie UML o właściwości
użytkownika.
Stereotypy
Stereotyp w UML to ciąg znaków wewnątrz nawiasów << >>
<<actor>>
<<control object>>
Użytkownik może poszerzać zbiór stereotypów przez definiowanie własnych znaczeń i
opcjonalne dodawanie do nich oznaczeń graficznych.
Stereotypy
Stereotypy w diagramach klas mogą służyć do dokładniejszego specyfikowania:
•klas
•asocjacji
•generalizacji
Stereotypy są wspólnymi nazwanymi
właściwościami bytów, dzięki czemu definicja tych bytów może być uszczegółowiona.
Stereotypy
Przykłady stereotypów sugerowane przez autorów UML:
•stereotypy klas i obiektów: zdarzenie, wątek, interfejs, metaklasa, uogólnienie
•stereotypy typu obiektu: obiekty
rzeczywiste, obiekty sterujące, obiekty interfejsu
•stereotypy zadań: proces, wątek
•stereotypy węzłów
•stereotypy pakietów
Stereotypy zdefiniowane w UML
Stereotyp Element powiązany Znaczenie
actor klasa określa spójny zbiór ról odgrywanych przez użytkowników przypadku użycia w czasie interakcji z tym przypadkiem
użycia
access zależność Wskazuje, że pakiet źródłowy na prawo dostępu do publicznych składników pakietu docelowego
association koniec wiązania Wskazuje, że odpowiadający obiekt jest widoczny przez powiązanie
become komunikat Wskazuje, że cel jest tym samym
obiektem co źródło, ale reprezentuje ten obiekt w późniejszej chwili z być może innymi wartościami atrybutów, stanem lub rolami
Stereotypy zdefiniowane w UML
Stereotyp Element powiązany Znaczenie
bind zależność Wskazuje, że źródło tworzy egzemplarz wzorca docelowego z użyciem danych parametrów aktualnych
call zależność Wskazuje, że źródło wywołuje cel; oba te byty muszą być operacjami
copy komunikat Wskazuje, że obiekt docelowy jest dokładną, ale niezależną, kopią źródła create komunikat, zdarzenie Wskazuje, że komunikat lub zdarzenie
źródłowe tworzy obiekt docelowy
derive zależność Wskazuje, że źródło można wyznaczyć na podstawie celu
Stereotypy zdefiniowane w UML
Stereotyp Element powiązany Znaczenie destroy komunikat,
zdarzenie
Wskazuje, że komunikat lub zdarzenie źródłowe niszczy obiekt docelowy
document komponent Określa komponent reprezentujący dokument
enumeration klasa Określa typ wyliczeniowy; dopuszczalne wartości tego typu pochodzą z pewnego zbioru indentyfikatorów
exception klasa Określa zdarzenie, które może być spowodowane lub wykryte przez operację
executable komponent Określa komponent, który można wykonać w węźle
Stereotypy zdefiniowane w UML
Stereotyp Element powiązany Znaczenie
extend zależność Wskazuje, że docelowy przypadek użycia rozszerza znaczenie źródłowego
przypadku użycia w ściśle określonym miejscu rozszerzenia
facade pakiet Wskazuje pakiet będący jedynie fasadą innego pakietu
file komponent Określa komponent reprezentujący
dokument zawierający kod źródłowy lub dane
framework pakiet Określa pakiet składający się głównie ze wzorców
friend zależność Wskazuje, że źródło ma szczególny dostęp do wnętrza celu
Stereotypy zdefiniowane w UML
Stereotyp Element
powiązany Znaczenie
global koniec wiązania Wskazuje, że odpowiadający obiekt jest widoczny, ponieważ jest w otaczającym zasięgu
implementation uogólnienie Wskazuje, że potomek dziedziczy całą implementację przodka, ale ani nie udostępnia jako publicznych jego
interfejsów, ani ich nie realizuje; oznacza to, że nie można zastępować przodka
potomkiem.
implementa-
tionClass klasa Określa implementację klasy w pewnym języku programowania
Stereotypy zdefiniowane w UML
Stereotyp Element
powiązany Znaczenie
import zależność Rodzaj dostępu, który oznacza, że
zawartość publiczna pakietu docelowego zostaje dołączona do płaskiego obszaru nazw źródła; wygląda to tak, jakby
zawartość była tam po prostu zadeklarowana.
include zależność Wskazuje, że źródłowy przypadek użycia jawnie przyłącza docelowy przypadek użycia w miejscu określonym prze źródło.
instanceOf zależność Wskazuje, że obiekt źródłowy jest
egzemplarzem klasyfikatora docelowego
Stereotypy zdefiniowane w UML
Stereotyp Element
powiązany Znaczenie
instantiate zależność Wskazuje, że źródło tworzy egzemplarze celu
interface klasa Określa zestaw operacji, które
wyznaczają usługi oferowane przez klasę lub komponent
invariant ograniczenie Określa niezmiennik; musi być on zawsze spełniony w wypadku bytu, którego dotyczy
library komponent Określa dynamiczną lub statyczną bibliotekę obiektów
local koniec wiązania Wskazuje, że odpowiadający obiekt jest widoczny, ponieważ jest w lokalnym zasięgu
Stereotypy zdefiniowane w UML
Stereotyp Element
powiązany Znaczenie
metaclass klasyfikator Określa klasyfikator, którego wszystkie obiekty są klasami
model pakiet Określa znaczeniowo pełną abstrakcję systemu
parameter koniec wiązania Wskazuje, że odpowiadający obiekt jest widoczny, ponieważ jest parametrem postcondition ograniczenie Określa warunek końcowy, który musi
być spełniony po wywołaniu operacji powertype klasa, zależność Określa klasyfikator, którego obiekty są
potomkami ustalonego przodka;
wskazuje, że cel jest typem potęgowym źródła
Stereotypy zdefiniowane w UML
Stereotyp Element
powiązany Znaczenie
precondition ograniczenie Określa warunek początkowy, który musi być spełniony przed wywołaniem
operacji
process klasa Określa klasyfikator, którego
egzemplarze są ciężkimi przepływami sterowania
refine zależność Wskazuje, że źródło jest doskonalszym poziomie abstrakcji niż cel
requirement notatka Określa oczekiwany element, właściwość lub zachowanie systemu
responsibility notatka Określa kontrakt lub zobowiązanie klasy
Stereotypy zdefiniowane w UML
Stereotyp Element
powiązany Znaczenie
self koniec wiązania Wskazuje, że odpowiadający obiekt jest widoczny, ponieważ to właśnie on
odebrał zlecenie wykonania danej operacji
send zależność Wskazuje, że operacja źródłowa wywołuje zdarzenie docelowe signal klasa Określa asynchroniczny bodziec
przekazywany między egzemplarzami stereotype klasa Wskazuje, że klasyfikator jest
stereotypem, który może być stosowany w odniesieniu do inych bytów
Stereotypy zdefiniowane w UML
Stereotyp Element
powiązany Znaczenie
stub pakiet Określa pakiet będący pełnomocnikiem publicznej zawartości innego pakietu subsystem pakiet Określa zestaw bytów, których pewien
podzbiór jest specyfikacją zachowania pozostałych składników
system pakiet Określa pakiet reprezentujący cały modelowany system
table komponent Określa komponent reprezentujący tabelę bazy danych
thread klasa Określa klasyfikator, którego
egzemplarze reprezentują lekki przepływ sterowania
Stereotypy zdefiniowane w UML
Stereotyp Element
powiązany Znaczenie
trace zależność Wskazuje, że cel jest historycznie przodkiem źródła
type klasa Określa klasę abstrakcyjną, używaną tylko do zdefiniowania struktury i zachowania (ale nie implementacji) zbioru obiektów
use zależność Wskazuje, że znaczenie bytu źródłowego zależy od znaczenia części publicznej celu
utility zależność Wskazuje, że znaczenie bytu źródłowego zależy od znaczenia części publicznej celu
Metki
Metka umożliwia rozszerzenie listy
właściwości bloku konstrukcyjnego UML.
Jest przedstawiana w postaci napisu wewnątrz nawiasów klamrowych { ... } pod nazwą
danego bloku.
Metki zdefiniowane w UML
Metka Element powiązany Znaczenie
documentation wszystkie elementy Wskazuje komentarz, opis lub
objaśnienie bytu, do którego została dołączona
location większość elementów Wskazuje węzeł (lub komponent), na którym znajduje się dany byt
persistence klasa, powiązanie,
atrybut Wskazuje, czy stan egzemplarza jest przechowywany po zakończeniu procesu: persistent (zachować stan) i transient (nie zachowywać stanu) semantics klasa, operacja Określa znaczenie klasy lub operacji
Ograniczenia
Ograniczenia (constraints) umożliwiają
dodawanie nowych reguł lub modyfikowanie istniejących. Pozwalają rozszerzyć znaczenie elementu konstrukcyjnego UML. Ograniczenie może mieć powiązanie z jednym elementem, lub z kilkoma.
Ograniczenia zdefiniowane w UML
Ograniczenie Element powiązany Znaczenie
complete uogólnienie Wskazuje, że wszyscy potomkowie w uogólnieniu zostali w modelu
uwzględnieni (mimo, że niektórzy mogą być na diagramie pominięci); nie wolno dodawać żadnych nowych potomków destroyed egzemplarz
wiązanie
Wskazuje, że egzemplarz lub wiązanie jest niszczone przed zakończeniem wykonywania otaczającej interakcji disjoint uogólnienie Wskazuje, że obiekty przodka mogą
mieć nie więcej niż jednego potomka jako typ
implicit powiązanie Wskazuje, że związek jest tylko pojęciowy, nie jawny
Ograniczenia zdefiniowane w UML
Ograniczenie Element powiązany Znaczenie
incomplete uogólnienie Wskazuje, że nie wszyscy potomkowie w uogólnieniu zostali w modelu
uwzględnieni (nawet jeśli niektórych pominięto na diagramie); można
dodawać nowych potomków
new egzemplarz
wiązanie
Wskazuje, że egzemplarz lub wiązanie jest tworzone podczas wykonywania otaczającej interakcji
overlapping uogólnienie Wskazuje, że obiekty przodka mogą mieć więcej niż jednego potomka jako typ
transient egzemplarz wiązanie
Wskazuje, że egzemplarz lub wiązanie jest tworzone podczas wykonywania otaczającej interakcji, a niszczone przed jej zakończeniem
Ograniczenia zdefiniowane w UML
Ograniczenie Element powiązany Znaczenie
xor powiązanie Wskazuje, że dokładnie jedno
powiązanie z danego zbioru powiązań musi zachodzić dla każdego powiązania obiektu