Diagram klas
Diagram klas– statycznydiagramstrukturalny wUML,przedstawiający strukturę systemu w modelachobiektowychprzez ilustrację strukturyklasi zależności między nimi.
Diagram klas przedstawia klasy (typy) obiektów w programie, w odróżnieniu oddiagramu obiektów,który pokazuje jedynie egzemplarze (instancje) obiektów i ich zależności istniejące w konkretnym momencie.
Diagram klas pokazuje określony fragment struktury systemu. Diagramów klas używa się do modelowania statycznych aspektów perspektywy projektowej. Wiąże się z tym silnie modelowanie słownictwa systemu, kooperacji lub schematów. Diagramy klas pozwalają na sformalizowanie specyfikacji danych i metod. Mogą także pełnić rolę graficznego środka pokazującego szczegółyimplementacjiklas.
Klasy
[edytuj|edytuj kod]Klasaw modelu UML programu obiektowego jest reprezentowana przez prostokąt z umieszczoną wewnątrz nazwą klasy. Oddzielona część prostokąta pod nazwą klasy może zawieraćatrybutyklasy, czylimetody(funkcje),właściwości(properties) lubpola(zmienne). Każdyatrybutpokazywany jest przynajmniej jako nazwa, opcjonalnie także z typem, wartością i innymi cechami.
Metodyklasy mogą znajdować się w osobnej części prostokąta. Każdametodajest pokazywana przynajmniej jako nazwa, a dodatkowo także ze swoimi parametrami i zwracanym typem.
Atrybuty (zmienne i właściwości) oraz metody mogą mieć też oznaczoną widoczność (zakres znaczenia ich nazw) jak następuje:
- "+" dlapublic– publiczny, dostęp globalny
- "#" dlaprotected– chroniony, dostęp dla pochodnych klasy (wynikających z generalizacji)
- "−" dlaprivate– prywatny, dostępny tylko w obrębie klasy (przy atrybucie statycznym) lub obiektu (przy atrybucie zwykłym)
- "~" dlapackage– pakiet, dostępny w obrębie danego pakietu, projektu.
Związki (powiązania)
[edytuj|edytuj kod]Zależność
[edytuj|edytuj kod]Zależność (ang.dependency) – najsłabszy związek znaczeniowy między klasami, gdy jedna z klas używa innej. Na diagramie klas oznaczana przerywaną linią zakończoną strzałką wskazującą kierunek zależności.
Asocjacja
[edytuj|edytuj kod]Asocjacja (ang.association) wskazuje na silniejsze powiązanie pomiędzy obiektami danych klas (np. firma zatrudnia pracowników). Na diagramie asocjację oznacza się za pomocą linii, która może być zakończona strzałką z otwartym grotem (oznaczającą kierunek powiązania klas). Nazwy cech (np. zatrudniony, zatrudniający) wraz z krotnością umieszcza się w punkcie docelowym asocjacji. Nazwę asocjacji podaje się pośrodku (np. zatrudnia).
Generalizacja
[edytuj|edytuj kod]Generalizacja lub dziedziczenie (ang.generalizationlubinheritence) – związek opisujący klasy i podklasy (ogólne klasy i szczegółowe lub inaczej rodziców i dzieci). Na diagramie generalizację oznacza się za pomocą niewypełnionego trójkąta symbolizującego strzałkę (skierowaną od klasy pochodnej do klasy bazowej).
Agregacja
[edytuj|edytuj kod]Agregacja (ang.aggregation) reprezentuje związek typu całość-część, czyli jakaś większa całość jest rozbita na elementy. Oznacza to, że elementy częściowe mogą należeć do większej całości, jednak również mogą istnieć bez niej (np. koła i samochód). Na diagramie agregację oznacza się za pomocą linii zakończonej pustym rombem.
Kompozycja
[edytuj|edytuj kod]Kompozycja (ang.composition), jest silniejszą formą agregacji. W związku kompozycji, części należą tylko do jednej całości, a ich okres życia jest wspólny — razem z całością niszczone są również części. W dużej mierze jest to kwestia umowna, zależna od danego systemu. Przykładowo silnik samochodowy mógłby istnieć osobno w jednym systemie (zwykła agregacja), a w innym można przyjąć, że jest niszczony razem z samochodem (kompozycja). Na diagramie, kompozycję oznacza się za pomocą linii zakończonej wypełnionym rombem.