background image

UML

Unified Modeling Language

Wykład 

3

Diagram klas

background image

 

WSM dr Marek Szepski

2

Diagram klas

Diagram klas to graficzne 

przedstawienie statycznych, 
deklaratywnych elementów 
dziedziny przedmiotowej oraz 
związków miedzy nimi.

background image

 

WSM dr Marek Szepski

3

background image

 

WSM dr Marek Szepski

4

Klasa

Klasa jest uogólnieniem zbioru 

obiektów, które mają takie same 
atrybuty, operacje, związki i 
znaczenie.

background image

 

WSM dr Marek Szepski

5

Klasy

A-nazwa
B-nazwa

+atrybuty

C-nazwa+

operacje

D-n+a+o 

background image

 

WSM dr Marek Szepski

6

Klasy

 

background image

 

WSM dr Marek Szepski

7

Klasa 

Klasa jest pojęciem ogólnym i składa się z 

pewnej liczny obiektów.

Przykładami klas są: projekty, zespoły, produkty 

pracy, wymagania, systemy.

Klasa definiuje typ obiektu i jego właściwości, 

w tym cechy strukturalne oraz behawioralne.

Cechy strukturalne definiują, co obiekty z danej

klasy „wiedzą” (

atrybuty

 i asocjacje).

Cechy behawioralne określają co obiekty mogą 

robić (

operacje

 i 

metody

).

Klasy mogą być aktywne.

Klasy zawierające zero obiektów nazywamy 

klasami abstrakcyjnymi.

Graficznie klasy są reprezentowane jak na 

schemacie.

background image

 

WSM dr Marek Szepski

8

Asocjacje 

Związek klas:

Nazwa

Role

Nawigacja

Liczebność

Agregacja 

background image

 

WSM dr Marek Szepski

9

Nazwa

Role

Nawigacja 

background image

 

WSM dr Marek Szepski

10

background image

 

WSM dr Marek Szepski

11

Liczeb-
ność 

background image

 

WSM dr Marek Szepski

12

Agregacja 

Związek: całość - część
a) całkowita b) częściowa 

background image

 

WSM dr Marek Szepski

13

Agregat – obiekt stanowiący całość
Segment – część
W A. Całkowitej części nie mogą 

istnieć bez agregatu

background image

 

WSM dr Marek Szepski

14

background image

 

WSM dr Marek Szepski

15

Diagram klas:

Konceptualny (analityczny, poziom 

koncepcyjny)

Implementacyjny – zawiera 

szczegóły atrybutów, operacji, 

zobowiązań

Do diagramu implementacyjnego 

dochodzi się w kolejnych krokach 

dodając szczegóły

background image

 

WSM dr Marek Szepski

16

Widoczność 

Określa dostępność atrybutów i operacji
+, publiczny, obiekty wszystkich klas 

maja dostęp

-, prywatny, tylko obiekty danej klasy 

mają dostęp do atrybutów i operacji

#, chroniony, dostęp maja obiekty z 

klas dziedziczących

background image

 

WSM dr Marek Szepski

17

Jeśli nie ma istotnego powodu do 
atrybuty powinny być prywatne.

Wartości atrybutów są wtedy 
zmieniane przez operacje, które są 
publiczne.

Aby klasa potomna miała dostęp 
do atrybutów klasy nadrzędnej 
musza one być chronione.

background image

 

WSM dr Marek Szepski

18

Atrybuty

 

background image

 

WSM dr Marek Szepski

19

Składnia atrybutu

widoczność nazwa_atrybutu 

[liczebność uporządkowanie] : typ [= 

wartość początkowa]

