de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Język modelowania zintegrowanego (UML): Kompletny przewodnik po diagramach, pojęciach i wizualnym paradygmacie

Wprowadzenie

Język modelowania zintegrowanego (UML) to standardowy język wizualnego modelowania używany do analizy, projektowania, dokumentowania i komunikowania struktury oraz zachowania systemów oprogramowania. Zapewnia wspólny zestaw symboli i technik rysowania diagramów, które pomagają programistom, architektom, analitykom biznesowym, menedżerom projektów i innym stakeholderom zrozumieć, jak system działa.

UML to nie jest język programowania. Zamiast tego pełni rolę wizualnego projektu oprogramowania. Zespoły mogą używaćdiagramy UML do opisywania wymagań, planowania architektury systemu, modelowania procesów biznesowych, dokumentowania istniejących aplikacji oraz wyjaśniania, jak różne części systemu ze sobą współdziałają.

Na przykład aplikacja e-commerce może zawierać użytkowników, produkty, koszyki zakupowe, zamówienia, usługi płatności i usługi dostawy. Diagramy UML mogą przedstawiać te elementy, pokazywać ich relacje oraz ilustrować, co dzieje się, gdy klient składa zamówienie.

Infografika wyjaśniająca Unified Modeling Language (UML) jako wizualny projekt systemów oprogramowania, szczegółowo opisująca jego funkcje i 14 typów diagramów.

UML jest zarządzany jako standard branżowy przez Object Management Group (OMG) i został również przyjęty poprzez międzynarodowe standardy. Nowoczesny UML najczęściej odnosi się do UML 2.x, który definiuje szeroki zbiór diagramów strukturalnych i behawioralnych. Na przykład UML 2.2 zdefiniował 14 typów diagramów podzielonych równo między modelowanie strukturalne i behawioralne.

Czym jest UML?

UML to język ogólnego przeznaczenia do modelowania systemów zdominowanych oprogramowaniem. Zapewnia standardowy sposób zapisu do przedstawiania:

  • Składowe systemu

  • Klasy i obiekty

  • Wymagania użytkownika

  • Przepływy pracy i procesy biznesowe

  • Komunikaty wymieniane między obiektami

  • Stany systemu i przejścia

  • Środowiska wdrażania oprogramowania

  • Zależności między pakietami i składnikami

Cel UML nie polega na zastępowaniu kodu źródłowego. Raczej pomaga zespołom myśleć o systemie i komunikować się na jego temat przed, podczas i po wdrożeniu.

Model UML może być tworzony na różnych poziomach szczegółowości:

  • Poziom koncepcyjny:Opisuje główne koncepcje biznesowe bez szczegółów implementacji.

  • Poziom analizy:Badania wymagań, odpowiedzialności oraz zachowania systemu.

  • Poziom projektowania:Określa klasy, interfejsy, składniki i interakcje.

  • Poziom implementacji:Reprezentuje szczegóły, które blisko odpowiadają kodowi źródłowemu i infrastrukturze wdrażania.

Dlaczego UML jest ważny?

UMLjest przydatny, ponieważ systemy oprogramowania mogą stać się trudne do zrozumienia, gdy opisuje się je wyłącznie za pomocą kodu źródłowego lub długich dokumentów tekstowych.

Uproszczenie złożonych systemów

Diagramy zapewniają wizualny przegląd dużych systemów. Na przykład diagram klas może pokazać dziesiątki klas i ich relacje bardziej jasno niż kilka stron tekstu.

Poprawia komunikację

Programiści, projektanci, architekci, testerzy, analitycy biznesowi i klienci mogą mieć różne tło techniczne. UML zapewnia im wspólny język wizualny do dyskusji na temat wymagań systemu i decyzji projektowych.

Wsparcie dla planowania

Zespoły mogą modelować przepływy pracy, klasy, usługi i środowiska wdrażania przed napisaniem kodu. Może to ujawnić brakujące wymagania, powtarzające się odpowiedzialności oraz problemy architektoniczne na wczesnym etapie.

Pomaga dokumentować oprogramowanie

Diagramy UML mogą służyć jako długoterminowa dokumentacja techniczna. Pomagają nowym programistom zrozumieć istniejący system oraz wspomagają zespoły utrzymania podczas wymaganych zmian.

Zachęca do lepszego projektowania

Tworzenie modelu zmusza zespół do rozważenia pytań takich jak:

  • Który obiekt odpowiada za zadanie?

  • Jak są połączone komponenty?

  • Co się dzieje, gdy operacja nie powiedzie się?

  • Które klasy zależą od siebie?

  • Jak system reaguje na różne zdarzenia?

Kluczowe koncepcje UML

Karta odniesienia notacji UML ilustrująca osiem kluczowych pojęć: Klasa, Obiekt, Atrybut, Operacja, Aktor, Interfejs, Relacje i Mnożność z przykładami.

