¿Los diagramas de clase UML son adecuados para diseñar sistemas JavaScript?

23

Dado que UML está orientado hacia un enfoque más clásico para la orientación a objetos, ¿aún se puede usar de manera confiable para diseñar sistemas JavaScript?

Un problema específico que puedo ver es que los diagramas de clase son, de hecho, una vista estructural del sistema, y ​​JavaScript está más orientado al comportamiento, ¿cómo puede manejarlo?

Tenga en cuenta que no estoy hablando del dominio del mundo real aquí; Es un modelo para la solución que estoy tratando de lograr.

Julio Rodrigues
fuente
77
Muchos de nosotros diríamos que UML no es adecuado para diseñar realmente nada. Soy de la opinión de que el único valor en todo el canon de UML es el diagrama de secuencia. Todos los demás diagramas UML que he intentado entender se explican mejor en inglés. Pero eso es subjetivo por lo que es.
Jimmy Hoffa
1
@JimmyHoffa Estoy de acuerdo en gran medida. Especialmente con los IDE modernos, un programador debería poder mirar fácilmente el código fuente orientado a objetos y obtener la misma información (y más) que se representa en un diagrama de clase. Me imagino que los diagramas de clases son más útiles antes de que los IDE modernos con resaltado de sintaxis y contornos generados automáticamente estuvieran disponibles. Los diagramas de clase pueden ser adecuados para representar estructuras orientadas a objetos a personas sin experiencia en programación o en un proyecto grande donde no hay suficiente tiempo para que el desarrollador explique verbalmente el diseño a todos.
David Kaczynski
1
@JimmyHoffa ¿Recomendaría algunos buenos libros o recursos sobre sistemas modelados utilizando diagramas de secuencia específicamente? Leí Aplicar UML y Patrones y proporcionó ejemplos realmente buenos usando UML prácticamente en lugar de solo explicar los diagramas y la sintaxis.
Songo
@JimmyHoffa: casi estoy de acuerdo con usted, pero no con los diagramas de secuencia, porque el diagrama de secuencia de mi humilde opinión no muestra nada de lo que no se puede expresar mejor con pseudocódigo. El único tipo de diagrama que tiene un uso real para mí son los diagramas de flujo de datos, y esos no son parte de UML.
Doc Brown
@DocBrown lo suficientemente justo, solo aceptemos que se debe evitar aprender UML y que más bien una lectura de strunk & white debería reemplazarlo quizás :)
Jimmy Hoffa

Respuestas:

18

Parece que estás preguntando dos cosas diferentes

  • ¿Se puede utilizar UML para representar sistemas javascript?
  • ¿Se pueden utilizar los diagramas de clases para representar sistemas javascript?

Tenga en cuenta que UML incluye muchos tipos de diagramas , específicamente una rama de diagramas de comportamiento, incluidos diagramas de secuencia y de casos de uso. Dichos diagramas abordan específicamente su preocupación de modelar javascript como un lenguaje basado en el comportamiento.

Es muy posible que un sistema javascript no esté utilizando un diseño orientado a objetos. En tal caso, los diagramas de clase probablemente no serían apropiados, como usted señaló. Sin embargo, dado que JavaScript admite el diseño orientado a objetos, es posible que los diagramas de clase representen efectivamente un sistema que utiliza JavaScript. Realmente depende de cómo se use JavaScript.

David Kaczynski
fuente
5

Su respuesta está oculta en su pregunta:

Un problema específico que puedo ver es que los diagramas de clase son, de hecho, una vista estructural del sistema, y ​​JavaScript está más orientado al comportamiento, ¿cómo puede lidiar con él?

Observe las técnicas de BDD (desarrollo impulsado por el comportamiento) y elija herramientas que se adapten a sus necesidades de diseño.

Discusión relacionada que puede resultarle útil: cómo escribir historias / escenarios en BDD . Y un artículo muy completo de la revista Code - Behavior-Driven Development

ps: en general, UML represent general types of behaviorsin embargo, todavía puede usarse para modelar su diseño con el conjunto correcto de categoría seleccionada (como un diagrama de secuencia).I would reference the Wikipedia and find the right UML diagram category to use.

EL Yusubov
fuente
Parece ser una definición del problema o un enfoque de gestión del desarrollo. En realidad estaba hablando de un diseño de nivel inferior, más cercano a la solución.
Julio Rodrigues
4

Se ha realizado un trabajo para adaptar la aplicación web a UML, se llama la extensión WAE y hay un libro llamado Building Web Applications with UML por Jim Conallen que lo explica en detalle. Puede ver las variables y la función de JavaScript en el diagrama de clases.

¿Por qué creo que es la mejor opción para modelar aplicaciones web? Porque todos saben cómo funciona el diagrama de clase y esto es lo más parecido a él. Es muy fácil de entender y los programadores son demasiado vagos para leer la documentación en palabras, pero mirar un diagrama no es tan difícil;). Sin embargo, si desea ver lo que sucede en la ejecución, debe buscar un diagrama de secuencia porque en la aplicación web, a veces los archivos se generan dinámicamente.

Diagrama generado por el paquete node.js "wavi"

Bakunin95
fuente
3

También hay modelos de comportamiento en UML que puede usar para representar el comportamiento del sistema, como diagramas de secuencia o diagramas de gráficos de estado.

Dummy Derp
fuente
1

Sí, puede usar UML, especialmente los diagramas de secuencia .

Con respecto al uso de diagramas de clase , depende de si diseña su aplicación utilizando principios de diseño orientados a objetos o no. Si solo tiene un montón de funciones de JavaScript, los diagramas de clase no agregan mucho. Si usa prototipos de objetos JavaScript para simular un tipo de clases, estos diagramas serán útiles.

Basado en mi experiencia en el diseño de front-end de Javascript en UML, he escrito un libro blanco sobre el tema: Diseño técnico en UML para aplicaciones angulares .

www.admiraalit.nl
fuente
0

Parece que puedes usar UML para JavaScript, pero dependerá de cómo vas a enfocar tu trabajo.

Específicamente, JS / UML puede automatizar la documentación de UML para JSDoc, Dojo, YUI.

Supongo que hay más por ahí, pero todavía no he encontrado nada más.

knguyeniii
fuente
¿Cómo responde esto a la pregunta que se hace?
mosquito