Zunifikowany język modelowania to ustandaryzowany język modelowania ogólnego przeznaczenia, który obecnie jest zarządzany jako de facto standard branżowy przezGrupa Zarządzania Obiektami (OMG). UML obejmuje zestaw technik notacji graficznej do tworzenia wizualnych modeli dla systemów intensywnie wykorzystujących oprogramowanie.
W UML 2.2 istnieje 14 typów diagramów UML, które są podzielone na dwie kategorie:
- 7 typów diagramów reprezentuje informacje strukturalne
- Kolejne 7 reprezentuje ogólne typy diagramów UML do modelowania behawioralnego, w tym cztery, które reprezentują różne aspekty interakcji.
Te diagramy można klasyfikować hierarchicznie, jak pokazano na poniższej mapie diagramów UML:

Pytanie: UML jest ogromny i złożony?
UML to naprawdę ogromny temat. UML dostarcza dużą objętość notacji diagramów podzieloną na 14 różnych typów diagramów UML, z których każdy ma różne modele UML, służące różnym celom i odpowiadające różnym aspektom potrzeb rozwojowych.
- Każdy diagram UML z 14 typów diagramów UML dostarcza dużego zestawu konstrukcji i notacji, które pokrywają różne potrzeby większości projektów rozwoju oprogramowania.
- Specyfikacja UML ma ponad 700 stron i jest wyraźnie uważana za zbyt złożoną, co ma negatywny wpływ na postrzeganie i przyjęcie UML.
- Zazwyczaj użytkownicy mają tendencję do rozważania i używania tylko części diagramów/konstrukcji UML.
Odpowiedź: Naucz się najważniejszych diagramów UML i notacji
Grady Booch, jeden z najważniejszych twórców Zunifikowanego Języka Modelowania, stwierdził, że „dla 80% całego oprogramowania potrzebne jest tylko 20% UML”.
Czym jest badanie UML*?
Możemy interpretować wyniki badania UML, zakładając, że jeśli diagram jest
- szeroko stosowany, jeśli wynosi ≥ 60% źródeł
- rzadko używany, jeśli wynosi ≤ 40% źródeł

W tym artykule przedstawiam wszystkie 14 typów diagramów UML według kolejności ich częstotliwości użycia wspomnianej powyżej:
Na przykład diagram klas jest najczęściej używany, więc zostanie omówiony jako pierwszy w tej sekcji i tak dalej…
Diagram klas
W inżynierii oprogramowania diagram klas wZunifikowanym Języku Modelowania (UML)jesttypem diagramu struktury statycznejktóry opisuje strukturę systemu, pokazując klasy systemu, ich atrybuty, operacje (lub metody) oraz relacje między obiektami.
Cel diagramów klas
- Pokazuje statyczną strukturę klasyfikatorów w systemie
- Diagram dostarcza podstawowej notacji dla innych diagramów strukturalnych określonych przez UML
- Pomocny również dla programistów i innych członków zespołu
- Analitycy biznesowi mogą używać diagramów klas do modelowania systemów z perspektywy biznesowej
Diagram klas UML składa się z:
- Zestaw klas i
- Zestaw relacji między klasami
Diagram klas — Przykład narzędzia diagramowego
Diagram klas może również mieć notatki dołączone do klas lub relacji. Notatki są pokazane na szaro.