Klasa

Klasa to szablon definiujący atrybuty i operacje wspólne dla grupy obiektów.

Na przykład klasaZamówieniemoże zawierać:

  • Atrybuty: orderId, orderDate, oraz status

  • Operacje: calculateTotal() i cancelOrder()

Obiekt

Obiekt to rzeczywisty egzemplarz klasy. Jeśli Zamówienie jest klasą, order1001 może być konkretnym obiektem utworzonym z tej klasy.

Atrybut

Atrybut reprezentuje dane przechowywane przez klasę lub obiekt.

Przykłady to:

  • nazwa

  • cena

  • emailAddress

  • orderStatus

Operacja

Operacja reprezentuje zachowanie dostarczane przez klasę. Operacje często są realizowane jako metody w językach programowania.

Przykłady obejmują:

  • dodajElement()

  • wyslijPłatność()

  • wyślijPowiadomienie()

Aktor

Aktor to zewnętrzna rola, która współdziała z systemem. Aktor może być osobą, innym systemem lub zewnętrznym urządzeniem.

Przykłady obejmują:

  • Klient

  • Administrator

  • Brama płatności

  • System magazynowy

Interfejs

Interfejs definiuje zestaw operacji, które klasa lub składnik zobowiązuje się dostarczyć. Interfejsy pomagają zmniejszyć zależności i wspierają wymienne implementacje.

Związek

Związek opisuje, jak elementy UML są ze sobą połączone. Powszechne związki obejmują powiązanie, zależność, uogólnienie, agregację i kompozycję.

Wielokrotność

Wielokrotność określa, ile obiektów może brać udział w związku.

Powszechne przykłady to:

  • 1: Dokładnie jeden

  • 0..1: Zero lub jeden

  • *: Wiele

  • 1..*: Jeden lub więcej

  • 0..*: Zero lub więcej

Na przykład jeden klient może złożyć zero lub wiele zamówień. Można to przedstawić w następujący sposób:

Klient 1 -------- 0..* Zamówienie

Kategorie diagramów UML

Diagramy UML są zwykle dzielone na dwie główne kategorie:

  1. Diagramy strukturalne

  2. Diagramy zachowania

Diagramy strukturalne opisują, z czego składa się system. Diagramy zachowania opisują, co robi system i jak zachowuje się w czasie.

Schemat blokowy kategoryzujący diagramy UML na typy strukturalne, takie jak Klasa i Wdrożenie, oraz typy zachowaniowe, takie jak Diagram aktywności i Diagram przypadków użycia.


Diagramy strukturalne UML

Diagramy strukturalne przedstawiają statyczną organizację systemu. Skupiają się na klasach, obiektach, komponentach, pakietach, węzłach i relacjach.

1. Diagram klas

Diagram klas UML ilustrujący system księgarni z klasami takimi jak Książka, Klient i Zamówienie, pokazujący relacje takie jak agregacja i uogólnienie.

Diagram klas to jeden z najbardziej powszechnie używanych diagramów UML. Przedstawia statyczną strukturę systemu, pokazując:

  • Klasy

  • Atrybuty

  • Operacje

  • Interfejsy

  • Związki

  • Widoczność

  • Mnożność

Uproszczony model klas e-commerce może wyglądać następująco:

Klient
- customerId
- name
+ placeOrder()

Zamówienie
- orderId
- orderDate
- status
+ calculateTotal()

Produkt
- productId
- name
- price
+ updatePrice()

Możliwe związki obejmują:

Klient 1 -------- 0..* Zamówienie
Zamówienie 1 -------- 1..* Produkt

W bardziej szczegółowym projekcie może zostać wprowadzona klasaOrderItem może zostać wprowadzona pomiędzyZamówienie aProdukt.

Diagramy klas są przydatne do:

  • Modelowanie domeny

  • Projektowanie obiektowe

  • Planowanie bazy danych i aplikacji

  • Określanie odpowiedzialności

  • Wyjaśnianie dziedziczenia i interfejsów

Diagram klas opisuje klasy w ogólności, podczas gdy diagram obiektów pokazuje konkretne instancje tych klas. Visual Paradigm opisuje diagramy klas jako modele klas, atrybutów, operacji i relacji w systemie opartym na programowaniu obiektowym.

2. Diagram obiektu

Diagram obiektu pokazuje zdjęcie systemu w konkretnym momencie. Reprezentuje rzeczywiste instancje obiektów, a nie ogólne klasy.

Diagram UML porównujący strukturę klasy do konkretnego obrazu instancji obiektu, ilustrujący atrybuty, powiązania i relacje dziedziczenia.

Na przykład:

customerA:Customer
name = "Alex"

order1001:Order
status = "Zapłacono"

