mały|upright=1.5|Przykładowe diagramy UML (, zunifikowany język modelowania) – język pół-formalny wykorzystywany do modelowania różnego rodzaju systemów, stworzony przez Grady’ego Boocha, Jamesa Rumbaugha oraz , obecnie rozwijany przez .

Służy do modelowania dziedziny problemu (opisywania-modelowania fragmentu istniejącej rzeczywistości – na przykład modelowanie tego, czym zajmuje się jakiś dział w firmie) – w przypadku stosowania go do analizy oraz do modelowania rzeczywistości, która ma dopiero powstać – tworzy się w nim głównie modele systemów informatycznych. UML jest przeważnie używany wraz ze swoją reprezentacją graficzną – jego elementom przypisane są odpowiednie symbole wiązane ze sobą na diagramach.

UML jest oficjalnie zdefiniowany przez () w tzw. metamodelu UML – (). Jak inne specyfikacje bazujące na , metamodel UML i modele UML mogą być serializowane (zapisywane) w języku (), opartym na standardzie XML. Choć UML był zaprojektowany, by definiować, wizualizować, konstruować i dokumentować systemy kładące nacisk na oprogramowanie, nie jest on ograniczony do modelowania oprogramowania. UML jest używany także do modelowania procesów biznesowych, inżynierii systemów i reprezentowania struktur organizacyjnych. (SysML, Język Modelowania Systemów) jest językiem modelowania dla specyficznych zagadnień inżynierii systemów, zdefiniowanym jako profil UML 2.0. W UML-u do opracowywania formalnych ograniczeń można wykorzystać także język () opracowany pierwotnie przez IBM.

Historia UML mały|Historia notacji w analizie i modelowaniu obiektowym Modelowanie obiektowe pojawiło się w latach 70. XX wieku w odpowiedzi na powstające języki programowania obiektowego (Simula, Smalltalk i Ada). W latach 90. istniało ponad 50 metod obiektowych. Wielu użytkowników miało problem ze znalezieniem języka modelowania odpowiadającego ich potrzebom. Opracowano metody nowej generacji, ale tylko kilka z nich zyskało uznanie. Były to: Metoda Boocha, () oraz (). Powstały także metody Fusion, Shlaera-Mellora i Coada-Yourdona. Każda z tych metod miała wady i zalety, nadawała się tylko do pewnych zastosowań.

Przełom nastąpił w połowie lat 90., gdy Grady Booch (), (Objectory AB) oraz James Rumbaugh (General Electric) rozpoczęli wspólnie wzbogacać swoje własne metody elementami kolegów. Chcieli wspólnie opracować zunifikowany (Metoda Boocha, OOSE, OMT) język modelowania. W ten sposób chcieli ustabilizować rynek obiektowy. Oficjalny początek prac nastąpił, gdy Rumbaugh i Jacobson dołączyli do Rational Software. W czerwcu 1996 roku opracowana została dokumentacja wersji 0.9 Unified Method. Utworzono Konsorcjum UML, w które zaangażowali się tacy giganci jak HP, IBM, Oracle i Microsoft. Wynikiem współpracy był UML 1.0, precyzyjny język modelowania. W styczniu 1997 roku UML 1.0 przekazano grupie , która do dzisiaj zajmuje się jego rozwojem.

OMG wypracowała wersje 1.1, 1.2, 1.3, 1.4, 1.4.2 (ta została poddana standaryzacji ISO/IEC 19501) i ostatnią wersję z gałęzi 1.x oznaczoną numerem 1.5. W czerwcu 2005 roku OMG opublikowała UML 2.0 łączący wysiłki ponad stu organizacji (po raz pierwszy zastosowano konwencję dwóch uzupełniających się specyfikacji: Infrastructure i Superstructure, znacznie usprawniono modelowanie dla systemów wbudowanych). Następnie wydała wersje 2.1.1 i 2.1.2 (OMG nigdy nie wydało formalnie UML 2.1). Wersja UML 2.4.1. została znormalizowana (ISO/IEC 19505-1 i 19505-2) w kwietniu 2012 roku. Najnowsza wersja to 2.5.1.