W powyższym przykładzie:
Możemy interpretować znaczenie powyższego diagramu klas, czytając punkty w następujący sposób.
- Kształt jest klasą abstrakcyjną. Jest pokazany kursywą.
- Kształt jest klasą nadrzędną. Okrąg, prostokąt i wielokąt pochodzą od Kształtu. Innymi słowy, Okrąg jest Kształtem. To jest relacja uogólnienia / dziedziczenia.
- Istnieje asocjacja między DialogBox a DataController.
- Kształt jest częścią Okna. To jest relacja agregacji. Kształt może istnieć bez Okna.
- Punkt jest częścią Okręgu. To jest relacja kompozycji. Punkt nie może istnieć bez Okręgu.
- Okno jest zależne od Wydarzenia. Jednak Wydarzenie nie jest zależne od Okna.
- Atrybuty Okręgu to promień i środek. To jest klasa encji.
- Nazwy metod Okręgu to area(), circum(), setCenter() i setRadius().
- Parametr promień w Okręgu jest parametrem wejściowym typu float.
- Metoda area() klasy Okrąg zwraca wartość typu double.
- Atrybuty i nazwy metod Prostokąta są ukryte. Niektóre inne klasy w diagramie również mają swoje atrybuty i nazwy metod ukryte.
Drugim najpopularniejszym typem diagramu w UML jest diagram aktywności:
Diagram Aktywności
Diagram aktywności jest kolejnym ważnym diagramem behawioralnym w UML diagram do opisu dynamicznych aspektów systemu. Diagram aktywności jest zasadniczo zaawansowaną wersją diagramu przepływu, który modeluje przepływ z jednej aktywności do drugiej.
Kiedy używać diagramu aktywności
Diagramy aktywności opisują, jak aktywności są koordynowane w celu świadczenia usługi, która może być na różnych poziomach abstrakcji. Zazwyczaj, aby osiągnąć zdarzenie, potrzebne są pewne operacje, szczególnie tam, gdzie operacja ma na celu osiągnięcie wielu różnych rzeczy, które wymagają koordynacji, lub jak zdarzenia w jednym przypadku użycia odnoszą się do siebie, w szczególności przypadki użycia, w których aktywności mogą się pokrywać i wymagają koordynacji. Nadaje się również do modelowania, jak zbiór przypadków użycia koordynuje się w celu reprezentowania przepływów pracy w biznesie.
- Zidentyfikuj kandydatów na przypadki użycia, poprzez analizę przepływów pracy w biznesie
- Zidentyfikuj warunki wstępne i końcowe (kontekst) dla przypadków użycia
- Modeluj przepływy pracy między/w ramach przypadków użycia
- Modeluj złożone przepływy pracy w operacjach na obiektach
- Szczegółowo modeluj złożone aktywności w diagramie aktywności na wysokim poziomie
Diagram Aktywności — Ucz się na przykładach
Podstawowy diagram aktywności — podobny do diagramu przepływu

Przykład diagramu aktywności — Przetwarzanie zamówienia
Mając opis problemu związany z przepływem pracy przy przetwarzaniu zamówienia, stwórzmy wizualną reprezentację opisu za pomocą diagramu aktywności:
Przetwarzanie zamówienia — Opis problemu
Po otrzymaniu zamówienia, aktywności dzielą się na dwa równoległe zestawy aktywności. Jedna strona wypełnia i wysyła zamówienie, podczas gdy druga zajmuje się fakturowaniem.
Po stronie Wypełniania Zamówienia, metoda dostawy jest ustalana warunkowo. W zależności od warunku wykonywana jest albo aktywność Dostawa Nocna, albo aktywność Dostawa Standardowa.
Na koniec równoległe aktywności łączą się, aby zakończyć zamówienie.
Przykład diagramu aktywności poniżej wizualizuje przepływ w formie graficznej.

Trzecim najczęściej używanym typem diagramu UML jest diagram sekwencji:
Diagram Sekwencji
UMLDiagramy sekwencji to diagramy interakcji, które szczegółowo opisują, jak są realizowane operacje. Uchwycają interakcję między obiektami w kontekście współpracy. Diagramy sekwencji koncentrują się na czasie i pokazują kolejność interakcji wizualnie, używając osi pionowej diagramu do reprezentacji czasu, jakie wiadomości są wysyłane i kiedy.
Przykład diagramu sekwencji: System hotelowy
Diagram sekwencji to diagram interakcji, który szczegółowo opisuje, jak są realizowane operacje — jakie wiadomości są wysyłane i kiedy. Diagramy sekwencji są zorganizowane według czasu. Czas postępuje w miarę przewijania w dół strony. Obiekty zaangażowane w operację są wymienione od lewej do prawej w zależności od tego, kiedy biorą udział w sekwencji wiadomości.
Poniżej znajduje się diagram sekwencji dla dokonywania rezerwacji hotelowej. Obiektem inicjującym sekwencję wiadomości jest okno rezerwacji.

