Czy diagramy klas UML są odpowiednie do projektowania systemów JavaScript?

23

Biorąc pod uwagę, że UML jest zorientowany na bardziej klasyczne podejście do orientacji obiektowej, czy nadal można go w wiarygodny sposób projektować systemy JavaScript?

Jednym konkretnym problemem, jaki widzę, jest to, że diagramy klas są w rzeczywistości strukturalnym widokiem systemu, a JavaScript jest bardziej zależny od zachowania, jak sobie z tym poradzić?

Pamiętaj, że nie mówię tu o domenie świata rzeczywistego; to model rozwiązania, które staram się osiągnąć.

Julio Rodrigues
źródło
7
Wielu z nas powiedziałoby, że UML nie są odpowiednie do zaprojektowania naprawdę czegokolwiek. Uważam, że jedyną wartością w całym kanonie UML jest diagram sekwencji. Każdy inny schemat UML, który próbowałem zrozumieć, został lepiej wyjaśniony w języku angielskim. Ale to subiektywne jak na to.
Jimmy Hoffa,
1
@ JimmyHoffa Zgadzam się w znacznym stopniu. Zwłaszcza w przypadku nowoczesnych IDE, programista powinien z łatwością patrzeć na obiektowy kod źródłowy i uzyskiwać te same informacje (i więcej), które są przedstawione na diagramie klas. Mogę sobie wyobrazić, że diagramy klas są bardziej przydatne, zanim dostępne były nowoczesne IDE z podświetlaniem składni i automatycznie generowanymi konturami. Diagramy klasowe mogą być odpowiednie do przedstawiania struktur obiektowych osobom bez doświadczenia w programowaniu lub w dużym projekcie, w którym deweloper nie ma wystarczająco dużo czasu, aby ustnie wyjaśnić projekt wszystkim.
David Kaczyński
1
@JimmyHoffa Czy mógłby Pan polecić jakieś dobre książki lub zasoby na temat systemów modelowanych za pomocą diagramów sekwencji? Przeczytałem Stosowanie UML i Wzorów i dostarczyłem naprawdę dobrą formę przykładów, używając UML praktycznie zamiast wyjaśniać diagramy i składnię.
Songo,
@ JimmyHoffa: Zgadzam się z tobą prawie, ale nie chodzi o diagramy sekwencji - ponieważ schemat sekwencji IMHO nie pokazuje niczego, czego nie można lepiej wyrazić za pomocą pseudokodu. Jedynym rodzajem diagramów, który ma dla mnie prawdziwe zastosowanie, są diagramy przepływu danych, które nie są częścią UML.
Doc Brown,
@DocBrown dość uczciwie, po prostu zgódźmy się, że należy unikać nauki języka UML, a może raczej czytanie strunk & white powinno go zastąpić :)
Jimmy Hoffa

Odpowiedzi:

18

Wygląda na to, że pytasz o dwie różne rzeczy

  • Czy można używać UML do przedstawiania systemów javascript?
  • Czy można wykorzystać diagramy klas do zilustrowania systemów javascript?

Należy pamiętać, że UML zawiera wiele rodzajów diagramów , w szczególności gałąź diagramów zachowania, w tym diagramy sekwencji i przypadków użycia. Takie diagramy dotyczą w szczególności problemu modelowania javascript jako języka sterowanego zachowaniem.

Jest całkiem możliwe, że system javascript nie używa projektowania obiektowego. W takim przypadku, jak zauważyłeś, diagramy klas prawdopodobnie nie byłyby odpowiednie. Ponieważ jednak javascript obsługuje projektowanie obiektowe, diagramy klas mogą skutecznie przedstawiać system za pomocą javascript. To naprawdę zależy od tego, jak używany jest javascript.

David Kaczyński
źródło
5

Twoja odpowiedź jest ukryta w twoim pytaniu:

Jednym konkretnym problemem, jaki widzę, jest to, że diagramy klas są w rzeczywistości strukturalnym widokiem systemu, a javascript jest bardziej zależny od zachowania, jak sobie z tym poradzić?

Spójrz na techniki BDD (programowanie oparte na zachowaniu) i wybierz narzędzia, które odpowiadają Twoim potrzebom projektowym.

Powiązana dyskusja, która może Ci się przydać - Jak pisać opowiadania / scenariusze w BDD . I bardzo obszerny artykuł z magazynu Code - Behavior-Driven Development

ps: Zasadniczo UML represent general types of behaviorjednak można go nadal używać do modelowania projektu z odpowiednim zestawem wybranej kategorii (jak schemat sekwencji).I would reference the Wikipedia and find the right UML diagram category to use.

EL Yusubov
źródło
Wydaje się, że jest to definicja problemu lub podejście do zarządzania rozwojem. Mówiłem o projekcie niższego poziomu, bliższym rozwiązaniu.
Julio Rodrigues,
4

Wykonano już prace nad dostosowaniem aplikacji internetowej do UML, zwanej rozszerzeniem WAE, a Jim Conallen wyjaśnia książkę szczegółowo zatytułowaną Budowanie aplikacji internetowych z UML. Zmienne i funkcje JavaScript można zobaczyć na diagramie klas.

Dlaczego uważam, że jest to najlepsza opcja do modelowania aplikacji internetowych? Ponieważ evrybody wiedzą, jak działa schemat klas i jest to najbliższa rzecz. Jest bardzo łatwy do zrozumienia, a programiści są zbyt leniwi, by czytać dokumentację słowami, ale patrzenie na diagram nie jest takie trudne;). Jeśli jednak chcesz zobaczyć, co dzieje się podczas wykonywania, powinieneś poszukać diagramu sekwencji, ponieważ w aplikacji sieciowej czasami pliki są generowane dynamicznie.

Schemat wygenerowany przez pakiet node.js „wavi”

Bakunin95
źródło
3

Istnieją również modele zachowań w języku UML, których można użyć do zobrazowania zachowania systemu, takich jak diagramy sekwencji lub diagramy stanów

Dummy Derp
źródło
1

Tak, możesz używać UML, w szczególności diagramów sekwencji .

Jeśli chodzi o użycie diagramów klas , zależy to od tego, czy projektujesz aplikację z wykorzystaniem obiektowych zasad projektowania, czy nie. Jeśli masz tylko kilka funkcji JavaScript, diagramy klas nie dodają wiele. Jeśli użyjesz prototypów obiektów JavaScript do symulacji pewnego rodzaju klas, te diagramy będą przydatne.

W oparciu o moje doświadczenie w projektowaniu interfejsów JavaScript w języku UML napisałem białą księgę na ten temat: Projekt techniczny w języku UML dla aplikacji Angular .

www.admiraalit.nl
źródło
0

Wydaje się, że możesz używać UML dla JavaScript, ale będzie to zależeć od tego, jak podejdziesz do swojej pracy.

W szczególności JS / UML może automatyzować dokumentację UML dla JSDoc, Dojo, YUI.

Domyślam się, że jest ich więcej, ale jeszcze nie natknąłem się na nic innego.

knguyeniii
źródło
Jak to odpowiada na zadane pytanie?
komara