Diagramy klas Jolanta Sala Halina Taska Olsztyn 2019

  • Slides: 96
Download presentation
Diagramy klas Jolanta Sala Halina Tańska Olsztyn 2019

Diagramy klas Jolanta Sala Halina Tańska Olsztyn 2019

Unified Modeling Language Diagramy dynamiki: • diagram przypadków użycia (use case diagram) • diagram

Unified Modeling Language Diagramy dynamiki: • diagram przypadków użycia (use case diagram) • diagram czynności (activity diagram) • diagram maszyny stanów (state machine diagram) • diagram sekwencji (sequence diagram) • diagram komunikacji (communication diagram) • diagram przeglądu współdziałania (interaction overview diagram) • diagram czasowy (timing diagram) Diagramy struktury: • diagram klas (class diagram) • diagram obiektów (object diagram) • diagram komponentów (component diagram) • diagram pakietów (package diagram) • diagram wdrożenia (deployment diagram) • zbiorowy diagram komponentów (composite structure diagram)

Diagram klas • Świat, postrzegany z perspektywy obiektowej, składa się z wielu niezależnych obiektów,

Diagram klas • Świat, postrzegany z perspektywy obiektowej, składa się z wielu niezależnych obiektów, które działają według pewnych reguł i współpracują ze sobą dla osiągnięcia założonego celu. • Podstawowym sposobem budowania i porządkowania modelu świata jest klasyfikacja, czyli odnajdywanie klas (zbiorów) obiektów podobnych, zbudowanych zgodnie z tym samym wzorcem i podejmujących takie same działania. • Poznawanie świata przez klasyfikowanie postrzeganych obiektów jest fundamentalnym wzorcem pozyskiwania i porządkowania wiedzy przez człowieka.

Diagram klas • Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: –

Diagram klas • Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: – Projekt struktury logicznej baz danych – Projekt składników systemu stanowiący podstawę do stworzenia informatycznego systemu (kodu) • Na podstawie diagramów klas bardzo prosto można generować kod (SQL, Java, C++ itd. ) • Diagramy klas są wykorzystywane przez analityków na etapie opracowywania koncepcji systemu jak i przez projektantów na etapie projektowania implementacji

Diagram klas Kluczowymi elementami są: • klasy (class) • związki (association) • interfejsy (interface)

Diagram klas Kluczowymi elementami są: • klasy (class) • związki (association) • interfejsy (interface) Dodatkowo diagram może zwierać: • notatki (note) • ograniczenia (constraints) • pakiety (packages)

Diagram klas • Najczęściej spotykany w modelach obiektowych, • Obrazuje statyczne aspekty systemu, •

Diagram klas • Najczęściej spotykany w modelach obiektowych, • Obrazuje statyczne aspekty systemu, • Jeżeli diagram klas zawiera klasy aktywne, dotyczy tylko statycznych aspektów perspektywy projektowej, • Wykorzystywany jest przy budowaniu systemów wykonywalnych z użyciem inżynierii do przodu i inżynierii wstecz.

Diagram klas Klasa jest opisem zbioru obiektów, które mają takie same: • atrybuty •

Diagram klas Klasa jest opisem zbioru obiektów, które mają takie same: • atrybuty • operacje • związki • znaczenia

1/4 Klasy – wzorce obiektów • Klasa – Opis grupy obiektów o jednolitym zbiorze

1/4 Klasy – wzorce obiektów • Klasa – Opis grupy obiektów o jednolitym zbiorze atrybutów i sposobie zachowania – Zawiera opis tworzenia obiektów klasy • Klasę można nazwać „fabryką obiektów” • Każda klasa posiada „wzorzec” (plany) dla tworzenia obiektów tej klasy. • Każdy nowo tworzony obiekt klasy posiada osobną tożsamość, a także może mieć różne wartości atrybutów.

2/4 Model świata – związki klas obiektów • Obiekty w czasie swojego życia kontaktują

2/4 Model świata – związki klas obiektów • Obiekty w czasie swojego życia kontaktują się z innymi obiektami. Kontakty polegają na wzajemnym korzystaniu z udostępnianych usług. • W trakcie modelowania określamy związki między klasami obiektów. • Podstawowy „model świata” w podejściu obiektowym stanowi zatem zbiór klas obiektów wraz z odpowiednimi związkami między nimi.

3/4 Model świata – związki klas obiektów • Dowolny obiekt jest instancją abstrakcyjnego pojęcia,

3/4 Model świata – związki klas obiektów • Dowolny obiekt jest instancją abstrakcyjnego pojęcia, jakim jest klasa (ang. class) obiektu. • Podstawę identyfikacji klasy stanowią grupy obiektów charakteryzujące się: – identyczną strukturą danych tj. takimi samymi atrybutami; – identycznym zachowaniem tj. takimi samymi operacjami; – identycznymi związkami; – identycznym znaczeniem w określonym kontekście.

Rodzaje diagramów klas Diagramy klas, ze względu na znaczną liczbę elementów, jakie potencjalnie mogą

Rodzaje diagramów klas Diagramy klas, ze względu na znaczną liczbę elementów, jakie potencjalnie mogą na nich wystąpić, cechują się zróżnicowanym poziomem szczegółowości. Należy rozróżnić dwa poziomy tworzenia: üpoziom konceptualny, üpoziom implementacyjny.