Zauważ, że: Diagramy klas i obiektów to statyczne widoki modeli. Diagramy interakcji są dynamiczne. Opisują, jak obiekty współpracują.
Czwartym najczęściej używanym typem diagramu UML (96%) są:
- diagram przypadków użycia
- diagram maszyny stanowej
Diagram przypadków użycia
A UML diagram przypadków użycia jest podstawową formą wymagań systemowych/programowych dla nowego programu komputerowego w fazie rozwoju. Przypadki użycia określają oczekiwane zachowanie (co), a nie dokładną metodę jego realizacji (jak).
Przypadki użycia, gdy są już określone, mogą być przedstawione zarówno w formie tekstowej, jak i wizualnej (tj. diagram przypadków użycia). Kluczowym pojęciem modelowania przypadków użycia jest to, że pomaga nam zaprojektować system z perspektywy końcowego użytkownika. Jest to skuteczna technika komunikowania zachowania systemu w terminach użytkownika poprzez określenie całego zewnętrznego widocznego zachowania systemu.
Diagram przypadków użycia w skrócie
Standardowa forma diagramu przypadków użycia jest zdefiniowana w Unified Modeling Language, jak pokazano w poniższym przykładzie diagramu przypadków użycia:

Diagram przypadków użycia — Systemy sprzedaży pojazdów
Rysunek poniżej pokazuje przykład diagramu przypadków użycia dla systemu pojazdów. Jak widać, nawet system tak duży jak system sprzedaży pojazdów zawiera nie więcej niż 10 przypadków użycia! To jest piękno modelowania przypadków użycia.
Model przypadków użycia pokazuje również użycie rozszerzeń i włączeń. Ponadto istnieją powiązania łączące aktorów z przypadkami użycia.

Diagram stanu
Zachowanie bytu nie jest tylko bezpośrednią konsekwencją jego wejść, ale także zależy od jego poprzedniego stanu. Przeszła historia bytu najlepiej może być modelowana przez diagram maszyny stanowej lub tradycyjnie nazywana automatami.
UMLDiagramy maszyn stanowych (lub czasami nazywane diagramem stanu, maszyną stanową lub wykresem stanu) pokazują różne stany bytu. Diagramy maszyn stanowych mogą również pokazywać, jak byt reaguje na różne zdarzenia, zmieniając się z jednego stanu w inny. Diagram maszyny stanowej to diagram UML używany do modelowania dynamicznej natury systemu.
Prosta notacja diagramu maszyny stanowej

Prosty stan to taki, który nie ma podstruktury. Stan, który ma podstany (stany zagnieżdżone), nazywany jest stanem złożonym. Podstany mogą być zagnieżdżane na dowolnym poziomie. Zagnieżdżona maszyna stanowa może mieć najwyżej jeden stan początkowy i jeden stan końcowy. Podstany są używane do uproszczenia złożonych płaskich maszyn stanowych, pokazując, że niektóre stany są możliwe tylko w określonym kontekście (stan otaczający).
Przykład podstanu — Grzejnik

Stany historii
O ile nie określono inaczej, gdy przejście wchodzi w stan złożony, działanie zagnieżdżona maszyna stanów zaczyna od nowa w stanie początkowym (chyba że przejście celuje bezpośrednio w podstan). Stany historii pozwalają maszynie stanów ponownie wejść w ostatni podstan, który był aktywny przed opuszczeniem stanu złożonego. Przykład użycia stanu historii przedstawiono na poniższym rysunku.

Użycie diagramu komunikacji wynosi 82% według badania:
Diagram komunikacji
UML diagramy komunikacji, takie jak diagramy sekwencji — rodzaj diagramu interakcji, pokazuje, jak obiekty wchodzą w interakcje. Diagram komunikacji jest rozszerzeniem diagramu obiektowego, który pokazuje obiekty wraz z wiadomościami, które podróżują między nimi. Oprócz powiązań między obiektami, diagram komunikacji pokazuje wiadomości, które obiekty wysyłają sobie nawzajem.
Diagram komunikacji w skrócie
W przykładzie notacji dla diagramu komunikacji obiekty (aktorzy w przypadkach użycia) są reprezentowane przez prostokąty. W przykładzie (ogólny diagram komunikacji):
- Obiekty to Object1, Object2, Object…, ObjectN-1 … i ObjectN.
- Wiadomości przekazywane między obiektami są reprezentowane przez oznaczone strzałki, które zaczynają się od obiektu wysyłającego (aktora) i kończą na obiekcie odbierającym.
- Przykładowe wiadomości przekazywane między obiektami są oznaczone 1: message1, 2: message2, 3: message3 itd., gdzie numeryczny prefiks do nazwy wiadomości wskazuje jej kolejność w sekwencji.
- Object1 najpierw wysyła Object2 wiadomość message1, Object2 z kolei wysyła ObjectN-1 wiadomość message2, i tak dalej.
- Wiadomości, które obiekty wysyłają do siebie, są oznaczone jako pętle (np. wiadomość message5).

