UML Unified Modeling Language Wykad 3 Diagram klas

  • Slides: 45
Download presentation
UML Unified Modeling Language Wykład 3 Diagram klas WSM dr Marek Szepski

UML Unified Modeling Language Wykład 3 Diagram klas WSM dr Marek Szepski

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

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

WSM dr Marek Szepski 3

WSM dr Marek Szepski 3

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

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

Klasy A-nazwa B-nazwa +atrybuty C-nazwa+ operacje D-n+a+o WSM dr Marek Szepski 5

Klasy A-nazwa B-nazwa +atrybuty C-nazwa+ operacje D-n+a+o WSM dr Marek Szepski 5

Klasy WSM dr Marek Szepski 6

Klasy WSM dr Marek Szepski 6

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

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 7

Asocjacje Związek klas: ® Nazwa ® Role ® Nawigacja ® Liczebność ® Agregacja WSM

Asocjacje Związek klas: ® Nazwa ® Role ® Nawigacja ® Liczebność ® Agregacja WSM dr Marek Szepski 8

® Nazwa ® Role ® Nawigacja WSM dr Marek Szepski 9

® Nazwa ® Role ® Nawigacja WSM dr Marek Szepski 9

WSM dr Marek Szepski 10

WSM dr Marek Szepski 10

Liczebność WSM dr Marek Szepski 11

Liczebność WSM dr Marek Szepski 11

Agregacja Związek: całość - część a) całkowita b) częściowa WSM dr Marek Szepski 12

Agregacja Związek: całość - część a) całkowita b) częściowa WSM dr Marek Szepski 12

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

Agregat – obiekt stanowiący całość Segment – część W A. Całkowitej części nie mogą istnieć bez agregatu WSM dr Marek Szepski 13

WSM dr Marek Szepski 14

WSM dr Marek Szepski 14

Diagram klas: ® Konceptualny (analityczny, poziom koncepcyjny) ® Implementacyjny – zawiera szczegóły atrybutów, operacji,

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 15

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

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 16

® Jeśli nie ma istotnego powodu do atrybuty powinny być prywatne. ® Wartości atrybutów

® 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 17

Atrybuty WSM dr Marek Szepski 18

Atrybuty WSM dr Marek Szepski 18

Składnia atrybutu ® widoczność nazwa_atrybutu [liczebność uporządkowanie] : typ [= wartość początkowa] ® ®

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 19

Operacje WSM dr Marek Szepski 20

Operacje WSM dr Marek Szepski 20

Składnia operacji ® widoczność nazwa_operacji (lista_ parametrów) : typ_zwracany widoczność (+ publiczna, - prywatna,

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 21

® Operacje są publiczne ® Szczególnymi operacjami są konstruktor i destruktor WSM dr Marek

® Operacje są publiczne ® Szczególnymi operacjami są konstruktor i destruktor WSM dr Marek Szepski 22

Zobowiązania WSM dr Marek Szepski 23

Zobowiązania WSM dr Marek Szepski 23

Nazwy: Poziom implementacyjny ® Nazwa. Klasy. Jako. Rzeczownikw. LPoj ® nazwa. Atrybutu ® nazwa.

Nazwy: Poziom implementacyjny ® Nazwa. Klasy. Jako. Rzeczownikw. LPoj ® nazwa. Atrybutu ® nazwa. Czynnosci. Czasownik Na poziomie koncepcyjnym – nazwy naturalne: liczba sztuk. . . WSM dr Marek Szepski 24

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

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 25

Klasa asocjacyjna WSM dr Marek Szepski 26

Klasa asocjacyjna WSM dr Marek Szepski 26

Klasa abstrakcyjna ® Klasa która nie posiada obiektów nazywana jest klasą abstrakcyjną. ® Przykładem

Klasa abstrakcyjna ® Klasa która nie posiada obiektów nazywana jest klasą abstrakcyjną. ® Przykładem klasy abstrakcyjnej jest Interfejs (Interface). WSM dr Marek Szepski 27

Dziedziczenie WSM dr Marek Szepski 28

Dziedziczenie WSM dr Marek Szepski 28

WSM dr Marek Szepski 29

WSM dr Marek Szepski 29

Dziedziczenie ® Uogólnienie (generalization) to związek pomiędzy dwoma bytami: Ogólnym (przodek) ® Szczegółowym (potomek)

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 30

WSM dr Marek Szepski 31

WSM dr Marek Szepski 31

WSM dr Marek Szepski 32

WSM dr Marek Szepski 32

WSM dr Marek Szepski 33

WSM dr Marek Szepski 33

Polimorfizm ® Operacja potomka mająca tą samą sygnaturę co operacja przodka jest ważniejsza (ma

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 34

Przykłady diagramów klas WSM dr Marek Szepski 35

Przykłady diagramów klas WSM dr Marek Szepski 35

WSM dr Marek Szepski 36

WSM dr Marek Szepski 36

WSM dr Marek Szepski 37

WSM dr Marek Szepski 37

WSM dr Marek Szepski 38

WSM dr Marek Szepski 38

WSM dr Marek Szepski 39

WSM dr Marek Szepski 39

WSM dr Marek Szepski 40

WSM dr Marek Szepski 40

WSM dr Marek Szepski 41

WSM dr Marek Szepski 41

Tabela <-> Klasa ® Pasywna ® Aktywna ® Jest wzorcem oraz ® Jest tylko

Tabela <-> Klasa ® Pasywna ® Aktywna ® Jest wzorcem oraz ® Jest tylko wzorcem zbiorem obiektów ® Trwała lub ulotna ® Musi zawierać ® Są klasy nie atrybuty posiadające atrybutów ® Atrybuty elementarne lub złażone ® Musi posiadać ® Obiekty danej klasy są unikalny identyfikator zawsze rozróżnialne - klucz niezależnie od wartości atrybutów WSM dr Marek Szepski 42

Diagram klas -> ERD łatwe przekształcenie: 1. 2. 3. 4. 5. Zastąp złożone atrybuty

Diagram klas -> ERD łatwe przekształcenie: 1. 2. 3. 4. 5. Zastąp złożone atrybuty dodatkowymi tabelami i pomiń operacje Dodaj klucze główne Dodaj tabele łączące, które zlikwidują związki wiele do wielu Określ klucze obce i związki Przeprowadź normalizację tabel WSM dr Marek Szepski 43

Tworzenie diagramu klas ® Analiza obiektowa ® Karty CRC (class-responsibility- collaboration) ® Arkusz analizy

Tworzenie diagramu klas ® Analiza obiektowa ® Karty CRC (class-responsibility- collaboration) ® Arkusz analizy obiektowej ® Rebecca. Wirfs-Brock, Allan Mc. Kean: Projektowanie obiektowe, Helion ® Edward Yourdon, Carl Argila: Analiza obiektowa i projektowanie, WNT WSM dr Marek Szepski 44

Wzorce projektowe ® Korzystaj z gotowych rozwiązań ® Gamma, Helm, Johnson, Vlissides: Wzorce projektowe,

Wzorce projektowe ® Korzystaj z gotowych rozwiązań ® Gamma, Helm, Johnson, Vlissides: Wzorce projektowe, WNT- IO ® Shalloway, Trott: Projektowanie zorientowane obiektowo, wzorce projektowe. Helion WSM dr Marek Szepski 45