Unified Modeling Language

Z Wikipedii, wolnej encyklopedii
(Przekierowano z UML)
Skocz do: nawigacji, wyszukiwania
Ujednoznacznienie Ten artykuł dotyczy zunifikowanego języka modelowania. Zobacz też: inne znaczenia skrótu UML.
Unified Modeling Language
Paradygmat język modelowania graficznego
Aktualna wersja stabilna 2.4.1
Twórca Grady Booch, Ivar Jacobson i James Rumbaugh
Licencja public domain
http://www.uml.org
Przykładowe diagramy UML

Format otwarty UML (ang. Unified Modeling Language, czyli Zunifikowany Język Modelowania) – język formalny wykorzystywany do modelowania różnego rodzaju systemów, stworzony przez Grady Boocha, Jamesa Rumbaugha oraz Ivara Jacobsona, obecnie rozwijany przez Object Management Group[1].

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 głównie używany wraz z jego reprezentacją graficzną – jego elementom przypisane są symbole, które wiązane są ze sobą na diagramach.

UML jest oficjalnie zdefiniowany przez Object Management Group (OMG) w tzw. metamodelu UML – Meta-Object Facility (MOF). Jak inne specyfikacje bazujące na Meta-Object Facility, metamodel UML i modele UML mogą być serializowane (zapisywane) w języku XML Metadata Interchange (XMI), 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. Systems Modeling Language (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 Object Constraint Language (OCL) opracowany pierwotnie przez IBM.

Historia UML[edytuj | edytuj kod]

Modelowanie obiektowe pojawiło się w latach 70. ubiegłego 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, Object-Oriented Software Engineering (OOSE) oraz Object Modeling Technique (OMT). 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 (Rational Software), Ivar Jacobson (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 Object Management Group (OMG), 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: Infastructure i Superstructure, znacznie usprawniono modelowanie dla systemów wbudowanych (ang. embedded system). Następnie wydała wersje 2.1.1 i 2.1.2 (OMG nigdy nie wydało formalnie UML 2.1). Najnowsza wersja UML 2.4.1. została znormalizowana (ISO/IEC 19505-1 i 19505-2) w kwietniu 2012 roku.

Metody[edytuj | edytuj kod]

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

Diagramy[edytuj | edytuj kod]

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

Diagramy struktur[edytuj | edytuj kod]

  • Klas (najczęściej spotykane, ang. class diagram)
  • Obiektów (ang. object diagram)
  • Komponentów (ang. component diagram)
  • Wdrożenia (ang. deployment diagram)
  • --- UML 2.0 ---
  • Struktur złożonych (ang. composite structure diagram)
  • Pakietów (ang. package diagram)
  • --- UML 2.2 ---
  • Profili (ang. profile diagram, nowość wprowadzona w UML 2.2)

Diagramy zachowań[edytuj | edytuj kod]

  • Maszyny stanów (ang. state machine diagram) (dla UML 1.x Stanów, ang. statechart diagram)
  • Interakcji (diagram abstrakcyjny)
    • Komunikacji (ang. communication diagram) (dla UML 1.x Współdziałania, ang. collaboration diagram)
    • Sekwencji (ang. sequence diagram)
    • --- UML 2.0 ---
    • Czasowe (ang. timing diagram)
    • Przeglądu interakcji (ang. interaction overview diagram)

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[edytuj | edytuj kod]

W praktyce rzadko kiedy trzeba opracowywać wszystkie diagramy i w większości przypadków korzysta się z mniej niż połowy wyżej wymienionych. Nie powinno modelować się tylko dla samego modelowania, dlatego nie zawsze wszystkie rodzaje są potrzebne.

Projektując system informatyczny, rozpoczyna się przeważnie od tworzenia diagramów w następującej kolejności:

  1. Przypadków użycia
  2. Sekwencji
  3. Klas
  4. Aktywności

Są to najczęściej wykorzystywane diagramy. Pozostałe bywają pomijane, zwłaszcza przy budowaniu niedużych systemów informatycznych.

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[edytuj | edytuj kod]

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.

Zobacz też[edytuj | edytuj kod]

Commons in image icon.svg

Przypisy

  1. Tom Pender: UML Bible. John Wiley & Sons, 2003.

Linki zewnętrzne[edytuj | edytuj kod]