Quali diagrammi UML sono ancora ampiamente utilizzati? [chiuso]

15

Insegno ingegneria del software a livello universitario e ho una domanda per i professionisti di UML.

La maggior parte dei libri di testo sull'ingegneria del software si impegnano seriamente nella copertura dei diagrammi UML. D'altra parte, ho sentito da molti laureati che UML non sembra più essere usato nelle trincee.

Quali diagrammi UML sono ancora ampiamente utilizzati nella pratica professionale e perché? Ci sono schemi che non vengono più utilizzati e perché?

N.B: Al fine di evitare dibattiti e discussioni basati sull'opinione, si prega di illustrare la risposta con elementi concreti e oggettivi (se possibile, verificabili) o osservazioni neutrali sull'esperienza personale

    
posta DYZ 02.01.2017 - 01:15
fonte

4 risposte

12

Dai molti diagrammi proposti da UML, i diagrammi delle classi e i diagrammi di sequenza sono ancora ampiamente utilizzati, certamente seguiti dai diagrammi di stato:

  • possono essere facilmente utilizzati su lavagne bianche per elaborare e discutere la progettazione prima di saltare nel codice
  • consentono di trasmettere molto rapidamente una panoramica che il codice da solo non fornisce così facilmente, e non esiste un sostituto valido ad esso.

Penso che il caso d'uso nella vita reale sia usato in maniera più occasionale. Nei grandi progetti, con diverse centinaia di casi d'uso, i diagrammi sono dolorosi da disegnare e forniscono pochi vantaggi rispetto a una forma tabulare. BPMN per la progettazione del processo, mappatura User story , o decomposizione tabellare degli eventi in un Cockburn stile sono molto più usati. Perché ? Perché sono più facilmente condivisi con gli utenti aziendali per elaborare in modo efficiente i requisiti.

Sono sicuro che sono luoghi in cui UML è ancora pesantemente e sistematicamente utilizzato. Non immagino che software aerospaziale o sistemi di controllo delle centrali nucleari sono prodotti senza il set completo di documentazione UML. Ma credo che sia più l'eccezione che la regola.

Mi sento confermato in questa affermazione quando guardo nelle librerie. Un paio di anni fa, potresti trovare molti libri su UML 2.0. Al giorno d'oggi, se stai cercando UML 2.5, la scelta è piuttosto limitata. Peggio: molti autori non si sforzano nemmeno di rivedere i loro vecchi libri per tenerli aggiornati (esempio: Fowler's nice " Introduzione UML distillata "che risale al 2003 con UML 2.0 e lo stesso per Ambler " Elementi di stile UML 2.0 "!).

Non penso che questa tendenza decrescente cambierà, osservando la generalizzazione di agile e la sua promozione di "Software di lavoro su documentazione completa ".

Alla fine, direi molto provocatoriamente che i metodi di modellazione sembrano seguire uno schema darwinistico: sopravviverà solo la tecnica di diagrammi più adatta, quelli che forniscono un chiaro vantaggio sugli approcci informali (ad esempio l'illustrazione del tovagliolo) e dettagliati codice (es. perché disegnare un diagramma di attività A1, quando il codice corrispondente potrebbe adattarsi a un foglio A4?) ;-)

    
risposta data 02.01.2017 - 03:04
fonte
7

On the other hand, I heard from many graduates that UML does not seem to be used in the trenches anymore.

Sono tutti usati nella pratica. Ma non tutti li usano. Alcune persone evitano completamente il design e saltano direttamente nella codifica. Non puoi fare affidamento su prove aneddotiche per sapere cosa fa "tutti".

Strumenti come UML funzionano meglio se usi quando aggiungono valore ; per es.

  • per progetti più grandi
  • per parti complicate di un progetto
  • quando la progettazione del progetto richiede l'input di più persone

La loro creazione solo per il gusto di farlo (o perché il processo dice che devi) non è produttiva. La migliore pratica è quella di essere selettivi su ciò che si diagramma e quali tipi si utilizza. Usa UML quando e dove aiuta ... e questo include l'essere selettivo dei tipi di diagrammi UML che usi.

Inoltre ... UML è stato principalmente progettato come strumento di progettazione. Non è così efficace (al giorno d'oggi) come strumento di documentazione. Gli IDE tipici aiutano a visualizzare molti aspetti se una struttura di base del codice al volo. Questo è spesso meglio che basarsi su diagrammi UML che potrebbero essere diventati obsoleti / inaccurati.

    
risposta data 02.01.2017 - 01:45
fonte
3

UML è ancora usato nelle trincee. Ma, come sempre, le persone usano un sottoinsieme di esso. Quale sottoinsieme è soggetto ai problemi in corso.

UML è disponibile in molte versioni. Ma, come sempre, la gente usa i suoi simboli in modo informale e incostante.

UML è il modo in cui comprendiamo gran parte dei libri di modelli là fuori. È anche uno dei modi in cui comunichiamo sulla lavagna. Non è andato. Ma non verrà mai usato formalmente come codice.

Piuttosto che produrre studenti che possono correggere qualsiasi diagramma UML per conformarsi a UML versione 2.5 , o qualunque cosa sia l'ultimo, produce studenti in grado di capire che cosa il diagramma sta cercando di comunicare anche se non è pienamente coerente con una particolare versione UML perché è così che UML viene usato nelle trincee. Si presenta in dialetti locali bizzarri, mescolati con altri sistemi, ea volte si creano solo i nostri simboli.

Insegna loro che è giusto chiedere cosa significano le cose. Non insegnare loro a correggere gli altri che stanno infrangendo alcune regole immaginate. Stiamo solo cercando di comunicare qui.

L'uso migliore che ho visto uml è quello di lasciare che un nuovo programmatore ci mostri il loro piano per risolvere un problema. Ci ha mostrato rapidamente le parti del sistema che hanno trascurato o non si è reso conto dell'esistenza.

Ho anche lavorato in posti che richiedevano UML anche quando non era necessario. Usavamo sempre lo stesso modello quindi era solo una formalità. Siamo arrivati al punto che abbiamo appena fatto delle foto per inserire nuovi nomi in vecchi schemi. Non incoraggiare questo tipo di utilizzo.

Ma penso che tutti sappiamo che c'è una differenza tra la normale punta della freccia e la punta della freccia aperta. Giusto?

    
risposta data 02.01.2017 - 01:43
fonte
0

Sarò specifico in base alla mia esperienza: - Schema di distribuzione - Diagramma di sequenza - Schema di classe Questi tre sono i più utilizzati in qualsiasi progetto, forniscono un reale valore comunicativo con il team a diversi livelli.

    
risposta data 02.01.2017 - 04:41
fonte

Leggi altre domande sui tag