﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mfiles.pl/pl/index.php?action=history&amp;feed=atom&amp;title=UML</id>
	<title>UML - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mfiles.pl/pl/index.php?action=history&amp;feed=atom&amp;title=UML"/>
	<link rel="alternate" type="text/html" href="https://mfiles.pl/pl/index.php?title=UML&amp;action=history"/>
	<updated>2026-08-27T04:47:10Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://mfiles.pl/pl/index.php?title=UML&amp;diff=202893&amp;oldid=prev</id>
		<title>Zybex: cleanup bibliografii i rotten links</title>
		<link rel="alternate" type="text/html" href="https://mfiles.pl/pl/index.php?title=UML&amp;diff=202893&amp;oldid=prev"/>
		<updated>2023-12-07T21:44:57Z</updated>

		<summary type="html">&lt;p&gt;cleanup bibliografii i rotten links&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;UML&amp;#039;&amp;#039;&amp;#039; (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.&lt;br /&gt;
&lt;br /&gt;
==TL;DR==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Geneza==&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;google&amp;gt;n&amp;lt;/google&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zastosowania==&lt;br /&gt;
Głównym przeznaczeniem UML jest budowa [[system]]ów informatycznych.Z powodzeniem stosowano go już w:&lt;br /&gt;
* tworzeniu systemów informacyjnych przedsiębiorstw,&lt;br /&gt;
* [[bank|usługach bankowych]] i finansowych,&lt;br /&gt;
* przemyśle obronnym i lotniczym,&lt;br /&gt;
* rozproszonych usługach internetowych,&lt;br /&gt;
* telekomunikacji,&lt;br /&gt;
* [[transport|transporcie]],&lt;br /&gt;
* [[dystrybucja detaliczna|sprzedaży detalicznej]],&lt;br /&gt;
* elektronice w medycynie,&lt;br /&gt;
* nauce.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Uniwersalnym formatem zapisu języka UML jest XMI - język służący do zapisywania modeli UML za pomocą [[XML]]&amp;#039;a.&lt;br /&gt;
&lt;br /&gt;
==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===&lt;br /&gt;
* Klas (class),&lt;br /&gt;
* Obiektów (object),&lt;br /&gt;
* Pakietów,&lt;br /&gt;
* Struktur połączonych.&lt;br /&gt;
&lt;br /&gt;
===Diagramy wdrożeniowe (abstrakcyjne)===&lt;br /&gt;
* Komponentów,&lt;br /&gt;
* Rozlokowania.&lt;br /&gt;
&lt;br /&gt;
===Diagramy dynamiki===&lt;br /&gt;
* Przypadków użycia (use case),&lt;br /&gt;
* Czynności (activity),&lt;br /&gt;
* Maszyny stanowej (state).&lt;br /&gt;
&lt;br /&gt;
===Diagramy interakcji===&lt;br /&gt;
* Sekwencji,&lt;br /&gt;
* Komunikacji,&lt;br /&gt;
* Harmonogramowania (lub Zależności czasowych),&lt;br /&gt;
* Sterowania interakcją.&lt;br /&gt;
&lt;br /&gt;
==Zastosowania w projektowaniu systemów informatycznych==&lt;br /&gt;
Projektując [[system informatyczny]], rozpoczyna się przeważnie od tworzenia diagramów w następującej kolejności:&lt;br /&gt;
* Przypadków użycia,&lt;br /&gt;
* Klas,&lt;br /&gt;
* Czynności,&lt;br /&gt;
* Sekwencji.&lt;br /&gt;
&lt;br /&gt;
Są to najczęściej wykorzystywane diagramy. Pozostałe z nich bywają pomijane, zwłaszcza przy budowaniu niedużych systemów informatycznych.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Wybrane aplikacje wspomagające tworzenie diagramów==&lt;br /&gt;
Darmowe:&lt;br /&gt;
* ArgoUML - napisany w Javie, zaawansowane generowanie kodu i podpowiedzi, ciągle tworzony,&lt;br /&gt;
* Dia - ogólne narzędzie do rysowania diagramów,&lt;br /&gt;
* UML Sculptor - prosty, łatwy w użyciu [[program]] do tworzenia diagramów klas,&lt;br /&gt;
* Umbrello - program dla Linuksa, część KDE,&lt;br /&gt;
* UMLpad,&lt;br /&gt;
* JUDE Community.&lt;br /&gt;
Narzędzia komercyjne:&lt;br /&gt;
* Borland Together - rodzina programów integrujących się z różnymi IDE, jest wersja darmowa,&lt;br /&gt;
* Poseidon for UML - zaawansowane narzędzie bazujące na ArgoUML, darmowa edycja Community,&lt;br /&gt;
* Enterprise Architect - Profesjonalne narzędzie w przystępnej cenie o wygodnym interfejsie działające na platformach Windows i Linux. Wspiera UML 2.0,&lt;br /&gt;
* Rodzina programów iGrafx - narzędzia począwszy od iGrafx FlowCharter wspierają tworzenie diagramów UML. Wersja testowa na witrynie iGrafx,&lt;br /&gt;
* Visual Paradigm for UML,&lt;br /&gt;
* IBM Rational Rose,&lt;br /&gt;
* Telelogic Tau G2.&lt;br /&gt;
&lt;br /&gt;
==Rodzaje związków między klasami==&lt;br /&gt;
[[Plik:UML rodzaje zależności.png|thumb|600px|Rys. 1. Rodzaje zależności]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Zależność.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Oznaczana przez przerywaną linią i kończąca się strzałką wskazującą kierunek zależności.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Przykład: Sklep i płatności internetowe.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Asocjacja.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Oznaczona linią ciągłą, zakończoną strzałką wskazującą kierunek zależności.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. [[Agregacja]] częściowa.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Oznaczana ciągłą linią z pustym rombem umieszczonym przy klasie określającej całość.&lt;br /&gt;
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ść.&lt;br /&gt;
&lt;br /&gt;
Przykład: samochód i wypożyczający.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. Agregacja całkowita.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Oznaczana linią ciągłą z wypełnionym rombem, który jest umieszczony przy klasie całościowej.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Przykład: [[faktura]] i pozycje faktury.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5. Generalizacja.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Oznaczana przez linię ciągłą zakończoną niewypełnionym trójkątem skierowanym z klasy pochodnej do klasy bazowej.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{infobox5|list1={{i5link|a=[[SQL]]}} &amp;amp;mdash; {{i5link|a=[[Wzorce projektowe]]}} &amp;amp;mdash; {{i5link|a=[[Behavior driven development]]}} &amp;amp;mdash; {{i5link|a=[[SmallTalk (język programowania)]]}} &amp;amp;mdash; {{i5link|a=[[XML]]}} &amp;amp;mdash; {{i5link|a=[[Pascal (język programowania)]]}} &amp;amp;mdash; {{i5link|a=[[COBOL (język programowania)]]}} &amp;amp;mdash; {{i5link|a=[[Perl (język programowania)]]}} &amp;amp;mdash; {{i5link|a=[[ASP.NET]]}} &amp;amp;mdash; {{i5link|a=[[Model PERFORM]]}} }}&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&amp;lt;noautolinks&amp;gt;&lt;br /&gt;
* Górski T., Sowa M. (2016), &amp;#039;&amp;#039;Konstrukcja diagramu klas UML z zastosowaniem Model-Driven Development&amp;#039;&amp;#039;, Wojskowa Akademia Techniczna, Wydział Cybernetyki, Instytut Systemów Informatycznych&lt;br /&gt;
* Plebaniak R. (2013), &amp;#039;&amp;#039;Modelowanie i analiza systemów informatycznych&amp;#039;&amp;#039;&lt;br /&gt;
* Stevens P. (2007), &amp;#039;&amp;#039;UML. Inżynieria oprogramowania&amp;#039;&amp;#039;, Helion, Gliwice&lt;br /&gt;
* Szlenk M. (2005), &amp;#039;&amp;#039;[https://www.ia.pw.edu.pl/~mszlenk/pdf/PhD-Thesis.pdf Formalna semantyka i wnioskowanie o pojęciowym diagramie klas w UML]&amp;#039;&amp;#039;, praca doktorska, Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych&lt;br /&gt;
* Szmuc W. (2007), &amp;#039;&amp;#039;[https://journals.bg.agh.edu.pl/AUTOMATYKA/2007-1-2/Auto24.pdf Modelowanie konstrukcji obiektowych języka UML z zastosowaniem kolorowanych sieci Petriego]&amp;#039;&amp;#039;, tom 11&lt;br /&gt;
* Trzaska M. (2008), &amp;#039;&amp;#039;[https://www.publio.pl/files/samples/cc/86/b7/125456/Modelowanie_i_implementacja_systemow_informatycznych_demo.pdf Modelowanie i implementacja systemów informatycznych]&amp;#039;&amp;#039;, Wydawnictwo Polsko-Japońskiej Wyższej Szkoły Technik Komputerowych, Warszawa&lt;br /&gt;
* Wrycza S, Marcinkowski B., Wyrzykowski K. (2006), &amp;#039;&amp;#039;Język UML 2.0 w modelowaniu systemów informatycznych&amp;#039;&amp;#039;, Wydawnictwo Helion, Gliwice&lt;br /&gt;
&amp;lt;/noautolinks&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{a|Magdalena Adamczyk, Mateusz Bembenek, Aleksandra Zembaty}}&lt;br /&gt;
[[Kategoria:Systemy informatyczne]]&lt;br /&gt;
&lt;br /&gt;
{{#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.}}&lt;/div&gt;</summary>
		<author><name>Zybex</name></author>
	</entry>
</feed>