Diagram klas

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Diagram klas – w ujednoliconym języku modelowania (UML, ang. Unified Modeling Language), to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez ilustrację struktury klas i zależności między nimi.

Diagram klas przedstawia klasy (typy) obiektów w programie, w odróżnieniu od diagramu 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óły implementacji klas.

Klasy[edytuj | edytuj kod]

Klasa w 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ć atrybuty klasy, czyli metody (funkcje), właściwości (properties) lub pola (zmienne). Każdy atrybut pokazywany jest przynajmniej jako nazwa, opcjonalnie także z typem, wartością i innymi cechami.

Metody klasy mogą znajdować się w osobnej części prostokąta. Każda metoda jest 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:

  • "+" dla public – publiczny, dostęp globalny
  • "#" dla protected – chroniony, dostęp dla pochodnych klasy (wynikających z generalizacji)
  • "−" dla private – prywatny, dostępny tylko w obrębie klasy (przy atrybucie statycznym) lub obiektu (przy atrybucie zwykłym)
  • "~" dla package – pakiet, dostępny w obrębie danego pakietu, projektu.

Związki (powiązania)[edytuj | edytuj kod]

Zależność[edytuj | edytuj kod]

Zależność – najsłabszy związek znaczeniowy między klasami, gdy jedna z nich używa innych klas.

Agregacja[edytuj | edytuj kod]

Agregacja reprezentuje związek typu całość-część. Występuje tutaj relacja posiadania — co oznacza, że elementy częściowe mogą należeć do większej całości, jednak również mogą istnieć bez niej. Na diagramie agregację oznacza się za pomocą linii zakończonej pustym rombem.

Asocjacja[edytuj | edytuj kod]

Asocjacja wskazuje na trwałe 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ą (oznaczającą kierunek nawigacji między klasami). Nazwę cechy wraz z krotnością umieszcza się w punkcie docelowym asocjacji.

Przykład generalizacji. Dwie klasy dziedziczą po klasie bazowej.

Generalizacja[edytuj | edytuj kod]

Generalizacja – związek opisujący dziedziczenie po klasach. Na diagramie generalizację oznacza się za pomocą niewypełnionego trójkąta symbolizującego strzałkę (skierowaną od klasy pochodnej do klasy bazowej).

Kompozycja[edytuj | edytuj kod]

Kompozycja, zwana również złożeniem, jest związkiem typu całość-część. W relacji 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. Na diagramie, kompozycję oznacza się za pomocą linii zakończonej wypełnionym rombem.

Linki zewnętrzne[edytuj | edytuj kod]