Konceptualny diagram klas zawiera wyłącznie podstawowe elementy, cechując się przystępnością nazewnictwa klas, atrybutów i

Konceptualny diagram klas zawiera wyłącznie podstawowe elementy, cechując się przystępnością nazewnictwa klas, atrybutów i operacji. Implementacyjny diagram klas jest stopniowo wzbogacany o elementy opisu niezbędne dla prawidłowej specyfikacji modelu, takie jak typy danych, zobowiązania, widoczność, statyczność, klasy asocjacyjne, kwalifikacje, uogólnienia, zależności czy też realizacje.

Diagram klas - definicja • Diagram klas obrazuje pewien zbiór klas, interfejsów i kooperacji

Diagram klas - definicja • Diagram klas obrazuje pewien zbiór klas, interfejsów i kooperacji oraz związki między nimi. • Jest to graf złożony z wierzchołków (klas, interfejsów, kooperacji) i łuków (reprezentowanych przez relacje) • Diagram klas stanowi opis statyki systemu, który uwypukla związki między klasami. • Najsilniej prezentuje strukturę systemu i jest podstawą dla jego konstrukcji. • Diagram klas służy do zobrazowania statycznych aspektów perspektywy projektowej, w której bierze się pod uwagę wymagania funkcjonalne systemu – usługi, jakie system powinien udostępniać swoim użytkownikom.

Etapy tworzenia diagramu klas 1) 2) 3) 4) 5) 6) 7) 8) zidentyfikowanie i

Etapy tworzenia diagramu klas 1) 2) 3) 4) 5) 6) 7) 8) zidentyfikowanie i nazwanie klas; opcjonalnie określenie zobowiązań klas; połączenie poszczególnych klas z wykorzystaniem związków asocjacji; zidentyfikowanie oraz nazwanie atrybutów i operacji; wyspecyfikowanie asocjacji z użyciem wszystkich jej cech (nazwy, ról, nawigacji, liczebności, agregacji, kwalifikacji); opracowanie innych rodzajów związków, tj. uogólnień, zależności i realizacji; pełne, precyzyjne wyspecyfikowanie atrybutów i operacji; opcjonalnie opracowanie diagramów obiektów.

Klasy obiektów i związki klas obiektów - przykład wniesienie o rejestrację Rejestrator Właściciel własność

Klasy obiektów i związki klas obiektów - przykład wniesienie o rejestrację Rejestrator Właściciel własność zarejestrowanie Pojazd wykonanie czynności urzędowej Rejestracja dokonanie rejestracji

Metody obiektowe – jak z obiektów stworzyć system • Podstawowymi koncepcjami podejścia obiektowego są

Metody obiektowe – jak z obiektów stworzyć system • Podstawowymi koncepcjami podejścia obiektowego są klasa i związki klas. • Klasa jest także podstawowym pojęciem używanym we wszystkich językach programowania obiektowego. • Model klas stworzony na etapie analizy znajduje swoje odzwierciedlenie w kodzie. • Poprawna konstrukcja tego modelu jest zatem kluczowym czynnikiem powodzenia projektów. • Podstawą każdej metody modelowania obiektowego jest technika budowy diagramów klas. • Obok niej istnieją inne techniki pozwalające przy pomocy modeli opisać różne aspekty tworzonego systemu.

Klasa obiektu Uczelnia w notacji UML Nazwa Atrybuty Operacje

Klasa obiektu Uczelnia w notacji UML Nazwa Atrybuty Operacje

Klasa - nazwa Nazwa klasy (class name) musi wyróżniać klasę spośród innych jeżeli używamy

Klasa - nazwa Nazwa klasy (class name) musi wyróżniać klasę spośród innych jeżeli używamy tylko nazwę klasy obiektów to jest to nazwa prosta jeżeli nazwa poprzedzona jest nazwą pakietu to jest to nazwa ścieżkowa 1/5

Klasa - nazwa Reprezentacja klas na diagramach 2/5 Możliwe kombinacje graficznej prezentacji klas: üsama

Klasa - nazwa Reprezentacja klas na diagramach 2/5 Możliwe kombinacje graficznej prezentacji klas: üsama nazwa klasy; ünazwa klasy z zestawem atrybutów; ünazwa klasy z zestawem operacji; ünazwa klasy z zestawem atrybutów i operacji.

Klasa - nazwa 3/5 W związku z różnorodnością możliwych sposobów specyfikowania klas możliwe jest

Klasa - nazwa 3/5 W związku z różnorodnością możliwych sposobów specyfikowania klas możliwe jest zastosowanie: ü sama nazwa klasy umieszczona w jednosekcyjnym bloku oznacza, że sekcje atrybutów i operacji zostały wyspecyfikowane, lecz nie w sposób jawny zamieszczone na diagramach klas; ü alternatywnie, klasę przedstawia się jako blok złożony z trzech sekcji z nazwą w pierwszej sekcji i niewyspecyfikowanymi atrybutami i operacjami; ü jeśli liczba atrybutów lub operacji jest większa, to ich wyliczanie w odpowiednich sekcjach można przerwać wielokropkiem, co należy interpretować, jako przypisanie klasie jeszcze innych atrybutów i operacji – niewymienionych bezpośrednio w specyfikacji.

