PlantUML — czarny koń wśród narzędzi UML CASE

Autor
Damian
Terlecki
5 minut

Podczas mojej kariery zawodowej, jak również w okresie, który spędziłem na uczelni, miałem okazję zapoznać się z wieloma narzędziami wspomagającymi inżynierię oprogramowania. Myślę, że każdy się ze mną zgodzi, że w domenie modelowania, do najpopularniejszych z nich możemy zaliczyć narzędzia wspierające tworzenie diagramów UML (ang. Unified Modeling Language — zunifikowany język modelowania) oraz BPMN (ang. Business Process Model and Notation — notacja i model procesu biznesowego). Jako programiści najczęściej mamy do czynienia z tą pierwszą formą, natomiast druga dosyć często używana przez ludzi biznesu.

Do listy profesjonalnych narzędzi UML na pewno możemy zaliczyć pozycje takie jak Visual Paradigm, Enterprise Architect, Lucidchart, bądź coś ze stajni IBM-a — Rational Software Architect. Zapewniają one wsparcie większości przypadków użycia, włączając w to wielkie i złożone projekty, jak również integracje z zewnętrznymi systemami. Jednak, czy zastanawiałeś się, czy tak naprawdę potrzebujesz tak kompleksowego podejścia w swoim projekcie?

Czasami potrzebujesz stworzyć tylko jeden diagram bądź kilka mniejszych i do tego niezależnych. Być może jesteś również pod presją czasu i nie masz nawet przygotowanego środowiska i aplikacji. Swego czasu, wśród znajomych na polibudzie dużą popularnością cieszyło się Draw.io. Taka aplikacja internetowa — otwierasz z poziomu przeglądarki, przeciągasz, puszczasz i voilà! Bezbolesne modelowanie mniejszych projektów. Ale czy na pewno? Nigdy nie przepadałem za drag&dropem czy też edytorami WYSIWYG — przynajmniej nie do momentu zapoznania się z LaTeXem i Markdownem. To w tym momencie uświadomiłem sobie, że dużo szybciej jestem w stanie realizować cele przy użyciu narzędzi, które wykorzystują jakikolwiek deklaratywny język, który bardziej przybliża kodowanie.

Szczęśliwy zbieg okoliczności napotkał mnie podczas pisania swojej pierwszej pracy dyplomowej, kiedy to odkryłem PlantUML. Narzędzie pozwalające na zaskakująco szybkie tworzenie spójnych diagramów UML za pomocą kilku linii napisanych przy użyciu intuicyjnego języka.

Bob->Alicja : witaj!

PlantUML alicja->bob diagram

Proste, nieprawdaż? I to nie koniec. Wystarczy skopiować tę linię i wkleić ją do dowolnej aplikacji internetowej wspierającej ten język. Narzędzie te pozwala generować obrazy w najpopularniejszych formatach. Elementy rozmieszczane są automatycznie. Dzięki temu modelowanie UML staje się bardzo przyjemne, do tego stopnia, że pragniesz więcej... No dobrze, ale dość już tego koloryzowania. Sam stworzyłem już setki diagramów w PlantUML, więc mogę powiedzieć, z czym to się tak naprawdę je.

Zalety:

  • narzędzie otwartoźródłowe;
  • umożliwia bardzo szybkie tworzenie diagramów po wstępnej nauce języka;
  • nie tracimy czasu na zajmowanie się umiejscowieniem i rozmiarem elementów;
  • format tekstowy pozwala na bardzo proste importowanie i współdzielenie (VCS);
  • nie jest wymagana instalacja — dostępne są edytory online;
  • wsparcie najpopularniejszych formatów, w tym bezstratnych;
  • może być wykorzystane jako biblioteka biblioteka w Javie;
  • liczne integracje i pluginy.

Wady:

  • złożone przypadki wymagają wczytania się w dokumentację (np. linie życia na diagramie interakcji);
  • nie każdy diagram może wyglądać, tak jak się tego wymaga (problemy z diagramem czynności w jego standardowej formie przy zderzeniu z wymaganiami uczelnianymi);
  • pozycjonowanie jest możliwe, ale ograniczone przy większych diagramach;
  • to bardziej narzędzie, a nie aplikacja (czy można to uznać za wadę?).
Krokomierz
Diagram czynności krokomierza

Przy okazji, w ciągu chwili możliwe jest przetłumaczenie diagramu dzięki aliasom i formacie tekstowym. Tak więc — PlantUML to moja preferencja dla małych i średnich projektów, a także pojedynczych bądź niepowiązanych ze sobą diagramów. A czy ty masz ulubione narzędzie do pracy z UML-em? Daj znać w komentarzu!