Temat jest o wzorcach projektowych, a pytania dotyczą UML. Nie rozumiem zupełnie, co autor miał na myśli.
MSM napisał(a)
No i przede wszystkim - UML za ciebie projektu nie napisze.
Można wygenerować kod z diagramów UML.
Diagramy mają tę zaletę, że stanowią od razu dokumentację projektową. Z tymże, ponieważ zmiany w strukturze projektu są w zasadzie nieuniknione (no chyba, że ktoś jest taki świetny, że od razu potrafi zaprojektować doskonałą strukturę), to diagramy trzeba uaktualniać, a z tym jest już problem (czas, chęci).
Nauczyć się UML można, bo a nuż przyda się w pracy zawodowej, w zespole. W projektach jednoosobowych mają raczej mniejszy sens, ja sobie wolę projekt narysować "po swojemu" na kartce.
Najważniejsze diagramy to diagram klas i diagram use-case, przydaje się jeszcze czasami np. jeśli chcesz spojrzeć z szerszej perspektywy na swój kod diagram maszyny stanowej (przy maszynach stanowych FSM) i czasami diagram przepływu (wyobrażam sobie zastosowanie w jakichś punktach krytycznych).
W UML nie ma diagramu przepływu. Jest za to diagram sekwencji, przydatny wtedy, gdy chcemy zaprezentować kolejność realizacji jakiejś akcji z uwzględnieniem komunikacji między warstwami aplikacji (np. od kliknięcia przez użytkownika przycisku na stronie, przez różne klasy aplikacji, aż do zapisu rekordu w bazie danych). Moim zdaniem jest w pierwszej trójce najważniejszych diagramów. Przydatny jest też diagram czynności, bo pozwala opisać algorytmy.
Smigiel napisał(a)
Mam jednak problem z zaprojektowaniem hierarchii klas, relacji między obiektami itd.
Oczywiście nie mam problemów z prostymi relacjami typu Firma - Pracownik, jednak w grze (nawet prostej) pojawiają się klasy takie jak np. Gra, WątekGry, Symulacja, ObsługaWejścia, Świat, StanGry itd.
Nie jest łatwo poukładać to wszystko tak, żeby wszystkie obiekty miały dostęp do potrzebnych danych (chyba, że użyjemy zmiennych globalnych, albo wiele obiektów będzie wyposażonych w uchwyty do innych obiektów, co jest raczej nieeleganckie).
UML w tym ani trochę nie pomoże. UML to tylko standard rysowania i opisywania projektów. Ty potrzebujesz wiedzy z analizy i projektowania obiektowego oraz wzorców projektowych.