Diagram klas UÅš


Wprowadzenie
Reprezentacja klasy UML
Relacja asocjacji
Pozostałe relacje
Co jeszcze?
Zakończenie
Diagramy klas UML
Wojciech Bura
Instytut Informatyki Uniwersytetu ÅšlÄ…skiego
Sierpień 2010
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Relacja asocjacji Co to jest diagram klas?
Pozostałe relacje Do czego służy diagram klas?
Co jeszcze?
Zakończenie
Co to jest diagram klas?
Diagram klas stanowi statyczny, koncepcyjny widok projektowanej
aplikacji
Pokazuje kluczowe elementy (klasy) oraz ich zwiÄ…zki w systemie
Klasa jest to ogólne określenie dla grupy podobnych obiektów
Obiekt jest instancjÄ… klasy
Pojęcie klasy na diagramie jest ściśle powiązane z technikami
programowania zorientowanego obiektowo
Jest to jeden z istotniejszych diagramów UML
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Relacja asocjacji Co to jest diagram klas?
Pozostałe relacje Do czego służy diagram klas?
Co jeszcze?
Zakończenie
Do czego służy diagram klas?
Pozwala na sformalizowanie specyfikacji danych i zestawu metod
Pełni rolę uniwersalnego środka graficznego wizualizującego
implementacjÄ™ klas
Narzędzia projektowe zgodne ze specyfikacją UML umożliwiają, na
podstawie diagramów klas, generowanie elementów zródeł w
popularnych językach obiektowych, takich jak: C++, Java, C#
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Reprezentacja klasy UML
GraficznÄ… reprezentacjÄ… klasy jest prostokÄ…t,
zwykle poziomo podzielony na trzy sekcje:
nazwÄ™
atrybuty
operacje (metody)
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Reprezentacja klasy UML cd
Wszystkie elementy specyfikacji klasy za wyjÄ…tkiem nazwy klasy sÄ…
opcjonalne.
Nazwa klasy to z reguły rzeczownik w liczbie pojedynczej.
Format pola nazwa klasy
stereotyp nazwaklasy właściwości
Format pola atrybutów
stereotyp dostępność nazwaatrybutu : typ = wartpoczątkowa właściwości
Format pola operacji
stereotyp dostępność nazwametody (listaarg) : typwartzwracanej właściwości
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Widoczność
Dla atrybutów i operacji można przypisać poziom widoczności
publiczny - dostęp mają obiekty dowolnej klasy systemu
prywatny - dostęp mają tylko obiekty tej samej klasy
chroniony - dostęp mają obiekty tej samej klasy oraz obiekty klas
dziedziczÄ…cych
pakiet - dostęp mają tylko obiekty klas w tym samym pakiecie (Java)
Na diagramach widoczność oznaczamy znakiem poprzedzającym
nazwÄ™ elementu
+ :publiczny
- :prywatny
# :chroniony
~ :pakiet
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Typy
Elementy składowe klas oraz paremetry i wartości zwracane przez metody
są określonego typu. Może nim być dowolna klasa w ramach systemu lub
jeden z predefiniowanych typów prostych UML:
Integer  liczba całkowita (C++: int)
Float  liczba zmiennoprzecinkowa (C++: float, double)
String  łańcuch znaków (C++: char* lub std:string)
Void  typ nieokreślony (C++: void)
Zazwyczaj narzędzia UML umożliwiają definiowanie listy typów prostych.
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Elementy statyczne
Element statyczny jest zwiÄ…zany z
klasÄ…, a nie z jej instancjÄ… (obiektem).
Statyczna metoda może odwoływać
się tylko do innych elementów
statycznych.
Zarówno atrybuty jak i operacje klas
mogą być zadeklarowane jako
statyczne
Statyczne elementy klas oznaczane sÄ…
przez podkreślenie
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Klasy abstrakcyjne
Klasa abstrakcyjna
Klasa abstrakcyjna to klasa, która posiada co najmniej jedną metodę
abstrakcyjnÄ…. Metoda abstrakcyjna nie posiada implementacji - jest
jedynie zapowiedziÄ… realizacji w klasach potomnych.
W UML klasy abstrakcyjne wyróżnione są nazwą klasy pisaną
kursywÄ…
Analogicznie, w ten sam sposób mogą być oznaczone jako
abstrakcyjne operacje składowe klasy
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Stereotypy
Jest to mechanizm pozwalający na rozszerzanie zbioru pojęć UML
poprzez dziedziczenie nowych elementów modelu z już istniejących
Wszystkie istniejące elementy UML mogą mieć ustalony stereotyp,
który precyzuje ich semantykę oraz rolę w projektowanym systemie.
Stereotyp reprezentowany jest przez jego nazwę zapisaną pomiędzy
znakami: « , np. «Interface
Określenie konkretnego stereotypu może mieć wpływ na wygląd
elementu na diagramie UML oraz na sposób generowania kodu
zródłowego na podstawie modelu.
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Stereotypy przykłady
«Interface - oznaczenie klasy bÄ™dÄ…cej interfejsem
«Property - oznaczenie zmiennej, która jest wÅ‚asnoÅ›ciÄ… i powinna
posiadać metody dostępu (setter i getter).
«Bind - oznaczenie relacji zależnoÅ›ci tak aby reprezentowaÅ‚a
uszczegółowienie klasy parametrycznej
«Constructor - oznaczenie metody, która peÅ‚ni rolÄ™ konstruktora
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Reprezentacja klasy UML
Widoczność i typy
Relacja asocjacji
Elementy statyczne i klasy abstrakcyjne
Pozostałe relacje
Stereotypy
Co jeszcze?
Związki między klasami
Zakończenie
Związki między klasami
Pełny model obiektowy wymaga opisu związków zachodzących
między klasami
Notacja diagramu klas UML przewiduje następujące rodzaje relacji:
Asocjacja
Agregacja
Kompozycja
Zależność
Generalizacja (dziedziczenie)
Realizacja (implementacja)
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Asocjacja
Relacja asocjacji
Asocjacja n-arna
Pozostałe relacje
Klasa asocjacyjna
Co jeszcze?
Zakończenie
Asocjacja
Asocjacja oznacza tymczasowe powiązanie niezależnych obiektów
dwóch klas.
Jest alternatywym sposobem definiowania cech klasy w stosunku do
atrybutów wpisanych. Asocjacja jest równoważna atrybutowi.
Czas życia połączonych obiektów nie jest ze sobą związany, żaden
obiekt nie nie jest właścicielem drugiego.
Relacja asocjacji może posiadać nazwę, zwykle w formie czasownika.
Asocjacja oznaczana jest liniÄ… Å‚Ä…czÄ…cÄ… graficznÄ… reprezentacjÄ™ klas
będących w relacji
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Asocjacja
Relacja asocjacji
Asocjacja n-arna
Pozostałe relacje
Klasa asocjacyjna
Co jeszcze?
Zakończenie
Nawigowalność
Nawigowalność wskazuje możliwość przejścia z obiektu klasy
zródłowej do docelowej
Oznaczona jest otwartą strzałką, wskazującą możliwy kierunek
przejścia
Domyślnie przyjmuje się dwukierunkowe przejście
Brak strzałki oznacza możliwość nawigacji w obu kierunkach
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Asocjacja
Relacja asocjacji
Asocjacja n-arna
Pozostałe relacje
Klasa asocjacyjna
Co jeszcze?
Zakończenie
Krotność
Krotność
Jest to liczba instancji obiektów jednej klasy, która wchodzi w relację z
instancjÄ… innej klasy.
Cechy krotności:
definiowana osobno dla każdej klasy w relacji
jest określona przez wyrażenie tekstowe w formie oddzielonych
przecinkiem zakresów liczb
musi być zdefiniowana dla dwóch końców relacji
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Asocjacja
Relacja asocjacji
Asocjacja n-arna
Pozostałe relacje
Klasa asocjacyjna
Co jeszcze?
Zakończenie
Sposób oznaczania krotności
Nieokreślona
Dokładnie jeden 1
Zero lub więcej 0..*
Zero lub więcej *
Jeden lub więcej 1..*
Zero lub jeden 0..1
Zakres 2..4
Wielokrotne, rozdzialne zakresy 2, 4..6
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Asocjacja
Relacja asocjacji
Asocjacja n-arna
Pozostałe relacje
Klasa asocjacyjna
Co jeszcze?
Zakończenie
Asocjacja przykład kodu
C++
class TDBEdit : public TBaseControl
{
. . .
private :
TDataSet " m DataSet ;
public :
void SetDataSet(TDataSet " DataSet );
TDataSet " GetDataSet ( );
. . .
};
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Asocjacja
Relacja asocjacji
Asocjacja n-arna
Pozostałe relacje
Klasa asocjacyjna
Co jeszcze?
Zakończenie
Asocjacja n-arna
Zazwyczaj asocjacje opisują relację pomiędzy dwiema klasami
(asocjacje binarne).
Asocjację w której skład wchodzą więcej niż dwie klasy nazywamy
asocjacjÄ… (n-arnÄ…).
Reprezentowana jest jako zestaw linii wychodzÄ…cych z klas
składowych i łączących się w centralnym rombie.
Nie określa nawigowalności - zawsze dwukierunkowa.
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Asocjacja
Relacja asocjacji
Asocjacja n-arna
Pozostałe relacje
Klasa asocjacyjna
Co jeszcze?
Zakończenie
Klasa asocjacyjna
Klasa asocjacyjna jest skrzyżowaniem asocjacji i klasy.
Umożliwia opis szczególnych własności charakteryzujących asocjacje.
Jest przydatna do realizacji przejścia z relacji wiele do wielu do
relacji jeden do wielu.
Graficznie reprezentowana jest tak samo jak zwykła klasa połączona
linią przerywaną z asocjacją, której dotyczy.
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Agregacja
Agregacja jest wariantem asocjacji typu  całość - część lub  składa
siÄ™ z .
Czas życia połączonych obiektów nie jest ze sobą związany, żaden
obiekt nie nie jest właścicielem drugiego.
Agregacja wyróżniana jest pustym symbolem romba po stronie klasy,
która pełni rolę  całości .
Agregacja jest często mylona lub stosowana zamiennie z asocjacją.
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Agregacja przykład kodu
C++
class TWindow
{
. . .
private :
std : : vector m ChildControls ;
. . .
};
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Kompozycja
Kompozycja jest silniejszym wariantem asocjacji typu  całość -
część .
Czas życia połączonych obiektów jest ze sobą ściśle związany.
Obiekty pełniące rolę  części są niszczone gdy niszczona jest
 całość i nie istnieją poza agregatem.
Kompozycja wyróżniana jest pełnym symbolem romba po stronie
klasy, która pełni rolę  całości .
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Kompozycja przykład kodu
C++
class Faktura
{
. . .
private :
std : : vector m Pozycje ;
. . .
};
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Zależność
Zależność jest najsłabszą formą relacji między klasami
Oznacza, że przez jakiś czas obiekty wskazanej klasy używają
obiektów innej klasy
Przykładem takiej relacji jest użycie klasy jako parametru metody
lub użycie obiektów danej klasy w metodzie innej klasy
Zmiany w interfejsie lub sposobie działania klasy, od której zależy
klasa będąca początkiem relacji, może powodować konieczność
zmian w klasie zależnej
Zależność oznaczana jest linią przerywaną łączącą klasy będące w
relacji
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Zależność przykład kodu
C++
void Faktura : : ZapiszDoBazy()
{
TSQLQuery " Query = new TSQLQuery( ) ;
. . .
Query-
>Execute ( );
. . .
delete Query ;
}
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Generalizacja (dziedziczenie)
Relacja między klasami w której jedna klasa współdzieli strukturę
i/lub działanie innej lub wielu innych klas
Klasa podrzędna (subclass, child) dziedziczy z klasy nadrzędnej
(superclass, parent)
Określenie generalizacja i dziedziczenie jest zwykle uznawane za
synonimy
Generalizację oznacza się ciąglą linią zakończoną zamkniętą strzałką
po stronie klasy nadrzędnej
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Generalizacja cd
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Generalizacja przykład kodu
C++
class TBaseControl class TLabel : public TBaseControl
{ {
private : public :
int posX, posY; String GetClassName ( ) ;
public : void Draw( ) ;
void MoveTo( int x , int y ) ; };
virtual String GetClassName ( ) ;
virtual void Draw() = 0;
};
class TEditBox : public TBaseControl
{
public :
String GetClassName ( ) ;
void Draw( ) ;
};
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Realizacja (implementacja)
Realizacja jest połączeniem relacji zależności i generalizacji.
Wskazuje, że pewna klasa dziedziczy abstrakcyjne cechy wskazanej
klasy i je implementuje
Realizację oznacza się przerywaną linią zakończoną zamkniętą
strzałką po stronie klasy nadrzędnej
Zazwyczaj klasÄ… bazowÄ… jest interfejs oznaczony stereotypem
«interface
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Realizacja cd
Wojciech Bura Diagramy klas UML
Wprowadzenie
Agregacja
Reprezentacja klasy UML
Kompozycja
Relacja asocjacji
Zależność
Pozostałe relacje
Generalizacja
Co jeszcze?
Realizacja
Zakończenie
Realizacja przykład kodu Java
Java
public interface IWindow {
public void draw ( ) ;
};
public class GDIWindows implements IWindow {
public void draw ( ) ;
};
public class GTKWindows implements IWindow {
public void draw ( ) ;
};
public class MotifWindows implements IWindow {
public void draw ( ) ;
};
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Dziedziczenie wielokrotne
Relacja asocjacji
Szablony klas
Pozostałe relacje
Pakiety
Co jeszcze?
Zakończenie
Dziedziczenie wielokrotne
O dziedziczeniu wielokrotnym mówimy w systuacji gdy klasa
podrzędna (subclass, child) dziedziczy z więcej niż jednej klasy
nadrzędnej
Nie wszystkie języki programowania wspierają taki model
dziedziczenia (np. C++ wspiera w pełni, Java wspiera wielokrotne
dziedziczenie po interfejsach)
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Dziedziczenie wielokrotne
Relacja asocjacji
Szablony klas
Pozostałe relacje
Pakiety
Co jeszcze?
Zakończenie
Szablony klas
Pojęcie szablonu klas wywodzi się z języka C++
W notacji UML reprezentowane jest przez pojęcie klasy
parametrycznej.
Oznacza niepełną klasę, opisującą działanie i/lub strukturę w
oparciu o typ będący parametrem
Wykorzytanie klasy wymaga uszczegółowienia poprzez
parametryzacjÄ™ wskazanÄ… klasÄ….
Klasa powstająca poprzez uszczegółowienie klasy parametrycznej
jest klasÄ… zwiÄ…zanÄ….
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Dziedziczenie wielokrotne
Relacja asocjacji
Szablony klas
Pozostałe relacje
Pakiety
Co jeszcze?
Zakończenie
Pakiety
Dla dużego systemu zarządzanie klasami może być trudne.
Pakiety umożliwiają podział modelu na przestrzenie nazw
przypominające organizację folderów na dysku.
Podział na pakiety może pomóc w lepszym zrozumieniu większego
modelu.
Zastosowanie pakietów ma przełożenie na organizację generowanych
zródeł (pakiety Java, namespace w C++).
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Dziedziczenie wielokrotne
Relacja asocjacji
Szablony klas
Pozostałe relacje
Pakiety
Co jeszcze?
Zakończenie
Pakiety cd
Reprezentacja graficzna pakietu zawierajÄ…cego trzy klasy.
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Relacja asocjacji Przykładowe narzędzia
Pozostałe relacje Koniec
Co jeszcze?
Zakończenie
Przykładowe narzędzia
Wolne/otwarte:
ArgoUML
BoUML
NetBeans
StarUML
Zamknięte:
Borland Together
Enerprise Architect
IBM Rational Software Modeler
Sybase PowerDesigner
Visual Paradigm for UML (istnieje wersja darmowa)
Wojciech Bura Diagramy klas UML
Wprowadzenie
Reprezentacja klasy UML
Relacja asocjacji Przykładowe narzędzia
Pozostałe relacje Koniec
Co jeszcze?
Zakończenie
Koniec
Dziękuję za uwagę!
Wojciech Bura Diagramy klas UML


Wyszukiwarka

Podobne podstrony:
Diagramy klas
Diagram klas
diagram klas
Diagramy klas
Diagram klas projekt
5 Diagram klas
uml diagramy klas
VA US Top 40 Singles Chart 2015 10 10 Debuts Top 100
149 Ustawa o us ugach turystycznych
SJG US English
us intelligence exploitation of enemy material 2006
07 Diagram sekwencji

więcej podobnych podstron