Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapt_PTru_RUvizh_CNzh_TW

Diagram klas UML: Kompletny przewodnik po referencjach

Class Diagram Sample


Wprowadzenie do diagramów klas

Diagram klaszapewnia przegląd systemu docelowego poprzez opisanie obiektów i klas wewnątrz systemu oraz relacji między nimi. Zapewnia szeroki zakres zastosowań; od modelowania struktury danych specyficznych dla domeny po szczegółowy projekt systemu docelowego.

Główne korzyści:

  • Modelowanie domeny: Zbieraj jednostki biznesowe i ich relacje

  • Projektowanie systemu: Określ architekturę oprogramowania na poziomie klas

  • Generowanie kodu: Generuj kod implementacyjny z elementów modelu

  • Dokumentacja: Twórz utrzymywalną dokumentację techniczną

  • Ponowne wykorzystanie modelu: Udostępniaj modele klas między diagramami interakcji w celu modelowania zachowań dynamicznych

  • Automatyczne generowanie: Użyj diagramu formularza do automatycznego generowania diagramów z zdefiniowanym przez użytkownika zakresem


Podstawowe oznaczenia i elementy

Podstawowe elementy strukturalne

Class Icon Klasa

Class

Definicja: Klasa opisuje zbiór obiektów, które dzielą te same specyfikacje cech, ograniczeń i znaczeń. Klasa to rodzaj klasyfikatora, którego cechami są atrybuty i operacje.

Kluczowe właściwości:

Właściwość Opis
Nazwa Nazwa klasy
Rodzic Element modelu, który posiada klasę
Widoczność Określa wygląd i dostępność przestrzeni nazw
Abstrakcyjny Jeśli prawda, klasa nie może być bezpośrednio instancjonowana
Liść Jeśli prawda, klasa nie może być dalej specjalizowana
Pierwiastek Wskazuje, czy klasa nie ma przodków
Aktywny Określa, czy obiekty są aktywne (równoległe) czy pasywne
Atrybuty Bezpośrednie właściwości należące do klasy
Operacje Cechy zachowania określające parametry wywołania
Parametry szablonu Formalne parametry do powiązania szablonu

Enumeration Icon Klasa <>

Enumeration

Definicja: Forma klasy działająca jako kontener literałów wyliczenia. Na przykład wyliczenie Kolor zawiera literały wyliczenia czerwonyzielony, oraz niebieski.


Interface Icon Klasa <>

Interface

Definicja: Interfejs to rodzaj klasyfikatora reprezentujący deklarację zestawu spójnych publicznych cech i zobowiązań. Interfejs określa kontrakt; każda instancja klasyfikatora realizująca interfejs musi spełnić ten kontrakt.

Kluczowe cechy:

  • Interfejsy są deklaracjami i nie mogą być instancjonowane

  • Zaimplementowane przez instancje klas instancjonowalnych

  • Klasifikator może zaimplementować wiele interfejsów

  • Może zawierać ograniczenia i specyfikacje protokołów


Primitive Icon Klasa <>

Primitive

Definicja: Forma klasy, która reprezentuje zdefiniowany typ danych. Na przykład klasa boolean klasy (typu).


Note Icon Uwaga

Note

Definicja: Uwaga (komentarz) umożliwia dołączanie różnych uwag do elementów. Komentarz nie ma siły semantycznej, ale może zawierać informacje przydatne dla modelera.


Constraint Icon Ograniczenie

Constraint

Definicja: Warunek lub ograniczenie wyrażone w tekście naturalnym języku lub w języku czytelnym dla maszyny w celu zadeklarowania części semantyki elementu.

Właściwości:

Właściwość Opis
Nazwa Opcjonalna nazwa ograniczenia
Wyrażenie Warunek, który musi być spełniony, aby ograniczenie było spełnione
Dokumentacja Opis ograniczenia

Collaboration Icon Współpraca

Collaboration

Definicja: Współpraca jest reprezentowana jako rodzaj klasifikatora i definiuje zbiór współpracujących jednostek, które mają być odgrywane przez instancje (ich role), a także zbiór połączeń definiujących ścieżki komunikacji między uczestniczącymi instancjami.


Model Icon Model

Definicja: Pakiet najwyższego poziomu zawierający cały model lub istotną część jego części.


NARY Icon NARY

Definicja: Reprezentuje powiązanie n-arnie łączące jednocześnie wiele klasifikatorów.


Typy relacji

Relacje powiązań

Association Icon Powiązanie (bez agregacji)

Association