Klasa obiektu Student w notacji UML Różne poziomy szczegółowości Student 4/5 Student Nr indeksu

Klasa obiektu Student w notacji UML Różne poziomy szczegółowości Student 4/5 Student Nr indeksu Nazwisko Oceny Oblicz średnia() Student Nr indeksu: integer Nazwisko: string Oceny: string Oblicz średnia(): real

5/5 Nazwa klasy - podsumowanie • Głównym zadaniem nazwy klasy jest opisanie obiektów, które

5/5 Nazwa klasy - podsumowanie • Głównym zadaniem nazwy klasy jest opisanie obiektów, które ona grupuje. • Przyjmuje się, że nazwa klasy powinna określać pojedynczy obiekt tej klasy, w związku z tym nazwa klasy jest rzeczownikiem w liczbie pojedynczej. • Przykładowo: Osoba, Rachunek, Książka, Pojazd, Wypożyczenie to nazwy klas.

Diagram klas Klasa jest opisem zbioru obiektów, które mają takie same: • atrybuty •

Diagram klas Klasa jest opisem zbioru obiektów, które mają takie same: • atrybuty • operacje • związki • znaczenia

Klasa – atrybuty Atrybut klasy (attribute) to nazwana właściwość klasy. Określa zbiór wartości, jakie

Klasa – atrybuty Atrybut klasy (attribute) to nazwana właściwość klasy. Określa zbiór wartości, jakie można przypisać do poszczególnych egzemplarzy tej klasy. Atrybuty