Diagram komunikacji vs Diagram sekwencji
Diagram komunikacji i diagram sekwencji są podobne. Są semantycznie równoważne, to znaczy przedstawiają te same informacje, a diagram komunikacji można przekształcić w diagram sekwencji i odwrotnie. Główna różnica między nimi polega na tym, że diagram komunikacji układa elementy według przestrzeni, a diagram sekwencji według czasu.
Z dwóch typów diagramów interakcji, diagramy sekwencji wydają się być używane znacznie częściej niż diagramy komunikacji. Dlaczego więc warto używać diagramów komunikacji? Przede wszystkim są bardzo przydatne do wizualizacji relacji między obiektami współpracującymi w celu wykonania konkretnego zadania. Trudno to określić na podstawie diagramu sekwencji. Ponadto diagramy komunikacji mogą również pomóc w określeniu dokładności twojego statycznego modelu (tj. diagramów klas).

Zarówno użycie diagramu komponentów, jak i diagramu wdrożenia wynosi 80%:
Diagram komponentów
UML Diagramy komponentów są używane do modelowania fizycznych aspektów systemów obiektowych, które służą do wizualizacji, specyfikacji i dokumentacji systemów opartych na komponentach, a także do budowy systemów wykonawczych poprzez inżynierię w przód i wstecz.
Diagramy komponentów są zasadniczo diagramami klas, które koncentrują się na komponentach systemu, które często są używane do modelowania statycznego widoku implementacji systemu.
Diagram komponentów w skrócie
Diagram komponentów dzieli rzeczywisty system w trakcie rozwoju na różne wysokie poziomy funkcjonalności. Każdy komponent odpowiada za jeden wyraźny cel w całym systemie i wchodzi w interakcje tylko z innymi istotnymi elementami na zasadzie potrzeby wiedzy.

Diagram wdrożenia
A UML diagram wdrożenia to diagram, który pokazuje konfigurację węzłów przetwarzania w czasie rzeczywistym oraz komponentów, które na nich żyją. Diagramy wdrożenia to rodzaj diagramu strukturalnego używanego do modelowania fizycznych aspektów systemu obiektowego. Często są używane do modelowania statycznego widoku wdrożenia systemu (topologia sprzętu).
Diagram wdrożenia w skrócie
Diagramy wdrożenia są ważne dla wizualizacji, specyfikacji i dokumentacji systemów wbudowanych, klient-serwer oraz rozproszonych, a także do zarządzania systemami wykonawczymi poprzez inżynierię w przód i wstecz.
Diagram wdrożenia to po prostu specjalny rodzaj diagramu klas, który koncentruje się na węzłach systemu. Graficznie, diagram wdrożenia to zbiór wierzchołków i łuków. Diagramy wdrożenia zazwyczaj zawierają:
Węzły
- Sześcian 3D reprezentuje węzeł, zarówno oprogramowanie, jak i sprzęt
- Węzeł HW może być oznaczony jako <<stereotyp>>
- Połączenia między węzłami są reprezentowane linią, z opcjonalnym <<stereotypem>>
- Węzły mogą znajdować się w obrębie innego węzła
Inne notacje
- Zależność
- Relacje asocjacyjne.
- Mogą również zawierać notatki i ograniczenia.