Metody UML nie jest metodą samą w sobie, lecz był projektowany dla kompatybilności z wiodącymi obiektowymi metodami rozwoju oprogramowania (na przykład metodą , Boocha, Objectory). Odkąd ewoluował UML, niektóre z tych metod zostały uaktualnione tak, by wykorzystywać nową notację (np. ). Powstały też nowe metody na bazie już istniejącego UML. Najbardziej znana jest metoda (). Jest jeszcze wiele innych metod opartych na UML, jak metoda abstrakcji (), Metoda rozwoju systemów dynamicznych (ang. ), i inne, zaprojektowane dla zapewnienia bardziej specyficznych rozwiązań, czy osiągania innych celów.

Diagramy Dla wersji 2.2 języka UML wyróżnia się 14 diagramów głównych oraz 3 abstrakcyjne (struktur, zachowań i interakcji). Istnieją pewne niejednoznaczności co do stosowanego polskiego tłumaczenia diagramów, np. ang. jest tłumaczony jako diagram czasowy, zależności czasowych, harmonogramowania, uwarunkowań czasowych czy diagram przebiegów czasowych.

Diagramy struktur Klas (najczęściej spotykane, ang. ) Obiektów (ang. ) Komponentów (ang. ) Wdrożenia (ang. ) UML 2.0 Struktur złożonych (ang. ) Pakietów (ang. ) UML 2.2 Profili (ang. , nowość wprowadzona w UML 2.2)

Diagramy zachowań Czynności (ang. ) Przypadków użycia (ang. )

Maszyny stanów (ang. ) (dla UML 1.x Stanów, ang. ) Interakcji (diagram abstrakcyjny) Komunikacji (ang. ) (dla UML 1.x Współdziałania, ang. ) Sekwencji (ang. ) UML 2.0 Czasowe (ang. ) Przeglądu interakcji (ang. )

W przypadku modelowania biznesowego można korzystać z pewnych modyfikacji wyżej wymienionych diagramów UML, np. diagramu biznesowych przypadków użycia (charakterystyczna cięciwa dla symbolów aktora i przypadku użycia).

Użycie Ze względu na mnogość dostępnych diagramów w roku 1995 inżynier oprogramowania zaproponował jako podstawę każdego projektu. Model ten wyróżnia cztery punkty widzenia i odpowiadające im diagramy:

Widok logiczny - diagramy klas Widok procesu - diagramy sekwencji Widok implementacji - diagramy komponentów Widok fizyczny - diagramy wdrożenia

mały|Graficzna reprezentacja modelu „4+1”. Strzałki rysowane linią ciągłą oznaczają kolejność tworzenia kolejnych diagramów, a linią przerywaną wskazują na spójność każdego poziomu abstrakcji ze scenariuszami przypadków użycia. uzupełnione przez zbiór scenariuszy przypadków użycia i diagram przypadków użycia.

Tak przygotowany model podstawowy może być uzupełniany o kolejne rodzaje diagramów w zależności od potrzeb danego projektu.

UML jest również stosowany do tworzenia modeli architektury korporacyjnej, jednakże obecnie coraz częściej do tego celu wykorzystywany jest inny standard (rozwijany przez The Open Group), tj. język ArchiMate.

Narzędzia Są to narzędzia CASE będące de facto implementacją języka UML. Niektóre pozwalają także na inżynierię w przód i inżynierię wstecz dla obiektowych języków programowania. Lista narzędzi UML

Zobacz też

inżynieria oprogramowania

Przypisy

Linki zewnętrzne OMG UML – strona główna UML-a organizacji OMG OMG UML – specyfikacja OMG dla UML OMG OCL – specyfikacja języka OCL (formalne ograniczenia w UML) Agile Models Distilled – kompletny zestaw artykułów opisujących elementy UML 2.0

Kategoria:Języki komputerowe Kategoria:Standardy ISO Kategoria:Reprezentacja wiedzy