Klasa – atrybuty Dokładniejsze określenie atrybutu: • dodanie typu • dodanie wartości początkowej [

Klasa – atrybuty Dokładniejsze określenie atrybutu: • dodanie typu • dodanie wartości początkowej [ widoczność ] nazwa [ liczebność ] [ : typ ] [ = wartość początkowa ] [ {określenie właściwości} ]

Diagram klas Klasa jest opisem zbioru obiektów, które mają takie same: • atrybuty •

Diagram klas Klasa jest opisem zbioru obiektów, które mają takie same: • atrybuty • operacje • związki • znaczenia

Klasa – operacje Operacja klasy (operation) to implementacja usługi klasy. Wykonania usługi można zażądać

Klasa – operacje Operacja klasy (operation) to implementacja usługi klasy. Wykonania usługi można zażądać od każdej instancji klasy. Operacje

Klasa – operacje Dokładniejsze określenie operacji: • dodanie typu wartości zwracanej przez operację •

Klasa – operacje Dokładniejsze określenie operacji: • dodanie typu wartości zwracanej przez operację • podanie parametrów, ich typów i wartości początkowych [ widoczność ] nazwa [ (lista parametrów) ] [ : typ wyniku ] [ {określenie właściwości} ]

Klasa – operacje • lista parametrów: definiuje listę parametrów formalnych metody; • składnia pojedynczego

Klasa – operacje • lista parametrów: definiuje listę parametrów formalnych metody; • składnia pojedynczego parametru jest następująca: rodzaj nazwa_parametru : typ = wartość_początkowa gdzie rodzaj określa sposób, w jaki metoda korzysta z danego argumentu: in: metoda może czytać wartość parametru, ale nie może jej zmieniać out: metoda może zmieniać wartość parametru, ale nie może jej czytać; inout: metoda może zarówno czytać, jak i zmieniać wartość parametru.

Klasa – zobowiązania Odpowiedzialność (responsibility) jest kontraktem lub zobowiązaniem klasy. Modelując klasy często zapisuje

Klasa – zobowiązania Odpowiedzialność (responsibility) jest kontraktem lub zobowiązaniem klasy. Modelując klasy często zapisuje się jedynie zobowiązania klasy jakie musi ona wypełniać. W procesie dokładniejszego specyfikowania systemu zobowiązania tłumaczy się na zbiory atrybutów i operacji.

Klasa – zobowiązania

Klasa – zobowiązania

Przykład Kursy – poziom konceptualny

Przykład Kursy – poziom konceptualny

Diagram klas Klasa jest opisem zbioru obiektów, które mają takie same: • atrybuty widoczność

Diagram klas Klasa jest opisem zbioru obiektów, które mają takie same: • atrybuty widoczność • operacje • związki • znaczenia

Klasa – widoczność Widoczność atrybutów i operacji określa kto może wywołać operacją, lub kto

Klasa – widoczność Widoczność atrybutów i operacji określa kto może wywołać operacją, lub kto ma dostęp do kreślonego atrybutu. Typy widoczności: • Public • Protected • Private • Package

Widoczność składowych klasy publiczny + Obiekty wszystkich klas mają dostęp do atrybutu lub operacji

Widoczność składowych klasy publiczny + Obiekty wszystkich klas mają dostęp do atrybutu lub operacji prywatny - Dostęp jedynie w obrębie danej klasy chroniony # Dostęp jedynie dla klas dziedziczących z danej klasy pakietowy ~ Dostęp tylko dla składowych pakietu, do którego klasa należy Nazwa klasy + # ~ atrybut 1: atrybut 2: atrybut 3: atrybut 4: + # ~ operacja 1() operacja 2() operacja 3() operacja 4()

Klasa – widoczność Widoczność Public + Każdy ma dostęp do elementów klasy (atrybutów i

Klasa – widoczność Widoczność Public + Każdy ma dostęp do elementów klasy (atrybutów i operacji) oznaczonych jako public.

Klasa – widoczność Widoczność Protected # Atrybut lub operacja jest widoczna dla potomków klasy.

Klasa – widoczność Widoczność Protected # Atrybut lub operacja jest widoczna dla potomków klasy.

Klasa – widoczność Widoczność Private Atrybut lub operacja jest widoczna tylko dla innych elementów

Klasa – widoczność Widoczność Private Atrybut lub operacja jest widoczna tylko dla innych elementów tej klasy.

Klasa – widoczność Widoczność Package ~ Elementy klasy widoczne są jedynie dla klas zawierających

Klasa – widoczność Widoczność Package ~ Elementy klasy widoczne są jedynie dla klas zawierających się w tym samym pakiecie.

Klasa Dodatkowe właściwości klasy: • abstrakcyjna klasa (abstract class) (nazwa klasy napisana kursywą) –

Klasa Dodatkowe właściwości klasy: • abstrakcyjna klasa (abstract class) (nazwa klasy napisana kursywą) – klasa nie może mieć bezpośredniego egzemplarza • elementy statyczne (static elements) – atrybuty lub operacje mogą być statyczne (nazwa podkreślona) – dostępne są również bez konkretnego egzemplarza klasy

Diagram klas Kluczowymi elementami są: • klasy (class) • związki (association) • interfejsy (interface)

Diagram klas Kluczowymi elementami są: • klasy (class) • związki (association) • interfejsy (interface) Dodatkowo diagram może zwierać: • notatki (note) • ograniczenia (constraints) • pakiety (packages)

Interfejs (Interface) 1/10 Interfejs jest to zestaw operacji, które wyznaczają usługi oferowane przez klasę

Interfejs (Interface) 1/10 Interfejs jest to zestaw operacji, które wyznaczają usługi oferowane przez klasę lub komponent Interfejsy służą do prezentowania komunikacji pomiędzy komponentami Interfejs wyznacza granicę między specyfikacją tego, co dana abstrakcja ma robić, a implementacją tego, jak to robi Dobrze zbudowany interfejs charakteryzuje się tym, że wyraźnie oddzielone są wewnętrzne aspekty abstrakcji od zewnętrznych

Interfejsy 2/10 Każda klasa może być wykorzystywana na różne sposoby i może realizować różne

Interfejsy 2/10 Każda klasa może być wykorzystywana na różne sposoby i może realizować różne interfejsy (różne usługi). Grupowanie usług klasy realizuje się za pomocą portów. Porty łączą implementację klasy ze środowiskiem, w którym istnieje. Komunikacja klasy odbywa się poprzez porty.

3/10 Interfejsy W UML 2. 0 wprowadzono rozróżnienie pomiędzy interfejsami: Øinterfejs dostarczany (provided interface)

3/10 Interfejsy W UML 2. 0 wprowadzono rozróżnienie pomiędzy interfejsami: Øinterfejs dostarczany (provided interface) Øinterfejs wymagany (required interface)

4/10 Interfejs dostarczany są to usługi, które klasa implementuje. Klasa umożliwia innym elementom systemu

4/10 Interfejs dostarczany są to usługi, które klasa implementuje. Klasa umożliwia innym elementom systemu korzystanie z obsługiwanych przez daną klasę usług. Dwie postacie interfejsu dostarczanego:

5/10 Interfejs dostarczany Nazwa interfejsu: • prosta np. : IPisownia • ścieżkowa np. :

5/10 Interfejs dostarczany Nazwa interfejsu: • prosta np. : IPisownia • ścieżkowa np. : Usługi. Sieciowe: : IRouter

Interfejs dostarczany 6/10 Interfejs jest definicją usług oferowanych przez klasę lub komponent:

Interfejs dostarczany 6/10 Interfejs jest definicją usług oferowanych przez klasę lub komponent:

Interfejs wymagany są to usługi, które inne klasy muszą dostarczyć w celu zapewnienia odpowiedniego

Interfejs wymagany są to usługi, które inne klasy muszą dostarczyć w celu zapewnienia odpowiedniego funkcjonowania klasy w środowisku. 7/10

Interfejs wymagany - przykład Klasa wymaga tych interfejsów do poprawnej pracy. Komunikator internetowy nie

Interfejs wymagany - przykład Klasa wymaga tych interfejsów do poprawnej pracy. Komunikator internetowy nie udostępnia pełnej funkcjonalności użytkownikowi bez połączenia z Internetem. 8/10

9/10 Interfejs wymagany i dostarczany - przykłady OCENA protokółEgzaminacyjny IOceny

9/10 Interfejs wymagany i dostarczany - przykłady OCENA protokółEgzaminacyjny IOceny

10/10 Interfejs (Interface) - podsumowanie Interfejs jest to zestaw operacji, które wyznaczają usługi oferowane

10/10 Interfejs (Interface) - podsumowanie Interfejs jest to zestaw operacji, które wyznaczają usługi oferowane przez klasę lub komponent Interfejsy służą do prezentowania komunikacji pomiędzy komponentami Interfejs wyznacza granicę między specyfikacją tego, co dana abstrakcja ma robić, a implementacją tego, jak to robi Dobrze zbudowany interfejs charakteryzuje się tym, że wyraźnie oddzielone są wewnętrzne aspekty abstrakcji od zewnętrznych

Diagram klas Kluczowymi elementami są: • klasy (class) • związki (association) • interfejsy (interface)

Diagram klas Kluczowymi elementami są: • klasy (class) • związki (association) • interfejsy (interface) Dodatkowo diagram może zwierać: • notatki (note) • ograniczenia (constraints) • pakiety (packages)

Związki Tylko niewielka liczba klas występuje samotnie. Większość klas wiąże się z innymi klasami

Związki Tylko niewielka liczba klas występuje samotnie. Większość klas wiąże się z innymi klasami następującymi związkami: • zależność • uogólnienie • powiązanie

Związki - zależność Zależność (dependency) to związek pomiędzy dwoma elementami modelowania – związek użycia.

Związki - zależność Zależność (dependency) to związek pomiędzy dwoma elementami modelowania – związek użycia. Zmiany dokonane w jednym elemencie mogą mieć wpływ na inny element. Z zależności należy korzystać kiedy chce się podkreślić, że jeden element używa drugiego. Klasa docelowa Klasa źródłowa

Związki – zależność - przykład Stanowisko. Komputerowe Laboratorium <<use>> Typowe zastosowanie zależności typu <<use>>

Związki – zależność - przykład Stanowisko. Komputerowe Laboratorium <<use>> Typowe zastosowanie zależności typu <<use>> do prawidłowego działania klasy Laboratorium jest potrzebne użycie klasy Stanowisko. Komputerowe

Wybrane typy związku zależności Słowo kluczowe Znaczenie <<call>> Źródło wywołuje cel <<create>> Źródło tworzy

Wybrane typy związku zależności Słowo kluczowe Znaczenie <<call>> Źródło wywołuje cel <<create>> Źródło tworzy obiekt docelowy <<deriver>> Źródło można wyznaczyć na podstawie celu <<import>> Zawartość publiczna celu zostaje dołączona do obszaru nazw źródła <<instance>> Źródło tworzy egzemplarz klasy <<permit>> Cel pozwala źródłu na dostęp do swoich cech prywatnych <<realize>> Źródło jest implementacją specyfikacji lub interfejsem definiowanym przez cel <<refine>> Źródło jest na doskonalszym poziomie abstrakcji niż cel <<substitute>> Źródło jest substytutem celu <<trace>> Cel jest historycznie przodkiem źródła <<use>> Źródło wymaga celu do swojego funkcjonowania

Wybrane typy związku zależności Słowo kluczowe Znaczenie <<call>> Źródło wywołuje cel <<create>> Źródło tworzy

Wybrane typy związku zależności Słowo kluczowe Znaczenie <<call>> Źródło wywołuje cel <<create>> Źródło tworzy obiekt docelowy <<deriver>> Źródło można wyznaczyć na podstawie celu <<import>> Zawartość publiczna celu zostaje dołączona do obszaru nazw źródła <<instance>> Źródło tworzy egzemplarz klasy <<permit>> Cel pozwala źródłu na dostęp do swoich cech prywatnych <<realize>> Źródło jest implementacją specyfikacji lub interfejsem definiowanym przez cel <<refine>> Źródło jest na doskonalszym poziomie abstrakcji niż cel <<substitute>> Źródło jest substytutem celu <<trace>> Cel jest historycznie przodkiem źródła <<use>> Źródło wymaga celu do swojego funkcjonowania

Związki Tylko niewielka liczba klas występuje samotnie. Większość klas wiąże się z innymi klasami

Związki Tylko niewielka liczba klas występuje samotnie. Większość klas wiąże się z innymi klasami następującymi związkami: • zależność <<use>> • uogólnienie • powiązanie

Związki - uogólnienie Uogólnienie to związek między elementem ogólnym a elementem szczególnym. Potomek może

Związki - uogólnienie Uogólnienie to związek między elementem ogólnym a elementem szczególnym. Potomek może wystąpić wszędzie tam gdzie jest spodziewany przodek, ale nie na odwrót. Potomek dziedziczy wszystkie właściwości przodka (atrybuty i operacje).

Związki - uogólnienie Dziekan Wykładowca

Związki - uogólnienie Dziekan Wykładowca

Związki – uogólnienie - generalizacja

Związki – uogólnienie - generalizacja

Związki Tylko niewielka liczba klas występuje samotnie. Większość klas wiąże się z innymi klasami

Związki Tylko niewielka liczba klas występuje samotnie. Większość klas wiąże się z innymi klasami następującymi związkami: • zależność <<use>> • uogólnienie • powiązanie

Związki – powiązanie (asocjacja) Powiązanie – obiekty jednego elementu są połączone z obiektami innego.

Związki – powiązanie (asocjacja) Powiązanie – obiekty jednego elementu są połączone z obiektami innego. Powiązanie między dwoma klasami oznacza, że można przejść z obiektu jednej klasy do obiektu drugiej.

Związki – powiązanie (asocjacja) Powiązanie może mieć: • nazwę • role (np. : pracownik,

Związki – powiązanie (asocjacja) Powiązanie może mieć: • nazwę • role (np. : pracownik, pracodawca) • kierunek (również dwustronny) • liczebność (multiplicity)

Asocjacja – związek strukturalny Asocjacja opisuje związek strukturalny między elementami (klasami). Wskazuje, że obiekty

Asocjacja – związek strukturalny Asocjacja opisuje związek strukturalny między elementami (klasami). Wskazuje, że obiekty jednego elementu są połączone z obiektami drugiego. Wyróżnia się dwa rodzaje asocjacji: • binarne Class 1 Class 2 • n – arne Class 1 Class 2 Class 3

Asocjacje – cechy • nazwa • rola zarządza Kierownik Projekt projektu zarządza Kierownik projektu

Asocjacje – cechy • nazwa • rola zarządza Kierownik Projekt projektu zarządza Kierownik projektu szef • nawigacja Projekt zarządza Kierownik projektu zadanie Projekt szef zadanie

Asocjacje – cechy • liczebność - podając liczebność na pewnym końcu powiązania (przy pewnej

Asocjacje – cechy • liczebność - podając liczebność na pewnym końcu powiązania (przy pewnej klasie) wskazujemy ile obiektów tej klasy musi być połączonych z każdym obiektem klasy znajdującej się na przeciwnym końcu powiązania. 1 dokładnie jeden n dokładnie n (n>1) 1. . * jeden lub wiele 1. . n od 1 do n 0. . 1 zero lub jeden 0. . n od 0 do n * wiele n. . m od n do m (n, m>1) 0. . * zero lub wiele n, m. . o liczebność złożona n. . * więcej niż n Kierownik projektu szef 1 zarządza zadanie Projekt 1. . *

Asocjacje – agregacja całość-część • Agregacja – opisuje związek całość-część pomiędzy klasami. • Wyróżnia

Asocjacje – agregacja całość-część • Agregacja – opisuje związek całość-część pomiędzy klasami. • Wyróżnia się dwa rodzaje agregacji: § agregacja całkowita (kompozycja) – obiekty nie mogą samodzielnie funkcjonować, usunięcie agregatu powoduje likwidację segmentów, § agregacja częściowa – usunięcie agregatu nie powoduje usunięcia jego części, obiekty współdzielone mogą funkcjonować samodzielnie

Związki – agregacja – przykład 1 Kompozycja, zwana również agregacją całkowitą, wprowadza dodatkowo zależność

Związki – agregacja – przykład 1 Kompozycja, zwana również agregacją całkowitą, wprowadza dodatkowo zależność czasu życia klas oraz wyłączną własność. Części o nieustalonej liczebności mogą powstawać po utworzeniu całości, ale potem żyją i umierają razem z nią.

Związki – agregacja – przykłady 2 -3 Faktura Plansza OX 1 1 1. .

Związki – agregacja – przykłady 2 -3 Faktura Plansza OX 1 1 1. . * 9 Pozycja Pole

Związki – agregacja – przykłady 4 -5 Zamówienie Pracownik 1 1 1. . *

Związki – agregacja – przykłady 4 -5 Zamówienie Pracownik 1 1 1. . * 9 0. . 1 Pozycja Ubezpieczenie Powiązane elementy nie są sobie równorzędne

Związki – agregacja – przykład 1 Dodatkową funkcjonalnością powiązań jest agregacja częściowa (aggregation). Zwykle

Związki – agregacja – przykład 1 Dodatkową funkcjonalnością powiązań jest agregacja częściowa (aggregation). Zwykle powiązanie sprawia, że związane elementy są sobie równorzędne. W celu zaprezentowania związku „część-całość” należy użyć agregacji.

Związki – agregacja – przykład 2 -3 Produkt Zestaw komputerowy 1 * 1 1

Związki – agregacja – przykład 2 -3 Produkt Zestaw komputerowy 1 * 1 1 Składowa Klawiatura 1 1. . * Klawisz

Agregacja jest specjalną formą asocjacji, której podstawową intencją jest odwzorowanie związków część-całość Firma 1

Agregacja jest specjalną formą asocjacji, której podstawową intencją jest odwzorowanie związków część-całość Firma 1 * Oddział 1 1. . * Wydział Pracuje w Osoba 1. Czy właściwe jest użycie frazy “jest częścią”? 2. Czy operacje na całości automatycznie są propagowane na jej części? 3. Czy jakiś atrybut całości jest automatycznie propagowany do jej części? 4. Czy istnieje wewnętrzna asymetria w asocjacji, kiedy jakaś klasa jest podporządkowana innej klasie?

Asocjacja zwrotna i wielokrotna • asocjacja wielokrotna – połączenie klas kilkoma asocjacjami w zależności

Asocjacja zwrotna i wielokrotna • asocjacja wielokrotna – połączenie klas kilkoma asocjacjami w zależności od pełnionych ról implementuje > Programista Moduł testuje > • asocjacja zwrotna – powiązanie danej klasy z samą sobą Pracownik podwładny * 0. . 1 kierownik

Związek Kwalifikacja Zapisując powiązanie możemy wskazać w jaki sposób mając dany obiekt na jednym

Związek Kwalifikacja Zapisując powiązanie możemy wskazać w jaki sposób mając dany obiekt na jednym końcu powiązania można zidentyfikować obiekt(-y) z drugiego końca. Spis. Pracowników Id. Pracownika Pracownik

Klasy aktywne Do reprezentacji procesów lub wątków (które są źródłem przepływu sterowania) używa się

Klasy aktywne Do reprezentacji procesów lub wątków (które są źródłem przepływu sterowania) używa się klas aktywnych. Reprezentacja klasy aktywnej od klasy statycznej różni się pogrubioną ramką klasy.

Klasa Wniosek - przykład Wniosek Typ wniosku Nr księgi wieczystej Opłata sądowa Ilość dokumentów

Klasa Wniosek - przykład Wniosek Typ wniosku Nr księgi wieczystej Opłata sądowa Ilość dokumentów Data złożenia Godzina złożenia Treść wniosku Stwórz wniosek() Rejestruj wniosek() Wyszukaj wniosek() Przeglądaj wniosek()

Klasa abstrakcyjna Osoba Imię Nazwisko Data urodzenia Adres /wiek Dodaj Usuń (o: Osoba) Modyfikuj

Klasa abstrakcyjna Osoba Imię Nazwisko Data urodzenia Adres /wiek Dodaj Usuń (o: Osoba) Modyfikuj (o: Osoba) Pracownik Stażysta Wiek = Data bieżąca – Data urodzenia Emeryt

Rodzaje diagramów klas – powtórka Diagramy klas, ze względu na znaczną liczbę elementów, jakie

Rodzaje diagramów klas – powtórka Diagramy klas, ze względu na znaczną liczbę elementów, jakie potencjalnie mogą na nich wystąpić, cechują się zróżnicowanym poziomem szczegółowości. Należy rozróżnić dwa poziomy tworzenia: ü poziom konceptualny, ü poziom implementacyjny.

Konceptualny diagram klas zawiera wyłącznie podstawowe elementy, cechując się przystępnością nazewnictwa klas, atrybutów i

Konceptualny diagram klas zawiera wyłącznie podstawowe elementy, cechując się przystępnością nazewnictwa klas, atrybutów i operacji. Implementacyjny diagram klas jest stopniowo wzbogacany o elementy opisu niezbędne dla prawidłowej specyfikacji modelu, takie jak typy danych, zobowiązania, widoczność, statyczność, klasy asocjacyjne, kwalifikacje, uogólnienia, zależności czy też realizacje.

Diagram klas – definicja – powtórka • Diagram klas obrazuje pewien zbiór klas, interfejsów

Diagram klas – definicja – powtórka • Diagram klas obrazuje pewien zbiór klas, interfejsów i kooperacji oraz związki między nimi. Jest to graf złożony z wierzchołków (klas, interfejsów, kooperacji) i łuków (reprezentowanych przez relacje) • Diagram klas stanowi opis statyki systemu, który uwypukla związki między klasami. Najsilniej prezentuje strukturę systemu, stanowiąc podstawę dla jego konstrukcji. • Diagram klas służy do zobrazowania statycznych aspektów perspektywy projektowej, w której bierze się pod uwagę wymagania funkcjonalne systemu – usługi, jakie system powinien udostępniać swoim użytkownikom.

Etapy tworzenia diagramu klas – powtórka 1) 2) 3) 4) 5) 6) 7) 8)

