Sind UML-Klassendiagramme zum Entwerfen von JavaScript-Systemen geeignet?

23

Ist UML, da es sich an einem eher klassischen Ansatz zur Objektorientierung orientiert, für den Entwurf von JavaScript-Systemen immer noch zuverlässig einsetzbar?

Ein spezielles Problem, das ich sehen kann, ist, dass Klassendiagramme in der Tat eine strukturelle Ansicht des Systems sind und JavaScript stärker vom Verhalten abhängt. Wie können Sie damit umgehen?

Bitte denken Sie daran, dass ich hier nicht über die Domäne der realen Welt spreche. Es ist ein Modell für die Lösung, die ich erreichen möchte.

Julio Rodrigues
quelle
7
Viele von uns würden sagen, dass UML nicht ausreicht, um wirklich etwas zu entwerfen. Ich bin der Meinung, dass der einzige Wert im gesamten Kanon der UML das Sequenzdiagramm ist. Jedes andere UML-Diagramm, das ich zu verstehen versucht habe, wurde besser auf Englisch erklärt. Aber das ist subjektiv für das, was es ist.
Jimmy Hoffa
1
@ JimmyHoffa Ich stimme zu einem erheblichen Teil. Insbesondere bei modernen IDEs sollte ein Programmierer problemlos in der Lage sein, objektorientierten Quellcode zu betrachten und die gleichen Informationen (und mehr) zu erhalten, die in einem Klassendiagramm dargestellt sind. Ich kann mir vorstellen, dass Klassendiagramme nützlicher waren, bevor moderne IDEs mit Syntaxhervorhebung und automatisch generierten Konturen verfügbar waren. Klassendiagramme eignen sich möglicherweise zur Darstellung objektorientierter Strukturen für Personen ohne Programmiererfahrung oder in einem großen Projekt, in dem der Entwickler nicht genügend Zeit hat, um das Design allen mündlich zu erklären.
David Kaczynski
1
@JimmyHoffa Würden Sie bitte einige gute Bücher oder Ressourcen zu Systemen empfehlen, die speziell mit Sequenzdiagrammen modelliert wurden? Ich las Applying UML and Patterns und es lieferte wirklich gute Beispiele für die praktische Verwendung von UML, anstatt nur die Diagramme und die Syntax zu erklären.
Songo
@JimmyHoffa: Ich stimme dir fast zu, aber nicht über Sequenzdiagramme - denn IMHO Sequenzdiagramme zeigen nichts, was man mit Pseudocode nicht besser ausdrücken kann. Der einzige Diagrammtyp, der für mich wirklich von Nutzen ist, sind Datenflussdiagramme, die nicht Teil der UML sind.
Doc Brown
@ DocBrown fair genug, lassen Sie uns einfach zustimmen, dass das Lernen von UML vermieden werden sollte und eher ein Lesen des Strunk & White sollte es vielleicht ersetzen :)
Jimmy Hoffa

Antworten:

18

Es hört sich so an, als würdest du zwei verschiedene Dinge fragen

  • Kann UML zur Darstellung von Javascript-Systemen verwendet werden?
  • Können Klassendiagramme zur Darstellung von Javascript-Systemen verwendet werden?

Beachten Sie, dass UML viele Arten von Diagrammen enthält , insbesondere einen Zweig von Verhaltensdiagrammen, einschließlich Sequenz- und Anwendungsfalldiagrammen. Solche Diagramme befassen sich speziell mit Ihrem Anliegen, Javascript als verhaltensgesteuerte Sprache zu modellieren.

Es ist durchaus möglich, dass ein Javascript-System kein objektorientiertes Design verwendet. In einem solchen Fall wären Klassendiagramme wahrscheinlich nicht geeignet, wie Sie betont haben. Da Javascript jedoch objektorientiertes Design unterstützt, ist es für Klassendiagramme möglich, ein System mit Javascript effektiv abzubilden. Es hängt wirklich davon ab, wie das Javascript verwendet wird.

David Kaczynski
quelle
5

Ihre Antwort ist in Ihrer Frage verborgen:

Ein spezielles Problem, das ich sehen kann, ist, dass Klassendiagramme in der Tat eine strukturelle Ansicht des Systems sind und Javascript mehr verhaltensabhängig ist. Wie können Sie damit umgehen?

Sehen Sie sich BDD- Techniken (Behavior-driven Development) an und wählen Sie Tools aus, die Ihren Designanforderungen entsprechen.

Verwandte Diskussion, die Sie vielleicht nützlich finden - Wie man Geschichten / Szenarien in BDD schreibt . Und ein sehr umfassender Artikel aus dem Code-Magazin - Behavior-Driven Development

ps: Im Allgemeinen kann UML represent general types of behaviores jedoch weiterhin verwendet werden, um Ihr Design mit dem richtigen Satz ausgewählter Kategorien zu modellieren (wie ein Sequenzdiagramm).I would reference the Wikipedia and find the right UML diagram category to use.

EL Yusubov
quelle
Es scheint ein Problemdefinitions- oder Entwicklungsmanagementansatz zu sein. Ich sprach eigentlich über ein Design auf niedrigerer Ebene, näher an der Lösung.
Julio Rodrigues
4

Es wurde an der Anpassung der Webanwendung an UML gearbeitet, die als WAE-Erweiterung bezeichnet wird, und es gibt ein Buch mit dem Titel Building Web Applications with UML von Jim Conallen, in dem dies ausführlich erläutert wird. Sie können Variablen und Funktionen von JavaScript im Klassendiagramm sehen.

Warum halte ich es für die beste Option, eine Webanwendung zu modellieren? Weil jeder weiß, wie ein Klassendiagramm funktioniert, und das ist ihm am nächsten. Es ist sehr einfach zu verstehen und Programmierer sind zu faul, um die Dokumentation in Worten zu lesen, aber ein Diagramm zu betrachten ist nicht so schwer;). Wenn Sie jedoch sehen möchten, was bei der Ausführung passiert, sollten Sie nach einem Sequenzdiagramm suchen, da in einer Webanwendung manchmal Dateien dynamisch generiert werden.

Diagramm generiert durch node.js Paket "wavi"

Bakunin95
quelle
3

Es gibt auch Verhaltensmodelle in UML, mit denen Sie das Verhalten des Systems wie Sequenzdiagramme oder Zustandsdiagramme darstellen können

Dummy Derp
quelle
1

Ja, Sie können UML verwenden, insbesondere Sequenzdiagramme .

In Bezug auf die Verwendung von Klassendiagrammen hängt es davon ab, ob Sie Ihre Anwendung nach objektorientierten Entwurfsprinzipien entwerfen oder nicht. Wenn Sie nur eine Reihe von JavaScript-Funktionen haben, fügen Klassendiagramme nicht viel hinzu. Wenn Sie JavaScript-Objektprototypen verwenden, um eine Art von Klassen zu simulieren, sind diese Diagramme hilfreich.

Basierend auf meinen Erfahrungen mit dem Entwerfen von Javascript-Frontends in UML habe ich ein Whitepaper zum Thema geschrieben: Technisches Design in UML für Angular-Anwendungen .

www.admiraalit.nl
quelle
0

Es scheint, dass Sie UML für JavaScript verwenden können, aber es hängt davon ab, wie Sie Ihre Arbeit angehen.

Insbesondere kann JS / UML die UML-Dokumentation für JSDoc, Dojo und YUI automatisieren.

Ich würde vermuten, dass es da draußen mehr gibt, aber noch nichts anderes vorgefunden hat.

knguyeniii
quelle
Wie beantwortet dies die gestellte Frage?
gnat