Zjednoczony Język Modelowania (UML) jest językiem modelowania, który może być używany do dowolnych celów. Głównym celem UML jest ustanowienie standardu do wizualizacji projektu systemu. Wygląda to bardzo podobnie do projektów w innych dziedzinach inżynierii.
UML jest językiem wizualnym, a nie językiem programowania. Diagramy UML są używane do przedstawiania zachowania i struktury systemu. UML jest narzędziem do modelowania, projektowania i analizy dla inżynierów oprogramowania, ludzi biznesu i architektów systemów. Zjednoczony Język Modelowania został zatwierdzony jako standard przez Grupa Zarządzania Obiektami (OMG) w 1997 roku. Od tego czasu OMG jest odpowiedzialna za jego zarządzanie. W 2005 roku Międzynarodowa Organizacja Normalizacyjna (ISO) zaakceptowała UML jako standard. UML był aktualizowany na przestrzeni lat i jest regularnie badany.
Czym jest UML?
Zjednoczony Język Modelowania (UML) został opracowany w celu ustanowienia wspólnego wizualnego języka modelowania dla architektury, projektowania i wdrażania struktury i zachowania dużych systemów oprogramowania. UML ma zastosowania poza rozwojem oprogramowania, takie jak procesy przemysłowe.
Składa się z wielu typów diagramów i jest podobny do planów używanych w innych dziedzinach. Diagramy UML ogólnie przedstawiają granice, strukturę i zachowanie systemu, a także obiekty w nim zawarte.
Chociaż UML nie jest językiem programowania, istnieją narzędzia, które generują kod w wielu językach przy użyciu diagramów UML.
Historia UML
UML powstał z zamieszania, które otaczało rozwój oprogramowania i dokumentację. W latach 90. istniało wiele technik do reprezentowania i dokumentowania systemów oprogramowania. W rezultacie trzech programistów Rational Software stworzyło UML w latach 1994-1996. Później został uznany za standard w 1997 roku i od tego czasu pozostał nim, z bardzo drobnymi poprawkami.
Czy UML jest naprawdę konieczny?
- Złożone aplikacje wymagają współpracy i planowania różnych zespołów, co wymaga jasnego i prostego sposobu komunikacji między nimi.
- Kod nie jest rozumiany przez ludzi biznesu. W rezultacie UML staje się niezbędny dla osób nieprogramujących, aby zrozumieć podstawowe wymagania, funkcjonalność i operacje systemu.
- Gdy zespoły mogą wizualizować procesy, interakcje użytkowników i statyczną strukturę systemu, mogą zaoszczędzić dużo czasu.
Projektowanie i analiza obiektowa są związane z UML. Aby tworzyć diagramy, UML bierze elementy i tworzy między nimi powiązania. Oto kilka przykładów diagramów UML.
- diagram strukturalny przedstawia statyczne cechy lub strukturę systemu. Pokazane są diagramy struktury. Diagramy komponentów, diagramy obiektów, diagramy klas i diagramy wdrożenia to przykłady diagramów używanych w rozwoju oprogramowania.
- diagram zachowania przedstawia dynamiczne cechy lub zachowanie systemu. Zawarte są diagramy zachowania. Diagramy przypadków użycia, diagramy stanów, diagramy aktywności i diagramy interakcji pomagają wizualizować twoje pomysły.
Schemat hierarchii według UML jest pokazany na poniższym rysunku.
Kluczowe pojęcia obiektowe w UML
Analiza i projektowanie obiektowe (OO) zostały zastąpione przez UML.
Obiekt składa się z danych i metod, które go kontrolują. Dane reprezentują aktualny stan obiektu. Klasa to typ obiektu, który ma hierarchię, która może być używana do naśladowania systemów rzeczywistych. Hierarchia jest wyrażana przez dziedziczenie, a klasy mogą być powiązane na różne sposoby w zależności od potrzeb.
Obiekty są bytami ze świata rzeczywistego, które istnieją wokół nas, a UML może reprezentować podstawowe zasady, takie jak abstrakcja, enkapsulacja, dziedziczenie i polimorfizm.
UML jest w stanie reprezentować wszystkie pojęcia występujące w analizie i projektowaniu obiektowym.
W diagramach UML reprezentowane są tylko pojęcia obiektowe. W związku z tym, przed nauką UML, kluczowe jest posiadanie dogłębnej wiedzy na temat pojęć OO.
- Klasa: Klasa definiuje plan, tj. strukturę i działanie obiektu, i jest używana w UML.
- Obiekty: Obiekty pomagają nam w rozkładaniu i modularizacji złożonych systemów. Modularność pozwala nam rozłożyć nasz system na łatwe do zrozumienia komponenty, co pozwala nam tworzyć go kawałek po kawałku. Podstawowymi jednostkami (elementami budulcowymi) systemu są obiekty, które służą do opisywania bytu.
- Dziedziczenie: mechanizm, który pozwala klasie potomnej dziedziczyć właściwości klasy rodzicielskiej.
- Abstrakcja: metoda, która chroni użytkownika przed szczegółami implementacji.
- Enkapsulacja: proces łączenia danych i ochrony ich przed światem zewnętrznym.
- Polimorfizm: metoda, która pozwala funkcji lub bytowi istnieć w kilku wersjach.
Dodatki w UML:
- Zakres pierwotnej definicji UML został rozszerzony, a podejścia do rozwoju oprogramowania, takie jak Agile, zostały dodane.
- Początkowo UML wymagał dziewięciu diagramów. Liczba diagramów w UML 2.x wzrosła z 9 do 13. Diagram czasowy, diagram komunikacji, diagram przeglądu interakcji i diagram struktury złożonej to cztery nowe diagramy. Diagram stanów został przemianowany na diagram maszyny stanowej w UML 2.x.
- Systemy oprogramowania mogą teraz być rozkładane na komponenty i podkomponenty przy użyciu UML 2.x.
Diagramy strukturalne UML
Diagram klas – Diagram klas jest najczęściej używanym diagramem UML. Służy jako podstawa dla wszystkich obiektowych systemów oprogramowania. Diagramy klas są używane do przedstawiania statycznej struktury systemu poprzez wyświetlanie jego klas, metod i właściwości. Diagramy klas pomagają również określić powiązania między różnymi klasami lub obiektami.
Diagram struktury złożonej – Diagramy struktury złożonej są używane do ilustrowania wewnętrznej struktury klasy oraz jej punktów interakcji z innymi komponentami systemu. Powiązanie między elementami i ich konfiguracja określa, jak zachowuje się klasyfikator (klasa, komponent lub węzeł wdrożeniowy). Części, porty i połączenia są używane do ilustrowania wewnętrznej struktury klasyfikatora złożonego. Możemy również używać diagramów struktury złożonej do modelowania współpracy. Są podobne do diagramów klas, ale zamiast reprezentować pełną klasę, przedstawiają szczególne elementy w szczegółach.
Diagram obiektów – Graf obiektów można określić jako zrzut ekranu instancji w systemie oraz relacji, które między nimi istnieją. Ponieważ diagramy obiektów opisują zachowanie obiektu po jego zainstancjonowaniu, możemy badać zachowanie systemu w danym momencie. Diagram obiektów jest podobny do diagramu klas, z tą różnicą, że pokazuje instancje klas w systemie. Opisujemy rzeczywiste klasyfikatory i ich relacje, używając diagramów klas. Z drugiej strony, grafy obiektów reprezentują konkretne instancje klas i relacje między nimi w danym momencie.
Diagram komponentów – Diagramy komponentów są używane do pokazania, jak fizyczne komponenty systemu są połączone. Służą do symulacji szczegółów implementacji. Diagramy komponentów pokazują strukturalne relacje między elementami systemu oprogramowania i mogą pomóc nam ustalić, czy planowany rozwój spełnia wszystkie wymagania funkcjonalne. Przy projektowaniu i budowaniu skomplikowanych systemów diagramy komponentów są niezbędne. Wiele komponentów systemu komunikuje się ze sobą za pośrednictwem interfejsów.
Diagram wdrożenia – Diagram wdrożenia to diagram, który przedstawia sprzęt i oprogramowanie systemu. Informuje nas o komponentach sprzętowych, które są obecne, a także o komponentach oprogramowania, które na nich działają. Informacje generowane przez oprogramowanie systemowe nazywane są artefaktami. Są najczęściej wykorzystywane, gdy oprogramowanie jest używane, dystrybuowane lub wdrażane na wielu urządzeniach o różnych konfiguracjach.
Diagram pakietów – Diagramy pakietów są używane do pokazania, jak pakiety i ich komponenty są uporządkowane. Diagramy pakietów po prostu przedstawiają wzajemne zależności różnych pakietów oraz wewnętrzną strukturę pakietów. Pakiety pomagają w organizacji diagramów UML w sensowne grupy oraz w zrozumieniu diagramów. Są głównie używane do utrzymania porządku w diagramach klas i diagramach przypadków użycia.
Diagramy zachowania UML
Diagram maszyny stanowej – używany do przedstawienia statusu systemu lub części systemu w określonym momencie. Jest to diagram zachowania, w którym zachowanie jest reprezentowane przez skończoną liczbę przejść stanów. Maszyny stanowe i diagramy stanów to inne nazwy dla diagramów stanów. Terminy te są często używane zamiennie. Prosto mówiąc, diagram stanów to wizualna reprezentacja dynamicznego zachowania klasy w odpowiedzi na czas i zmieniające się zewnętrzne wejścia.
Diagram aktywności – Używamy diagramów aktywności, aby pokazać, jak działa przepływ sterowania w systemie. Diagramy aktywności mogą być również używane do odniesienia się do etapów związanych z realizacją przypadku użycia. Diagramy aktywności są używane do reprezentowania sekwencyjnych i równoległych działań. W rezultacie diagramy aktywności są używane do wizualnego przedstawienia przepływu pracy. Okoliczności przepływu i kolejność, w jakiej występują, są w centrum uwagi diagramów aktywności. Diagramy aktywności są używane do reprezentowania lub opisywania wydarzeń, które prowadzą do konkretnego zdarzenia.
Diagram przypadków użycia są używane do opisywania funkcjonalności systemu lub komponentu systemu. Często są wykorzystywane do przedstawiania wymagań funkcjonalnych systemu oraz interakcji z zewnętrznymi agentami (aktorami). Przypadek użycia to diagram, który przedstawia różne konteksty, w których system może być zastosowany. Diagramy przypadków użycia dają nam ogólny przegląd tego, co system lub element systemu wykonuje, bez zagłębiania się w szczegóły implementacji.
Diagram sekwencji po prostu przedstawia interakcje między elementami w serii, tj. kolejność, w jakiej te interakcje mają miejsce. Diagram sekwencji można również nazwać diagramem zdarzeń lub scenariuszem zdarzeń. Diagramy sekwencji pokazują, jak i w jakiej kolejności komponenty systemu współpracują ze sobą. Ludzie biznesu i inżynierowie oprogramowania często używają tych diagramów do dokumentowania i zrozumienia potrzeb nowych i istniejących systemów.
Diagram komunikacji (znany również jako diagramy współpracy w UML 1.x) są używane do przedstawiania sekwencyjnego przesyłania informacji między obiektami. Obiekty i ich relacje są w centrum uwagi diagramów komunikacji. Diagramy sekwencji mogą być używane do opisywania podobnych informacji, ale diagramy komunikacji przedstawiają obiekty i powiązania w ich naturalnym stanie.
Diagram czasowy – Diagramy czasowe to rodzaj diagramu sekwencji, który przedstawia zachowanie obiektów w określonym czasie. Służą do przedstawiania ograniczeń czasowych i czasowych, które regulują zmiany w stanie i zachowaniu obiektu.
Diagramy przeglądu interakcji – Diagram przeglądu interakcji to model serii zdarzeń, który może być używany do rozkładania złożonych interakcji na prostsze zdarzenia. To połączenie diagramu aktywności i diagramu sekwencji.
Słownik UML
- Klasa abstrakcyjna – Klasa, która nigdy nie będzie zainstancjonowana. Instancja tej klasy nigdy nie będzie istniała.
- Aktor – Obiekt lub osoba, która inicjuje zdarzenia, w które zaangażowany jest system.
- Aktywność: Krok lub działanie w ramach diagramu aktywności. Reprezentuje działanie podejmowane przez system lub przez aktora.
- Diagram aktywności: Udoskonalony diagram przepływu, który pokazuje kroki, decyzje i równoległe operacje w ramach procesu, takiego jak algorytm lub proces biznesowy.
- Agregacja – Jest częścią innej klasy. Pokazane z pustym diamentem obok klasy zawierającej w diagramach.
- Artefakty – Dokumenty opisujące wynik kroku w procesie projektowania. Opis jest graficzny, tekstowy lub w jakiejś kombinacji.
- Asocjacja – Połączenie między dwoma elementami modelu. Może to reprezentować zmienną członkowską w kodzie, lub asocjację między rekordem pracownika a osobą, którą reprezentuje, lub relację między dwiema kategoriami pracowników, lub jakąkolwiek podobną relację. Domyślnie oba elementy w asocjacji są równe i są świadome siebie nawzajem przez asocjację. Asocjacja może być również asocjacją nawigowalną, co oznacza, że źródłowy koniec asocjacji jest świadomy końca docelowego, ale nie odwrotnie.
- Klasa asocjacji: Klasa, która reprezentuje i dodaje informacje do asocjacji między dwiema innymi klasami.
- Atrybuty – Cechy obiektu, które mogą być używane do odniesienia się do innych obiektów lub przechowywania informacji o stanie obiektu.
- Klasa bazowa: Klasa, która definiuje atrybuty i operacje, które są dziedziczone przez podklasę poprzez relację generalizacji.
- Gałąź: Punkt decyzyjny w diagramie aktywności. Z gałęzi wyłaniają się wiele przejść, z których każde ma warunek ochronny. Gdy kontrola osiągnie gałąź, dokładnie jeden warunek ochronny musi być prawdziwy; a kontrola podąża za odpowiadającym przejściem.
- Klasa: Kategoria podobnych obiektów, wszystkie opisane tymi samymi atrybutami i operacjami oraz wszystkie kompatybilne z przypisaniem.
- Diagram klas – Pokazuje klasy systemu i relacje między nimi.
- Klasyfikator: Element UML, który ma atrybuty i operacje. W szczególności, aktorzy, klasy i interfejsy.
- Współpraca: Relacja między dwoma obiektami w diagramie komunikacji, wskazująca, że wiadomości mogą przechodzić w obie strony między obiektami.
- Diagram komunikacji – Diagram, który pokazuje, jak są wykonywane operacje, podkreślając role obiektów.
- Komponent: Jednostka kodu, która może być wdrożona w systemie.
- Diagram komponentów: Diagram, który pokazuje relacje między różnymi komponentami i interfejsami.
- Koncepcja – Rzeczownik lub abstrakcyjna idea, która ma być uwzględniona w modelu domeny.
- Faza budowy – Trzecia faza racjonalnego zintegrowanego procesu, podczas której kilka iteracji funkcjonalności jest wbudowywanych w system w budowie. To tutaj wykonywana jest główna praca.
- Zależność: Relacja, która wskazuje, że jeden klasyfikator zna atrybuty i operacje innego klasyfikatora, ale nie jest bezpośrednio połączony z żadną instancją drugiego klasyfikatora.
- Diagram wdrożenia: Diagram, który pokazuje relacje między różnymi procesorami.
- Domena -Część wszechświata, z którą system jest związany.
- Faza rozwinięcia – Druga faza racjonalnego zintegrowanego procesu, która pozwala na dodatkowe planowanie projektu, w tym iteracje fazy budowy.
- Element: Dowolny element, który pojawia się w modelu.
- Enkapsulacja – Dane w obiektach są prywatne.
- Generalizacja – Wskazuje, że jedna klasa jest podklasą innej klasy (superklasy). Pusta strzałka wskazuje na superklasę.
- Zdarzenie: W diagramie stanów, to reprezentuje sygnał lub zdarzenie lub wejście, które powoduje, że system podejmuje działanie lub zmienia stany.
- Stan końcowy: W diagramie stanów lub diagramie aktywności, to wskazuje punkt, w którym diagram się kończy.
- Rozgałęzienie: Punkt w diagramie aktywności, w którym zaczynają się wiele równoległych wątków kontrolnych.
- Generalizacja: Relacja dziedziczenia, w której podklasa dziedziczy i dodaje do atrybutów i operacji klasy bazowej.
- GoF – Zestaw wzorców projektowych Gang of Four.
- Wysoka spójność – Wzorzec oceny GRASP, który zapewnia, że klasa nie jest zbyt skomplikowana, wykonując niepowiązane funkcje.
- Niska spójność – Wzorzec oceny GRASP, który mierzy, jak bardzo jedna klasa polega na innej klasie lub jest z nią połączona.
- Faza początkowa – Pierwsza faza racjonalnego zintegrowanego procesu, która zajmuje się pierwotną koncepcją i rozpoczęciem projektu.
- Dziedziczenie – Podklasy dziedziczą atrybuty lub cechy swojej klasy rodzicielskiej (superklasy). Te atrybuty mogą być nadpisane w podklasie.
- Stan początkowy: W diagramie stanów lub diagramie aktywności, to wskazuje punkt, w którym diagram się zaczyna.
- Instancja – Klasa jest używana jak szablon do tworzenia obiektu. Ten obiekt nazywa się instancją klasy. Można utworzyć dowolną liczbę instancji klasy.
- Interfejs: Klasyfikator, który definiuje atrybuty i operacje, które tworzą kontrakt dla zachowania. Klasa lub komponent dostawcy może zdecydować się na zrealizowanie interfejsu (tj. zaimplementowanie jego atrybutów i operacji). Klasa lub komponent klienta może następnie polegać na interfejsie i tym samym korzystać z dostawcy bez znajomości szczegółów prawdziwej klasy dostawcy.
- Iteracja – Mini sekcja projektu, podczas której dodawany jest mały kawałek funkcjonalności do projektu. Zawiera pętlę rozwoju analizy, projektowania i kodowania.
- Złączenie: Punkt w diagramie aktywności, w którym wiele równoległych wątków kontrolnych synchronizuje się i ponownie łączy.
- Członek: Atrybut lub operacja w obrębie klasyfikatora.
- Scalenie: Punkt w diagramie aktywności, w którym różne ścieżki kontrolne się łączą.
- Wiadomość – Żądanie od jednego obiektu do drugiego, prosząc obiekt odbierający wiadomość o zrobienie czegoś. To zasadniczo wywołanie metody w obiekcie odbierającym.
- Metoda – Funkcja lub procedura w obiekcie.
- Model – Centralny artefakt UML. Składa się z różnych elementów uporządkowanych w hierarchii według pakietów, z relacjami między elementami.
- Wielokrotność – Pokazana w modelu domeny i wskazana poza pudełkami koncepcyjnymi, wskazuje na relację ilości obiektów do kwantyli innych obiektów.
- Nawigowalność: Wskazuje, który koniec relacji jest świadomy drugiego końca. Relacje mogą mieć dwukierunkową nawigowalność (każdy koniec jest świadomy drugiego) lub jednokierunkową nawigowalność (jeden koniec jest świadomy drugiego, ale nie odwrotnie).
- Notacja – Dokument graficzny z zasadami tworzenia metod analizy i projektowania.
- Notatka: Notatka tekstowa dodana do diagramu, aby wyjaśnić diagram w bardziej szczegółowy sposób.
- Obiekt – Obiekt: W diagramie aktywności, obiekt, który otrzymuje informacje z aktywności lub dostarcza informacje do aktywności. W diagramie współpracy lub diagramie sekwencji, obiekt, który uczestniczy w scenariuszu przedstawionym w diagramie. Ogólnie: jedna instancja lub przykład danego klasyfikatora (aktor, klasa lub interfejs).
- Pakiet – Grupa elementów UML, które logicznie powinny być grupowane razem.
- Diagram pakietów: Diagram klas, w którym wszystkie elementy to pakiety i zależności.
- Wzorzec – Rozwiązania używane do określenia przypisania odpowiedzialności dla obiektów do interakcji. To nazwa dla udanego rozwiązania znanego powszechnego problemu.
- Parametr: Argument do operacji.
- Polimorfizm – Ta sama wiadomość, inna metoda. Również używana jako wzorzec.
- Prywatny: Poziom widoczności stosowany do atrybutu lub operacji, wskazujący, że tylko kod dla klasyfikatora, który zawiera członka, może uzyskać dostęp do członka.
- Procesor: W diagramie wdrożenia, to reprezentuje komputer lub inne programowalne urządzenie, w którym kod może być wdrożony.
- Chroniony: Poziom widoczności stosowany do atrybutu lub operacji, wskazujący, że tylko kod dla klasyfikatora, który zawiera członka lub dla jego podklas, może uzyskać dostęp do członka.
- Publiczny: Poziom widoczności stosowany do atrybutu lub operacji, wskazujący, że każdy kod może uzyskać dostęp do członka.
- Strzałka kierunku czytania – Wskazuje kierunek relacji w modelu domeny.
- Realizacja: Wskazuje, że Komponent lub Klasa zapewnia dany Interfejs.
- Rola – Używana w modelu domeny, jest opcjonalnym opisem roli aktora.
- Diagram sekwencji: Diagram, który pokazuje istnienie Obiektów w czasie oraz Wiadomości, które przechodzą między tymi Obiektami w czasie, aby zrealizować pewne zachowanie. Diagram stanów – Diagram, który pokazuje wszystkie możliwe stany obiektów.
- Stan: W Diagramie Stanów reprezentuje jeden stan systemu lub podsystemu: co robi w danym momencie, a także wartości swoich danych.
- Diagram stanów: Diagram, który pokazuje Stany systemu lub podsystemu, Przejścia między Stanami oraz Wydarzenia, które powodują Przejścia.
- Statyczny: Modyfikator atrybutu, który wskazuje, że istnieje tylko jedna kopia atrybutu współdzielona przez wszystkie instancje Klasyfikatora. Modyfikator Operacji, który wskazuje, że Operacja działa samodzielnie i nie operuje na jednej konkretnej instancji Klasyfikatora.
- Stereotyp: Modyfikator stosowany do elementu Modelu, wskazujący coś o nim, co nie może być normalnie wyrażone w UML. W istocie, Stereotypy pozwalają na zdefiniowanie własnego „dialektu” UML.
- Podklasa: Klasa, która dziedziczy Atrybuty i Operacje zdefiniowane przez Podklasę za pomocą relacji Generalizacji.
- Pas pływacki: Element Diagramu Aktywności, który wskazuje, które części systemu lub domeny wykonują konkretne Aktywności. Wszystkie Aktywności w Pasie pływackim są odpowiedzialnością Obiektu, Komponentu lub Aktora reprezentowanego przez Pas pływacki.
- Time Boxing – Każda iteracja będzie miała limit czasowy z określonymi celami.
- Przejście: W Diagramie Aktywności reprezentuje przepływ kontroli z jednej Aktywności lub Gałęzi lub Scalania lub Rozgałęzienia lub Połączenia do innej. W Diagramie Stanów reprezentuje zmianę z jednego Stanu do drugiego.
- Faza przejścia – Ostatnia faza Racional Unified Process, podczas której użytkownicy są szkoleni w korzystaniu z nowego systemu, a system jest udostępniany użytkownikom.
- UML – Unified Modeling Language wykorzystuje dokumenty tekstowe i graficzne do poprawy analizy i projektowania projektów oprogramowania, umożliwiając bardziej spójne relacje między obiektami.
- Przypadek użycia: W Diagramie Przypadków Użycia reprezentuje działanie, które system podejmuje w odpowiedzi na żądanie Aktora.
- Diagram przypadków użycia: Diagram, który pokazuje relacje między Aktorami a Przypadkami Użycia.
- Widoczność: Modyfikator atrybutu lub operacji, który wskazuje, jaki kod ma dostęp do członka. Poziomy widoczności obejmują Publiczny, Chroniony i Prywatny.
- Przepływ pracy – Zestaw działań, który przynosi określony wynik.
Zasoby i odniesienia UML
- Unified Modeling Language – Wikipedia
- Unified Modeling Language – IBM
- Najlepsze narzędzie do modelowania UML: Visual Paradigm
- Visual Paradigm: Czym jest Unified Modeling Language (UML)?
Ten post dostępny jest również w Deutsch, English, فارسی, Français, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文