Etapy tworzenia diagramu klas – powtórka 1) 2) 3) 4) 5) 6) 7) 8) zidentyfikowanie i nazwanie klas; opcjonalnie określenie zobowiązań klas; połączenie poszczególnych klas z wykorzystaniem związków asocjacji; zidentyfikowanie oraz nazwanie atrybutów i operacji; wyspecyfikowanie asocjacji z użyciem wszystkich jej cech (nazwy, ról, nawigacji, liczebności, agregacji, kwalifikacji); opracowanie innych rodzajów związków, tj. uogólnień, zależności i realizacji; pełne, precyzyjne wyspecyfikowanie atrybutów i operacji; opcjonalnie opracowanie diagramów obiektów.

Przykłady Diagramy klas

Przykłady Diagramy klas

atrybuty operacje Na diagramie przedstawione są następujące informacje: - Menedżer przewodzi zespołowi, zespołowi który

atrybuty operacje Na diagramie przedstawione są następujące informacje: - Menedżer przewodzi zespołowi, zespołowi który wykonuje projekt - Każdy menedżer ma imię i numer telefonu, telefonu i może zainicjować lub zakończyć (przerwać) projekt - Każdy projekt ma nazwę, nazwę datę rozpoczęcia i datę zakończenia - Każdy zespół ma opis, opis i tylko on nas interesuje