Diagram obiektu jest przydatny, gdy chcesz pokazać:

  • Stan obiektów w czasie działania

  • Przykładowe relacje danych

  • Konkretny scenariusz

  • Jak instancje klas są ze sobą połączone

Diagram klasy może pokazywać, że klient może składać wiele zamówień. Diagram obiektu może pokazywać, żecustomerAobecnie posiadaorder1001iorder1002.

3. Diagram komponentów

Diagram składników UML pokazujący architekturę platformy dostaw jedzenia z usługami Restauracja, Zamówienie, Płatność, Dostawa i Powiadomienie połączonymi poprzez interfejsy.

Diagram komponentów pokazuje organizację i zależności wymiennych składników oprogramowania.

Diagram komponentów e-commerce może obejmować:

  • Aplikacja internetowa

  • Usługa zamówień

  • Usługa produktów

  • Usługa płatności

  • Usługa powiadomień

  • Baza danych

Przykład:

Aplikacja internetowa --> Usługa zamówień
Usługa zamówień --> Usługa płatności
Usługa zamówień --> Usługa powiadomień
Usługa zamówień --> Baza danych zamówień

Diagramy komponentów są szczególnie przydatne do:

  • Architektury mikroserwisów

  • Systemy oparte na usługach

  • Projektowanie interfejsów API

  • Architektura aplikacji

  • Pokazywanie granic usług i ich zależności

4. Diagram wdrożenia

Diagram wdrożenia UML pokazujący tablet lekarza, stację pracy pielęgniarki, serwer aplikacji szpitalnej i serwer laboratorium połączone poprzez HTTPS z komponentami i artefaktami.

Diagram wdrożenia przedstawia środowisko fizyczne lub wirtualne, w którym wykonywane jest oprogramowanie.

Może pokazywać:

  • Urządzenia klienta

  • Serwery internetowe

  • Serwery aplikacji

  • Serwery baz danych

  • Węzły chmury

  • Kontenery

  • Połączenia sieciowe

  • Wdrożone artefakty oprogramowania

Przykład:

Urządzenie klienta
       |
       v
Serwer internetowy
       |
       v
Serwer aplikacji
       |
       v
Serwer baz danych

Diagramy wdrażania pomagają architektom zrozumieć, gdzie działa oprogramowanie i jak komponenty infrastruktury komunikują się ze sobą.

5. Diagram pakietu

Diagram pakietów UML pokazujący podsystem LearningPlatform z wewnętrznymi pakietami, zewnętrznymi zależnościami i relacjami uogólnienia.

Diagram pakietu organizuje powiązane elementy modelu w pakietach i pokazuje zależności między tymi pakietami.

Projekt może zawierać pakiety takie jak:

  • użytkownik

  • katalog

  • zamówienie

  • płatność

  • powiadomienie

Przykład:

zamówienie --> użytkownik
zamówienie --> katalog
zamówienie --> płatność
płatność --> powiadomienie

Diagramy pakietów są przydatne do:

  • Organizowania dużych modeli

  • Pokazywania zależności modułów

  • Identyfikowania warstw architektonicznych

  • Zapobiegania niechcianemu sprzężeniu

6. Diagram struktury złożonej

Diagram wdrożenia UML pokazujący serwer internetowy wdrażający app.jar do JVM oraz serwer bazy danych hostujący schema.sql.

Diagram struktury złożonej pokazuje strukturę wewnętrzną klasy, komponentu lub innego klasyfikatora strukturalnego.

Może wyświetlać:

  • Wewnętrzne części

  • Porty

  • Połączenia

  • Wewnętrzne współprace

  • Związki między elementami wewnętrznymi

Na przykład, OrderController może zawierać lub łączyć się z:

  • OrderService

  • OrderRepository

  • PaymentService

  • NotificationService

W przeciwieństwie do diagramu składników, który ogólnie skupia się na komponentach najwyższego poziomu, diagram struktury złożonej skupia się na wewnętrznym ułożeniu klasyfikatora.

7. Diagram profilu

Diagram profilu rozszerza UML dla określonego obszaru lub technologii. Definiuje specjalizowane elementy modelowania za pomocą stereotypów, wartości oznakowanych i ograniczeń.

Diagram profilu UML ilustrujący rozszerzenie VehicleProfile z niestandardowymi elementami Vehicle, Engine i Wheel połączonymi z metaklasą Class.

Na przykład profil może wprowadzać stereotypy takie jak:

<<entity>>
<<controller>>
<<service>>
<<microservice>>

Diagramy profilu są przydatne, gdy standardowa notacja UML musi zostać dostosowana do:

  • Aplikacje internetowe

  • Architektura przedsiębiorstwa

  • Systemy czasu rzeczywistego

  • Systemy wbudowane

  • Specyficzne frameworki programowania

  • Modelowanie specyficzne dla branży

