Lab3 Diagram Klas

UML

Lab 3: Diagram klas

Diagram klas to graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny przedmiotowej oraz związków między nimi. W przypadku języków obiektowych przedstawia strukturę klas i relacje między nimi.

Elementy:
Klasa

Klasa w języku UML jest przedstawiona w postaci prostokąta podzielonego na trzy części.
W pierwszej części znajduje się nazwa klasy (jest to jedyne pole wymagane, pozostałe pomija się
w przypadku, gdy nie występują wewnątrz nich żadne elementy bądź, gdy ukrycie ich utrudnia zrozumienie diagramu), w drugiej atrybuty bądź informacje o nich, w trzeciej zaś udostępniane przez nią zachowania.

Widoczność elementów

Widoczność określa, kto ma dostęp do atrybutów bądź operacji klasy. Język UML udostępnia 4 poziomy widoczności:

Publiczny (+) – element jest dostępny dla każdej metody dowolnej klasy,

Chroniony (#) – element może być używany przez metody danej klasy i metody klas dziedziczących,

Pakietowy (~) – element będzie widoczny dla metod z klas w tym samym pakiecie,

Prywatny (-) – element jest widoczny tylko dla metod z tej samej klasy.

Typ atrybutu

Typ atrybutu występuje po jego nazwie, oddzielony od nie j dwukropkiem. Jeśli atrybut reprezentuje więcej niż jeden obiekt ich ilość zapisuje się w nawiasie kwadratowym, z czego:

[liczba] – oznacza, że parametr zawiera dokładnie podaną liczbę parametr ów,

[liczba1..liczba2] – oznacza, że parametr może zawierać od liczba1 do liczba2 obiektów,

[*] – oznacza, że parametr może zawierać dowolną liczbę obiektów.

Domyślna wartość początkowa

Domyślną wartość początkową piszemy po typie, od którego oddzielamy ją znakiem „=”.

Właściwości atrybutu

Właściwości atrybutu są dodatkowymi informacjami o jego cechach, piszemy je jako ostatnie między nawiasami klamrowymi. Przykładowe właściwości: unique, readOnly.

Uwaga: atrybuty można również określać poprzez asocjację, zostanie to omówione w dalszej części tekstu.

Parametry

Parametry są używane do określenia, jakie informacje są udostępniane operacji. Piszemy je w nawiasie po nazwie. W przypadku, gdy występuje ich kilka oddzielamy je przecinkami.

Typ zwracany

Typ zwracany przez parametr określamy po parametrach i oddzielamy od nich znakiem dwukropka. Jedynie konstruktor nie posiada typu zwracanego.

Operacje i atrybuty statyczne

W diagramie klas elementy statyczne określa się poprzez ich podkreślenie.

Klasy abstrakcyjne

Operacje (metody) abstrakcyjne (pozostawione do implementacji w klasach potomnych) oznaczamy kursywą.

Interfejsy

Interfejs jest zbiorem operacji nieposiadającym ich implementacji. Jest on stosowany w nowszych językach programowania w celu uniknięcia problemów wynikłych z braku dziedziczenia wielokrotnego.

Implementację interfejsu można oznaczyć w klasie na dwa sposoby w zależności od użytej formy graficznej:

Uwaga: wykorzystywanie interfejsów nie zostało omówione w tym laboratorium.

Związki miedzy klasami

Zależność

Zależność mówi o tym, że jedna (zależna) klasa wykorzystuje drugą lub wie o jej istnieniu. W praktyce oznacza to, że zmiana klasy drugiej może mieć wpływ na klasę zależną od niej (np. klasa Zwierzę posiada operację jedz, która przyjmuje za parametr Jedzenie). Na diagramie oznaczamy ją przerywaną linią z grotem.

Asocjacja

Asocjacja oznacza, że dana klasa posiada odwołania/obiekty innej klasy. W najprostszej formie oznacza się to linią prostą łączącą dwie klasy. Na brzegach linii mogą występować wartości liczbowe określające ilość obiektów danego typu (brak oznacza jeden) i ich nazwa (jej brak oznacza brak referencji). Powyższy przykład oznacza, że klasa Farmer posiada zbiór elementów Zwierzę o nazwie Zwierzęta a jednocześnie każde Zwierzę posiada referencję farmera o nazwie Właściciel. Dodatkowo może występować nazwa asocjacji wraz z jej kierunkiem (powyżej jest to „Posiada”).

Asocjacja może być kierunkowa o oznacza się strzałką na końcu linii. Krzyżyk oznacza brak referencji. Powyższy przykład oznacza, że Farmer posiada referencję do zwierząt, ale zwierzęta nie posiadają już informacji o swoim farmerze. Gdyby krzyżyk zastąpić strzałką i przepisać wartości lewej strony asocjacji z diagramu wyżej oznaczałoby to, że dane zwierzę ma referencję dokładnie do tego farmera, który je posiada.

Agregacja częściowa

Agregacja oznacza, że klasa agregująca (agregat) jest właścicielem obiektów klasy agregowanej (segmenty).

Agregacja częściowa oznacza, że klasa jest właścicielem obiektów klasy agregowanej, ale może je również współdzielić z innymi klasami/obiektami. Likwidacja obiektu klasy farmer nie oznacza likwidacji wszystkich zwierząt z nią powiązanych.

Agregacja całkowita

Agregacja częściowa oznacza, że segment jest „częścią” agregata i nie ma powiązań z innymi obiektami. Likwidacja obiektu klasy Rachunek spowoduje utratę wszystkich jego Pozycji.

Uogólnienie

Uogólnienie oznacza, że jedna klasa jest rozszerzoną wersją drugiej. W praktyce oznacza proces dziedziczenia.

Pakiety

Pakiety (przestrzenie nazw) przedstawiamy w formie zaprezentowanej powyżej. W przypadku, gdy uwzględniamy zawarte w nim elementy nazwę piszemy w mniejszym prostokącie w lewym górnym rogu, jeśli je pomijamy nazwę umieszczamy na środku, co zostało pokazane na rysunku poniżej.


Wyszukiwarka

Podobne podstrony:
8(45) Diagramy klas cz2
Serwis sprzetu domowego z diagramem klas
Diagram Klas
Diagram klas
Diagram Klas
Diagramy klas
7(45) Diagramy klas wprowadzenie
diagram klas 2
diagram klas 2
Diagram klas i obiektow ZIN 3 i Nieznany
Diagram klas UŚ
analiza systemow informatycznych, Egzamin z PSI, Egzamin składa się z 30 pytań i modelu UML do zapro
diagram klas do dziekanatu
Diagram klas
5 Diagram klas
Diagramy klas
Diagram klas projekt
DIAGRAM KLAS
5 Diagram klas

więcej podobnych podstron