Definicja: Powiązanie określa relację semantyczną, która może wystąpić między wystąpieniami typowymi. Ma co najmniej dwa końce reprezentowane przez właściwości, z których każda jest połączona z typem końca.

Kluczowe właściwości:

Właściwość Opis
Nazwa Nazwa powiązania
Widoczność Wygląd i dostępność w przestrzeni nazw
Koniec powiązania Od/Do Źródło i cel powiązania
Abstrakcyjny Jeśli prawda, powiązanie jest niekompletne i nie może być instancjonowane
Liść Jeśli prawda, powiązanie nie może być dalej specjalizowane
Wyprowadzony Określa, czy jest wyprowadzony z innych elementów modelu

Aggregation Icon Agregacja (powiązanie współdzielone)

Aggregation

Definicja: Rodzaj powiązania, którego jeden z końców jest oznaczonyudostępnionejako rodzaj agregacji, oznaczającego, że ma udostępnioną agregację (relację całość-część, w której części mogą istnieć niezależnie).


Composition Icon Kompozycja (złożona relacja)

Composition

Definicja: Silna forma agregacji, w której wystąpienie części może być zawarte co najwyżej w jednym złożeniu naraz. Jeśli złożenie jest usuwane, jego wszystkie części są zwykle usuwane razem z nim.

Kluczowe cechy:

  • Części nie mogą należeć do wielu złożonych jednocześnie

  • Usuwanie złożenia zwykle powoduje usunięcie jego części

  • Części mogą być usuwane przed usunięciem złożenia

  • Kompozycje mogą tworzyć skierowane grafy acykliczne z transformatywnym usuwaniem


Association Class Icon Klasa relacji

Association Class

Definicja: Element modelu, który ma zarówno właściwości relacji, jak i klasy. Klasę relacji można traktować jako relację mającą również właściwości klasy, albo jako klasę mającą również właściwości relacji.

Powiązany zasóbRysowanie klasy relacji


Zależności

Dependency Icon Zależność

Dependency

Definicja: Relacja oznaczająca, że pojedynczy lub zbiór elementów modelu wymaga innych elementów modelu do ich specyfikacji lub implementacji.

Właściwości:

Właściwość Opis
Dostawca Niezależny element(y) w relacji
Klient Zależny element(y) w relacji
Widoczność Wygląd i dostępność przestrzeni nazw
Mapowanie Opcjonalny wyrażenie określające relację

Abstraction Icon Abstrakcja

Abstraction

Definicja: Relacja łącząca dwa elementy lub zbiory elementów, które reprezentują tę samą koncepcję na różnych poziomach abstrakcji lub z różnych punktów widzenia.


Realization Icon Realizacja

Realization

Definicja: Specjalizowana relacja abstrakcji między dwoma zbiorami elementów modelu, z których jeden reprezentuje specyfikację (dostawcę), a drugi implementację drugiego (klienta).

Przypadki użycia: Krokowe wzbogacanie, optymalizacje, przekształcenia, szablony, syntezowanie modeli, kompozycja frameworków


Generalization Icon Generalizacja

Generalization

Definicja: Relacja taksonomiczna między bardziej ogólnym klasifikatorem a bardziej szczegółowym klasifikatorem. Każdy egzemplarz klasifikatora szczegółowego jest również pośrednim egzemplarzem klasifikatora ogólnego.

Kluczowa właściwość:

Właściwość Opis
Zastępowalny Jeśli prawda, konkretny klasifikator może zastąpić klasifikator ogólny w czasie wykonywania

Usage Icon Użycie

Usage

Definicja: Relacja, w której jeden element wymaga innego elementu (lub zbioru elementów) do pełnej realizacji lub działania.


Access Icon Dostęp

Access

Definicja: Import elementu zdefiniowany jako skierowana relacja między przestrzenią nazw importującą a elementem pakowalnym. Nazwa elementu pakowalnego lub jego alias jest dodawana do przestrzeni nazw importującej.

Oznaczenie:

  • <<import>> słowo kluczowe dla widoczności publicznej

  • <<access>> kluczowe słowo dla widoczności prywatnej


Import Icon Import

Import

Definicja: Import pakietu jest definiowany jako relacja skierowana, która identyfikuje pakiet, którego elementy mają być importowane przez przestrzeń nazw.


Permission Icon Zezwolenie

Permission

Definicja: Rodzaj zależności, która udziela elementowi modelu uprawnienia do dostępu do elementów w innej przestrzeni nazw.


Instantiation Icon Instancjonowanie

Instantiation

Definicja: Zależność użycia między klasifikatorami wskazującą, że operacje na kliencie tworzą instancje dostawcy.


