I diagrammi di classe UML sono adeguati per progettare sistemi JavaScript?


23

Dato che UML è orientato verso un approccio più classico all'orientamento agli oggetti, è ancora utilizzabile in modo affidabile per progettare sistemi JavaScript?

Un problema specifico che posso vedere è che i diagrammi di classe sono, in effetti, una visione strutturale del sistema e JavaScript è più orientato al comportamento, come puoi gestirlo?

Tieni presente che non sto parlando del dominio del mondo reale qui; è un modello per la soluzione che sto cercando di raggiungere.


7
Molti di noi direbbero che gli UML non sono adeguati per progettare davvero nulla. Sono dell'opinione che l'unico valore dell'intero canone di UML sia il diagramma di sequenza. Ogni altro diagramma UML che ho cercato di capire è stato meglio spiegato in inglese. Ma è soggettivo per quello che è.
Jimmy Hoffa,

1
@JimmyHoffa Sono d'accordo in larga misura. Soprattutto con i moderni IDE, un programmatore dovrebbe essere in grado di guardare facilmente il codice sorgente orientato agli oggetti e ottenere le stesse informazioni (e altro) che sono rappresentate in un diagramma di classe. Posso immaginare che i diagrammi di classe siano più utili prima che fossero disponibili gli IDE moderni con evidenziazione della sintassi e contorni generati automaticamente. I diagrammi di classe possono essere adatti per rappresentare strutture orientate agli oggetti per le persone senza esperienza di programmazione o in un grande progetto in cui non c'è abbastanza tempo per lo sviluppatore per spiegare verbalmente il progetto a tutti.
David Kaczynski,

1
@JimmyHoffa Consiglieresti alcuni buoni libri o risorse su sistemi modellati utilizzando specificamente i diagrammi di sequenza? Ho letto Applicare UML e Pattern e mi ha fornito esempi di esempi davvero validi usando UML praticamente invece di spiegare semplicemente i diagrammi e la sintassi.
Songo,

@JimmyHoffa: Sono quasi d'accordo, ma non sui diagrammi di sequenza, perché il diagramma di sequenza IMHO non mostra nulla di ciò che non può essere espresso meglio con lo pseudo-codice. L'unico tipo di diagramma che è realmente utile per me sono i diagrammi del flusso di dati, che non fanno parte di UML.
Doc Brown,

@DocBrown abbastanza equamente, concordiamo sul fatto che l'apprendimento di UML dovrebbe essere evitato e piuttosto una lettura dello strunk e del bianco dovrebbe sostituirlo forse :)
Jimmy Hoffa,

Risposte:


18

Sembra che tu stia chiedendo due cose diverse

  • UML può essere utilizzato per rappresentare sistemi javascript?
  • I diagrammi di classe possono essere utilizzati per rappresentare i sistemi javascript?

Tieni presente che UML include molti tipi di diagrammi , in particolare un ramo di diagrammi comportamentali, tra cui diagrammi di casi d'uso e di sequenza. Tali diagrammi affrontano specificamente la tua preoccupazione di modellare javascript come linguaggio orientato al comportamento.

È del tutto possibile che un sistema javascript non stia utilizzando un design orientato agli oggetti. In tal caso, i diagrammi di classe probabilmente non sarebbero appropriati, come hai sottolineato. Tuttavia, poiché javascript supporta la progettazione orientata agli oggetti, è possibile che i diagrammi di classe rappresentino efficacemente un sistema usando javascript. Dipende molto da come viene utilizzato JavaScript.


5

La tua risposta è nascosta nella tua domanda:

Un problema specifico che posso vedere è che i diagrammi di classe sono, in effetti, una visione strutturale del sistema e javascript è più orientato al comportamento, come puoi gestirlo?

Guarda le tecniche BDD (Behavior driven driven) e scegli gli strumenti adatti alle tue esigenze di progettazione.

Discussione correlata che potresti trovare utili da guardare - Come scrivere storie / scenari in BDD . E un articolo molto completo della rivista Code - Behavior-Driven Development

ps: in generale, UML represent general types of behaviortuttavia, può comunque essere utilizzato per modellare il disegno con il giusto set di categoria selezionata (come un diagramma di sequenza).I would reference the Wikipedia and find the right UML diagram category to use.


Sembra essere una definizione di problema o un approccio di gestione dello sviluppo. In realtà stavo parlando di un progetto di livello inferiore, più vicino alla soluzione.
Julio Rodrigues,

4

C'è stato del lavoro fatto per adattare l'applicazione Web a UML, si chiama estensione WAE e c'è un libro intitolato Building Web Applications con UML di Jim Conallen che lo spiega in dettaglio. Puoi vedere le variabili e le funzioni di JavaScript nel diagramma delle classi.

Perché credo che sia l'opzione migliore per modellare l'applicazione Web? Perché evrybody sa come funziona il diagramma di classe e questa è la cosa più vicina ad esso. È molto facile da capire e i programmatori sono troppo pigri per leggere la documentazione a parole, ma guardare un diagramma non è così difficile;). Tuttavia, se vuoi vedere cosa succede durante l'esecuzione, allora dovresti cercare un diagramma di sequenza perché nell'applicazione web, a volte i file vengono generati in modo dinamico.

Diagramma generato dal pacchetto node.js "wavi"


3

Ci sono anche modelli di comportamento in UML che puoi usare per rappresentare il comportamento del sistema come Diagrammi di sequenza o Diagramma di stato


1

Sì, puoi usare UML, in particolare i diagrammi di sequenza .

Per quanto riguarda l'uso dei diagrammi di classe , dipende dal fatto che si progetta l'applicazione utilizzando o meno principi di progettazione orientati agli oggetti. Se hai solo un sacco di funzioni JavaScript, i diagrammi di classe non aggiungono molto. Se si utilizzano prototipi di oggetti JavaScript per simulare un tipo di classi, questi diagrammi saranno utili.

Sulla base della mia esperienza nella progettazione di front-end Javascript in UML, ho scritto un white paper sull'argomento: progettazione tecnica in UML per applicazioni angolari .


0

Sembra che tu possa usare UML per JavaScript, ma dipenderà da come approccerai il tuo lavoro.

In particolare JS / UML può automatizzare la documentazione UML per JSDoc, Dojo, YUI.

Immagino che ci sia altro là fuori ma non ho ancora incontrato nient'altro.


come risponde alla domanda posta?
moscerino del
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.