2010-02-28 16 views
5

Ciężko mi było siedzieć przed UML i czerpać z niego korzyści, ponieważ prawie wydaje się, że jest to praca tak samo jak programowanie (jeśli używasz ekspresywnego języka). Uważam, że pisanie w języku naturalnym mówi mi więcej o projekcie oprogramowania niż tworzeniu skomplikowanych diagramów. Jestem jednak nowym użytkownikiem języka UML i zastanawiałem się od innych, którzy dobrze znają język UML:Dokumenty projektowe kontra UML lub oba?

  1. Czy UML jest wart tyle czasu, ile potrzeba, aby się uczyć/robić, nawet w przypadku małych i średnich projektów?
  2. Czy dobrze opracowane dokumenty projektowe, choć wciąż na wyższym poziomie, wystarczą, aby programiści byli na celu, aby stworzyć odpowiedni kod, nawet w zespołach?

Odpowiedz

3

Nie sądzę, że UML jest wystarczający sam.

miałem twardy czas siedząc UML i uzyskanie wartości z niego ponieważ wydaje się prawie jak tyle pracy jako programowania (jeśli używasz wyrazisty język).

Zgadzam się z tym. UML może dostarczać sygnatury metod, ale nie wypełniasz mięsa metody. Co gorsza, nie możesz zrobić niczego, co zbliży się do TDD z UML. Biorąc pod uwagę wybór, wolę TDD i działający kod niż diagramy UML.

uważam, że pisanie języka naturalnego mówi mi więcej o projekcie informatycznym niż tworzenie skomplikowanych diagramów.

Miejsce na. Zdjęcia mogą być pomocne, chyba że są złymi obrazami. Diagramy sekwencji stają się niewiarygodnie skomplikowane dla wszystkich, oprócz trywialnych przepływów.

Czy UML warto cały czas trwa do nauczyć/zrobić, nawet dla małych i średnich projektach?

Sprzedawcy i architekci powiedzą Ci, że UML jest niezbędny, ale nie zgadzam się z tym. Wpadam w "skecher" camp of UML users.

Czy dobrze opracowanej dokumentacji projektowej, jednocześnie wyższy poziom, wystarczy do zachować programistów na celu stworzyć odpowiedniego kodu, nawet w zespołach?

Nie wiem, co wystarcza, aby programiści byli na celu, ale domyślam się, że UML nie jest dużą częścią tego. Architekci zwykle go uwielbiają, ponieważ narzędzia UML są dla nich zajęte, ale większość programistów nie dba o skrzynki i strzałki na białych tablicach.

1
  1. Nie w mojej opinii. Kiedyś robiłem moduł projektowy OO w ramach studiów magisterskich z zakresu informatyki, a UML prawie nie wspominano (choć moim zdaniem powinno to być omówione dużo więcej, biorąc pod uwagę jego wpływ).

  2. Istnieje więcej możliwości zredukowania niejednoznaczności w tekście pisanym niż na diagramie UML, większość daigramów UML pozostawia wiele możliwości interpretacji. W związku z tym jestem bardzo dużym fanem używania diagramów w dokumentach projektowych oprogramowania, a wiele diagramów UML jest niezwykle zwięzłych: wdrażanie, stan, klasa i aktywność są moimi ulubionymi. Kiedy tworzę schematy UML, staram się trzymać z grubsza konwencji, ale nie pozwalam im wchodzić w drogę, jeśli nie mogą reprezentować pojęcia, które próbuję przekazać.

2

Chciałbym odpowiedzieć:

nic, absolutnie nic, zastępuje potrzebę dobrej komunikacji między programistami w zespole programowania i zarządzania.

Oznacza to pewien poziom rozbicia zadania na proste instrukcje "co musimy zrobić" dla menedżerów i wyjaśnienie wszelkich blokad dróg.

Pracowałem nad małym projektem, w którym cała struktura klasowa programu została zaprojektowana przez kogoś w UML przed napisaniem jakiegokolwiek kodu. Świetnie, ale projektanci nie przewidzieli sposobu, w jaki klasy mogą być używane, lub potrzeby zmiany pewnych struktur, aby lepiej dopasować się do logiki programu. Po prostu wyrzucili projekt, który według nich miał działać.

Mam jeszcze spotkać kogoś, kto potrafi zaprojektować program w swojej głowie i wyprodukować dokładnie to, co pisze poza bardzo prostymi rzeczami. Proces jest dość organiczny i rzeczy muszą się zmieniać, gdy programiści realizują swoje wcześniejsze błędy i naprawiają je. Rozumiem, dlaczego zaczyna się pojawiać pełzanie funkcji, i to tam kierownictwo musi zrozumieć, co się dzieje, być trzymane w pętli i aktualizowane. Dobrzy menedżerowie będą słuchać tego, co mówią ich programiści i odpowiednio dostosować widoki.

Tak więc, z dwóch opcji, wybrałbym dokument projektowy wysokiego poziomu: chcemy, aby oprogramowanie to zrobiło, uruchom na tej platformie, zaakceptuj tego rodzaju dane wejściowe i wypluj tego typu rzeczy. To działa, jeśli powyższe jest utrzymywane.

UML, o ile mi wiadomo, nie jest tego wart.

0

Nie możemy całkowicie zignorować UML, ponieważ niektóre diagramy są pomocne, jeśli chodzi o złożoną funkcjonalność lub, powiedzmy, długi proces przepływu pracy i scenariusze, w których programiści mogą pominąć niektóre przypadki, gdy scenariusze nie są rysowane/projektowane. Inną ważną cechą UML jest zapamiętywanie w przyszłości, jak działa system i jak jego moduły komunikują się ze sobą, aby upewnić się, że projekt jest skalowalny bez generowania ogromnych błędów, które mogą być bezokolicze i poważne. Zatem zarówno pisemny dokument projektowy, jak i UML są ważne dla każdego średniego lub dużego projektu.