UML

45
UML Unified Modeling Language Wykład 3 Diagram klas

description

UML. Unified Modeling Language Wykład 3 Diagram klas. Diagram klas. Diagram klas to graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny przedmiotowej oraz związków miedzy nimi. Klasa. - PowerPoint PPT Presentation

Transcript of UML

Page 1: UML

UML

Unified Modeling Language

Wykład 3Diagram klas

Page 2: UML

WSM dr Marek Szepski 2

Diagram klas

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

Page 3: UML

WSM dr Marek Szepski 3

Page 4: UML

WSM dr Marek Szepski 4

Klasa

Klasa jest uogólnieniem zbioru obiektów, które mają takie same atrybuty, operacje, związki i znaczenie.

Page 5: UML

WSM dr Marek Szepski 5

Klasy

A-nazwa

B-nazwa+atrybuty

C-nazwa+operacje

D-n+a+o

Page 6: UML

WSM dr Marek Szepski 6

Klasy

Page 7: UML

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.

Page 8: UML

WSM dr Marek Szepski 8

Asocjacje

Związek klas:NazwaRoleNawigacjaLiczebnośćAgregacja

Page 9: UML

WSM dr Marek Szepski 9

Nazwa

Role

Nawigacja

Page 10: UML

WSM dr Marek Szepski 10

Page 11: UML

WSM dr Marek Szepski 11

Liczeb-ność

Page 12: UML

WSM dr Marek Szepski 12

Agregacja

Związek: całość - część

a) całkowita b) częściowa

Page 13: UML

WSM dr Marek Szepski 13

Agregat – obiekt stanowiący całość

Segment – część

W A. Całkowitej części nie mogą istnieć bez agregatu

Page 14: UML

WSM dr Marek Szepski 14

Page 15: UML

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

Page 16: UML

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

Page 17: UML

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.

Page 18: UML

WSM dr Marek Szepski 18

Atrybuty

Page 19: UML

WSM dr Marek Szepski 19

Składnia atrybutuwidoczność 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

Page 20: UML

WSM dr Marek Szepski 20

Oper-acje

Page 21: UML

WSM dr Marek Szepski 21

Składnia operacjiwidoczność 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ę.

Page 22: UML

WSM dr Marek Szepski 22

Operacje są publiczneSzczególnymi operacjami są

konstruktor i destruktor

Page 23: UML

WSM dr Marek Szepski 23

Zobowiązania

Page 24: UML

WSM dr Marek Szepski 24

Nazwy:

Poziom implementacyjnyNazwaKlasyJakoRzeczownikwLPojnazwaAtrybutunazwaCzynnosciCzasownik

Na poziomie koncepcyjnym – nazwy naturalne: liczba sztuk.....

Page 25: UML

WSM dr Marek Szepski 25

Klasa asocjacyjnaOpisuje związek między klasami.Związek może być złożony mieć

atrybuty i operacjenp..

Pracownik – pracodawca: umowa o pracę

Osoba – projekt: harmonogram

Page 26: UML

WSM dr Marek Szepski 26

Klasa asocjacyjna

Page 27: UML

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).

Page 28: UML

WSM dr Marek Szepski 28

Dziedziczenie

Page 29: UML

WSM dr Marek Szepski 29

Page 30: UML

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.

Page 31: UML

WSM dr Marek Szepski 31

Page 32: UML

WSM dr Marek Szepski 32

Page 33: UML

WSM dr Marek Szepski 33

Page 34: UML

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.

Page 35: UML

WSM dr Marek Szepski 35

Przykłady diagramów klas

Page 36: UML

WSM dr Marek Szepski 36

Page 37: UML

WSM dr Marek Szepski 37

Page 38: UML

WSM dr Marek Szepski 38

Page 39: UML

WSM dr Marek Szepski 39

Page 40: UML

WSM dr Marek Szepski 40

Page 41: UML

WSM dr Marek Szepski 41

Page 42: UML

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

Page 43: UML

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łówne3. Dodaj tabele łączące, które

zlikwidują związki wiele do wielu4. Określ klucze obce i związki5. Przeprowadź normalizację tabel

Page 44: UML

WSM dr Marek Szepski 44

Tworzenie diagramu klasAnaliza obiektowaKarty CRC (class-responsibility-

collaboration)Arkusz analizy obiektowej

RebeccaWirfs-Brock, Allan McKean:Projektowanie obiektowe, Helion

Edward Yourdon, Carl Argila: Analiza obiektowa i projektowanie, WNT

Page 45: UML

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