Diagram klas Kluczowymi elementami s klasy class zwizki

  • Slides: 39
Download presentation
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 Czym jest klasa? Klasa jest opisem zbioru obiektów, które mają takie same:

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

Diagram klas Klasa w notacji UML Nazwa Atrybuty Operacje

Diagram klas Klasa w notacji UML Nazwa Atrybuty Operacje

Klasa Nazwa klasy (class name) • musi wyróżniać klasę spośród innych. • jeżeli jest

Klasa Nazwa klasy (class name) • musi wyróżniać klasę spośród innych. • jeżeli jest to sama nazwa to jest to nazwa prosta. • jeżeli nazwa poprzedzona jest nazwą pakietu to jest to nazwa ścieżkowa.

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

Klasa 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 Dokładniejsze określenie atrybutu: • dodanie typu • dodanie wartości początkowej [ widoczność ]

Klasa 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} ]

Klasa Operacja klasy (opetarion) to implementacja usługi klasy. Wykonania usługi można zażądać od każdej

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

Klasa Dokładniejsze określenie operacji: • dodanie typu wartości zwracanej przez operację • podanie parametrów,

Klasa 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 Odpowiedzialność (responsibility) jest kontraktem lub zobowiązaniem klasy. Modelując klasy często zapisuje się jedynie

Klasa 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 Odpowiedzialność klasy

Klasa Odpowiedzialność klasy

Klasa Widoczność atrybutów i operacji określa kto może wywołać operacją, lub kto ma dostęp

Klasa 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

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

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

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

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

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

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

Klasa Widoczność Package ~ Elementy klasy widoczne są jedynie dla klas zawierających się w

Klasa 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

Interfejs (Interface) Czym jest interfejs? Zestaw operacji, które wyznaczają oferowane przez klasę lub komponent.

Interfejs (Interface) Czym jest interfejs? Zestaw operacji, które wyznaczają oferowane przez klasę lub komponent. usługi Interfejs wyznacza granicę między specyfikacją tego, co dana abstrakcja ma robić, a implementacją tego, jak to robi.

Interfejs Dobrze zbudowany interfejs charakteryzuje się tym, że wyraźnie oddzielone są wewnętrzne aspekty abstrakcji

Interfejs Dobrze zbudowany interfejs charakteryzuje się tym, że wyraźnie oddzielone są wewnętrzne aspekty abstrakcji od zewnętrznych.

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

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

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

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

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

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:

Interfejs dostarczany Nazwa interfejsu: • prosta np. : IPisownia • ścieżkowa np. : Usługi.

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

Interfejs dostarczany Interfejs jest definicją usług oferowanych przez klasę lub komponent.

Interfejs dostarczany 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.

Interfejs wymagany Klasa wymaga tych interfejsów do poprawnej pracy. Komunikator internetowy nie udostępnia pełnej

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

Interfejs wymagany i dostarczany

Interfejs wymagany i dostarczany

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ść to związek użycia. Zmiany dokonane w jednym elemencie mogą mieć wpływ na

Związki Zależność to 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.

Związki Uogólnienie to związek między elementem ogólnym a elementem szczególnym. Potomek może wystąpić wszędzie

Związki 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

Związki Uogólnienie

Związki Powiązanie – obiekty jednego elementu są połączone z obiektami innego. Powiązanie między dwoma

Związki 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 może mieć: • nazwę • role (np. : pracownik, pracodawca) • kierunek

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

Związki Dodatkową funkcjonalnością powiązań jest agregacja (aggregation) i kompozycja (composition). Zwykłe powiązanie sprawia, że

Związki Dodatkową funkcjonalnością powiązań jest agregacja (aggregation) i kompozycja (composition). Zwykłe 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 Kompozycja, zwana również agregacją całkowitą, wprowadza dodatkowo zależność czasu życia klas oraz wyłączną

Związki 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ą.

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.

Diagramy klas

Diagramy klas

Diagramy klas

Diagramy klas

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

Diagramy klas - Ćwiczenie Zbuduj diagram klas w oparciu o diagram przypadków użycia. Diagram przypadków użycia jest definicją wymagań funkcjonalnych systemu i nie musi mieć wspólnych cech z implementacją systemu. Prosta konwersja przypadek użycia → klasa zwykle jest błędna.