Quali sono le cose essenziali che bisogna sapere su UML?


18

Voglio che i miei scarabocchi sulla progettazione e sul comportamento di un programma diventino più snelli e abbiano un linguaggio comune con altri sviluppatori.

Ho guardato UML e in linea di principio sembra essere quello che sto cercando, ma sembra essere eccessivo. Anche le informazioni che ho trovato online sembrano molto gonfie e accademiche.

Come posso capire UML in modo abbastanza inglese, abbastanza da poterlo spiegare ai miei colleghi? Quali sono le risorse canoniche per comprendere UML a livello del suolo?


1
Il vecchio titolo mi è piaciuto di più, almeno all'inizio: "Qual è il 10% più utile di UML?" Altrimenti, buona modifica!
Joey Adams,

se hai già scritto la documentazione probabilmente è già in uml, semplicemente non hai familiarità con quello che hanno deciso di chiamare il tuo tipo di documentazione
Ryathal,

Risposte:


4

Mi sono piaciute le domande - le stesse che mi sono posto:

Come posso capire UML in modo abbastanza inglese, abbastanza da poterlo spiegare ai miei colleghi? Quali sono le risorse canoniche per comprendere UML a livello del suolo?

Ecco cosa ho trovato:

Per iniziare: la mia scelta sarebbe stata UML Distilled di Fowler . È davvero una distillazione delle basi, come è stato menzionato: definizioni, esempi, consigli su quando un certo tipo di diagramma dovrebbe o non dovrebbe essere usato. È anche un buon riferimento , se vuoi concentrarti su una certa parte di UML senza leggere il libro da copertina a copertina.

Per un'introduzione più dettagliata, ma alquanto semplice: UML 2 for Dummies ha fatto per me e i miei colleghi. Non solo introduce UML, la sua sintassi e usi a lungo, ma offre molti consigli su buone pratiche di programmazione e progettazione.

Ci sono differenze occasionali tra i due libri su quale sintassi appartiene a quale versione dello standard UML. Questi tuttavia sono minuti e sicuramente non essenziali per l'utilizzo dei diagrammi UML per comunicare idee progettuali. (Ad esempio: se UML 2 consente multiplicità discrete, ad esempio mostrando che una determinata proprietà può avere esattamente oggetti X, Y o Z, anziché solo zero, uno, molti o più di X, ad esempio; quando i nomi dei partecipanti devono essere sottolineati. ..)

Per un'introduzione totalmente non accademica e meno prolissa: questo blog contiene articoli su varie parti di UML: http://blog.diadraw.com/category/uml/

Non è un libro di testo, quindi è tutt'altro che esaustivo, ma usa anche storie ed esempi non da manuale, a cui è possibile fare riferimento. I pochi post disponibili sono focalizzati sull'introduzione visiva dei concetti UML, in modo da poter saltare del tutto la lettura del testo.


Quel link al blog è carino.
Hanno Fietz,

8

Mi è piaciuto molto UML Distilled di Martin Fowler . Breve e dolce e più che adeguato per le discussioni sulla lavagna. Prendi un paio di copie e passale nella squadra.


1
+1 per aver menzionato questo libro, me ne sono completamente dimenticato mentre scrivevo la mia risposta!
Alexander Galkin,

2
Puoi approfondire un po 'le tue esperienze con il libro?

Qual è stato il motivo del downvote?
Kevin Cline,

1
Una delle prime cose che ho fatto quando sono diventato un capo squadra è stato quello di acquistare copie di questo libro per tutti i membri della mia squadra. Ci ha dato a tutti un vocabolario comune per discutere dei nostri progetti. Alcuni dei ragazzi più giovani hanno anche riferito che li ha aiutati a capire meglio i diagrammi nei vari libri di design che leggono.
TMN,

2
@kevincline In genere mi collego ad Amazon perché convertirà il collegamento in un URL referrer per Stack Exchange. Se qualcuno fa clic e acquista da tale URL, Stack Exchange può fare soldi. Diventa anche banale, con il titolo, l'autore e le informazioni ISBN da Amazon, trovare il libro nel tuo venditore preferito di libri preferito.
Thomas Owens

5

I diagrammi da soli non sono sempre utili. Ad esempio, il diagramma del caso d'uso non è in grado di comunicare in dettaglio le regole di business. Il diagramma di classe può essere molto utile poiché potresti essere in grado di generare codice di classe e DLL da esso.

Trovo questi diagrammi i più utili:

  • Usa il diagramma dei casi
  • Diagrammi di classe
  • Diagramma di attività
  • Diagramma di sequenza

Ci sono così tante risorse utili, ma controlla queste:

Modifica-1 in risposta al commento di Mark.

Sebbene non utilizzi queste risorse quotidianamente, servono come riferimento rapido per la sintassi UML. Le risorse di cui sopra sono scelte in quanto forniscono una rappresentazione rapida e in qualche modo completa dei diagrammi UML. Mostra diagrammi comuni e aiuta il nuovo utente UML a vedere rapidamente la differenza tra di loro. La prima risorsa, il video, fornisce dettagli sul caso d'uso e su come si collega ad altri diagrammi. Le risorse di cui sopra non dovrebbero essere sufficienti per chiunque voglia imparare UML o OOD, mi rendo conto che l'apprendimento di tali argomenti non era inteso nella domanda originale.


+1 per i diagrammi di classe , sequenza e attività . Non sono affatto convinto dai Use Case Diagrams, a parte il fatto che sono eccellenti copertine per i report, poiché gli utenti sembrano amare le immagini.
Sjoerd,