Użycie diagramu obiektowego UML wynosi 71% według badania:
Diagram obiektowy
Obiekt jest instancją konkretnego momentu w czasie wykonywania, w tym obiektów i wartości danych. Statyczny UML diagram obiektowy jest instancją diagramu klas; pokazuje migawkę szczegółowego stanu systemu w danym momencie, dlatego diagram obiektów obejmuje obiekty i ich relacje w danym momencie.
Diagram obiektów w skrócie
Diagram obiektów pokazuje tę relację między zainstancjonowanymi klasami a zdefiniowaną klasą oraz relację między tymi obiektami w systemie. Mogą być przydatne do wyjaśnienia mniejszych części twojego systemu, gdy diagram klas twojego systemu jest bardzo złożony, a także czasami do modelowania relacji rekurencyjnych w diagramie.
Najlepszym sposobem na zilustrowanie, jak wygląda diagram obiektów, jest pokazanie diagramu obiektów wyprowadzonego z odpowiadającego mu diagramu klas.
Poniższy system zarządzania zamówieniami pokazuje ich relacje. Ten mały diagram klas pokazuje, że wydział uniwersytetu może zawierać wiele innych wydziałów, a diagram obiektów poniżej instancjonuje diagram klas, zastępując go konkretnym przykładem.

Przykład diagramu klas do diagramu obiektów — System zamówień

Wykorzystanie diagramu pakietów wynosi 70%:
Diagram pakietów
Diagram pakietów, rodzaj diagramu strukturalnego, pokazuje układ i organizację elementów modelu w projektach średniej i dużej skali. Diagram pakietów może pokazywać zarówno strukturę, jak i zależności między podsystemami lub modułami, pokazując różne widoki systemu, na przykład jako aplikację wielowarstwową (znaną również jako aplikacja wielowarstwowa) — model aplikacji wielowarstwowej.
Diagram pakietów w skrócie
Diagram pakietów jest używany do upraszczania złożonych diagramów klas, możesz grupować klasy w pakiety. Pakiet to zbiór logicznie powiązanych elementów UML.
Diagram poniżej to model biznesowy, w którym klasy są grupowane w pakiety:
- Pakiety pojawiają się jako prostokąty z małymi zakładkami na górze.
- Nazwa pakietu znajduje się na zakładce lub wewnątrz prostokąta.
- Kropkowe strzałki to zależności.
- Jeden pakiet zależy od drugiego, jeśli zmiany w drugim mogą potencjalnie wymusić zmiany w pierwszym.

Wykorzystanie diagramu struktury złożonej wynosi 52%:
Diagram struktury złożonej
Diagram struktury złożonej jest jednym z nowych artefaktów dodanych do UML 2.0. Diagram struktury złożonej to diagram strukturalny UML, który zawiera klasy, interfejsy, pakiety i ich relacje oraz zapewnia logiczny widok całego lub części systemu oprogramowania. Pokazuje wewnętrzną strukturę (w tym części i złącza) klasyfikatora strukturalnego lub współpracy.
Diagram struktury złożonej pełni podobną rolę do diagramu klas, ale pozwala na dalsze szczegóły w opisie wewnętrznej struktury wielu klas i pokazaniu interakcji między nimi. Możesz graficznie reprezentować klasy wewnętrzne i części oraz pokazywać powiązania zarówno między klasami, jak i wewnątrz klas.
Diagram struktury złożonej w skrócie
- Diagramy struktury złożonej pokazują wewnętrzne części klasy.
- Części są nazwane: partName:partType[multiplicity]
- Zagregowane klasy są częściami klasy, ale części nie są koniecznie klasami; część to każdy element, który jest używany do tworzenia klasy zawierającej.

Diagram czasowy ma tylko 40% wykorzystania i rzadko jest używany przez przeciętnych użytkowników
Diagram czasowy
Diagramy czasowe to UMLdiagramy interakcji używane do pokazywania interakcji, gdy głównym celem diagramu jest rozważanie czasu. Skupiają się na warunkach zmieniających się w obrębie i pomiędzy liniami życia wzdłuż liniowej osi czasu. Diagramy czasowe opisują zachowanie zarówno pojedynczych klasyfikatorów, jak i interakcji klasyfikatorów, koncentrując uwagę na czasie wystąpienia zdarzeń powodujących zmiany w modelowanych warunkach linii życia.
Diagram czasowy w skrócie
Reprezentacja osi czasu stanu
Zmiany z jednego stanu do innego są reprezentowane przez zmianę poziomu linii życia. W okresie, gdy obiekt jest w danym stanie, oś czasu biegnie równolegle do tego stanu. Zmiana stanu pojawia się jako pionowa zmiana z jednego poziomu na inny. Przyczyną zmiany, jak ma to miejsce w diagramie stanu lub sekwencji, jest otrzymanie wiadomości, zdarzenie, które powoduje zmianę, warunek w systemie lub nawet po prostu upływ czasu.

