uml cz. ii - icis.pcz.pldyja/pliki/io/wyklad04.pdf · hermetyzacja i w podejściu obiektowym obiekt...

38
UML – cz. II UML – cz. II 1/38

Upload: ngoxuyen

Post on 09-Feb-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

UML – cz. II

UML – cz. II 1/38

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

Widoczność

Rysunek: Poziomy dostępu zdefiniowane w UML

UML – cz. II 5/38

Atrybuty

Rysunek: Przedstawienie atrybutów w UML

UML – cz. II 6/38

Liczebności

Rysunek: Rodzaje liczebności

UML – cz. II 7/38

Operacje

Rysunek: Operacje klasy

UML – cz. II 8/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

Związek zależności

Rysunek: Związek zależności

UML – cz. II 11/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

Uogólnienie

Rysunek: Związek uogólnienia (dziedziczenia)

UML – cz. II 15/38

Klasa abstrakcyjna

Rysunek: Klasa abstrakcyjna

UML – cz. II 16/38

Realizacja interfejsu

Rysunek: Realizacja interfejsu

UML – cz. II 17/38

Szablon klasy

Rysunek: Przykład szablonu klasy

UML – cz. II 18/38

Ograniczenia

Rodzaje ograniczeń

I niezmiennikiI warunki wstępneI warunki końcowe

UML – cz. II 19/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

Właściwości

Rysunek: Diagram klas

Rysunek: Diagram struktury złożonej

UML – cz. II 27/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

Diagram komponentów

UML – cz. II 31/38

Pakiety

Rysunek: Reprezentacja czterech pakietów (A, B, C, D) w systemie

UML – cz. II 32/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

W wykładzie wykorzystano materiały

I Miles R., Hamilton K.: UML 2.0. Wprowadzenie, Helion,Gliwice 2007,

I UML 2.1 Tutorial,http://www.sparxsystems.com.au/resources/uml2 tutorial/

UML – cz. II 38/38