Ha senso generare classi java dal diagramma delle classi?

0

Mentre progettiamo & analisi prima dello sviluppo, non sarebbe conveniente essere in grado di generare classi Java da un diagramma di classe?
Ciò promuoverebbe un design più esaustivo e codici migliori, giusto?

È strano il motivo per cui Google restituisce tonnellate di strumenti per generare diagrammi di classe dalle classi Java, ma non viceversa.

    
posta ericn 29.10.2013 - 08:45
fonte

4 risposte

9

No, è molto più veloce scrivere codice piuttosto che disegnare diagrammi su un computer. Per generare una classe Java da un diagramma, è necessario disegnare il diagramma e quindi digitare comunque la maggior parte del codice. Certo, potresti non dover digitare metodi get / set, ma Lombok fa un lavoro migliore per risolvere il problema. Ad esempio, è molto più semplice digitare semplicemente "classe X implementa Y" piuttosto che disegnare una casella, digitare "X" e quindi collegare X a Y con il giusto tipo di freccia. Da decenni sperimentiamo la generazione di codice da diagrammi e, fatta eccezione per alcuni domini molto limitati, non è stato popolare.

Vedi anche questa domanda .

    
risposta data 29.10.2013 - 08:52
fonte
7

Penso che gli ultimi anni abbiano mostrato una preferenza per l'uso di diagrammi di classe per documentare il codice esistente piuttosto che generare codice.

I diagrammi forniscono al lettore del codice una rapida panoramica della struttura generale dei sistemi in termini di classi e relazioni. Ovviamente, l'uso positivo dei diagrammi dipende dal fatto che i diagrammi vengano mantenuti sincronizzati con il codice; se non lo sono, i diagrammi sono fuorvianti. Questo è il motivo per cui vedi gli strumenti per generare diagrammi dal codice.

Generare codice da diagrammi sembra così anni '90. Era popolare nei giorni di Rational Rose, ma non vedo che tali strumenti vengano usati così tanto. Per quanto mi riguarda, posso programmare molto più velocemente digitando (e sì, usando il code-assist) di quanto sia possibile facendo un diagramma. Anche se hai creato uno strumento che rendesse facili i diagrammi delle classi di disegno, ti aspetteresti che la maggior parte dei programmatori lo utilizzi? Un diagramma di classe ti può portare solo lontano. Devi ancora scrivere il codice per implementare i corpi del metodo. E che tipo di software controlla la coerenza dei diagrammi? Che ne dici di importare classi da altri pacchetti? Chi può ricordare tutti i simboli per pubblico, privato, protetto, pacchetto-privato? E come indichiamo membri statici con sottotitoli in modo conveniente? Se una variabile è inizializzata su un'espressione complicata, come inserirla? Anche se è inserito, c'è un compilatore nello strumento di diagrammi per verificare cosa abbiamo?

E poi, una volta generato il codice dal diagramma, quali sono le probabilità che sia completo? Dobbiamo ancora modificarne di più a mano? Se è così, cosa succede se troviamo un errore nel diagramma? Perdiamo le nostre modifiche a mano?

L'intera idea di generare codice da immagini o diagrammi sembra un tentativo errato di rendere l'ingegneria del software come meccanica, elettrica o ingegneria chimica. O anche l'architettura. In questi campi, i tuoi "progetti" sono disegni su carta e il tuo prodotto è fabbricato utilizzando i disegni. Il software NON è così. Nel software, il codice sorgente è il progetto / design , mentre il prodotto è il file binario creato dal compilatore.

Naturalmente, non c'è nulla di sbagliato nel fare diagrammi di classe come schizzi grezzi a livello concettuale, ma se ci fosse qualche valore nel generare codice da loro, penserei che lo faremo tutti ora. (So che l'ultima affermazione non è stata pensata come una prova deduttiva, ma piuttosto qualcosa che fornisce la prova per il reclamo, no?)

    
risposta data 29.10.2013 - 09:00
fonte
1

In alcuni mercati di nicchia, dove la cascata è il re, sono necessari diagrammi di classe come parte della documentazione di progettazione del software.

In tal caso, generare codice da diagrammi ha senso.

    
risposta data 29.10.2013 - 09:50
fonte
-2

Dovremmo sapere che cosa viene codificato e dove viene scritto. Quindi fare uno schizzo prima della codifica può essere una buona idea specialmente per i principianti. Ti permetterà di essere coerente con i tuoi pensieri e di ridurre la percentuale di errori. Ma se sei esperto allora non c'è bisogno di un diagramma.

    
risposta data 29.10.2013 - 10:31
fonte

Leggi altre domande sui tag