Diagram profilu często pomija się w listach wprowadzających, ale jest uwzględniony wśród standardowych typów diagramów UML 2.x. UML 2.x często opisuje się jako mający siedem typów diagramów strukturalnych i siedem typów diagramów zachowaniowych.


Diagramy zachowaniowe UML

Diagramy zachowaniowe opisują dynamiczne zachowanie systemu. Pokazują przepływy pracy, zdarzenia, interakcje, zmiany stanów i odpowiedzi.

1. Diagram przypadków użycia

Diagram przypadków użycia UML pokazujący aktorów Klient i Administrator interagujące z funkcjami systemu takimi jak Wyszukiwanie produktów, Umieszczanie zamówienia i Zarządzanie zamówieniami.

Diagram przypadków użycia przedstawia wymagania funkcjonalne systemu z perspektywy aktorów zewnętrznych.

Typowy system zakupów online może zawierać tych aktorów:

  • Klient

  • Administrator

  • Brama płatności

  • Usługa dostawy

Możliwe przypadki użycia to:

  • Zarejestruj konto

  • Zaloguj się

  • Przeglądaj produkty

  • Dodaj produkt do koszyka

  • Złóż zamówienie

  • Zapłać

  • Śledź dostawę

  • Zarządzaj produktami

Diagram przypadków użycia zapewnia widok najwyższego poziomu tego, co robi system, nie opisując szczegółów implementacji.

Ważne relacje to:

  • Powiązanie: Łączy aktora z przypadkiem użycia.

  • Zawiera: Pokazuje zachowanie, które zawsze jest ponownie używane przez inny przypadek użycia.

  • Rozszerza: Pokazuje zachowanie opcjonalne lub warunkowe.

  • Uogólnienie:Pokazuje specjalizację między aktorami lub przypadkami użycia.

Na przykład, Złóż zamówienie może zawierać Zapłać, podczas gdy Zastosuj rabat może rozszerzać Złóż zamówienie.

2. Diagram aktywności

Diagram aktywności UML ilustrujący proces zamówienia z rzędami, węzłami decyzyjnymi i równoległymi przepływami dla zapasów i potwierdzenia.

Diagram aktywności przedstawia przepływ sterowania w procesie lub przypadku użycia. Jest przydatny do modelowania sekwencyjnych i równoległych przepływów pracy.

Przykład: składanie zamówienia

Start
  |
Przeglądaj produkty
  |
Dodaj produkt do koszyka
  |
Przejdź do kasy
  |
Wprowadź dane płatności
  |
Płatność powiodła się?
 /              
Nie              Tak
|                |
Pokaż błąd       Utwórz zamówienie
                  |
              Wyślij potwierdzenie
                  |
                 Koniec

Diagramy aktywności mogą przedstawiać:

  • Działania

  • Decyzje

  • Scalenia

  • Pętle

  • Aktywności równoległe

  • Węzły startowe i końcowe

  • Pasy odpowiedzialności

Pasy mogą pokazywać, który aktor lub składnik systemu wykonuje każdą czynność. Na przykład jeden pas może reprezentować klienta, drugi usługę zamówień, a trzeci bramę płatności.

3. Diagram sekwencji

Diagram sekwencji UML ilustrujący proces zakupu online z liniami życia Klienta, Aplikacji internetowej, Usługi zamówienia, Bramki płatności i Usługi e-mail.

Diagram sekwencji pokazuje, jak obiekty lub składniki komunikują się w kolejności czasowej.

Przykład: składanie zamówienia

Klient -> AplikacjaWeb: Złożenie zamówienia
AplikacjaWeb -> UsługaZamówień: createOrder()
UsługaZamówień -> UsługaPłatności: authorizePayment()
UsługaPłatności --> UsługaZamówień: paymentApproved
UsługaZamówień -> UsługaPowiadomień: sendConfirmation()
UsługaZamówień --> AplikacjaWeb: orderCreated
AplikacjaWeb --> Klient: Wyświetl potwierdzenie

Diagramy sekwencji zawierają:

  • Uczestnicy

  • Linie życia

  • Komunikaty

  • Paski aktywacji

  • Komunikaty zwrotne

  • Warunki

  • Pętle

  • Alternatywy

  • Interakcje równoległe

Są szczególnie przydatne do wyjaśniania wywołań interfejsu API, interakcji usług, przepływów uwierzytelniania oraz obsługi błędów.

4. Diagram komunikacji

Diagram komunikacji UML pokazujący obiekty takie jak Klient i Aplikacja internetowa połączone numerowanymi, oznaczonymi komunikatami ilustrującymi współpracę obiektów.

Diagram komunikacji, historycznie nazywany diagramem współpracy w wcześniejszych wersjach UML, podkreśla relacje między obiektami oraz komunikaty wymieniane między nimi.

Zamiast skupiać się głównie na pionowym czasie, jak diagram sekwencji, skupia się na:

  • Obiekty

  • Połączenia między obiektami

  • Numerowane komunikaty

  • Struktura współpracy

