UML
Unified Modeling Language
Wykład
3
Diagram klas
WSM dr Marek Szepski
2
Diagram klas
Diagram klas to graficzne
przedstawienie statycznych,
deklaratywnych elementów
dziedziny przedmiotowej oraz
związków miedzy nimi.
WSM dr Marek Szepski
3
WSM dr Marek Szepski
4
Klasa
Klasa jest uogólnieniem zbioru
obiektów, które mają takie same
atrybuty, operacje, związki i
znaczenie.
WSM dr Marek Szepski
5
Klasy
A-nazwa
B-nazwa
+atrybuty
C-nazwa+
operacje
D-n+a+o
WSM dr Marek Szepski
6
Klasy
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.
WSM dr Marek Szepski
8
Asocjacje
Związek klas:
Nazwa
Role
Nawigacja
Liczebność
Agregacja
WSM dr Marek Szepski
9
Nazwa
Role
Nawigacja
WSM dr Marek Szepski
10
WSM dr Marek Szepski
11
Liczeb-
ność
WSM dr Marek Szepski
12
Agregacja
Związek: całość - część
a) całkowita b) częściowa
WSM dr Marek Szepski
13
Agregat – obiekt stanowiący całość
Segment – część
W A. Całkowitej części nie mogą
istnieć bez agregatu
WSM dr Marek Szepski
14
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
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
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.
WSM dr Marek Szepski
18
Atrybuty
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
WSM dr Marek Szepski
20
Oper-
acje
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ę.
WSM dr Marek Szepski
22
Operacje są publiczne
Szczególnymi operacjami są
konstruktor i destruktor
WSM dr Marek Szepski
23
Zobowiązania
WSM dr Marek Szepski
24
Nazwy:
Poziom implementacyjny
NazwaKlasyJakoRzeczownikwLPoj
nazwaAtrybutu
nazwaCzynnosciCzasownik
Na poziomie koncepcyjnym – nazwy
naturalne: liczba sztuk.....
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
WSM dr Marek Szepski
26
Klasa asocjacyjna
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).
WSM dr Marek Szepski
28
Dziedziczenie
WSM dr Marek Szepski
29
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.
WSM dr Marek Szepski
31
WSM dr Marek Szepski
32
WSM dr Marek Szepski
33
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
.
WSM dr Marek Szepski
35
Przykłady diagramów klas
WSM dr Marek Szepski
36
WSM dr Marek Szepski
37
WSM dr Marek Szepski
38
WSM dr Marek Szepski
39
WSM dr Marek Szepski
40
WSM dr Marek Szepski
41
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
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
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
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