Binding Icon Powiązanie

Binding

Definicja: Powiązanie szablonu to relacja skierowana od powiązanego elementu szablonowego do sygnatury szablonu docelowego. Powiązanie szablonu posiada zestaw podstawień parametrów szablonu.


Derive Icon Wyprowadzenie

Derive

Definicja: Określa relację wyprowadzenia między elementami modelu, które zwykle, ale niekoniecznie, są tego samego typu. Zależność wyprowadzona wskazuje, że klient może być obliczony na podstawie dostawcy.


Refine Icon Udoskonalenie

Refine

Definicja: Określa relację doskonalenia między elementami modelu na różnych poziomach semantycznych, takich jak analiza i projekt.

Przypadki użycia: Przekształcenia od analizy do projektu, ewolucja modelu


Trace Icon Śledzenie

Trace

Definicja: Określa relację śledzenia między elementami modelu lub zestawami elementów modelu, które reprezentują tę samą koncepcję w różnych modelach.

Główny zastosowanie: Śledzenie wymagań i zmian między modelami; mapowanie jest zwykle nieformalne i dwukierunkowe


Substitution Icon Zastępowanie

Substitution

Definicja: Relacja między dwoma klasifikatorami, która oznacza, że klasifikator zastępujący spełnia kontrakt określony przez klasifikator kontraktowy.

Implikacja: Instancje klasyfikatora zastępczego są zastępowalne w czasie wykonywania tam, gdzie oczekiwane są instancje klasyfikatora kontraktowego.


Merge Icon Połączenie

Merge

Definicja: Połączenie pakietów to kierowana relacja między dwoma pakietami, która wskazuje, że zawartość tych dwóch pakietów ma zostać połączona.

Kluczowe cechy:

  • Podobne do uogólnienia, ale dla zawartości pakietów

  • Używane, gdy elementy w różnych pakietach reprezentują tę samą koncepcję

  • Zezwala na stopniowe rozszerzanie podstawowych koncepcji

  • W szczególności przydatne w modelowaniu metamodeli i definiowaniu metamodeli UML


Warianty klas i stereotypy

Klasy specyficzne dla ORM

ORM Persistable Icon Klasa <>

ORM Persistable

Definicja: Specjalna forma klasy, która może być używana do modelowania modelu obiektowego bazy danych relacyjnej. Kod ORM może być generowany z zestawu klas ORM Persistable.

Dodatkowe właściwości:

Właściwość Opis
Szczegóły klasy ORM Ustawienia wpływające na generowanie kodu ORM
Klucz biznesowy Używane do generowania operacji equals() i hashCode()
Zapytanie ORM Zdefiniuj kwalifikatory ORM i zapytania nazwane

ORM Abstract Persistable Icon Klasa <>

ORM Abstract Persistable

Definicja: Specjalna forma klasy, która przechwytuje wspólne atrybuty klas podrzędnych ORM Persistable.


ORM User Type Icon Klasa <>

ORM User Type

Definicja: Klasa typu użytkownika definiuje typ obiektu dla modelu obiektowego, który może być dostępny w wygenerowanym kodzie ORM i trwale przechowywany w bazie danych jako kolumna zamiast encji.

Powiązany zasóbWsparcie typu użytkownika Hibernate


ORM Parameterized Type Icon Klasa <>

ORM Parameterized Type

Definicja: Typ parametryzowany ORM umożliwia zapewnienie poprawności danych poprzez implementację sprawdzania poprawności w wygenerowanym kodzie ORM.


Entity Bean Icon Klasa <>

Entity Bean

Definicja: Specjalna forma klasy do modelowania beanu encji EJB.

Dodatkowe właściwości:

Właściwość Opis
Szczegóły kodu klasy EJB Atrybuty związane z EJB do generowania kodu

Właściwości i konfiguracja

Odwołanie do wspólnych właściwości klasy

Właściwość Dotyczy Opis
Nazwa Wszystkie elementy Identyfikator elementu modelu
Nadrzędny Klasy, Interfejsy Element modelu właściciela
Widoczność Największość elementów Kontroluje wygląd przestrzeni nazw: publicznyprywatnychronionypakiet
Abstrakcyjny Klasy, Połączenia Jeśli prawda, element jest niekompletny i nie może być bezpośrednio instancjonowany
Liść Klasy, Połączenia Jeśli prawda, element nie może być dalej specjalizowany
Pierwiastek Klasy Wskazuje, czy element nie ma przodków
Aktywny Klasy Określa, czy obiekty są aktywne (równoległe) czy pasywne
Model biznesowy Klasy Flaga do oznaczenia jako „klasa biznesowa”
Atrybuty Klasy Bezpośrednie właściwości należące do klasy
Operacje Klasy Cechy zachowania z parametrami i ograniczeniami
Parametry szablonu Elementy szablonowe Parametry formalne dla elementów ogólnych/parametryzowanych
Wyprowadzone Związki Określa, czy element jest wyprowadzony z innych elementów modelu

