Les diagrammes de classes UML sont-ils adéquats pour concevoir des systèmes JavaScript?

23

Étant donné que UML est orienté vers une approche plus classique de l'orientation des objets, est-il toujours utilisable de manière fiable pour concevoir des systèmes JavaScript?

Un problème spécifique que je peux voir est que les diagrammes de classes sont, en fait, une vue structurelle du système, et que JavaScript est plus axé sur le comportement, comment pouvez-vous y faire face?

Veuillez garder à l'esprit que je ne parle pas du domaine du monde réel ici; c'est un modèle pour la solution que j'essaie de réaliser.

Julio Rodrigues
la source
7
Beaucoup d'entre nous diraient que l'UML n'est pas suffisant pour concevoir vraiment quoi que ce soit. Je suis d'avis que la seule valeur de tout le canon d'UML est le diagramme de séquence. Tous les autres diagrammes UML que j'ai essayé de comprendre ont été mieux expliqués en anglais. Mais c'est subjectif pour ce que c'est.
Jimmy Hoffa
1
@JimmyHoffa Je suis d'accord dans une large mesure. Surtout avec les IDE modernes, un programmeur devrait facilement être en mesure de regarder le code source orienté objet et d'obtenir les mêmes informations (et plus) qui sont représentées dans un diagramme de classes. Je peux imaginer que les diagrammes de classes soient plus utiles avant que les IDE modernes avec mise en évidence de la syntaxe et contours générés automatiquement ne soient disponibles. Les diagrammes de classes peuvent être adaptés pour représenter des structures orientées objet à des personnes sans expérience en programmation ou dans un grand projet où le développeur n'a pas assez de temps pour expliquer verbalement la conception à tout le monde.
David Kaczynski
1
@JimmyHoffa Recommanderiez-vous s'il vous plaît quelques bons livres ou ressources sur les systèmes modélisés en utilisant des diagrammes de séquence spécifiquement? J'ai lu Appliquer UML et Patterns et cela a fourni de très bons exemples de forme en utilisant UML pratiquement au lieu d'expliquer simplement les diagrammes et la syntaxe.
Songo
@JimmyHoffa: Je suis presque d'accord avec vous, mais pas sur les diagrammes de séquence - parce que le diagramme de séquence IMHO ne montre rien de ce qui ne peut pas être mieux exprimé avec un pseudo-code. Le seul type de diagramme qui me soit vraiment utile est celui des diagrammes de flux de données, et ceux-ci ne font pas partie d'UML.
Doc Brown
@DocBrown assez juste, convenons simplement que l'apprentissage de l'UML devrait être évité et plutôt une lecture du strunk & white devrait le remplacer peut-être :)
Jimmy Hoffa

Réponses:

18

On dirait que vous demandez deux choses différentes

  • UML peut-il être utilisé pour représenter des systèmes javascript?
  • Les diagrammes de classes peuvent-ils être utilisés pour représenter des systèmes javascript?

Gardez à l'esprit que UML comprend de nombreux types de diagrammes , en particulier une branche de diagrammes de comportement, y compris des diagrammes de séquence et de cas d'utilisation. Ces diagrammes répondent spécifiquement à votre souci de modéliser javascript en tant que langage axé sur le comportement.

Il est fort possible qu'un système javascript n'utilise pas une conception orientée objet. Dans un tel cas, les diagrammes de classes ne seraient probablement pas appropriés, comme vous l'avez souligné. Cependant, étant donné que javascript prend en charge la conception orientée objet, il est possible que les diagrammes de classes représentent efficacement un système utilisant javascript. Cela dépend vraiment de la façon dont le javascript est utilisé.

David Kaczynski
la source
5

Votre réponse est cachée dans votre question:

Un problème spécifique que je peux voir est que les diagrammes de classes sont, en fait, une vue structurelle du système, et que javascript est plus axé sur le comportement, comment pouvez-vous y faire face?

Regardez les techniques BDD (Behaviour-driven development) et choisissez les outils qui répondent à vos besoins de conception.

Discussion connexe que vous pourriez trouver utile de regarder - Comment écrire des histoires / scénarios dans BDD . Et un article très complet du magazine Code - Développement axé sur le comportement

ps: En général, UML represent general types of behaviorcependant, il peut toujours être utilisé pour modéliser votre conception avec le bon ensemble de catégories sélectionnées (comme un diagramme de séquence).I would reference the Wikipedia and find the right UML diagram category to use.

EL Yusubov
la source
Cela semble être une définition de problème ou une approche de gestion du développement. Je parlais en fait d'une conception de niveau inférieur, plus proche de la solution.
Julio Rodrigues
4

Il y a eu des travaux pour adapter l'application Web à UML, son appelée l'extension WAE et il y a un livre intitulé Building Web Applications with UML par Jim Conallen qui l'explique en détail. Vous pouvez voir les variables et la fonction de JavaScript dans le diagramme de classes.

Pourquoi je pense que c'est la meilleure option pour modéliser une application Web? Parce que tout le monde sait comment fonctionne le diagramme de classe et c'est la chose la plus proche. C'est très facile à comprendre et les programmeurs sont trop paresseux pour lire la documentation en mots, mais regarder un diagramme n'est pas si difficile;). Cependant, si vous voulez voir ce qui se passe lors de l'exécution, vous devez rechercher un diagramme de séquence car dans une application Web, des fichiers sont parfois générés dynamiquement.

Diagramme généré par le package node.js "wavi"

Bakunin95
la source
3

Il existe également des modèles de comportement en UML que vous pouvez utiliser pour décrire le comportement du système, comme les diagrammes de séquence ou les diagrammes d'états.

Dummy Derp
la source
1

Oui, vous pouvez utiliser UML, notamment des diagrammes de séquence .

En ce qui concerne l'utilisation des diagrammes de classes , cela dépend si vous concevez votre application en utilisant des principes de conception orientés objet ou non. Si vous n'avez qu'un tas de fonctions JavaScript, les diagrammes de classes n'ajoutent pas grand-chose. Si vous utilisez des prototypes d'objets JavaScript pour simuler une sorte de classes, ces diagrammes seront utiles.

Sur la base de mon expérience dans la conception de frontaux Javascript en UML, j'ai écrit un livre blanc sur le sujet: Conception technique en UML pour les applications angulaires .

www.admiraalit.nl
la source
0

Il semble que vous puissiez utiliser UML pour JavaScript, mais cela dépendra de la façon dont vous allez aborder votre travail.

Plus précisément, JS / UML peut automatiser la documentation UML pour JSDoc, Dojo, YUI.

J'imagine qu'il y en a plus mais que je n'ai encore rien rencontré d'autre.

knguyeniii
la source
comment cela répond-il à la question posée?
moucher