Atrybuty asocjacji – klasa asocjacyjna zatrudnia Osoba nazwisko szef pesel 0. . 1 adres

Atrybuty asocjacji – klasa asocjacyjna zatrudnia Osoba nazwisko szef pesel 0. . 1 adres 1. . * Firma 0. . 1 nazwa adres Zatrudnienie zarobek stanowisko Ocena wydajności ocena Dla asocjacji można zdefiniować opisujące ją atrybuty, tzw. atrybuty asocjacji. W języku UML atrybuty asocjacji są umieszczone w specjalnej klasie zwanej klasą asocjacji, która jest połączona z asocjacją za pomocą przerywanej linii. Przykładem klasy asocjacji jest klasa Zatrudnienie na rys, która przechowuje informacje o stanowisku zajmowanym przez osobę zatrudnioną w firmie oraz o pobieranym przez nią wynagrodzeniu.

Dziedziczenie asocjacji K 1 K 2 K 3 asoc 1 K Rys. a •

Dziedziczenie asocjacji K 1 K 2 K 3 asoc 1 K Rys. a • • • asoc 2 K 3 K Rys. b Asocjacje, podobnie jak np. atrybuty i metody, są dziedziczone przez podklasy. Na diagramie (rys. a) dwie asocjacje o nazwach asoc 1 i asoc 2 łączą klasę K z klasami K 2 i K 3, będącymi podklasami klasy K 1. Aby, w oparciu o mechanizm dziedziczenia, te dwie asocjacje mogły być zastąpione przez jedną asocjację prowadzącą od K do K 1 (rys. b), asocjacje z diagramu a muszą spełniać następujące warunki: 1. 2. Muszą posiadać taką samą semantykę. Muszą posiadać taką samą strukturę, tzn. muszą mieć takie same atrybuty lub taką samą klasę asocjacji

