UML-diagramy klas 1 DIAGRAMY KLAS

Transkrypt

UML-diagramy klas 1 DIAGRAMY KLAS
UML-diagramy klas
DIAGRAMY KLAS -Klasa, interfejsy, kooperacje i związki miedzy nimi (zależności, uogólnienia, powiązania)
obrazowanie statycznych aspektów perspektywy projektowej oraz wymagań funkcjonalnych systemu –tj.
usługi, jakie powinien udostępniać swoim użytkownikom.
Zadania:
Modelowanie słownictwa systemu;Modelowanie prostych kooperacji;Modelowanie schematu logicznej
bazy danych
Poziom konceptualny - diagram zwiera nazwy klas, atrybuty i operacje oraz związki.
Poziom implementacyjny - diagram konceptualny wzbogacony o elementy takie opisu jak: typy danych, zobowiązania,
widoczność, statyczność, klasy asocjacyjne, kwalifikacje, uogólnienia, zależności i realizacje.
PROCES TWORZENIA DIAGRAMU KLAS:
1. Zidentyfikowanie i nazwanie klas;
2. Opcjonalne określenie zobowiązań klas;
3. Połączenie poszczególnych klas z wykorzystaniem związków asocjacji;
4. Zidentyfikowanie i nazwanie atrybutów i operacji;
5. Wyspecyfikowanie asocjacji z użyciem wszystkich jeje cech (nazwy, ról, nawigacji, liczebności; agregacji i kwalifikacji);
6. Opracowanie innych rodzajów związków tj. uogólnień, zależności i realizacji;
7. Pełne, precyzyjne wyspecyfikowanie atrybutów i operacji zgodnie ze składnią;
8. Opcjonalne opracowanie diagramu obiektów.
SKŁADOWE KLASY
Atrybuty notacja
widoczność nazwa atrybutu: typ liczebość= wartość_poczatkowa {określenie właściwości}
Przykład:
#cena: Single[0..*]=750 {changeable}
Operacje notacja
widoczność nazwa(lista parametrów) : określenie właściwosci_typu_wyniku
Specyfikator dostępu
+ publiczny(public); # chroniony(protected); - prywatny(private); ~ pakietowy
Sposób przekazania argumentu
in(wartość), out (wynik)inout(przez wartośc i przez wynik)
Przykład:
+ obliczPlatnosc(In pozycja:Byte=50, obnizka:Boolean):Long
ZWIĄZKI MIEDZY KLASAMI języka UML
asocjacje
obrazują związki strukturalne miedzy obiektami
uogólnienia obrazuje relacje miedzy klasami ogólnymi a klasami szczegółowymi
zależności
reprezentują używanie danej klasy przez inną, związek użycia
realizacje
jedna strona związku wskazuje klasyfikator określający kontrakt, druga , klasyfikator zapewniający
wywiązanie się z niego.
1. Powiązanie (nazwa, liczebność, rola, nawigacja, agregacja): ASOCJACJA
 Związek strukturalny wskazujący, że obiekt jednej klasy są powiązane z obiektami drugiej klasy i vice versa .(stałe
powiązanie, istniejące mimo zmian obiektów(instancji, egzemplarzy klas)). Wyróżnia się dwa rodzaje asocjacji :
binarne i n-arne.
 Zwykle powiązanie jest związkiem równorzędnych partnerów (ten sam poziom pojęciowy).
1..*
 Reprezentują zobowiązania klas (perspektywa specyfikacyjna)
*
osoba
firma
 Asocjacja mająca atrybuty jest klasą asocjacyjną,
