it-swarm.com.de

Sind UML-Klassendiagramme ausreichend, um JavaScript-Systeme zu entwerfen?

Ist UML angesichts der Ausrichtung auf einen klassischeren Ansatz zur Objektorientierung immer noch zuverlässig zum Entwerfen von JavaScript-Systemen verwendbar?

Ein spezifisches Problem, das ich sehen kann, ist, dass Klassendiagramme tatsächlich eine strukturelle Ansicht des Systems sind und JavaScript verhaltensorientierter ist. Wie können Sie damit umgehen?

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

23
Julio Rodrigues

Es hört sich so an, als würden Sie 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 angemessen, wie Sie betont haben. Da Javascript jedoch objektorientiertes Design unterstützt, können Klassendiagramme ein System mithilfe von Javascript effektiv darstellen. Es hängt wirklich davon ab, wie das Javascript verwendet wird.

18
David Kaczynski

Ihre Antwort ist in Ihrer Frage verborgen:

Ein spezifisches Problem, das ich sehen kann, ist, dass Klassendiagramme tatsächlich eine strukturelle Ansicht des Systems sind und Javascript eher verhaltensorientiert ist. Wie können Sie damit umgehen?

Schauen Sie sich BDD (Behavior-Driven Development) Techniken 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 UML represent general types of behavior, kann jedoch weiterhin verwendet werden, um Ihr Design mit dem richtigen Satz ausgewählter Kategorien (wie einem Sequenzdiagramm) zu modellieren. I would reference the Wikipedia and find the right UML diagram category to use.

5
Yusubov

Es wurde daran gearbeitet, Webanwendungen an UML anzupassen, die als WAE-Erweiterung bezeichnet werden, und es gibt ein Buch mit dem Titel Erstellen von Webanwendungen mit UML von Jim Conallen, in dem dies ausführlich erläutert wird. Sie können Variablen und Funktionen von JavaScript im Klassendiagramm sehen.

Warum glaube ich, dass es die beste Option ist, um Webanwendungen zu modellieren? Weil jeder weiß, wie Klassendiagramme funktionieren und dies dem am nächsten kommt. Es ist sehr leicht zu verstehen und Programmierer sind zu faul, um 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 Webanwendungen manchmal Dateien dynamisch generiert werden.

Diagram generated by node.js package "wavi"

4
Bakunin95

In UML gibt es auch Verhaltensmodelle, mit denen Sie das Verhalten des Systems darstellen können, z. B. Sequenzdiagramme oder Zustandsdiagramme

3
Dummy Derp

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 meiner Erfahrung beim Entwerfen von Javascript-Frontends in UML habe ich ein Whitepaper zu diesem Thema geschrieben: Technisches Design in UML für Angular Applications .

1

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

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

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

0
knguyeniii