narysuj mi UML-a

Język UML jest dzisiaj standardem przemysłowym w projektowaniu oprogramowania i jako taki powinien być używany praktycznie wszędzie. Niestety w rzeczywistości tak nie jest z bardzo prostego powodu — programy do modelowania z użyciem UML są duże, skomplikowane i niejednokrotnie drogie, co powoduje, że nie każdy ma czas, pieniądze i ochotę używać ich na co dzień. A UML nie używany "normalnie" traci popularność, moc oddziaływania i większość sensu swojego istnienia[1].

Dlatego postanowiłem poszukać program(u|ów) do szybkiego szkicowania diagramów UML. Założenia — program powinien być:

  • sprawny i wydajny w zakresie rysowania diagramów, nie musi ich "rozumieć",
  • szybki w działaniu i obsłudze,
  • możliwie mały,
  • możliwie tani, najlepiej darmowy,
  • w miarę przyjemny, a przynajmniej nie odpychający.

Mówiąc wprost — nie znalazłem nic, co by mnie powaliło na kolana :-/. Możliwe, że jest to nadal rynek niezaspokojony, albo ja mam jakiś wypaczony gust i/lub wymagania..? Jedyne programy, które moim zdaniem zasługują na zainteresowanie i są w stanie (przynajmniej w pewnym stopniu) sprostać postawionym zadaniom to Violet i UMLet. Oba napisane w javie i oba na licencji GNU GPL.

Violet

Violet to akronim nazwy Very Intuitive Object Layout Editing Tool. Jest to mały (jeden jar wielkości 213kB), prosty, szybki i całkiem przyjemny edytor UML-a. Obsługuje cztery rodzaje diagramów (Class, Sequence, State, Object), chociaż "obsługa" znaczy w tym przypadku właściwie minimum niezbędne do stworzenia niespecjalnie wysublimowanych wersji danego diagramu i nie zawiera wielu rzadziej używanych choć istniejących w specyfikacji UML opcji. Ponadto od razu rzuca się w oczy kompletny brak obsługi diagramu UseCase, co jest trochę dziwne, zważywszy że ten typ diagramu wydaje się najmniej skomplikowany.

Violet nie generuje kodu i nie obsługuje żadnego konkretnego języka programowania. Wprowadzane na diagramach opisy i właściwości obiektów nie są w żaden sposób kontrolowane ani walidowane — np. atrybuty lub metody na diagramie klas wpisuje się zwykłym tekstem, więc można ten tekst podać dowolny (patrz Rys.1). To może być postrzegane jako wada, albo jako zaleta — jeśli wiesz co robisz, to nikt Ci przecież nie zabrania podać w polu tekstowym konkretnych opisów metod zgodnych ze specyfikacją UML i typami wybranego języka; ale jeśli nie chcesz tego robić, to nikt Cię nie zmusza.

Rys.1. Violet - ClassDiagram

Violet potrafi eksportować diagramy w formacie PNG, JPEG lub PostScript, co wydaje się całkiem wystarczające zakładając, że program ma służyć głównie do tworzenia obrazków.

UMLet

UMLet jest objętościowo znacznie większy niż Violet (około 7MB) chociaż generalnie nie ma większej funkcjonalności. Fakt, że UMLet w ogóle obsługuje UML jest trochę umowny — nie ma wydzielonych typów diagramów, nie ma specjalizowanych edycji poszczególnych typów obiektów, nie ma żadnych kontroli wprowadzanych danych ani nawet mowy o jakichkolwiek związkach z kodem. Właściwie wszystko co oferuje UMLet to repozytorium obiektów (które jakby przypadkiem są obiektami UML), z którego można kopiować do obszaru diagramu i dosyć specyficzny edytor ich cech w postaci okienka tekstowego.

Edytor ten jest najbardziej charakterystyczną cechą UMLet-a. Wpisuje się w nim nie tylko teksty, jakie mają być pokazane jako opisy w obiektach na diagramie, ale również cechy samych obiektów. Np. tekst ograniczony znakami podkreślenia _ jest na diagramie podkreślony, tekst ograniczony przez / jest pochyły, linia zawierająca -- reprezentuje linię oddzielającą wewnętrzne części obiektu reprezentującego klasę na diagramie itd. Jeszcze ciekawiej wygląda opis linii łączących obiekty diagramu — w pierwszej linii opisu lt=<. powoduje, że połączenie to jest linią przerywana ze strzałką otwartą, a po wpisaniu lt=<<- linią ciągłą ze strzałką zamkniętą, lt=<<< to romb, lt=<<<< to romb wypełniony itd. itp. Tekst m1= określa krotność na jednym końcu linii (np. m1=0..n) a r1= rolę opisaną na tym końcu; m2= i r2= odpowiednio na drugiego końca linii. Do takiej obsługi programu trzeba się przyzwyczaić, ale po chwili treningu okazuje się to całkiem proste i dosyć logiczne.

Rys.2. UMLet

Wygenerowane diagramy mogą być zapisane w formacie JPG, SVG, PDF i EPS.

dobre rozwiązanie?

Ani Violet ani UMLet nie obsługują formatu XMI. To właściwie wyklucza ich użycie wraz z innymi programami do modelowania systemów. Jednak jeśli założymy, że są to programy do rysowania diagramów UML wyłącznie w sensie graficznej prezentacji idei, to ich możliwości wydają się całkiem satysfakcjonujące, a efekty działania porównywalne. Myślę, że oba mogą z powodzeniem być wykorzystywane w sytuacji, kiedy trzeba "na szybko" nakreślić jakiś diagram czy dwa.

[1] Ponieważ UML jest językiem, który istnieje po to, żeby twórcy systemów informatycznych mogli się łatwo dogadać miedzy sobą. Raczej się nie dogadają jeśli dla wszystkich będzie to język obcy.

Komentarze

Brak komentarzy do tego wpisu.

 

Uwaga: Ze względu na bardzo intensywną działalność spambotów komentowanie zostało wyłączone po 60 dniach od opublikowania wpisu. Jeżeli faktycznie chcesz jeszcze skomentować skorzystaj ze strony kontaktowej.