1 / 33

Diagramy klas w języku UML

Diagramy klas w języku UML. Karol Sierpień Informatyka III rok, studia dzienne. Czym jest UML?.

kamuzu
Download Presentation

Diagramy klas w języku UML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Diagramy klas w języku UML Karol Sierpień Informatyka III rok, studia dzienne

  2. Czym jest UML? Zunifikowany język modelowania, w skrócie UML (ang. Unified Modelling Language) jest to rodzina notacji graficznych, oparta na pojedynczym metamodelu, która służy do opisywania i projektowania systemów oprogramowania, w szczególności systemów oprogramowania obiektowego. Języki modelowania graficznego istnieją w informatyce od dawna. Jest to spowodowane tym, że języki programowania nie są na wystarczająco wysokim poziomie abstrakcji, aby umożliwiać prowadzenie za ich pomocą dyskusji na temat projektów. UML jest względnie otwartym standardem nadzorowanym przez organizację OMG (ang. Object Management Group) i otwarte konsorcjum firm. OMG została utworzona w celu budowania standardów umożliwiających współdziałanie systemów obiektowych. Znana jest między innymi z przygotowania standardów CORBA.

  3. Diagramy struktury: Klas Obiektów Pakietów Struktur połączonych Wdrożeniowe: Komponentów Rozlokowania Diagramy dynamiki: Przypadków użycia Czynności Maszyny stanowej Interakcji: Sekwencji Komunikacji Harmonogramowania (lub Zależności czasowych) Sterowania interakcją Rodzaje diagramów

  4. Diagramy klas Diagramy klas, obok diagramów przypadków użycia, zaliczyć należy do najczęściej stosowanych i zarazem kluczowych rodzajów diagramów w języku UML. Są one ponadto powszechnie rozpoznawanym elementem najpopularniejszych metodyk i technik obiektowych. Przedstawiają statykę systemu, stanowiąc przede wszystkim podstawę przyszłej obiektowej bazy danych. Główne elementy diagramów klas mają znaczny wpływ na układ i zawartość innych diagramów UML. Diagram klas to graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny przedmiotowej oraz związków między nimi.

  5. Diagramy klas W diagramach UML klasę standardowo przedstawia się jako prostokąt złożony z trzech sekcji: • nazwy klasy • zestawu atrybutów • zestawu operacji 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

  6. Diagramy klas W związku z różnorodnością możliwych sposobów specyfikowania klas należy wyróżnić następujące opcje ich prezentacji graficznej: • sama nazwa klasy umieszczona w jednosekcyjnym bloku oznacza, że sekcje atrybutów i operacji zostały wyspecyfikowane, lecz nie są w sposób jawny zamieszczone w diagramie 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 – nie wymienionych bezpośrednio w specyfikacji

  7. Diagramy klas – związki Klasy obiektów – podobnie jak inne elementy języka UML – powiązane są różnego rodzaju związkami. W diagramach klas powszechnie stosuje się wszystkie cztery rodzaje związków języka UML, czyli: • asocjacje • uogólnienia • zależności • realizacje

  8. Asocjacja Asocjacja jest związkiem pomiędzy dwoma lub więcej klasyfikatorami, opisującym powiązania pomiędzy ich instancjami. Asocjacja opisuje zbiór powiązań pomiędzy obiektami, tak jak klasa obiektu – zbiór obiektów stanowiących jej instancje. Wyróżnia się dwa rodzaje asocjacji: • binarne • n-arne W praktyce dominują asocjacje binarne.

  9. Asocjacja Zilustrowane na poprzednim rysunku asocjacje opisują w sposób jedynie elementarny związki między klasami. Pełna semantyczna interpretacja związku wymaga wprowadzenia szeregu dodatkowych elementów opisu. Tak więc asocjację można dokładnie sprecyzować poprzez zdefiniowanie jej następujących cech: • nazwy • ról powiązanych klas • nawigacji • liczebności • agregacji

  10. Nazwy asocjacji Podając nazwę asocjacji, określa się istotę danego związku. W celu uniknięcia nieporozumień przy nazwie asocjacji można podać kierunek jej odczytu. Istnieje szereg możliwości oznaczania nazw asocjacji. Mogą one być: • nienazwane • nazwane, z opcjonalnym zamieszczeniem znacznika wskazującego kierunek interpretacji asocjacji • scharakteryzowane poprzez role klas pełnione w asocjacji • nazwane i równocześnie scharakteryzowane przez role

  11. Role asocjacji Każdą asocjację można interpretować dwustronnie poprzez podanie ról pełnionych przez powiązane ze sobą klasy. Rola asocjacji w związku binarnym jest powinnością pełnioną przez jedną klasę obiektu wobec drugiej klasy. W asocjacji n-arnej role można przypisać każdej z powiązanych ze sobą klas. Nazwy ról umieszcza się po obydwu stronach asocjacji. Rola spełniana przez daną klasę lokowana jest bezpośrednio przy klasie określanej.

  12. Nawigacja Do wykonywania operacji na obiektach poszczególnych klas niezbędne jest przesyłanie komunikatów pomiędzy nimi. Dla każdej asocjacji istniejącej pomiędzy klasami komunikowanie domyślnie odbywa się w obydwu kierunkach asocjacji. Jest to nawigacja dwukierunkowa. W praktyce występują sytuacje, w których wskazanie kierunku nawigacji zwiększa efektywność komunikowania się. Mamy wtedy do czynienia z nawigacją jednokierunkową.

  13. Liczebność Klasom odpowiadają określone liczby obiektów. Liczebność to specyfikacja zakresu dopuszczalnej liczby obiektów danej klasy biorących udział w danym związku. A zatem jest to określenie liczby obiektów jednej klasy, które wiążą się z jednym obiektem drugiej klasy znajdującym się po przeciwnej stronie tej samej asocjacji.

  14. 1 1..* 0..1 * 0..* n 1..n 0..n n..m n..* n, m, o..p, q dokładnie jeden jeden lub wiele zero lub jeden wiele zero lub wiele dokładnie n (n>1) od 1 do n od 0 do n od n do m (n,m>1) więcej niż n liczebność złożona Liczebności

  15. Agregacja Kolejną cechą asocjacji jest agregacja, która opisuje związek całość-część pomiędzy klasami. W rzeczywistości istnieje wiele złożonych obiektów składających się z części, które w połączeniu stanowią spójną całość. Wyróżnia się dwa rodzaje agregacji: • agregację całkowitą (kompozycję) • agregację częściową Dla wymienionych pojęć używa się alternatywnych nazw. Kompozycja nazywana jest również agregacją silną lub składową, natomiast agregacja częściowa – agregacją słabą lub współdzieloną.

  16. Agregacja W obydwu rodzajach agregacji występują dwa podstawowe pojęcia: • agregat, czyli obiekt stanowiący całość • segment, czyli część W przypadku agregacji całkowitej obiekty-segmenty będące częściami agregatów nie mogą samodzielnie i niezależnie funkcjonować. Usunięcie agregatu powoduje automatyczną likwidację wszystkich segmentów będących jego częściami. Natomiast agregacja częściowa wskazuje na asocjację, w której usunięcie obiektu będącego agregatem nie powoduje likwidacji obiektów będących jego częściami, czyli obiektów-segmentów. Obiekty współdzielone mogą zatem funkcjonować samodzielnie, niezależnie od agregatu.

  17. Atrybuty i operacje statyczne W języku UML atrybuty oraz operacje statyczne (będące właściwością klasy, a nie obiektu) oznacza się przez podkreślenie linią ciągłą.

  18. Klasy i operacje abstrakcyjne Nazwy klas abstrakcyjnych, nie mających konkretnych instancji obiektów oraz operacji abstrakcyjnych (nie mających konkretnej implementacji w danej klasie) pisane są w diagramach UML kursywą.

  19. Widoczność Widoczność oznacza poziom dostępności atrybutów i operacji dla innych klas. W języku UML stosowane są następujące poziomy widoczności: • Publiczny + • Prywatny – • Chroniony # • Pakietowy ~

  20. Typy wartości oraz wartości początkowe Dla atrybutów oraz operacji można po dwukropku określić ich typy wartości (w przypadku operacji jest to typ wartości zwracanej przez daną operację). Dla operacji można również w nawiasach podać typy wartości argumentów oraz kierunki ich przekazywania (in, out). Atrybutom można także nadać wartości początkowe pisząc je po znaku =

  21. Uogólnienia, dziedziczenie Za pomocą diagramów UML można przedstawiać związki dziedziczenia klas. Klasy na najniższym poziomie hierarchii nazywane są liśćmi (oznaczenie {leaf}), natomiast na najwyższym – klasami podstawowymi albo korzeniami (oznaczenie {root}). Oznaczenia {leaf} oraz {root} są opcjonalne.

  22. Zależności Zależność to taki związek pomiędzy dwoma elementami modelowania, w którym zmiana jednego z nich, niezależnego, wpływa na drugi, zależny. Związek ten w diagramach klas odgrywa mniejsze znaczenie. Oznacza on, że niezależna klasa obiektów wykorzystuje klasę zależną. Klasa niezależna jest także nazywana docelową, natomiast zależna źródłową.

  23. Bibliografia • Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski – „Język UML 2.0 w modelowaniu systemów informatycznych” • Martin Fowler – „UML w kropelce” • Dokumentacja UML opracowana przez OMG • Wikipedia

More Related