Przykład:

1: submitOrder()
Klient ----------------> AplikacjaWebowa

2: createOrder()
AplikacjaWebowa ------------------> UsługaZamówień

3: authorizePayment()
UsługaZamówień -------------> UsługaPłatności

Diagramy komunikacji są przydatne, gdy struktura współpracy obiektów jest ważniejsza niż dokładny wizualny przebieg czasu.

5. Diagram maszyny stanów

Diagram maszyny stanów UML ilustrujący przejścia między stanami Pusta, Chłodzenie i Nagrzewanie z zagnieżdżonym stanem Aktywny.

Diagram maszyny stanów pokazuje, jak obiekt lub system zmienia stan w odpowiedzi na zdarzenia.

Zamówienie może przejść przez następujące stany:

Nowy -> Oczekujące Płatności -> Opłacony -> Wysłany -> Dostarczony
                  |
                  v
              Anulowany

Przejście może być oznaczone zdarzeniem lub warunkiem:

Oczekujące Płatności -- paymentApproved --> Opłacony
Oczekujące Płatności -- paymentFailed --> Płatność Nieudana

Diagramy maszyny stanów są przydatne do:

  • Cykle życia zamówień

  • Stany kont użytkowników

  • Statusy przepływu pracy

  • Zachowanie urządzenia

  • Stany połączenia sieciowego

  • Procesy zatwierdzania

Są szczególnie wartościowe, gdy zachowanie obiektu zależy w dużym stopniu od jego aktualnego stanu.

6. Diagram czasowy

Diagram czasowy UML pokazujący stany kontrolera wind w czasie, w tym linie życia, bodźce oraz ograniczenia czasu trwania.

Diagram czasowy ilustruje, jak stan lub wartość jednego lub większej liczby elementów zmienia się w czasie.

Często stosowany jest do:

  • Systemy czasu rzeczywistego

  • Systemy wbudowane

  • Protokoły komunikacyjne

  • Współpraca między sprzętem a oprogramowaniem

  • Interakcje wymagające wysokiej wydajności

Na przykład, diagram czasowy może pokazywać zależność między:

  • Sygnał urządzenia

  • Stan kontrolera

  • Wartość czujnika

  • Odpowiedź w określonym przedziale czasu

7. Diagram przeglądowy interakcji

Diagram przeglądowy interakcji UML ilustrujący przepływ sterowania, węzły decyzyjne, węzły rozgałęzienia i łączenia oraz odwołania do diagramów sekwencji.

Diagram przeglądowy interakcji zapewnia widok najwyższego poziomu interakcji poprzez połączenie przepływu sterowania w stylu działania z diagramami interakcji.

Może pokazywać:

  • Kolejność głównych interakcji

  • Decyzje między fragmentami interakcji

  • Równoległe ścieżki interakcji

  • Odwołania do diagramów sekwencji lub komunikacji

Na przykład przegląd interakcji dla zamówienia online może zawierać:

  1. Uwierzytelnianie klienta

  2. Wybór produktu

  3. Interakcja podczas płatności

  4. Zatwierdzenie płatności

  5. Realizacja zamówienia

Ten diagram jest przydatny, gdy proces jest zbyt złożony, aby został wyjaśniony jednym diagramem sekwencji.


Relacje UML

Zrozumienie relacji UML jest kluczowe do tworzenia znaczących diagramów.

Karta referencyjna ilustrująca siedem typów relacji UML: asocjacja, skierowana asocjacja, ogólność, zależność, agregacja, kompozycja i realizacja.

Powiązanie

Powiązanie reprezentuje połączenie strukturalne między dwoma elementami.

Klient -------- Zamówienie

Oznacza to, że klienci i zamówienia są ze sobą powiązane.

Kierowane powiązanie

Kierowane powiązanie pokazuje możliwości nawigacji w jednym kierunku.

Zamówienie ------> Płatność

To sugeruje, że zamówienie zna obiekt płatności lub go używa, podczas gdy odwrotnie może nie być prawdą.

Uogólnienie

Uogólnienie reprezentuje dziedziczenie lub specjalizację.

       Użytkownik
      /    
Klient  Administrator

Tutaj, Klient i Administrator to specjalizowane typy Użytkownik.

Zależność

Zależność wskazuje, że jeden element tymczasowo używa lub opiera się na innym.

UsługaZamówienia -----> BramkaPłatności

Zmiana w bramce płatności może wpłynąć na usługę zamówień.

Agregacja

Agregacja reprezentuje relację całość-część, w której części mogą istnieć niezależnie.

Zespół ◇------ Gracz

Gracz może nadal istnieć, nawet jeśli zespół zostanie rozwiązany.

Kompozycja

