Inżynieria Oprogramowania, WFiIS, IS, rok II, 2014/2015

Laboratorium 6 DIAGRAM KLAS (Class Diagram) Opisuje strukturę programu (a także zależności między nimi), co znajduje odzwierciedlenie w kodzie. Charakteryzuje zależności pomiędzy składnikami systemu:  klasami,  interfejsami,  pakietami Pokazuje typy obiektów (klasy), nie zaś jedynie ich instancje i chwilowe zależności (diagram obiektów)

Wewnątrz każdej klasy zdefiniowane są jej atrybuty (zmienne) i operacje (metody):  Wszystkie elementy klasy mogą mieć zdefiniowaną dostępność spośród poniższych: o prywatne [private] (-) o chronione [protected] (#) o pakietowe [package] (~) o publiczne [public] (+ )  Statyczny charakter elementu klasy (static lub scope) oznacza się przez podkreślenie jego nazwy.  Typ atrybutu lub wyniku operacji definiuje się po znaku " : ".  Parametry operacji definiuje się w nawiasach, po znaku " = " można podać ich wartości domyślne.  Operację abstrakcyjną oznacza się kursywą. Interfejs może zawierać identyczne elementy jak klasa. Nawias odróżnia go na diagramie od klasy.

Inżynieria Oprogramowania, WFiIS, IS, rok II, 2014/2015

Klasy i interfejsy mogą wchodzić w skład pakietów.

Klasy i interfejsy mogą dziedziczyć po sobie (znane już uogólnienie)

Związki między klasami

ZALEŻNOŚĆ Oznacza, ich powiązanie (zmiana jednej powoduje zmianę działania drugiej). Najsłabszy związek znaczeniowy między klasami, gdy jedna z nich używa innych klas Stosuje się 4 rodzaje zależności: o - aby zaimplementować klasę zależną, wymagana jest inna klasa, o - operacje klasy zależnej wywołują operacje innej klasy , o - klasa zależna tworzy instancje innej klasy, o - obiekt klasy zależnej jest instancją innej klasy.

Inżynieria Oprogramowania, WFiIS, IS, rok II, 2014/2015

ASOCJACJA Asocjacja określa trwałe powiązanie między obiektami dwóch klas przez pewien okres ich życia (żaden z obiektów nie jest właścicielem: nie tworzy, nie niszczy, nie zarządza, obiekty są tworzone i niszczone niezależnie od siebie. Asocjacje mogą być jednokierunkowe lub dwukierunkowe. Wskazują one, który z obiektów "wie" o powiązaniu. Obiekty danej klasy mogą być powiązane z innymi obiektami tej samej klasy, wtedy linia asocjacji tworzy pętlę zaczynającą się i kończącą w tej samej klasie.

Klasa asocjacyjna - opisuje dodatkowe parametry danej asocjacji.

AGREGACJA

Inżynieria Oprogramowania, WFiIS, IS, rok II, 2014/2015

Agregacja częściowa - dany obiekt jest właścicielem obiektów innej klasy (ale nie wyłącznym). Istnieją klasy asocjacyjne.

Agregacja całkowita (kompozycja, złożenie) - dany obiekt jest wyłącznym właścicielem obiektów innej klasy. Obiekty klasy podrzędnej nie mogą istnieć bez obiektu klasy właściciela. Istnieją klasy asocjacyjne. W relacji kompozycji, części należą tylko do jednej całości, a ich okres życia jest wspólny — razem z całością niszczone są również części. Na diagramie, kompozycję oznacza się za pomocą linii zakończonej wypełnionym rombem.

Zależności posiadają krotności. Określają one ilość jednoczesnych powiązań pomiędzy obiektami różnych klas. Krotność=1 jest pomijana. Zapis krotności:  3 - konkretna liczba krotności  0..1 - 0 lub 1 obiektów  0..* - dowolna liczba obiektów  5..* - nie mniej niż zadana liczba obiektów  7..12 - zdefiniowany przedział liczbowy DZIEDZICZENIE Związek opisujący dziedziczenie po klasach. Na diagramie generalizację oznacza się za pomocą niewypełnionego trójkąta symbolizującego strzałkę (skierowaną od klasy pochodnej do klasy bazowej).

Inżynieria Oprogramowania, WFiIS, IS, rok II, 2014/2015

PRZYKŁAD Należy zaprojektować diagram klas systemu wspomagającego w Szkole Nauki Jazdy "Easy Rider" rozliczanie kursantów z odbytych kursów. Nauka jazdy dzieli się na część praktyczną i teoretyczną. Część teoretyczną może odbywać od 4 do 10 kursantów na raz, zaś część praktyczna jest indywidualna. Część teoretyczna posiada instruktora. Całą część praktyczną kursant odbywa pod okiem tego samego instruktora w tym samym samochodzie. Każdym samochodem opiekuje się 2 instruktorów. Za każdą część kursu kursant otrzymuje ocenę cząstkową, które razem dają jego ocenę całkowitą. W projekcie diagramu klas należy uwzględnić tylko atrybuty, pominąć operacje. Diagram