pracodawca
pracownik
Zastosowanie:
rola B Klasa B
Klasa A
Stanowisko
rola A
zarobek
pracownik
*
0..1
szef
może być, określa istotę powiązania, może zawierać kierunek odczytu
klasa w powiązaniu odgrywa określoną rolę, w różnych powiązaniach może być różna rola
kieruje
wskazanie kierunku komunikowania się pomiędzy klasami.
określa ile obiektów danej klasy musi być połączonych z obiektem klasy znajdującej się na końcu
przeciwnym. Liczebność: dokładnie jeden (1), zero lub jeden (0..1), dowolnie wiele (0..*), co najmniej
jeden (1..*) lub dowolna ustalona liczba ((3) lub (3..4, 6..*))
(A ilośćB -min i max ilość obiektów widziana przez A obiektów B
agregacja: opisuje związek całość-część pomiędzy klasami
Firma
Dzial
 Agregacja częściowa: szczególny przypadek powiązania,
1..1
1..*
Obiekt – całość – agregat ma obiekt –część - segment.
Usunięcie obiektu bedącego agregatem nie powoduje likwidacji obiektów będących jego częściami. Obiekty
współdzielone mogą, zatem funkcjonować samodzielnie, niezależnie od agregatu.
 Agregacja całkowita - kompozycja (romb wypełniony): obiekt będący częścią żyje wraz z całością. Usuniecie
agregatu powoduje automatyczną likwidację wszystkich segmentów będących jego częściami.
Klasa asocjacyjna – umożliwia bardziej precyzyjny opis związku między klasami. Służy do przedstawiania asocjacji w
postaci klas.
Asocjacje wielokrotne – powiązane klasy mogą pełnić względem siebie kilka odmiennych ról. Tym samym klasy te mogą
być połączone kilkoma asocjacjami .
Asocjacje zwrotne – istnieje możliwość przedstawiania asocjacji wiążącej daną klasę z samą sobą.
Kwalifikacja – umożliwia wyszukiwanie obiektów związanych z daną asocjacją. Kwalifikacja dokonuje się za pomocą
kwalifikatora – atrybutu lub listy atrybutów, których wartości porządkują zbiór obietów występujących w asocjacji.
2. Uogólnienie GENERALIZACJA (jest rodzajem)
nazwa:
role:
nawigacja
liczebność:
1

Fi gura
pol ozeni a
przenies( )
zm ienWi elkosc( )
wyswi etl ( )
Prostokat
wi erzchole
k
Związek miedzy elem. ogólnym (nadklasą, przodkiem,
Typ Podstawowy
klasa bazowa) a specyficznym jego rodzajem (podklasa,
potomek, klasa pochodna)
Potomek dziedziczy atrybuty i operacje przodka
Operacje potomne mogą mieć tę samą sygnaturę
PodTyp1
PodTyp2
co operacja przodka i są ważniejsze tzn mają
pierwszeństwo wykonania (tzw. Polimorfizm)
Klasy istniejące na diagramie hierarchii dzielą się na klasy abstrakcyjne (kusywą) – nie
mają konkretnych instancji obiektów, tylko atrybuty i operacje podlegające
dziedziczeniu. Klasy konkretne (czcionka normalna) – posiadające instancje obiektów.
Klasy konkretne – klasy na najniższym poziomie hierarchii - {leaf}. Klasa na
najwyższym poziomie hierarchii - {root}.
Dyskryminator (ang. generalization set) – okresla kryterium dokonywania klasyfikacji
w uogólnieniu.
Podstawowe ograniczenia dotyczące związków uogólnienia: {complete}- zawiera pełen
zestaw podklas w danej klasie, {incomlete}- zestaw podklas nie jest pełny, {disjoint}każda podklasa w hierarchii jest rozdzielne, {overlapping} – w hierarchii klas określone
klasy mogą mieć wspólne podklasy.



Okrag
promi en


3. Zależność (od której klasy):
związek użycia, podkreśla się, że 1 klasa używa 2-giej klasy jako argumentu w sygnaturze operacji. Czasami przydatny
stereotyp
RozkładZajęć
Klasa A
Klasa B
Przedmiot
dodaj(p:Przedmiot)
usuń(p:Przedmiot)
4. Realizacja
Realizacja wskazuje na związek pomiędzy interfejsem, a klasą. Identyfikuje interfejsy, które zapewniają realizację usługi
klasy.
Interfejs – to zestaw operacji, które wyznaczają usługi oferowane przez klasę lub komponent. Interfejsw UML klasa, która
ma wyłącznie operacje publiczne (tzn. ogólnie dostępne) bez ciał metod i atrybutów
*DIAGRAMY OBIEKTÓW
obraz obiektów w systemie w danej chwili,
użyty w celu pokazania przykładowej konfiguracji obiektów
przydatny, gdy powiązania między obiektami są skomplikowane
można traktowac jako diagram współdziałania, bez komunikatów
Nazwa obiektu: Nazwa Klasy
UWAGI do diagramów klas:
1. Nie należy stosować całej dostępnej notacji (zacząć od Klas, asocjacji, atrybutów, uogólnień, ograniczeń, bez *)
2. Dostosować diagram do etapu (np. analiza –model pojęciowy, projekt –model specyfikacyjny, itp.)
3. unikać szczegółów zwłaszcza implementacyjnych
Przykład:
1. Zamówienie – diagram konceptualny:
Zamówienie
1..1
Klient
1..1
*
KlientFirmowy
pozycje
KlientIndywidualny
wnioski:
 asocjacja:
Zamówienie musi przyjśc od 1 Klienta, Klient może złożyć wiele
Zamówień. Każde Zamówienie zawiera kilka Pozycji zamówienia,
z których każda odnosi się do 1 Towaru
 uogólnienie:
Klient Firmowy jest typem pochodnym Klienta. Klient Firmowy
jest specyficznym typem Klienta
*
PozycjaZamowienia
Towar
*
1..1
PODSUMOWANIE:
Modelowanie struktury:
Diagramy klas
Cel:
określenie obiektów przechowywanych w systemie, ich stanu i zachowania, określenie klasy obiektów,
zależności miedzy klasami
Hasła:
obiekt, klasa, dane, metody, dziedziczenie(generalizacja/specjalizacja), asocjacja (liczność, rola, atrybut,
kierunek nawigacji, ograniczenia, kwalifikator), agregacja (kompozycja)
Wynik:
klasa i jej składowe, diagram klas z zależnościami :dziedziczenie, asocjacja, agregacja
2