widoczność (+ publiczna, - prywatna, # chroniona)

nazwa_atrybutu nazwa opisywanego atrybutu

liczebność (domyślna = 1; granica_dolna 

granica_górna)

uporządkowanie (unordered, ordered)

typ (może być każda klasa; Boolean; Integer; Real; 

String)

wartość początkowa jest opcjonalna i oznacza 

wartość początkową atrybutu

background image

 

WSM dr Marek Szepski

20

Oper-
acje

 

background image

 

WSM dr Marek Szepski

21

Składnia operacji

widoczność nazwa_operacji (lista_ 

parametrów) : typ_zwracany

widoczność (+ publiczna, - prywatna, # chroniona)

nazwa_operacji (nazwa opisywanej operacji)

lista_parametrów według składni: 

rodzaj nazwa : typ = wartość_początkowa

rodzaj jest opcjonalny, ma wartość domyślną in. Rodzaj może 

przyjmować wartości in, out, inout

typ – jest opcjonalny, nie ma wartości domyślnej – wskazuje typ 

danych które może zawierać parametr. Typem parametru może 

być inna klasa lub Boolean, Integer, Real, String

wartość_początkowa – jest opcjonalna i oznacza wartość 

początkową parametru

typ_zwracany jest opcjonalny, nie ma wartości 

domyślnej – wskazuje typ danych zwracanych przez 

operację.

background image

 

WSM dr Marek Szepski

22

Operacje są publiczne

Szczególnymi operacjami są 
konstruktor i destruktor

background image

 

WSM dr Marek Szepski

23

Zobowiązania 

 

background image

 

WSM dr Marek Szepski

24

Nazwy:

Poziom implementacyjny

NazwaKlasyJakoRzeczownikwLPoj

nazwaAtrybutu

nazwaCzynnosciCzasownik

Na poziomie koncepcyjnym – nazwy 

naturalne: liczba sztuk.....

background image

 

WSM dr Marek Szepski

25

Klasa asocjacyjna

Opisuje związek między klasami.

Związek może być złożony mieć 
atrybuty i operacje
np..

Pracownik – pracodawca: umowa o 

pracę

Osoba – projekt: harmonogram

background image

 

WSM dr Marek Szepski

26

Klasa asocjacyjna

 

background image

 

WSM dr Marek Szepski

27

Klasa abstrakcyjna

Klasa która nie posiada obiektów 

nazywana jest 

klasą abstrakcyjną

.

Przykładem klasy abstrakcyjnej 

jest Interfejs (Interface).

background image

 

WSM dr Marek Szepski

28

Dziedziczenie 

 

background image

 

WSM dr Marek Szepski

29

 

background image

 

WSM dr Marek Szepski

30

Dziedziczenie 

Uogólnienie 

(generalization) to związek 

pomiędzy dwoma bytami:

Ogólnym (przodek)

Szczegółowym (potomek)

Obiekt bytu szczegółowego może być 

używany w zastępstwie bytu ogólnego.

Jeżeli bytami są klasy to byt ogólny 

nazywamy nadklasą czyli przodkiem a byt 

szczegółowy klasą czyli potomkiem.

Potomek dziedziczy wszystkie 

właściwości przodka, a w szczególności 

jego atrybuty i operacje. 

background image

 

WSM dr Marek Szepski

31

 

background image

 

WSM dr Marek Szepski

32

background image

 

WSM dr Marek Szepski

33

background image

 

WSM dr Marek Szepski

34

Polimorfizm 

Operacja potomka mająca tą samą 
sygnaturę co operacja przodka jest 
ważniejsza (ma pierwszeństwo) od 
operacji zdefiniowanej dla 
przodka.

Zjawisko to nazywane jest 

polimorfizmem

.

background image

 

WSM dr Marek Szepski

35

Przykłady diagramów klas

background image

 

WSM dr Marek Szepski

36

background image

 

WSM dr Marek Szepski

37

background image

 

WSM dr Marek Szepski

38

background image

 

WSM dr Marek Szepski

39

background image

 

WSM dr Marek Szepski

40

background image

 

WSM dr Marek Szepski

41

background image

 

WSM dr Marek Szepski

42

Tabela   <->    Klasa 

Pasywna

Jest wzorcem oraz 
zbiorem obiektów

Trwała

Musi zawierać 
atrybuty

Atrybuty 
elementarne

Musi posiadać 
unikalny 
identyfikator- klucz

Aktywna

Jest tylko wzorcem 
obiektów

Trwała lub ulotna

Są klasy nie 
posiadające atrybutów

Atrybuty elementarne 
lub złażone

Obiekty danej klasy są 
zawsze rozróżnialne 
niezależnie od 
wartości atrybutów

background image

 

WSM dr Marek Szepski

43

Diagram klas -> ERD

łatwe przekształcenie:

1.

Zastąp złożone atrybuty 
dodatkowymi tabelami i pomiń 
operacje

2.

Dodaj klucze główne

3.

Dodaj tabele łączące, które 
zlikwidują związki wiele do wielu

4.

Określ klucze obce i związki

5.

Przeprowadź normalizację tabel

background image

 

WSM dr Marek Szepski

44

Tworzenie diagramu klas

Analiza obiektowa

Karty CRC (class-responsibility-

collaboration)

Arkusz analizy obiektowej

RebeccaWirfs-Brock, Allan 

McKean:

Projektowanie obiektowe

Helion

Edward Yourdon, Carl Argila

Analiza 

obiektowa i projektowanie,

 WNT

background image

 

WSM dr Marek Szepski

45

Wzorce projektowe

Korzystaj z gotowych rozwiązań

Gamma, Helm, Johnson, Vlissides

Wzorce projektowe

WNT- IO

Shalloway, Trott

Projektowanie 

zorientowane obiektowo, wzorce 
projektowe.

 Helion


Document Outline