UML: Różnice pomiędzy wersjami

Z Encyklopedia Zarządzania
(LinkTitles.)
m (cleanup bibliografii i rotten links)
 
(Nie pokazano 16 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
{{infobox4
'''UML''' (ang. Unified Modeling Language czyli Ujednolicony Język Modelowania) to graficzny język do obrazowania, specyfikowania, tworzenia i dokumentowania elementów [[system informatyczny|systemów informatycznych]]. Umożliwia standaryzację sposobu opracowywania przekrojów systemu, obejmujących obiekty pojęciowe, takie jak [[proces]]y przedsiębiorstwa i funkcje systemowe, a także obiekty konkretne, takie jak klasy zaprogramowane w ustalonym języku, schematy [[baza danych|baz danych]] i komponenty programowe nadające się do ponownego użycia. UML wspomaga specyfikowanie wszystkich ważnych decyzji analitycznych, projektowych i implementacyjnych, które muszą być podejmowane w trakcie wytwarzania i wdrażania systemu informatycznego. [[Modele]] zapisane w języku UML są jednakowo interpretowane przez wszystkie osoby zaangażowane w dany preces.
|list1=
<ul>
<li>[[SQL]]</li>
<li>[[Wzorce projektowe]]</li>
<li>[[Behavior driven development]]</li>
<li>[[SmallTalk (język programowania)]]</li>
<li>[[XML]]</li>
<li>[[Pascal (język programowania)]]</li>
<li>[[COBOL (język programowania)]]</li>
<li>[[Perl (język programowania)]]</li>
<li>[[ASP.NET]]</li>
</ul>
}}


==TL;DR==
UML to graficzny język do obrazowania i dokumentowania elementów systemów informatycznych. Prace nad UML rozpoczęły się w 1994 roku, a ostateczna wersja została opublikowana w 1997 roku. UML znajduje zastosowanie w wielu branżach, głównie w projektowaniu systemów informatycznych. UML składa się z różnych diagramów, takich jak diagramy klas, diagramy przypadków użycia, czy diagramy sekwencji. Może być używany w połączeniu z różnymi językami programowania. Istnieje wiele narzędzi wspomagających tworzenie diagramów UML, zarówno darmowych, jak i komercyjnych. UML definiuje różne rodzaje związków między klasami, takie jak zależność, asocjacja, agregacja i generalizacja.


==Geneza==
Języki modelowania obiektowego pojawiły się między połową lat siedemdziesiątych a końcem lat osiemdziesiątych. Opracowanych zostało wiele metod obiektowych, z których jednymi z najważniejszych były: [[metoda]] Boocha, metoda OOSE Jacobsona (Object - Oriented Software Engineering) i metoda OMT Rumbaugha (Object Modeling Technique).


Oficjalny początek prac nad UML datuje się na październik 1994 roku. Wynikiem współpracy kilku firm, m.in. Rational, IBM, Hewlett-Packard, Texas Instruments, Unisys, Microsoft, był UML 1.0 - precyzyjnie zdefiniowany język modelowania. W styczniu 1997 roku UML 1.0 został przekazany Object Management Group (OMG) w odpowiedzi na [[zapotrzebowanie]] na propozycję standardu języka modelowania obiektowego.
Do współpracy włączyły się kolejne firmy, w wyniku czego powstała poprawiona wersja UML (numer 1.1), przyjęta ostatecznie przez OMG 14 listopada 1997. OMG Revision Task Force (RTF) przejął [[zadanie]] pielęgnacji standardu UML. Dokonał redakcyjnych poprawek i w czerwcu 1998 roku przedstawił wersję UML 1.2, a jesienią 1999 roku opublikował UML 1.3.


'''UML''' (ang. Unified Modeling Language czyli Ujednolicony Język Modelowania) to graficzny język do obrazowania, specyfikowania, tworzenia i dokumentowania elementów [[system informatyczny|systemów informatycznych]]. Umożliwia standaryzację sposobu opracowywania przekrojów systemu, obejmujących obiekty pojęciowe, takie jak [[proces]]y przedsiębiorstwa i funkcje systemowe, a także obiekty konkretne, takie jak klasy zaprogramowane w ustalonym języku, schematy [[baza danych|baz danych]] i komponenty programowe nadające się do ponownego użycia. UML wspomaga specyfikowanie wszystkich ważnych decyzji analitycznych, projektowych i implementacyjnych, które muszą być podejmowane w trakcie wytwarzania i wdrażania systemu informatycznego. [[Modele]] zapisane w języku UML są jednakowo interpretowane przez wszystkie osoby zaangażowane w dany preces.
<google>n</google>
 
==Geneza==
Języki modelowania obiektowego pojawiły się między połową lat siedemdziesiątych a końcem lat osiemdziesiątych. Opracowanych zostało wiele metod obiektowych, z których jednymi z najważniejszych były: [[metoda]] Boocha, metoda OOSE Jacobsona (Object- Oriented Software Engineering) i metoda OMT Rumbaugha (Object Modeling Technique).


Oficjalny początek prac nad UML datuje się na październik 1994 roku. Wynikiem współpracy kilku firm, m.in. Rational, IBM, Hewlett-Packard, Texas Instruments, Unisys, Microsoft, był UML 1.0 - precyzyjnie zdefiniowany język modelowania. W styczniu 1997 roku UML 1.0 został przekazany Object Management Group (OMG) w odpowiedzi na [[zapotrzebowanie]] na propozycję standardu języka modelowania obiektowego.
<google>ban728t</google>
Do współpracy włączyły się kolejne firmy, w wyniku czego powstała poprawiona wersja UML (numer 1.1), przyjęta ostatecznie przez OMG 14 listopada 1997. OMG Revision Task Force (RTF) przejął [[zadanie]] pielęgnacji standardu UML. Dokonał redakcyjnych poprawek i w czerwcu 1998 roku przedstawił wersję UML 1.2, a jesienią 1999 roku opublikował UML 1.3.
<google>ban728t</google>
==Zastosowania==
==Zastosowania==
Głównym przeznaczeniem UML jest budowa [[system]]ów informatycznych.Z powodzeniem stosowano go już w:
Głównym przeznaczeniem UML jest budowa [[system]]ów informatycznych.Z powodzeniem stosowano go już w:
Linia 41: Linia 27:
Uniwersalnym formatem zapisu języka UML jest XMI - język służący do zapisywania modeli UML za pomocą [[XML]]'a.
Uniwersalnym formatem zapisu języka UML jest XMI - język służący do zapisywania modeli UML za pomocą [[XML]]'a.


==Elementy składowe==
==Elementy składowe==W najnowszej wersji 2.0 języka UML wyróżnia się 13 diagramów głównych, oraz 4 abstrakcyjne (struktur, dynamiki, wdrożeniowe, interakcji)===Diagramy struktury===
W najnowszej wersji 2.0 języka UML wyróżnia się 13 diagramów głównych, oraz 4 abstrakcyjne (struktur, dynamiki, wdrożeniowe, interakcji):
 
===Diagramy struktury===
* Klas (class),
* Klas (class),
* Obiektów (object),
* Obiektów (object),
Linia 103: Linia 86:
'''2. Asocjacja.'''
'''2. Asocjacja.'''
Oznaczona linią ciągłą, zakończoną strzałką wskazującą kierunek zależności.
Oznaczona linią ciągłą, zakończoną strzałką wskazującą kierunek zależności.
Może być jedno- i dwukierunkowa, ale także nieokreślona. W tym przypadku klasy nie wpływają na siebie i mogą istnieć oraz działać oddzielnie. Asocjacje zachodzą zwykle między większą ilością klas.  
Może być jedno - i dwukierunkowa, ale także nieokreślona. W tym przypadku klasy nie wpływają na siebie i mogą istnieć oraz działać oddzielnie. Asocjacje zachodzą zwykle między większą ilością klas.


Przykład: człowiek i [[firma]], gdzie firma może zatrudniać wielu ludzi, ale może się zdarzyć, że jedna osoba pracuje w kilku firmach.
Przykład: człowiek i [[firma]], gdzie firma może zatrudniać wielu ludzi, ale może się zdarzyć, że jedna osoba pracuje w kilku firmach.
Linia 115: Linia 98:
'''4. Agregacja całkowita.'''
'''4. Agregacja całkowita.'''
Oznaczana linią ciągłą z wypełnionym rombem, który jest umieszczony przy klasie całościowej.
Oznaczana linią ciągłą z wypełnionym rombem, który jest umieszczony przy klasie całościowej.
Jest bardzo podobna do agregacji częściowej, z tą różnicą, że po usunięciu klasy głównej, przestają istnieć także klasy częściowe. Dzieje się tak, ponieważ to klasa całościowa tworzy klasy częściowe.  
Jest bardzo podobna do agregacji częściowej, z tą różnicą, że po usunięciu klasy głównej, przestają istnieć także klasy częściowe. Dzieje się tak, ponieważ to klasa całościowa tworzy klasy częściowe.


Przykład: [[faktura]] i pozycje faktury.
Przykład: [[faktura]] i pozycje faktury.
Linia 121: Linia 104:
'''5. Generalizacja.'''
'''5. Generalizacja.'''
Oznaczana przez linię ciągłą zakończoną niewypełnionym trójkątem skierowanym z klasy pochodnej do klasy bazowej.
Oznaczana przez linię ciągłą zakończoną niewypełnionym trójkątem skierowanym z klasy pochodnej do klasy bazowej.
Wyodrębnia wspólne cechy dla kilku klas i przenosi je do klasy bardziej ogólnej. Klasy pochodne dziedziczą cechy i zachowania klasy bazowej, ale też zwykle dodają własne lub nadpisując istniejące.  
Wyodrębnia wspólne cechy dla kilku klas i przenosi je do klasy bardziej ogólnej. Klasy pochodne dziedziczą cechy i zachowania klasy bazowej, ale też zwykle dodają własne lub nadpisując istniejące.


Przykład: pies i kot dziedziczące po klasie zwierzę. Wspólną cechą będzie ilość nóg, a zachowaniem chodzenie, natomiast różnić się mogą odpowiednio ulubionym jedzeniem oraz wydawanymi dźwiękami.
Przykład: pies i kot dziedziczące po klasie zwierzę. Wspólną cechą będzie ilość nóg, a zachowaniem chodzenie, natomiast różnić się mogą odpowiednio ulubionym jedzeniem oraz wydawanymi dźwiękami.
{{infobox5|list1={{i5link|a=[[SQL]]}} &mdash; {{i5link|a=[[Wzorce projektowe]]}} &mdash; {{i5link|a=[[Behavior driven development]]}} &mdash; {{i5link|a=[[SmallTalk (język programowania)]]}} &mdash; {{i5link|a=[[XML]]}} &mdash; {{i5link|a=[[Pascal (język programowania)]]}} &mdash; {{i5link|a=[[COBOL (język programowania)]]}} &mdash; {{i5link|a=[[Perl (język programowania)]]}} &mdash; {{i5link|a=[[ASP.NET]]}} &mdash; {{i5link|a=[[Model PERFORM]]}} }}


==Bibliografia==
==Bibliografia==
* Górski T., Sowa M. (2016). [https://www.researchgate.net/profile/Tomasz_Gorski/publication/299382801_Konstrukcja_diagramu_klas_UML_z_zastosowaniem_Model-Driven_Development/links/56fe3fab08ae1408e15cfaf6/Konstrukcja-diagramu-klas-UML-z-zastosowaniem-Model-Driven-Development.pdf ''Konstrukcja diagramu klas UML z zastosowaniem Model-Driven Development''], Wojskowa Akademia Techniczna, Wydział Cybernetyki, Instytut Systemów Informatycznych, nr 1
<noautolinks>
* Plebaniak R. (2013). [http://www.math.uni.lodz.pl/~robpleb/wyklad1_3.pdf ''Modelowanie i analiza systemów informatycznych'']
* Górski T., Sowa M. (2016), ''Konstrukcja diagramu klas UML z zastosowaniem Model-Driven Development'', Wojskowa Akademia Techniczna, Wydział Cybernetyki, Instytut Systemów Informatycznych
* Stevens P. (2007). ''UML. [[Inżynieria oprogramowania]].'', Wydanie II, Wydawnictwo Helion, Gliwice
* Plebaniak R. (2013), ''Modelowanie i analiza systemów informatycznych''
* Szlenk M. (2005). [http://www.ia.pw.edu.pl/~mszlenk/pdf/PhD-Thesis.pdf ''Formalna semantyka i wnioskowanie o pojęciowym diagramie klas w UML''], Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych
* Stevens P. (2007), ''UML. Inżynieria oprogramowania'', Helion, Gliwice
* Szmuc W. (2007). [http://journals.bg.agh.edu.pl/AUTOMATYKA/2007-1-2/Auto24.pdf ''Modelowanie konstrukcji obiektowych języka UML z zastosowaniem kolorowanych sieci Petriego''], tom 11
* Szlenk M. (2005), ''[https://www.ia.pw.edu.pl/~mszlenk/pdf/PhD-Thesis.pdf Formalna semantyka i wnioskowanie o pojęciowym diagramie klas w UML]'', praca doktorska, Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych
* Trzaska M. (2008). [http://www.publio.pl/files/samples/cc/86/b7/125456/Modelowanie_i_implementacja_systemow_informatycznych_demo.pdf ''Modelowanie i implementacja systemów informatycznych''], Wydawnictwo Polsko-Japońskiej Wyższej Szkoły Technik Komputerowych, Warszawa
* Szmuc W. (2007), ''[https://journals.bg.agh.edu.pl/AUTOMATYKA/2007-1-2/Auto24.pdf Modelowanie konstrukcji obiektowych języka UML z zastosowaniem kolorowanych sieci Petriego]'', tom 11
* Wrycza S, Marcinkowski B, Wyrzykowski K. (2006). ''Język UML 2.0 w modelowaniu systemów informatycznych'', Wydawnictwo Helion, Gliwice
* Trzaska M. (2008), ''[https://www.publio.pl/files/samples/cc/86/b7/125456/Modelowanie_i_implementacja_systemow_informatycznych_demo.pdf Modelowanie i implementacja systemów informatycznych]'', Wydawnictwo Polsko-Japońskiej Wyższej Szkoły Technik Komputerowych, Warszawa
* Wrycza S, Marcinkowski B., Wyrzykowski K. (2006), ''Język UML 2.0 w modelowaniu systemów informatycznych'', Wydawnictwo Helion, Gliwice
</noautolinks>


{{a|Magdalena Adamczyk, Mateusz Bembenek, Aleksandra Zembaty}}
{{a|Magdalena Adamczyk, Mateusz Bembenek, Aleksandra Zembaty}}
[[Kategoria:Metody i techniki informacyjne]]
[[Kategoria:Systemy informatyczne]]
 
{{#metamaster:description|UML to graficzny język modelowania systemów informatycznych. Standaryzuje sposób tworzenia przekrojów systemu, od obiektów pojęciowych po konkretne elementy programowe.}}

Aktualna wersja na dzień 23:44, 7 gru 2023

UML (ang. Unified Modeling Language czyli Ujednolicony Język Modelowania) to graficzny język do obrazowania, specyfikowania, tworzenia i dokumentowania elementów systemów informatycznych. Umożliwia standaryzację sposobu opracowywania przekrojów systemu, obejmujących obiekty pojęciowe, takie jak procesy przedsiębiorstwa i funkcje systemowe, a także obiekty konkretne, takie jak klasy zaprogramowane w ustalonym języku, schematy baz danych i komponenty programowe nadające się do ponownego użycia. UML wspomaga specyfikowanie wszystkich ważnych decyzji analitycznych, projektowych i implementacyjnych, które muszą być podejmowane w trakcie wytwarzania i wdrażania systemu informatycznego. Modele zapisane w języku UML są jednakowo interpretowane przez wszystkie osoby zaangażowane w dany preces.

TL;DR

UML to graficzny język do obrazowania i dokumentowania elementów systemów informatycznych. Prace nad UML rozpoczęły się w 1994 roku, a ostateczna wersja została opublikowana w 1997 roku. UML znajduje zastosowanie w wielu branżach, głównie w projektowaniu systemów informatycznych. UML składa się z różnych diagramów, takich jak diagramy klas, diagramy przypadków użycia, czy diagramy sekwencji. Może być używany w połączeniu z różnymi językami programowania. Istnieje wiele narzędzi wspomagających tworzenie diagramów UML, zarówno darmowych, jak i komercyjnych. UML definiuje różne rodzaje związków między klasami, takie jak zależność, asocjacja, agregacja i generalizacja.

Geneza

Języki modelowania obiektowego pojawiły się między połową lat siedemdziesiątych a końcem lat osiemdziesiątych. Opracowanych zostało wiele metod obiektowych, z których jednymi z najważniejszych były: metoda Boocha, metoda OOSE Jacobsona (Object - Oriented Software Engineering) i metoda OMT Rumbaugha (Object Modeling Technique).

Oficjalny początek prac nad UML datuje się na październik 1994 roku. Wynikiem współpracy kilku firm, m.in. Rational, IBM, Hewlett-Packard, Texas Instruments, Unisys, Microsoft, był UML 1.0 - precyzyjnie zdefiniowany język modelowania. W styczniu 1997 roku UML 1.0 został przekazany Object Management Group (OMG) w odpowiedzi na zapotrzebowanie na propozycję standardu języka modelowania obiektowego. Do współpracy włączyły się kolejne firmy, w wyniku czego powstała poprawiona wersja UML (numer 1.1), przyjęta ostatecznie przez OMG 14 listopada 1997. OMG Revision Task Force (RTF) przejął zadanie pielęgnacji standardu UML. Dokonał redakcyjnych poprawek i w czerwcu 1998 roku przedstawił wersję UML 1.2, a jesienią 1999 roku opublikował UML 1.3.

Zastosowania

Głównym przeznaczeniem UML jest budowa systemów informatycznych.Z powodzeniem stosowano go już w:

Służy do modelowania dziedziny problemu - 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. Uniwersalnym formatem zapisu języka UML jest XMI - język służący do zapisywania modeli UML za pomocą XML'a.

Elementy składowe==W najnowszej wersji 2.0 języka UML wyróżnia się 13 diagramów głównych, oraz 4 abstrakcyjne (struktur, dynamiki, wdrożeniowe, interakcji)===Diagramy struktury=

  • Klas (class),
  • Obiektów (object),
  • Pakietów,
  • Struktur połączonych.

Diagramy wdrożeniowe (abstrakcyjne)

  • Komponentów,
  • Rozlokowania.

Diagramy dynamiki

  • Przypadków użycia (use case),
  • Czynności (activity),
  • Maszyny stanowej (state).

Diagramy interakcji

  • Sekwencji,
  • Komunikacji,
  • Harmonogramowania (lub Zależności czasowych),
  • Sterowania interakcją.

Zastosowania w projektowaniu systemów informatycznych

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

  • Przypadków użycia,
  • Klas,
  • Czynności,
  • Sekwencji.

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

UML nie jest językiem programowania graficznego, jednak modele w nim zapisane mogą być wprost powiązane z wieloma językami programowania. Model utworzony w języku UML można przekształcić w taki język, jak Java, C++ czy Visual Basic, albo w tabele relacyjnej bazy danych. To przekształcenie umożliwia inżynierię do przodu, to znaczy generowanie kodu w języku programowania na podstawie modelu UML. Możliwe jest także odwrotne przekształcenie, czyli rekonstrukcja modelu na podstawie implementacji (inżynieria wstecz). Przy przejęciu od modelu do kodu każda informacja niezakodowana w implementacji jest tracona, dlatego inżynieria wstecz wymaga odpowiednich narzędzi i udziału człowieka. UML jest na tyle wyrazisty i jednoznaczny, że umożliwia nie tylko bezpośrednie przekształcanie modeli, ale także symulację systemów oraz dostrajanie elementów wdrożonych systemów.

Wybrane aplikacje wspomagające tworzenie diagramów

Darmowe:

  • ArgoUML - napisany w Javie, zaawansowane generowanie kodu i podpowiedzi, ciągle tworzony,
  • Dia - ogólne narzędzie do rysowania diagramów,
  • UML Sculptor - prosty, łatwy w użyciu program do tworzenia diagramów klas,
  • Umbrello - program dla Linuksa, część KDE,
  • UMLpad,
  • JUDE Community.

Narzędzia komercyjne:

  • Borland Together - rodzina programów integrujących się z różnymi IDE, jest wersja darmowa,
  • Poseidon for UML - zaawansowane narzędzie bazujące na ArgoUML, darmowa edycja Community,
  • Enterprise Architect - Profesjonalne narzędzie w przystępnej cenie o wygodnym interfejsie działające na platformach Windows i Linux. Wspiera UML 2.0,
  • Rodzina programów iGrafx - narzędzia począwszy od iGrafx FlowCharter wspierają tworzenie diagramów UML. Wersja testowa na witrynie iGrafx,
  • Visual Paradigm for UML,
  • IBM Rational Rose,
  • Telelogic Tau G2.

Rodzaje związków między klasami

Rys. 1. Rodzaje zależności

1. Zależność. Oznaczana przez przerywaną linią i kończąca się strzałką wskazującą kierunek zależności. Relacja ta oznacza, że jedna klasa (A) w jakiś sposób korzysta z drugiej klasy (B). Przykładowo klasa A może wywoływać różne działania w klasie B bądź też może wymagać jej do poprawnego stworzenia swojej instancji. W przypadku zmian w klasie A, klasa B zwykle też musi być zmieniona. Obie klasy są wymagane do poprawnego działania.

Przykład: Sklep i płatności internetowe.

2. Asocjacja. Oznaczona linią ciągłą, zakończoną strzałką wskazującą kierunek zależności. Może być jedno - i dwukierunkowa, ale także nieokreślona. W tym przypadku klasy nie wpływają na siebie i mogą istnieć oraz działać oddzielnie. Asocjacje zachodzą zwykle między większą ilością klas.

Przykład: człowiek i firma, gdzie firma może zatrudniać wielu ludzi, ale może się zdarzyć, że jedna osoba pracuje w kilku firmach.

3. Agregacja częściowa. Oznaczana ciągłą linią z pustym rombem umieszczonym przy klasie określającej całość. Jest to połączenie dwóch klas w relacji całość - część, czyli klasa całościowa dobiera sobie do działania klasy częściowe. Jeśli jedna z klas zostanie usunięta, druga może bez niej funkcjonować. Dodatkowo jedna klasa częściowa może być zawierana przez wiele innych klas całościowych, ponieważ żadna z nich nie tworzy i nie używa jej na wyłączność.

Przykład: samochód i wypożyczający.

4. Agregacja całkowita. Oznaczana linią ciągłą z wypełnionym rombem, który jest umieszczony przy klasie całościowej. Jest bardzo podobna do agregacji częściowej, z tą różnicą, że po usunięciu klasy głównej, przestają istnieć także klasy częściowe. Dzieje się tak, ponieważ to klasa całościowa tworzy klasy częściowe.

Przykład: faktura i pozycje faktury.

5. Generalizacja. Oznaczana przez linię ciągłą zakończoną niewypełnionym trójkątem skierowanym z klasy pochodnej do klasy bazowej. Wyodrębnia wspólne cechy dla kilku klas i przenosi je do klasy bardziej ogólnej. Klasy pochodne dziedziczą cechy i zachowania klasy bazowej, ale też zwykle dodają własne lub nadpisując istniejące.

Przykład: pies i kot dziedziczące po klasie zwierzę. Wspólną cechą będzie ilość nóg, a zachowaniem chodzenie, natomiast różnić się mogą odpowiednio ulubionym jedzeniem oraz wydawanymi dźwiękami.


UMLartykuły polecane
SQLWzorce projektoweBehavior driven developmentSmallTalk (język programowania)XMLPascal (język programowania)COBOL (język programowania)Perl (język programowania)ASP.NETModel PERFORM

Bibliografia


Autor: Magdalena Adamczyk, Mateusz Bembenek, Aleksandra Zembaty