@Sjoerd, grazie per il tuo commento. Come hai correttamente specificato, i casi d'uso sono amati dagli utenti. Inoltre, Usa diagrammi di casi ha molti valori. Consentono di identificare gli attori (primario e secondario) e di scoprire "Casi di cse di livello C". La sua relazione con il diagramma di attività e il diagramma di classe che crea una coesione nelle specifiche. Ricorda che non sostituiscono regole commerciali dettagliate e documentazione completa sui requisiti.
NoChance,

Puoi approfondire le tue esperienze con queste risorse? Che dire di loro, e non di altri, ti ha aiutato a capire UML?

@MarkTrapp, grazie per il tuo commento e per le modifiche.
NoChance,

2

Se sei soddisfatto del 10% , non dovresti provare ad impararlo dal libro UML. Piuttosto, è meglio leggere un buon libro sull'analisi orientata agli oggetti o sui modelli di progettazione : questi libri ti forniscono il 10% che stai cercando.

Se stai comunque cercando un tutorial per UML, consiglierei questa pagina web , e soprattutto questo saggio sui diagrammi UML (Non è un annuncio, personalmente non ho alcuna relazione con questo sito). Basta sfogliare i diagrammi e guardarli: sono per lo più autoesplicativi e puoi facilmente capire cosa stanno rappresentando fintanto che sei a conoscenza di OOP e in generale progettazione e architettura del programma.

Perché dovrei raccomandare esattamente questa pagina? (richiesto nel commento)

Ci sono diversi motivi per cui mi è piaciuto più degli altri:

  1. Ti presenta una tabella panoramica dei diagrammi UML nella prima pagina.
  2. Questa tabella, oltre a fornire la breve descrizione di ogni digramm UML2.0, ha anche una colonna molto utile "Priorità di apprendimento" che può aiutare un principiante UML a identificare i diagrammi UML più utilizzati.
  3. Anche se contiene anche diagrammi renderizzati a macchina, la maggior parte dei diagrammi sembra essere disegnata a mano (probabilmente sono disegnati a mano). Lo prendo come un segno che la modellazione può ancora essere fatta usando solo carta e penna, senza bisogno di approfondire il software di visualizzazione UML all'inizio.

Puoi approfondire le tue esperienze con questi consigli? Che dire di loro, e non di altri, ti ha aiutato a capire UML?

1

Il riferimento tascabile UML 2.0 di O'Reilly è un po 'più dettagliato di quello, ma probabilmente la scelta migliore in quanto è abbastanza piccolo da trovare rapidamente ciò di cui hai bisogno ma ha ancora spiegazioni quando ne hai bisogno. Ed è aggiornato, il che non è il caso dei "cheat sheet UML" o delle schede di riferimento che ho trovato sul web: quelli descrivono principalmente UML 1.x


Puoi approfondire le tue esperienze con questo libro? Che ne pensi, e non di altri libri, ti ha aiutato a capire UML?

@Mark Trapp: principalmente il fatto che è piccolo, quindi puoi raccogliere rapidamente tutto l'essenziale senza perderti nei dettagli e nei casi speciali.
Michael Borgwardt,

0

Ci sono tre parti in questo:

  1. Ottieni un riferimento UML formale

    Ogni volta che stai imparando una nuova "lingua", ottieni un riferimento che puoi estrarre e utilizzare in qualsiasi momento, che si tratti di un libro o di una risorsa online. UML Distilled è piccolo, ha grandi spiegazioni e molti diagrammi chiari. Anche se non usi tutte le funzionalità, puoi sempre tornare indietro e guardare il modo "giusto" per esprimere qualcosa.

  2. Usa UML per modellare le cose

    Ora che hai un riferimento, inizia a usarlo per modellare alcuni piccoli sistemi esistenti o sistemi che stai iniziando a utilizzare. Probabilmente vorrai restare con i diagrammi di classe, i diagrammi di sequenza e i diagrammi di stato per la maggior parte delle situazioni. Se c'è qualcosa di cui non sei sicuro, vai al tuo riferimento e cerca l'uso "corretto" - se ciò non aiuta, prova a cercare su Google o chiedi su Stack Overflow. Proprio come la programmazione, la pratica è la chiave.

  3. Usa un po 'di UML in progetti reali

    Quando inizi a utilizzare UML con il tuo team, ricorda che è solo uno strumento per comprendere il sistema che hai creato o costruirai. Dovresti comunque controllare il tuo riferimento durante la creazione di diagrammi, ma concentrarti sulla trasmissione delle informazioni, non seguendo rigorosamente le regole.

Ripensa alle tue lezioni di scrittura al liceo. Il tuo insegnante probabilmente ha considerato un peccato cardinale iniziare frasi con "e", "ma" o "o". Man mano che scrivevi di più e acquisivi un maggiore controllo sulla lingua inglese, hai imparato a piegare le regole per un effetto maggiore: hai fatto il passaggio dal seguire l'approccio corretto a quello che trasmetteva ciò che volevi dire il meglio. UML dovrebbe essere utilizzato nel settore esattamente allo stesso modo.


0

Direi che se conosci UML, tutti i diagrammi ti offrono viste diverse della tua applicazione. Sono disponibili molti libri.

Se non conosci UML, il modo più semplice è creare solo diagrammi di classe / sequenza che sono stati invertiti dal codice esistente. Devi solo invertire il codice esistente in UML e aggiungere le tue note all'interno dei diagrammi di classe / sequenza. I diagrammi di classe forniranno una visione statica dell'applicazione, il diagramma di sequenza descriverà i flussi di metodi e quindi il comportamento dell'applicazione. Lavoro UML fatto e nessun errore :)

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.