Dziedziczenie asocjacji Referat tytuł [1. . *] autorzy Termin godzina 0. . 1 Referat

Dziedziczenie asocjacji Referat tytuł [1. . *] autorzy Termin godzina 0. . 1 Referat zaproszony Referat zwykły Sesja 1. . * wygłaszany ocena Termin godzina wygłaszany Asocjacja wygłaszany łączy klasę Sesja z podklasami 0. . 1 nazwa data 1

Dziedziczenie asocjacji Referat tytuł [1. . *] Termin godzina autorzy 1. . * wygłaszany

Dziedziczenie asocjacji Referat tytuł [1. . *] Termin godzina autorzy 1. . * wygłaszany 0. . 1 Sesja Referat zaproszony Referat zwykły ocena Rys. Asocjacja wygłaszany łączy klasę Sesja z nadklasą nazwa data

Dziedziczenie asocjacji Referat tytuł [1. . *] {-podczas sesji jest wygłaszany co najmniej jeden

Dziedziczenie asocjacji Referat tytuł [1. . *] {-podczas sesji jest wygłaszany co najmniej jeden referat zwykły i co najmniej jeden zaproszony -referat zwykły może nie zostać wygłoszony - każdy referat zaproszony musi być wygłoszony} Termin godzina autorzy 1. . * wygłaszany 0. . 1 Sesja Referat zaproszony Referat zwykły ocena Rys. Zdefiniowano brakujące ograniczenia nazwa data

Konceptualny diagram klas – zamówienie produktów składa się

Konceptualny diagram klas – zamówienie produktów składa się

Diagram klas – zamówienie produktów

Diagram klas – zamówienie produktów

Przykład – sprzedaż wysyłkowa • Wszystkie transakcje realizowane w przedsiębiorstwie sprzedaży wysyłkowej zaczynają się

Przykład – sprzedaż wysyłkowa • Wszystkie transakcje realizowane w przedsiębiorstwie sprzedaży wysyłkowej zaczynają się od złożenia przez klienta zamówienia na potrzebne mu towary. • W systemie istnieje więc klasa Klient, zawierająca wszystkich nabywców, oraz klasa Zamówienie, z których każde określa kupowane towary. • Każdy obiekt należący do klasy Klient ma takie same atrybuty, np. nazwisko i adres, i każdy może wykonywać te same operacje, np. złożyć zamówienie. • Podobnie, każdy obiekt należący do klasy Zamówienie ma takie same atrybuty, np. data złożenia, adres dostawy oraz status, i każdy może wykonać te same operacje, np. wydrukować swą treść oraz obliczyć wymaganą zaliczkę, przedpłatę, całkowitą wartość i podatek.

Diagram klas systemu sprzedaży wysyłkowej Modelem obrazującym strukturę i wzajemne powiązania obiektów występujących w

Diagram klas systemu sprzedaży wysyłkowej Modelem obrazującym strukturę i wzajemne powiązania obiektów występujących w systemie jest diagram klas.

Diagramy klas - Ćwiczenie Zbuduj diagram klas w oparciu o diagram przypadków użycia.

Diagramy klas - Ćwiczenie Zbuduj diagram klas w oparciu o diagram przypadków użycia.

Unified Modeling Language Diagramy dynamiki: • diagram przypadków użycia (use case diagram) • diagram

Unified Modeling Language Diagramy dynamiki: • diagram przypadków użycia (use case diagram) • diagram czynności (activity diagram) • diagram maszyny stanów (state machine diagram) • diagram sekwencji (sequence diagram) • diagram komunikacji (communication diagram) • diagram przeglądu współdziałania (interaction overview diagram) • diagram czasowy (timing diagram) Diagramy struktury: • diagram klas (class diagram) • diagram obiektów (object diagram) • diagram komponentów (component diagram) • diagram pakietów (package diagram) • diagram wdrożenia (deployment diagram) • zbiorowy diagram komponentów (composite structure diagram)