Diagram klas składa się głównie z klas, interfejsów i różnych relacji, które obejmują relacje generalizacji, zależności, asocjacji i implementacji.
Diagram klas to jeden z rodzajów statycznych widoków w modelowaniu UML, używany do opisu klas, interfejsów, współpracy oraz ich wzajemnych relacji. Służy do przedstawienia statycznej struktury tych pojęć w systemie i jest szeroko stosowany w analizie i projektowaniu systemów w inżynierii oprogramowania.
Diagram klas jest głównym elementem modelowania obiektowego i stanowi podstawę dla innych diagramów UML. Na podstawie diagramu klas można rysować diagramy stanów, diagramy współpracy, diagramy komponentów i diagramy konfiguracji.
Diagram klas jest statycznym modelem używanym do przedstawienia statycznej struktury i relacji klas oraz interfejsów w systemie. Po zaprojektowaniu diagramu klas przez projektanta oprogramowania, programista może zaimplementować w kodzie zawartość diagramu klas.
Współpraca wielu użytkowników w czasie rzeczywistym z linkami do udostępniania
Automatyczne generowanie grafiki z tekstu z ulepszaniem stylu
Wbudowane motywy z pełną personalizacją
Obsługa ikon, obrazów, etykiet, formuł LaTeX, bloków kodu, linków, załączników
Eksport: PNG, VISIO, PDF, SVG | Import: VISIO, Mermaid
Przechowywanie w chmurze w czasie rzeczywistym, synchronizacja wielourządzeniowa, historia wersji i bezpieczeństwo danych
Diagram klas składa się głównie z klas, interfejsów i różnych relacji, które obejmują relacje generalizacji, zależności, asocjacji i implementacji.
Klasa zwykle składa się z nazwy, atrybutów i operacji. Ponadto, struktura klasy zawiera również informacje o jej odpowiedzialności, ograniczeniach i komentarzach.
Klasa jest przedstawiana w diagramie klas za pomocą prostokąta podzielonego na trzy części: pierwsza część to nazwa klasy, druga to atrybuty klasy, a trzecia to operacje klasy.
Nazwa klasy powinna być rzeczownikiem, a nazwa klasy powinna dokładnie i jasno odzwierciedlać pojęcie w domenie problemu. Zgodnie z konwencją UML, każda litera w nazwie klasy powinna być wielka, a pisanie prostym krojem czcionki oznacza klasy konkretne, podczas gdy kursywa oznacza klasy abstrakcyjne.
Interfejs jest również przedstawiany w diagramie klas za pomocą prostokąta, ale różni się od klasy tym, że w pierwszej części interfejsu używa się stereotypu <<interface>>, poniżej znajduje się nazwa interfejsu, a druga część zawiera metody interfejsu.
Istnieją pewne relacje między klasami i interfejsami oraz między samymi interfejsami. W diagramie klas UML zazwyczaj linie wskazują relacje między nimi. Istnieje sześć typów relacji: implementacja, generalizacja, asocjacja, zależność, agregacja i kompozycja.
1. Diagram klas opisuje ogólną sytuację, podczas gdy diagram obiektów opisuje konkretną sytuację.
2. Diagram klas może w pełni opisać strukturę obiektów systemu, podczas gdy diagram obiektów nie może.
3. Jedna klasa w diagramie klas może odpowiadać wielu obiektom w diagramie obiektów.
Klasa zazwyczaj składa się z nazwy, atrybutów i operacji, przedstawiana jest w postaci prostokątnego pola podzielonego na trzy warstwy: pierwsza warstwa to nazwa klasy, druga to atrybuty klasy, a trzecia to operacje klasy.
W praktyce istnieją trzy formy przedstawiania: „nazwa klasy”, „nazwa klasy” + „atrybuty klasy”, „nazwa klasy” + „operacje klasy”.
Nazwa klasy powinna być rzeczownikiem, każde słowo powinno zaczynać się wielką literą, a nazwy klas, które można instancjować, powinny być pisane prostą czcionką, podczas gdy nazwy klas abstrakcyjnych powinny być pisane kursywą.
Składnia definicji atrybutu klasy: [widoczność] nazwa atrybutu [:typ danych] [=wartość początkowa] [{łańcuch atrybutów}]
Zawartość w nawiasach [] jest opcjonalna.
Ograniczenia klasy określają jedno lub więcej reguł, które klasa musi spełniać. W UML ograniczenia są przedstawiane jako informacje tekstowe ujęte w nawiasy klamrowe.
Relacja implementacji: przedstawiana jako puste trójkątne strzałki + linia przerywana, od klasy implementującej do klasy interfejsu.
Relacja generalizacji: przedstawiana jako puste trójkątne strzałki + linia ciągła, od klasy podrzędnej do klasy nadrzędnej.
Relacja asocjacji: przedstawiana jako strzałki z linii ciągłej, od klasy odwołującej się do klasy odwoływanej.
Relacja agregacji: przedstawiana jako puste romby + linia ciągła, od klasy częściowej do klasy całościowej.
Relacja kompozycji: przedstawiana jako pełne romby + linia ciągła, od klasy częściowej do klasy całościowej.
Relacja zależności: przedstawiana jako strzałki z linii przerywanej, od klasy odwołującej się do klasy zależnej.
Diagramy klas nie są całkowicie niezależne, powinny być abstrahowane z diagramów przypadków użycia w celu określenia klas encji, kontroli i granic, oraz powinny być semantycznie zgodne z diagramami przypadków użycia, diagramami aktywności, diagramami sekwencji itp.
Klasa powinna zachować jedną odpowiedzialność, można podzielić duże klasy i przypisać odpowiedzialności do wielu klas, aby uniknąć wysokiego stopnia sprzężenia, wyraźnie określić granice i zgodnie z zasadami projektowania obiektowego.