Kompozycja reprezentuje silną relację całość-część. Części zazwyczaj zależą od całości podczas swojego cyklu życia.

Zamówienie ◆------ ElementZamówienia

ZaElementZamówienia może być uznane za część zamówienia i może nie mieć sensu poza tym zamówieniem.

Realizacja

Realizacja wskazuje, że klasa lub składnik implementuje interfejs.

UsługaPłatności - - -|> PrzetwornikPłatności

ZaUsługaPłatności zapewnia zachowanie zdefiniowane przez PrzetwornikPłatności interfejs.

Przykład UML: System sklepowy internetowy

Rozważ aplikację do zakupów online.

Główni uczestnicy

  • Klient

  • Administrator

  • Brama płatności

  • Usługa dostawy

Główne przypadki użycia

  • Utwórz konto

  • Przeglądaj produkty

  • Dodaj przedmioty do koszyka

  • Złóż zamówienie

  • Zapłać

  • Śledź dostawę

  • Zarządzaj zapasami

Możliwe klasy

Klient
Produkt
Koszyk
ElementKoszyka
Zamówienie
ElementZamówienia
Płatność
Dostawa

Możliwe składniki usługi

Usługa użytkownika
Usługa katalogu
Usługa koszyka
Usługa zamówienia
Usługa płatności
Usługa wysyłki
Usługa powiadomień

Przykładowa interakcja

Gdy klient umawia zamówienie:

  1. Klient przesyła koszyk.

  2. Aplikacja internetowa wysyła żądanie do usługi zamówienia.

  3. Usługa zamówienia weryfikuje przedmioty.

  4. Usługa płatności zatwierdza płatność.

  5. Zamówienie jest zapisane.

  6. Usługa wysyłki jest powiadomiona.

  7. Usługa powiadomień wysyła e-mail potwierdzający.

Ten pojedynczy proces biznesowy może być przedstawiony za pomocą kilku diagramów UML:

  • Diagram przypadków użycia: Pokazuje, że klient może złożyć zamówienie.

  • Diagram aktywności: Pokazuje przepływ pracy i punkty decyzyjne.

  • Diagram sekwencji: Pokazuje komunikaty między usługami.

  • Diagram klas: Pokazuje Klient, Zamówienie, Produkt, oraz powiązane klasy.

  • Diagram składników: Pokazuje zaangażowane usługi.

  • Diagram wdrożenia: Pokazuje, gdzie te usługi są uruchamiane.

Jak wybrać odpowiedni diagram UML

Cel modelowania Zalecany diagram UML
Pokaż klasy i ich relacje Diagram klas
Pokaż rzeczywiste instancje obiektów Diagram obiektu
Opisz funkcjonalność systemu Diagram przypadków użycia
Zamodeluj przepływ pracy firmy lub systemu Diagram aktywności
Pokaż komunikaty wymieniane w czasie Diagram sekwencji
Pokaż współpracę obiektów Diagram komunikacji
Pokaż cykl życia i zmiany stanu Diagram maszyny stanów
Pokaż moduły oprogramowania lub usługi Diagram składników
Pokaż fizyczne wdrożenie Diagram wdrażania
Zorganizuj elementy modelu Diagram pakietu
Pokaż wewnętrzne części klasyfikatora Diagram struktury złożonej
Pokaż zmiany w czasie Diagram czasu
Podsumowanie kilku interakcji Diagram przeglądowy interakcji
Rozszerz UML dla specjalistycznego obszaru Diagram profilu

Dobrą praktyką modelowania jest wybieranie tylko tych diagramów, które odpowiadają na konkretne pytanie. Tworzenie każdego możliwego diagramu UML może uczynić dokumentację niepotrzebnie skomplikowaną.

UML i cykl życia oprogramowania

UML może wspierać wiele faz rozwoju oprogramowania.

Analiza wymagań

Diagramy przypadków użycia pomagają zidentyfikować aktorów i funkcjonalność systemu. Diagramy aktywności mogą wyjaśnić procesy biznesowe i przepływy pracy.

Analiza systemu

Diagramy klas mogą przedstawiać pojęcia dziedziny. Diagramy sekwencji mogą pomóc analitykom zrozumieć, jak są spełniane przypadki użycia.

Projekt architektury

Diagramy składników, pakietów i wdrażania pomagają określić strukturę aplikacji i jej infrastrukturę.

Szczegółowy projekt

Diagramy klas, diagramy sekwencji, diagramy maszyn stanów i diagramy struktury złożonej mogą opisywać odpowiedzialności implementacji oraz interakcje obiektów.

Rozwój

Programiści mogą używać modeli jako odniesienia podczas implementacji klas, usług, interfejsów API i struktur baz danych.

Testowanie

Testery mogą wyprowadzać scenariusze z przypadków użycia, diagramów aktywności i diagramów sekwencji. Diagramy maszyn stanów mogą pomóc w identyfikacji poprawnych i niepoprawnych przejść stanów.

