
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
Klasa

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 |
Klasa <>

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

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
Klasa <>

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

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.
Ograniczenie

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 |
Współpraca

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
Definicja: Pakiet najwyższego poziomu zawierający cały model lub istotną część jego części.
NARY
Definicja: Reprezentuje powiązanie n-arnie łączące jednocześnie wiele klasifikatorów.
Typy relacji
Relacje powiązań
Powiązanie (bez agregacji)

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 |
Agregacja (powiązanie współdzielone)

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).
Kompozycja (złożona relacja)

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
Klasa relacji

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ób: Rysowanie klasy relacji
Zależności
Zależność

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ę |
Abstrakcja

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.
Realizacja

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
Generalizacja

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 |
Użycie

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

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

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

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

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

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.
Wyprowadzenie

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.
Udoskonalenie

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
Śledzenie

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
Zastępowanie

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.
Połączenie

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
Klasa <>

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 |
Klasa <>

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

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ób: Wsparcie typu użytkownika Hibernate
Klasa <>

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

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: publiczny, prywatny, chroniony, pakiet |
| 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
-
Adnotacje Java: Metadane dodane do kodu źródłowego Java w celach adnotacji
-
Inżynieria dwukierunkowa: Generuj i synchronizuj kod 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ń
- Odniesienia do głównych diagramów
-
Diagram przypadków użycia: Wizualne przedstawienie funkcjonalności systemu z perspektywy użytkownika, uchwytywanie aktorów i ich celów.
-
Diagram sekwencji: Pokazuje interakcje obiektów ułożone w kolejności czasowej, podkreślając porządek przekazywania wiadomości.
-
Diagram komunikacji: Prezentuje interakcje obiektów z naciskiem na relacje strukturalne między obiektami.
-
Diagram maszyny stanów: Modeluje zachowanie dynamiczne obiektu poprzez stany cyklu życia i przejścia.
-
Diagram aktywności: Reprezentuje przepływy pracy, procesy biznesowe i kroki operacyjne z uwzględnieniem przepływu sterowania.
-
Diagram składników: Ilustruje fizyczne składniki oprogramowania, ich interfejsy i zależności.
-
Diagram wdrażania: Pokazuje węzły sprzętowe, artefakty oprogramowania oraz ich relacje wdrażania.
-
Diagram pakietów: Organizuje elementy modelu w hierarchiczne pakiety w celu zapewnienia modułowości i zarządzania przestrzenią nazw.
-
Diagram obiektów: Wyświetla instancje klas i ich połączenia w konkretnym momencie czasu.
-
Diagram struktury złożonej: Modeluje strukturę wewnętrzną klasifikatorów, w tym części, porty i połączenia.
-
Diagram czasu: Skupia się na ograniczeniach czasowych i zmianach stanów w dokładnych przedziałach czasu.
-
Diagram przeglądowy interakcji: Łączy diagramy interakcji z notacją diagramu aktywności w celu przedstawienia przepływu interakcji na wysokim poziomie.
- Odniesienia do notacji diagramu klas
-
Abstrakcja: Relacja łącząca elementy reprezentujące tę samą koncepcję na różnych poziomach abstrakcji.
-
Dostęp: Relacja importu elementu kontrolująca widoczność importowanych elementów pakowalnych.
-
Agregacja (społeczna relacja): Relacja całość-część, w której części mogą istnieć niezależnie od całości.
-
Związek (bez agregacji): Relacja semantyczna między wystąpieniami typowymi z nawigowalnymi końcami.
-
Klasa związku: Element modelu łączący właściwości związku i klasy do atrybutów relacji.
-
Powiązanie: Relacja powiązania szablonu z podstawieniem parametrów dla elementów ogólnych.
-
Klasa: Podstawowy klasyfikator opisujący obiekty o wspólnych cechach, atrybutach i operacjach.
-
Klasa <>: Klasa kontenera dla literałów wyliczenia reprezentujących zbiory stałych wartości.
-
Klasa <>: Specyfikacja kontraktu deklarująca publiczne cechy dla klas implementujących.
-
Klasa <>: Wstępnie zdefiniowana klasa typu danych reprezentująca podstawowe typy języka.
-
Klasa <>: Klasa mapowana na bazę danych wspierająca generowanie kodu ORM i trwałość.
-
Klasa <>: Abstrakcyjna klasa bazowa do współdzielenia wspólnych atrybutów ORM między zapisywalnymi podklasami.
-
Klasa <>: Niestandardowy typ zapisywany jako kolumna bazy danych zamiast tabeli encji.
-
Klasa <>: Typ parametryzowany umożliwiający weryfikację poprawności danych w kodzie ORM.
-
Klasa <>: Klasa modelu EJB entity bean dla aplikacji Java w przedsiębiorstwie.
-
Współpraca: Klasyfikator definiujący role współpracy i ścieżki komunikacji dla oddziałujących wystąpień.
-
Kompozycja (złożona relacja): Silna relacja całość-część z wyłącznym prawem własności i kaskadowym usuwaniem.
-
Ograniczenie: Warunek lub ograniczenie określające semantykę elementów modelu.
-
Zależność: Relacja wskazująca, że jeden element wymaga innego do specyfikacji lub implementacji.
-
Wyprowadzić: Relacja określająca, że element klienta można obliczyć na podstawie elementu dostawcy.
-
Uogólnienie: Relacja dziedziczenia, w której konkretny klasifikator dziedziczy cechy z ogólnego klasifikatora.
-
Import: Relacja importu pakietu, która czyni członków pakietu dostępnych w przestrzeni nazw importującej.
-
Instancjonowanie: Zależność wskazująca, że operacje klienta tworzą instancje klasifikatora dostawcy.
-
Scalenie: Scalanie pakietów łączące zawartość dwóch pakietów w celu rozszerzania koncepcji w sposób inkrementalny.
-
Model: Główne pojemnik do organizowania elementów modelu i pakietów.
-
N-ARNY: N-arną asociacja łącząca jednocześnie wiele klasifikatorów.
-
Notatka: Element komentarza do dołączania nie-semantycznych uwag do elementów modelu.
-
Zezwolenie: Zależność nadająca uprawnienia dostępu do elementów w innej przestrzeni nazw.
-
Realizacja: Specjalizowana abstrakcja, w której klient realizuje specyfikację zdefiniowaną przez dostawcę.
-
Udoskonalenie: Relacja między elementami modelu na różnych poziomach semantycznych, takich jak analiza i projekt.
-
Zastąpienie: Relacja wskazująca, że zastępujący klasifikator spełnia specyfikację klasifikatora kontraktowego.
-
Śledzenie: Śledzenie relacji tego samego pojęcia w różnych modelach, głównie do zarządzania wymaganiami.
-
Użycie: Zależność, w której element klienta wymaga elementu dostawcy do pełnej realizacji lub działania.
- Poradniki i odniesienia do zasobów
-
Rysowanie klasy asocjacji: Poradnik krok po kroku tworzenia klas asocjacji w Visual Paradigm.
-
Generuj i synchronizuj kod Java: Poradnik dotyczący inżynierii dwukierunkowej między diagramami klas a implementacją Java.
-
Wsparcie dla typów użytkownika Hibernate: Zasób do implementacji niestandardowych typów użytkownika Hibernate przy użyciu klas ORM-Persistable.
- Odniesienie do standardów
-
Obiektowa Grupa Zarządzania – Język Modelowania Unifikowanego: Oficjalne źródło specyfikacji UML od organizacji standardów regulujących UML.
-
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).
- 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.