Ustawienia generowania kodu

Konfiguracja specyficzna dla Java

Konfiguracja specyficzna dla ORM

  • Zapytanie ORM: Zdefiniuj kwalifikatory i nazwane zapytania dla klas trwale zapisywalnych

  • Klucz biznesowy: Skonfiguruj pola używane do generowania equals()/hashCode()

  • Mapowanie kolumn: Określ nazwy i typy kolumn bazy danych


Powiązane typy diagramów UML

Diagramy klas integrują się z innymi diagramami UML w celu kompleksowego modelowania systemu:

Typ diagramu Cel Link
Diagram przypadków użycia Zbieraj wymagania funkcjonalne Diagram przypadków użycia
Diagram sekwencji Modeluj interakcje dynamiczne w czasie Diagram sekwencji
Diagram komunikacji Pokaż interakcje między obiektami i połączenia Diagram komunikacji
Diagram maszyny stanów Zamodeluj cykl życia obiektu i stany Diagram maszyny stanów
Diagram aktywności Zamodeluj przepływy pracy i procesy Diagram aktywności
Diagram składników Pokaż fizyczne składniki oprogramowania Diagram składników
Diagram wdrażania Zamodeluj wdrażanie sprzętu i oprogramowania Diagram wdrażania
Diagram pakietów Zorganizuj elementy modelu w pakietach Diagram pakietów
Diagram obiektów Pokaż instancje w konkretnym momencie Diagram obiektów
Diagram struktury złożonej Zamodeluj wewnętrzną strukturę klasifikatorów Diagram struktury złożonej
Diagram czasu Skup się na ograniczeniach czasowych Diagram czasu
Diagram przeglądowy interakcji Połącz diagramy interakcji i aktywności Diagram przeglądowy interakcji

