uml cz. ii - icis.pcz.pldyja/pliki/io/wyklad04.pdf · hermetyzacja i w podejściu obiektowym obiekt...
TRANSCRIPT
Klasy
Najważniejsze informacje o klasie:I różnica pomiędzy klasą a jej instancją (obiektem)
I na podstawie klasy tworzone są obiekty (instancje klasy)I stan obiektu klasy
I obiekt klasy przechowuje swój stan w postaci atrybutów(danych)
I zachowanie klasyI zachowanie klasy opisuje jakie operacje klasa może wykonać
(jakie można wysłać jej komunikaty)I klasa powinna zawierać tylko niezbędne informacje
(abstrakcja)
UML – cz. II 2/38
Hermetyzacja
I w podejściu obiektowym obiekt powinien zawierać dane iinstrukcje
I hermetyzacja umożliwia ukrycie szczegółów implementacjiklasy
I hermetyzacja ułatwia zmianę sposobu wewnętrznego działaniaklasy
UML – cz. II 3/38
Sposoby przedstawienia klasy
Rysunek: Reprezentacja klasy od najbardziej szczegółowej do najprostszej
UML – cz. II 4/38
Składowe statyczne
Rysunek: Składowa statyczna klasy zaznaczona przez podkreślenie
UML – cz. II 9/38
Związki pomiędzy klasami
Związki między klasami od najsłabszego do najsilniejszego
I zależność – w sytuacji, gdy obiekty jednej klasy działają,wykorzystując przelotnie obiekty innej
I asocjacja – w sytuacji, gdy obiekty jednej klasy działają,wykorzystując obiekty innej klasy przez pewien dłuższy czas
I agregacja częściowa (agregacja) – w sytuacji, gdy jedna klasazawiera, ale jednocześnie współdzieli odwołanie do obiektówinnej
I agregacja całościowa (kompozycja) – w sytuacji, gdy jednaklasa zawiera obiekty innej
I dziedziczenie – w sytuacji, gdy jedna klasa jest rodzajem innej
UML – cz. II 10/38
Asocjacja
Przykład:
c l a s s A {p r i v a t e :B∗ b ;
} ;c l a s s B {
p r i v a t e :A∗ a ;
} ;
UML – cz. II 12/38
Agregacja
Rysunek: Związek agregacji
Przykład:
c l a s s A {p r i v a t e :s t d : : v e c to r<B∗> b ;
} ;c l a s s B {} ;
UML – cz. II 13/38
Kompozycja
Rysunek: Związek kompozycji
Przykład:
c l a s s A {p u b l i c :v i r t u a l ˜A( ) { de le te b ;}p r i v a t e :B∗ b ;
} ;c l a s s B {} ;
UML – cz. II 14/38
OCL
Przykładowe wyrażenia OCL
I baseCost >= 0.0I totalCost = baseCost ∗ (1 + getTaxRate())I status <> ′Unpaid′
Typy OCL
I logicznyI całkowitoliczbowyI zmiennoprzecinkowyI łańcuchowy
UML – cz. II 20/38
OCL
Operatory OCL
I arytmetyczne ∗, /,+, −I dodatkowe arytmetyczne max(), min(), avg(), abs()I porównania <=, <, >=, >
I równości =, <>
I logiczne and , or , xor , notI operacje na łańcuchach concat(), size(), substring()
UML – cz. II 21/38
Diagram obiektów
Cechy:
I należy do widoku logicznegoI przedstawia instancje obiektów
UML – cz. II 22/38
Instancja obiektu
Rysunek: Instancje obiektu i połączenie między nimi
I połączenie może wystąpić tylko w wypadku, gdy na diagramieklas występowała asocjacja lub agregacja
I można pominąć nazwę obiektu
UML – cz. II 23/38
Diagram obiektów
Rysunek: Instancje obiektu i połączenie między nimi
I połączenie może wystąpić tylko w wypadku, gdy na diagramieklas występowała asocjacja lub agregacja
I można pominąć nazwę obiektu
UML – cz. II 24/38
Diagram struktury wewnętrznej
Rysunek: Diagram klas
Rysunek: Diagram struktury złożonej
UML – cz. II 25/38
Konektory
Rysunek: Przykład użycia konektora
I konektor to łącze umożliwiające komunikację pomiędzyczęściami przedstawianej struktury
I liczebności konektorów są takie same jak na diagramach klas
UML – cz. II 26/38
Porty
Rysunek: Klasa z portami sygnalizującymi udostępnianie przez nią dwóchusług
I port to miejsce interakcji między otoczeniem a klasąI porty używane są do grupowania podobnych interfejsów
UML – cz. II 28/38
Diagram komponentów
Komponent
I komponent to hermetyzowana, możliwa do powtórnego użyciaczęść oprogramowania
I komponent podlega tym samym związkom, co klasaI diagram komponentów ułatwia modelowanie architektury
systemu
UML – cz. II 29/38
Diagram komponentów
I komponent wymaga interfejsu do swojego działaniaI komponent udostępnia interfejs innym komponentomI porty używane są do grupowania podobnych interfejsów
UML – cz. II 30/38
Zawartość pakietów
Rysunek: Przedstawienie zawartości pakietów
Rysunek: Odwoływanie się do zawartości pakietów
UML – cz. II 33/38
Przedstawianie zależności między pakietami
Rysunek: Strzałki wskazują na występowanie zależności międzypakietami
UML – cz. II 34/38
Rodzaje zależności między pakietami
Rysunek: Pakiet A ma dostęp do publicznych elementów pakietu C. Niema dostępu elementów do pakietu D
UML – cz. II 35/38
Szczegóły zależności między pakietami
Rysunek: Pakiet users importuje pakiet security
Rysunek: Pakiet users importuje klasę z pakietu security
UML – cz. II 36/38
Pakiety a przypadki użycia
Rysunek: Pakiety mogą grupować podobne przypadki użycia
UML – cz. II 37/38