Utrzymanie

Diagramy UML dostarczają dokumentację dla istniejących systemów i pomagają zespołom ocenić skutki proponowanych zmian.

Tworzenie diagramów UML za pomocą Visual Paradigm

Visual Paradigm to platforma do modelowania wizualnego i projektowania oprogramowania, która wspiera tworzenie diagramów UML oraz inne działania modelowania i rozwoju. Jej możliwości UML obejmują diagramy takie jak diagram klas, sekwencji, przypadków użycia, aktywności, składników, wdrażania, maszyny stanów, pakietów, obiektów i diagramów struktury złożonej.

Rozpoczynanie projektu UML

Powszechny przepływ pracy w Visual Paradigm to:

  1. Utwórz nowy projekt.

  2. Zorganizuj model w pakietach takich jakWymagania, Model domeny, Usługi, orazWdrażanie.

  3. Utwórz diagram przypadków użycia, aby zarejestrować funkcjonalność systemu.

  4. Dodaj diagram aktywności lub sekwencji dla ważnych przepływów pracy.

  5. Utwórz diagram klas dla modelu domeny.

  6. Dodaj diagramy składników i wdrażania dla architektury.

  7. Przejrzyj schematy z zaangażowanymi stronami.

  8. Aktualizuj model wraz z rozwojem systemu.

  9. Eksportuj schematy lub generuj dokumentację, gdy będzie to potrzebne.

Tworzenie diagramu klas

Aby stworzyć diagram klas:

  1. Utwórz nowy diagram klas.

  2. Dodaj główne klasy domeny.

  3. Dodaj atrybuty i operacje.

  4. Połącz klasy za pomocą odpowiednich relacji.

  5. Dodaj mnożności.

  6. Wskazuj dziedziczenie i interfejsy tam, gdzie jest to wymagane.

  7. Ułóż schemat tak, aby powiązane klasy były łatwe do śledzenia.

  8. Weryfikuj model pod kątem wymagań.

Na przykład diagram klas dla sklepu internetowego może zawieraćKlient, Zamówienie, Produkt, Płatność, i Wysyłka.

Tworzenie diagramu przypadków użycia

Diagram przypadków użycia można stworzyć przez:

  1. Określanie zewnętrznych aktorów.

  2. Wypisywanie głównych funkcji systemu.

  3. Dodawanie granicy systemu.

  4. Umieszczanie przypadków użycia wewnątrz granicy.

  5. Łączenie aktorów z przypadkami użycia, w których uczestniczą.

  6. Dodawanie relacji include lub extend tylko wtedy, gdy ułatwiają zrozumienie ponownego wykorzystania lub zachowania opcjonalnego.

Tworzenie diagramu sekwencji

Podczas tworzenia diagramu sekwencji:

  1. Określ scenariusz, który jest modelowany.

  2. Dodaj aktora lub składnik inicjujący.

  3. Dodaj obiekty lub usługi uczestniczące.

  4. Ułóż je od lewej do prawej.

  5. Dodaj komunikaty w kolejności chronologicznej.

  6. Modeluj alternatywy, pętle i warunki błędów.

  7. Upewnij się, że każda wiadomość odpowiada realistycznej odpowiedzialności.

Współpraca i dokumentacja

Visual Paradigm zapewnia możliwości modelowania wizualnego, funkcje współpracy zespołowej, wsparcie dokumentacji oraz integracje zaprojektowane w celu połączenia modelowania z szerokimi działaniami rozwoju oprogramowania. Platforma umożliwia również wspólne przeglądarki diagramów i komentowanie.

Niektóre edycje i przepływy pracy mogą również oferować funkcje takie jak inżynieria kodu, modelowanie bazy danych, organizacja modeli, eksport diagramów i generowanie dokumentacji. Te możliwości powinny być wybierane zgodnie z potrzebami projektu, a nie dodawane automatycznie do każdego modelu.

Najlepsze praktyki efektywnego modelowania UML

Modeluj z konkretnym celem

Każdy diagram powinien odpowiedzieć na jasne pytanie. Na przykład:

  • Jak klient składa zamówienie?

  • Które usługi zależą od usługi płatności?

  • W jakie stany może przejść zamówienie?

  • Które klasy należą do domeny zamówienia?

Utrzymuj diagramy skupione na głównym celu

Unikaj umieszczania całego systemu na jednym diagramie. Podziel duże modele na mniejsze widoki dla wymagań, struktury domeny, zachowania, architektury i wdrażania.

Używaj spójnych nazw

Używaj tych samych nazw na diagramach. Jeśli jeden diagram nazywa komponentOrderService, drugi nie powinien go nazywaćOrderManager chyba że są rzeczywiście różnymi elementami.

Wybierz odpowiedni poziom szczegółowości