Reprezentacja linii życia wartości
Rysunek poniżej pokazuje alternatywną notację diagramu czasowego UML. Pokazuje stan obiektu między dwiema poziomymi liniami, które krzyżują się ze sobą za każdym razem, gdy stan się zmienia.

Diagram przeglądowy interaktywny to nowy diagram dodany w UML 2.0:
Diagram przeglądowy interaktywny
Diagramy przeglądowe interakcji UML zapewniają wysoki poziom abstrakcji modelu interakcji. Jest to wariant diagramu aktywności, w którym węzły to interakcje lub wystąpienia interakcji.
Diagram przeglądowy interakcji koncentruje się na przeglądzie przepływu kontroli interakcji, który może również pokazywać przepływ aktywności między diagramami. Innymi słowy, możesz połączyć „prawdziwe” diagramy i osiągnąć wysoki stopień nawigowalności między diagramami wewnątrz diagramu przeglądowego interakcji.
Diagram przeglądowy interakcji w skrócie
Diagram przeglądowy interakcji jest jednym z czternastu typów diagramów Zjednoczonego Języka Modelowania (UML), który może przedstawiać przepływ kontroli z węzłami, które mogą zawierać diagramy interakcji, które pokazują, jak zestaw fragmentów może być inicjowany w różnych scenariuszach. Diagramy przeglądowe interakcji koncentrują się na przeglądzie przepływu kontroli, gdzie węzły to interakcje (sd) lub użycie interakcji (ref).
Inne elementy notacji dla diagramów przeglądowych interakcji są takie same jak dla diagramów aktywności i sekwencji. Należą do nich węzły początkowe, końcowe, decyzyjne, scalające, rozdzielające i łączące.

Najrzadziej używanym diagramem UML jest diagram profilu, uzyskał tylko 11%:
Diagram profilu
Jako ogólny język modelowania, UML zapewnia stabilną podstawę dla szerokiej gamy wymagań. Nie jest zdefiniowany dla konkretnych dziedzin zastosowań ani dla żadnej konkretnej technologii. Jednak w niektórych okolicznościach UML jest zbyt ogólny, a jego użycie wiąże się z dużym nakładem pracy. W takich przypadkach korzystanie z języka zoptymalizowanego dla danej dziedziny, a tym samym oferującego specjalne koncepcje, jest korzystne.
Diagram profilu, rodzaj diagramu strukturalnego w Unified Modeling Language (UML), zapewnia ogólny mechanizm rozszerzeń do dostosowywania modeli UML do konkretnych dziedzin i platform. Mechanizmy rozszerzeń pozwalają na udoskonalanie standardowej semantyki w ściśle dodatni sposób, zapobiegając ich sprzeczności z standardową semantyką. Profile są definiowane przy użyciu stereotypów, definicji wartości oznaczonych, oraz ograniczeń które są stosowane do konkretnych elementów modelu, takich jak klasy, atrybuty, operacje i działania. Profil to zbiór takich rozszerzeń, które wspólnie dostosowują UML do konkretnej dziedziny (np. lotnictwo, opieka zdrowotna, finanse) lub platformy (J2EE, .NET).
Przykład diagramu profilu — Zarządzanie IT
Profil jest stosowany do innego pakietu, aby udostępnić stereotypy w profilu temu pakietowi. Ilustracja poniżej pokazuje, jak profile Sieci, Telekomunikacji i Oprogramowania są stosowane do pakietu Zarządzanie IT.

Szukasz darmowego narzędzia do projektowania oprogramowania online?
Oto repozytorium Visual Paradigm Online dla przykładów projektowania oprogramowania, to jest:
- Darmowe (do użytku osobistego i niekomercyjnego)
- Online (brak instalacji i konfiguracji)
- Wsparcie dla Google Drive i darmowego przechowywania w chmurze
- Wiele przykładów
- Używaj go w dowolnym czasie i miejscu! potrzebujesz tylko przeglądarki internetowej












Wzorce architektury przedsiębiorstwa








Ten post dostępny jest również w Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文