diagramy klas w języku uml

Post on 07-Jan-2016

63 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Diagramy klas w języku UML

Karol Sierpień

Informatyka III rok, studia dzienne

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.

Rodzaje diagramów

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ą

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.

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

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

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

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.

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

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

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.

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

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.

Liczebności

11..*0..1*0..*n1..n0..nn..mn..*n, m, o..p, q

dokładnie jedenjeden lub wielezero lub jedenwielezero lub wieledokładnie n (n>1)od 1 do nod 0 do nod n do m (n,m>1)więcej niż nliczebność złożona

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

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.

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łą.

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

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 ~

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 =

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.

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

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

top related