Lista odniesień

  1. Odniesienia do głównych diagramów
  2. Diagram przypadków użycia: Wizualne przedstawienie funkcjonalności systemu z perspektywy użytkownika, uchwytywanie aktorów i ich celów.

  3. Diagram sekwencji: Pokazuje interakcje obiektów ułożone w kolejności czasowej, podkreślając porządek przekazywania wiadomości.

  4. Diagram komunikacji: Prezentuje interakcje obiektów z naciskiem na relacje strukturalne między obiektami.

  5. Diagram maszyny stanów: Modeluje zachowanie dynamiczne obiektu poprzez stany cyklu życia i przejścia.

  6. Diagram aktywności: Reprezentuje przepływy pracy, procesy biznesowe i kroki operacyjne z uwzględnieniem przepływu sterowania.

  7. Diagram składników: Ilustruje fizyczne składniki oprogramowania, ich interfejsy i zależności.

  8. Diagram wdrażania: Pokazuje węzły sprzętowe, artefakty oprogramowania oraz ich relacje wdrażania.

  9. Diagram pakietów: Organizuje elementy modelu w hierarchiczne pakiety w celu zapewnienia modułowości i zarządzania przestrzenią nazw.

  10. Diagram obiektów: Wyświetla instancje klas i ich połączenia w konkretnym momencie czasu.

  11. Diagram struktury złożonej: Modeluje strukturę wewnętrzną klasifikatorów, w tym części, porty i połączenia.

  12. Diagram czasu: Skupia się na ograniczeniach czasowych i zmianach stanów w dokładnych przedziałach czasu.

  13. Diagram przeglądowy interakcji: Łączy diagramy interakcji z notacją diagramu aktywności w celu przedstawienia przepływu interakcji na wysokim poziomie.

  14. Odniesienia do notacji diagramu klas
  15. Abstrakcja: Relacja łącząca elementy reprezentujące tę samą koncepcję na różnych poziomach abstrakcji.

  16. Dostęp: Relacja importu elementu kontrolująca widoczność importowanych elementów pakowalnych.

  17. Agregacja (społeczna relacja): Relacja całość-część, w której części mogą istnieć niezależnie od całości.

  18. Związek (bez agregacji): Relacja semantyczna między wystąpieniami typowymi z nawigowalnymi końcami.

  19. Klasa związku: Element modelu łączący właściwości związku i klasy do atrybutów relacji.

  20. Powiązanie: Relacja powiązania szablonu z podstawieniem parametrów dla elementów ogólnych.

  21. Klasa: Podstawowy klasyfikator opisujący obiekty o wspólnych cechach, atrybutach i operacjach.

  22. Klasa <>: Klasa kontenera dla literałów wyliczenia reprezentujących zbiory stałych wartości.

  23. Klasa <>: Specyfikacja kontraktu deklarująca publiczne cechy dla klas implementujących.

  24. Klasa <>: Wstępnie zdefiniowana klasa typu danych reprezentująca podstawowe typy języka.

  25. Klasa <>: Klasa mapowana na bazę danych wspierająca generowanie kodu ORM i trwałość.

  26. Klasa <>: Abstrakcyjna klasa bazowa do współdzielenia wspólnych atrybutów ORM między zapisywalnymi podklasami.

  27. Klasa <>: Niestandardowy typ zapisywany jako kolumna bazy danych zamiast tabeli encji.

  28. Klasa <>: Typ parametryzowany umożliwiający weryfikację poprawności danych w kodzie ORM.

  29. Klasa <>: Klasa modelu EJB entity bean dla aplikacji Java w przedsiębiorstwie.

  30. Współpraca: Klasyfikator definiujący role współpracy i ścieżki komunikacji dla oddziałujących wystąpień.

  31. Kompozycja (złożona relacja): Silna relacja całość-część z wyłącznym prawem własności i kaskadowym usuwaniem.

  32. Ograniczenie: Warunek lub ograniczenie określające semantykę elementów modelu.

  33. Zależność: Relacja wskazująca, że jeden element wymaga innego do specyfikacji lub implementacji.

  34. Wyprowadzić: Relacja określająca, że element klienta można obliczyć na podstawie elementu dostawcy.

  35. Uogólnienie: Relacja dziedziczenia, w której konkretny klasifikator dziedziczy cechy z ogólnego klasifikatora.

  36. Import: Relacja importu pakietu, która czyni członków pakietu dostępnych w przestrzeni nazw importującej.

  37. Instancjonowanie: Zależność wskazująca, że operacje klienta tworzą instancje klasifikatora dostawcy.

  38. Scalenie: Scalanie pakietów łączące zawartość dwóch pakietów w celu rozszerzania koncepcji w sposób inkrementalny.

  39. Model: Główne pojemnik do organizowania elementów modelu i pakietów.

  40. N-ARNY: N-arną asociacja łącząca jednocześnie wiele klasifikatorów.

  41. Notatka: Element komentarza do dołączania nie-semantycznych uwag do elementów modelu.

  42. Zezwolenie: Zależność nadająca uprawnienia dostępu do elementów w innej przestrzeni nazw.

  43. Realizacja: Specjalizowana abstrakcja, w której klient realizuje specyfikację zdefiniowaną przez dostawcę.

  44. Udoskonalenie: Relacja między elementami modelu na różnych poziomach semantycznych, takich jak analiza i projekt.

  45. Zastąpienie: Relacja wskazująca, że zastępujący klasifikator spełnia specyfikację klasifikatora kontraktowego.

  46. Śledzenie: Śledzenie relacji tego samego pojęcia w różnych modelach, głównie do zarządzania wymaganiami.

  47. Użycie: Zależność, w której element klienta wymaga elementu dostawcy do pełnej realizacji lub działania.

  48. Poradniki i odniesienia do zasobów
  49. Rysowanie klasy asocjacji: Poradnik krok po kroku tworzenia klas asocjacji w Visual Paradigm.

  50. Generuj i synchronizuj kod Java: Poradnik dotyczący inżynierii dwukierunkowej między diagramami klas a implementacją Java.

  51. Wsparcie dla typów użytkownika Hibernate: Zasób do implementacji niestandardowych typów użytkownika Hibernate przy użyciu klas ORM-Persistable.

  52. Odniesienie do standardów
  53. Obiektowa Grupa Zarządzania – Język Modelowania Unifikowanego: Oficjalne źródło specyfikacji UML od organizacji standardów regulujących UML.

  54. Definicja notacji pochodzi z Obiektowa Grupa Zarządzania Język Modelowania Unifikowanego (OMG UML) Superstruktura w wersji 2.2 i wcześniejszych wersjach (dla notacji, które już nie istnieją w najnowszej specyfikacji).


  1. Ten przewodnik opiera się na dokumentacji diagramów klas UML w Visual Paradigm. Aby uzyskać najnowsze specyfikacje, zawsze odwołuj się do oficjalnych standardów OMG UML.