Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com
O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne, singletony, asocjacyjne Ograniczenia Kompozycja a agregacja
Wprowadzenie Diagramy klas UML służą do przedstawienia klas, interfejsów i powiązań pomiędzy nimi, czyli do statycznego modelowania obiektowego. Wykorzystywane są do modelowania dziedziny w perspektywie konceptualnej oraz modelowania systemu w perspektywie programistycznej. Osoba zapisany_na 1..* Student Pracownik Kurs 1 zawiera Wykład 1..* 1..* * 1 Profesor prowadzi
Notacja diagramów klas UML
Diagramy klas w różnych perspektywach
Sposoby prezentacji atrybutów UML Atrybuty klasyfikatora można prezentować na trzy sposoby:
Sposoby prezentacji atrybutów UML Pełen format tekstowego opisu atrybutu to: widoczność nazwa : typ krotność = wartość-domyślna {właściwości} Jeśli nie określono widoczności atrybutu to znaczy, że jest on prywatny Jeśli atrybut jest przedstawiony za pomocą asocjacji to wtedy: strzałka nawigacji jest skierowana od źródła (Register) do celu (Sale), co oznacza, że obiekt Register ma atrybut typu Sale krotność jest określona po stronie celu nazwa roli (currentsale) pojawia się tylko po stronie celu i odpowiada nazwie atrybutu asocjacja nie ma nazwy
Sposoby prezentacji atrybutów UML-krotności Krotność określa, ile instancji klasy A może być związanych asocjacją z klasą B.
Sposoby prezentacji atrybutów - właściwości Właściwość atrybutu określa dodatkowe cechy atrybutu. Właściwości: read only atrybut jest tylko do odczytu ordered elementy kolekcji są posortowane unique żaden z elementów zbioru nie powtarza się, jest unikalny list atrybut implementuje interfejs List Dwa sposoby przedstawienia atrybutu będącego kolekcją private List<SalesLineItem> lineitems = new ArrayList<SalesLineItem>();
Sposoby prezentacji atrybutów UML Do przedstawienia atrybutów reprezentujących proste typy danych używaj notacji tekstowej, a linii asocjacji do wszystkich innych. Semantycznie oba te sposoby są równoznaczne, jednak połączenie dwóch klas na diagramie linią asocjacji lepiej zwróci uwagę na związek pomiędzy obiektami. public class Register { private int id; private Sale currentsale; private Store location; }
Operacje Pełna składnia operacji to: widoczność nazwa (lista-parametrów) {właściwości} Jeśli nie określono widoczności operacji to znaczy, że jest ona publiczna Operacja to deklaracja, która ma nazwę, parametry, typ zwracany, listę wyjątków. Nie jest to jednak implementacja. UML pozwala stosować składnię dowolnego języka programowania, o ile jest ona zrozumiała dla czytelnika i używanego narzędzia. Możliwe są obie formy zapisu: + getplayer(name: String) : Player {exception IOException} public Player getplayer( String name ) throws IOException
Metody Metoda UML to implementacja operacji. Jeśli zdefiniowano ograniczenia to musi ona je spełniać. Metodę można przedstawić na kilka sposobów: na diagramie interakcji za pomocą kolejności komunikatów na diagramie klas stosując symbol notatki ze stereotypem <<method>> Operacje dostępowe często są pomijane
Generalizacja, klasy i operacje abstrakcyjne Generalizacja w UML przedstawiana jest za pomocą linii ciągłej zakończonej trójkątna strzałką, prowadzącej od podklasy do nadklasy. Jest ona interpretowana jako dziedziczenie. Klasy i operacje abstrakcyjne można przedstawić albo za pomocą znacznika {abstract} albo za pomocą kursywy. Klasy i metody finalne, z których nie wolno dziedziczyć i których nie wolno przesłaniać, na diagramie przedstawia się za pomocą znacznika {leaf}.
Zależności UML definiuje ogólna relację zależności, w której element nazywany klientem (dowolnego typu: klasa, pakiet, przypadek użycia) posiada wiedzę na temat innego elementu, nazywanego dostawcą. Rodzaje zależności: Posiadanie atrybutu mającego typ dostawcy, Wysyłanie komunikatów do dostawcy, który może być widoczny jako: atrybut, parametr, zmienna lokalna, zmienna globalna, element klasy statycznej Odbieranie parametru mającego typ dostawcy Dostawcą jest nadklasą lub interfejsem Na diagramach klas używaj linii zależności do opisu zależności pomiędzy obiektami, opartych o zmienne parametryczne, lokalne i globalne oraz wywołania metod statycznych (innej klasy).
Zależności public class Sale { public void updateprocefor (ProductDescription description){ Money baseprice = description.getprice(); // } } public void dofoo() { System.runFinalization(); // }
Klasa aktywna Obiekt aktywny działa w osobnym, kontrolowanym przez siebie wątku wykonania. Klasa obiektu aktywnego to klasa aktywna. W UML przedstawia się ją, stosując podwójne linie po bokach prostokąta klasy.
Klasy singletonowe Implikacją klasy singletonowej jest to, że może istnieć jedynie jeden obiekt tej klasy. Klasę singletonową oznacza się, umieszczając cyfrę 1 w prawym górnym rogu, obok nazwy klasy. 1
Ograniczenia Ograniczenie UML to pewien warunek, który musi spełniać element UML. Ograniczenie umieszcza się w nawiasie klamrowym. Treść może mieć dowolny format, może to być również język naturalny.
Kompozycja a agregacja Kompozycja jest rodzajem silnej agregacji całość część. Relacja kompozycji polega na tym, że Instancja reprezentująca część należy w danym momencie tylko do jednej instancji złożonej Instancja złożona jest odpowiedzialna za tworzenie i usuwanie swoich części
Dziękuję za uwagę!