Diagram zorientowany na stakeholdera powinien zwykle zawierać mniej szczegółów technicznych niż diagram implementacyjny. Nie dodawaj sygnatur metod, pól bazy danych ani szczegółów specyficznych dla frameworka, chyba że są istotne dla odbiorcy.

Unikaj niepotrzebnych relacji

Dodawanie każdej możliwej zależności może uczynić diagram trudnym do odczytania. Włączaj relacje, które przekazują istotne informacje o projekcie.

Pokaż wielokrotność tam, gdzie ma znaczenie

Wielokrotność pomaga wyjaśnić zasady biznesowe i relacje danych. Na przykład pokazanie, że zamówienie zawiera jedno lub więcej pozycji zamówienia, jest bardziej informacyjne niż po prostu połączenie dwóch klas.

Weryfikuj diagramy pod kątem wymagań

Model jest przydatny tylko wtedy, gdy dokładnie odzwierciedla system. Porównuj diagramy z wymaganiami, scenariuszami testów, kodem źródłowym oraz opiniami stakeholderów.

Używaj diagramów jako żywej dokumentacji

Aktualizuj diagramy UML, gdy zmieniają się istotne decyzje projektowe. Używanie przestarzałych diagramów może być bardziej mylące niż brak diagramów w ogóle.

Łącz diagramy wzajemnie uzupełniające

Żaden pojedynczy diagram UML nie wyjaśnia każdej zasady systemu. Diagram klas może pokazywać strukturę, podczas gdy diagram sekwencji wyjaśnia, jak ta struktura zachowuje się w konkretnym scenariuszu.

Powszechne błędy do uniknięcia

  • Traktowanie UML jako kodu źródłowego

  • Tworzenie diagramów bez konkretnego celu

  • Mieszanie szczegółów koncepcyjnych i implementacyjnych bez wyjaśnienia

  • Używanie dziedziczenia tam, gdzie lepiej byłoby zastosować kompozycję

  • Pomijanie wielokrotności w istotnych relacjach

  • Dodawanie zbyt wielu elementów do jednego diagramu

  • Używanie niepoprawnych relacji include i extend

  • Nie modelowanie przepływów błędów i alternatywnych

  • Zezwolenie na używanie niezgodnych nazw w różnych diagramach

  • Zakładanie, że diagram jest poprawny tylko dlatego, że wygląda wizualnie uporządkowanie

UML 2.x i liczba diagramów

Wczesne wersje UML zwykle opisywały mniej typów diagramów.UML 2.xrozszerzył język i wprowadził lub ustandaryzował dodatkowe diagramy, w tym:

  • Diagram struktury złożonej

  • Diagram komunikacji

  • Diagram przeglądowy interakcji

  • Diagram czasowy

Zmieniło również nazwę diagramów statechart na diagramy maszyn stanów. Powszechna klasifikacja UML 2.x zawiera 14 diagramów: siedem diagramów strukturalnych i siedem diagramów zachowaniowych. Grupa zachowaniowa obejmuje diagramy przypadków użycia, działania, maszyn stanów, sekwencji, komunikacji, przeglądowy interakcji i czasowy. Grupa strukturalna obejmuje diagramy klas, obiektów, składników, struktury złożonej, wdrażania, pakietów i profili.

Dlatego listy opisujące UML 2.x jako mające tylko 13 diagramów są niepełne w ramach powszechnie używanej klasifikacji 14-diagramowej.

Wnioski

UML zapewnia praktyczny język wizualny do zrozumienia, projektowania i dokumentowania systemów oprogramowania. Pomaga zespołom komunikować wymagania, eksplorować architekturę, modelować relacje między obiektami, opisywać przepływy pracy oraz wyjaśniać zachowanie w czasie działania.

Najczęściej używane diagramy to zwykle:

  • Diagramy przypadków użycia do wymagań funkcjonalnych

  • Diagramy klas do struktury statycznej

  • Diagramy działań do przepływów pracy

  • Diagramy sekwencji do interakcji

  • Diagramy składników do architektury

  • Diagramy wdrożenia dla infrastruktury

  • Diagramy maszyn stanów dla zachowań cyklu życia

Visual Paradigm może wspierać ten proces modelowania, oferując narzędzia do tworzenia diagramów UML, organizowania modeli, współpracy z członkami zespołu oraz tworzenia dokumentacji technicznej. Najefektywniejszym podejściem nie jest używanie każdego diagramu UML bez rozróżnienia, ale wybór diagramów, które wyjaśniają istotne pytania projektowe.

Gdy jest używany spójnie i utrzymywany zgodnie z rzeczywistym systemem, UML staje się więcej niż zbiorem symboli: staje się wspólnym językiem projektowym łączącym wymagania biznesowe, architekturę oprogramowania, implementację, testowanie oraz długoterminową utrzymanie.

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