Przejdź do zawartości

Diagram klas

Z Wikipedii, wolnej encyklopedii

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.

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]
Oznaczenia związków klas w UML

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]
Przykład generalizacji. Dwie klasy dziedziczą po klasie bazowej.

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.


Linki zewnętrzne

[edytuj|edytuj kod]