Wyobraźmy sobie dewelopera, który musi zbudować dom. Zatrudnia architekta, a ten zaczyna od projektów, które rysuje na kartce – to właśnie UML. A gotowy dom? To nasz program lub aplikacja. W programowaniu, ten projekt “domu” to UML (Unified Modelling Language), w dosłownym tłumaczeniu “zunifikowany język modelowania”. Nadal nie wiecie, o czym mowa? Nic dziwnego, ta nazwa niewiele wyjaśnia. Już tłumaczymy!

Czym jest UML
UML nie jest językiem programowania, lecz językiem modelowania. UML to innymi słowy standard, przyjęta specyfikacja, która pomaga programistom i architektom oprogramowania w przygotowywaniu projektów programistycznych. Najpierw zastanawiają się oni nad tym, jak program ma działać – jakie będą jego elementy, zależności. Praca zaczyna się od rozrysowania diagramów i modeli, a dopiero później rozpoczyna się pisanie kodu.
Jak to wygląda krok po kroku? Według założeń inżynierii oprogramowania, projektowanie programu powinno się rozpocząć od rozmowy firmy zamawiającej program z analitykiem biznesowym, który próbuje rozumieć specyfikę i potrzeby klienta. Analityk biznesowy przekazuje to, czego się dowiedział kolejnej osobie – architektowi aplikacji. Tu kończy się zwykła komunikacja człowieka z człowiekiem.
Przełożenie skomplikowanych reguł biznesowych z języka mówionego na język informatyki to niewątpliwie trudne zadanie. Sam opis mógłby być zbyt lakoniczny, niezrozumiały, a nawet wprowadzający w błąd. Dlatego też powstał UML – specjalny język modelowania, który w sposób graficzny, za pomocą diagramów, tłumaczy strukturę i funkcje, jakie musi posiadać program. Architekt tworzy taki właśnie model UML, który trafia do programistów.
Zainteresuje Cię również: Czym jest Linux?
Kto może być architektem aplikacji? Musi być to bardzo doświadczony programista, który potrafi zrozumieć system czy oprogramowanie jako całość. System to nie tylko kod, ale też zbiór narzędzi, połączenia z bazą danych, integracje. Architekt decyduje, jak połączyć nowy system z innymi, już istniejącymi. Po zaprojektowaniu aplikacji Architekt dalej bierze udział w pracach zespołu. Często zdarzają się przecież zmiany, nowe pomysły lub korekty. Musi też sprawdzać, czy to, co piszą programiści jest zgodne z tym, co zaprojektował. Na końcu projektu UML musi zostać zaktualizowany do tego, co faktycznie zostało zaprogramowane. Przyda się to w sytuacji, gdy za jakiś czas klient powróci z prośbą o dodanie nowych funkcjonalności czy zmiany w systemie.
Wykorzystanie diagramów UML
Modele UML tworzy się, aby zobrazować, jak ma działać program. UML ma pozwolić na lepsze zobrazowanie potrzeb klienta i przedstawienie działania programu.
Wyróżniamy wiele rodzajów diagramów UML:
- diagram domenowy – mówi o tym, jakie obiekty i dane będą przechowywane w systemie
- diagram use case’ów – przedstawia, jacy użytkownicy będą korzystali z systemu i jakie czynności mogą podejmować
- diagram typu floachart – diagram przepływu – reprezentuje kroki podejmowane w skomplikowanych algorytmach systemu
- diagramy klas – opisują jakie klasy będą zawarte w kodzie i jakie zależności będą zachodzić między nimi
- diagram cyklu życia – tłumaczy jakie dane będą wymieniane
- diagram aktywności – przedstawienie sekwencji kroków, które są wykonywane przez modelowany fragment systemu
- diagram sekwencji – prezentuje interakcje pomiędzy obiektami, przy uwzględnieniu w czasie komunikatów, jakie są przesyłane pomiędzy nimi
- diagram komponentów – pokazuje interakcje między bazą danych i użytkownikami
Przeczytaj również: Czym jest java development?
Również w trakcie kursu programowania w Codecool studenci spotykają się z modelowaniem diagramów w UML. Przed rozpoczęciem projektu mają za zadanie przygotować kilka diagramów UML. Na początku spotyka się to z niezrozumieniem – w końcu przyszli do nas programować, a nie tworzyć rysunki! Pod koniec pierwszego tygodnia pracy z UML-em przychodzi zrozumienie. Studenci przekonują się, że UML pomaga zrozumieć, jak ma wyglądać system i pozwala uzmysłowić sobie ile pracy trzeba będzie włożyć w jego stworzenie.
UML jest językiem uniwersalnym – ten sam diagram może trafić do deweloperów programujących w Javie, C# czy Pythonie. Nauka podstaw UML w teorii nie jest trudna – można nauczyć się go dość szybko. Jednak aby się w tym specjalizować, należy zdobyć specjalne certyfikaty dla osób zajmujących się UML-em zawodowo. Modelowanie diagramów w UML to zadanie dla doświadczonych programistów.
Zapisz się na kurs full-stack developera
Podsumowanie
Programowanie bez UML jest jak podróż bez mapy – wiemy, gdzie chcemy dojechać, ale którędy? Jedna wielka niewiadoma! Każdy programista powinien znać przynajmniej podstawy UML-a, niekoniecznie po to, by od razu projektować cały system, ale by umieć odczytać diagram dostarczony przez architekta oprogramowania.