Definicja

Diagram klas to statyczny diagram w notacji UML, który stanowi serce modelowania obiektowego. O ile Diagram Przypadków Użycia mówi o tym, co system robi, a Diagram Sekwencji o tym, jak obiekty ze sobą rozmawiają, o tyle Diagram Klas definiuje, z czego system jest zbudowany. Jest to bezpośredni łącznik między wizją analityczną a kodem źródłowym programu.


Elementy klasy na diagramie

Klasa na diagramie przedstawiana jest jako prostokąt podzielony na trzy sekcje:

  1. Nazwa klasy: Zapisywana pogrubioną czcionką na samej górze.
  2. Atrybuty (Pola): Dane, które klasa przechowuje (np. nazwisko: String).
  3. Operacje (Metody): Zachowania, jakie klasa może wykonywać (np. obliczPremię()).

W diagramach klas kluczowa jest również widoczność:

  • + Publiczny (dostępny dla wszystkich)
  • - Prywatny (dostępny tylko wewnątrz klasy)
  • # Chroniony (dostępny dla klasy i jej podklas)

Relacje między klasami

To najważniejszy element diagramu, określający, jak klasy ze sobą współpracują:

1. Asocjacja (Association)

Zwykłe powiązanie między klasami. Może być kierunkowe (strzałka) i posiadać liczebność (podobnie jak w ERD), np. jeden Klient może posiadać wiele Zamówień.

2. Agregacja i Kompozycja

Specyficzne rodzaje relacji “całość-część”:

  • Agregacja (pusty rąb): Część może istnieć bez całości (np. Pracownik w Dziale).
  • Kompozycja (zamalowany rąb): Silna zależność; część nie istnieje bez całości (np. Pokój w Budynku).

3. Generalizacja (Dziedziczenie)

Przedstawiana jako strzałka z pustym grotem. Oznacza relację “jest rodzajem” (np. Programista jest rodzajem Pracownika). Pozwala na współdzielenie atrybutów i metod.


Diagram Klas a Model ERD

Choć oba diagramy wyglądają podobnie, służą innym celom:

Cecha Diagram Klas (UML) Diagram ERD
Perspektywa Logika oprogramowania (OOP). Struktura bazy danych.
Zachowanie Zawiera metody (operacje). Skupia się wyłącznie na danych.
Dziedziczenie Naturalnie wspierane. Trudne do odwzorowania w bazach relacyjnych.

Zastosowanie w analizie systemowej

Dla Analityka Systemowego diagram klas jest narzędziem do:

  • Precyzowania słownika domenowego: Ustalenie, co dokładnie rozumiemy pod pojęciem “Użytkownik” czy “Polisa”.
  • Projektowania API: Atrybuty klasy często stają się polami w obiektach JSON przesyłanych przez API.
  • Weryfikacji spójności: Sprawdzenie, czy system posiada wszystkie niezbędne kontenery na dane potrzebne do realizacji Przypadków Użycia.

Typowe błędy

  • Zbyt niski poziom detali – Umieszczanie każdej drobnej klasy pomocniczej, co czyni diagram nieczytelnym dla biznesu.
  • Brak liczebności relacji – Pozostawienie niejasności, czy relacja jest typu 1:1 czy 1:N.
  • Mylenie kompozycji z agregacją – Błędne modelowanie cyklu życia obiektów, co prowadzi do problemów z usuwaniem danych w systemie.

Podsumowanie

Diagram klas to uniwersalny język techniczny. Pozwala on na bezbłędne zaprojektowanie szkieletu aplikacji, zanim jeszcze powstanie pierwsza linia kodu. Dobrze przygotowany model klas ułatwia deweloperom implementację, a analitykom daje pewność, że system jest logicznie spójny i gotowy na dalszy rozwój.

Powiązane pojęcia:

Kliknij w pojęcie, aby przejść do jego definicji w słowniku