05 lipca 2009

Pierwsze (krótkie) doświadczenie z Eclipse UML2 Tools - idzie do kosza

Już pojawiają się opinie po wczorajszej Javarsovii 2009, ale moje wrażenia chciałbym jeszcze uzupełnić o kilka danych statystycznych i zdjęcia, więc temat odłożony na kolejny wpis.

Dzisiejszy dzień dosyć deszczowy w Warszawie i po uwagach, jakie coraz częściej do mnie dochodzą w kontekście treści publikowanych w moim blogu zdecydowałem się na niewielką acz zapewne zauważalną zmianę - koniec z relacjami z lektury książek, które ciągną się tygodniami. Nie ukrywam, że mój plan zaczął mnie samemu przygniatać swoim zasięgiem i próba relacjonowania każdego z rozdziałów powodowała, że miałem "zarezerwowane" kilkanaście dni/tygodni wprzód. Czytanie książek idzie mi znacznie szybciej, a relacje poszczególnych rozdziałów zajmowały często zdecydowanie za dużo treści w pojedynczym wpisie niż samemu chciałbym przeczytać. Na własne życzenie wiązałem sobie ręce. Głosy, jakie do mnie dochodziły zdawały się sugerować zmianę podejścia na bardziej produktywny, a nie jedynie odtwórczy. Koniec więc z pomysłami relacji książek w stylu "wpis za rozdział". Powinno być znacznie odświeżające dla obu stron.

W ten sposób postanowiłem wrócić do bardziej aktywnego rozwoju Nauczyciela - aplikacji w Grails, której celem jest nauka Grails praktycznie oraz pomoc w nauce moim dzieciakom. Dzisiaj przyszła pora na wdrożenie przepływów na bazie Grails Web Flow. Temat bardzo obszernie opisany w książce "The Definitive Guide to Grails, Second Edition", którą swego czasu relacjonowałem (patrz kategoria Grails). Zacząłem już dłubać w kontrolerze, kiedy to postanowiłem podejść do tematu trochę bardziej metodycznie z użyciem diagramu stanowego UML. Potrzebne mi było narzędzie do jego stworzenia i padło na Eclipse UML2 Tools (po prostu wyszukałem w Google frazę "eclipse uml").

Początkowo zabrałem się za instalację UML2TOOLS 0.9.0, ale niedługo trwało, kiedy pobrałem po prostu wersję Eclipse Modeling Tools (includes Incubating components), gdzie wszystko jest gotowe do użycia. Wystarczyło Ctrl+N, wybrać kategorię UML 2.1 Diagrams i pojawiła się cała lista dostępnych diagramów.

Następnie State Machine Diagram i skończyłem z czymś takim.

Jeśli to ma być wszystko, co oferuje Eclipse 3.5 w temacie UML 2.1, to ja dziękuję za takie rozwiązanie. Mam do dyspozycji komercyjne rozwiązania, jak IBM Rational Software Architect czy IBM WebSphere Integration Developer, więc na pewno nie będę narzekał, jak zapomnę o "czystym" Eclipse i jego wsparciu dla UML. Uważam UML2 Tools za niezwykle nieintuicyjne rozwiązanie, gdzie chociażby funkcja "Arrange All" rozkłada elementy odwrotnie - do góry nogami, co można zauważyć na powyższym zrzucie. Całkowicie się zgadzam za określeniem stanu projektu jako Incubating. I niech tam jeszcze posiedzi, bo tylko sprowokuje jeszcze jedną duszyczkę do zmarnowania kilku godzin na jego rozpracowywaniu, poszukiwaniu dokumentacji, aby ostatecznie machnąć na to ręką.

A poza tym, nie wiem, jak należałoby zamodelować przepływ typu sprawdzian w umlowym diagramie stanów. Jak rozumiem ten typ diagramu, jego celem jest przedstawienie zmiany stanu pewnego bytu, np. uczestnik sprawdzianu lub sam sprawdzian. Pierwszy nie pasuje mi - chyba, że miałbym modelować zmianę jego stanu psychicznego podczas sprawdzianu. Stąd pozostaje mi sprawdzian. Tylko to, co do tej pory mam, zdaje się bardziej przypominać diagram iteracyjny niż stanowy. Mam wrażenie, że utknąłem i potrzebuję podpowiedzi. Czy nie jest tak, że stan "w trakcie" nie jest aż nadto ogólny, który mógłbym spróbować rozbić na mniejsze (pod)stany, w których z kolei miałbym zamodelowane stany odpowiedzi na pojedyncze pytania? Trochę podpieram się moją wizją docelowej aplikacji, więc stąd te zapędy na stan: "pytanie odpowiedziane" i pętlę z warunkiem "czy zakończyć sprawdzian?". Chyba utknąłem :( Pooomooocy!