Tutti i vantaggi / svantaggi sarebbero apprezzati!
Secondo I principi, i modelli e le pratiche di Agile in c # diagrammi di classe hanno lo svantaggio di concentrarsi su un < strong> static vista del sistema. Sia i designer che i neofiti del progetto probabilmente impareranno di più dai diagrammi che si concentrano sul comportamento , ad esempio diagrammi di stato o diagrammi di sequenza.
Martin scrive anche che i diagrammi dovrebbero essere annotati rapidamente per aiutare il processo di pensiero o discussione e poi essere rottamati. Ha un punto di interscambio, i diagrammi importanti appariranno continuamente nelle discussioni. Solo quando diventa noioso ridisegnare ripetutamente un diagramma è importante e ben studiato per essere aggiunto alla documentazione e essere aggiornato.
Modifica: il valore della documentazione è indicato anche dagli strumenti disponibili. Generare diagrammi di classe della struttura di un sistema è ampiamente supportato. Illustrare cosa fa il sistema e come interagisce con gli utenti o altri sistemi non lo è.
Vantaggi: bel modo di utilizzare i casi d'uso per testare il tuo design. Bello da usare quando si parla e si sviluppa in una squadra. Una volta terminato il disegno, la codifica può essere eliminata in modo che test e sviluppo possano essere eseguiti da più di una persona. Facile da scrivere su una lavagna bianca.
Svantaggio: di solito non sono documenti aggiornati, quindi non funzionano bene come documentazione a lungo termine
Svantaggi: la creazione di diagrammi su un computer è lenta. Questo non è un errore degli schemi, ma un difetto delle applicazioni di diagrammi. Sono felice di disegnare diagrammi, ma li disegno su una lavagna mentre discuto le decisioni di progettazione. Quindi scriviamo il codice e la necessità di diagrammi è finita. Se qualcuno vuole davvero vedere un diagramma, può estrarne uno dal codice.
Mi piacerebbe trovare un buon strumento che possa alimentare la radice della mia gerarchia di interfacce java e stampare un bel diagramma. Avere una rappresentazione visiva del modello a oggetti è incredibilmente utile. Ho provato questo con una gerarchia complessa (~ 100 interfacce) diversi anni fa con diversi strumenti e tutti hanno fallito miseramente. Se ci sono cose che funzionano bene mi piacerebbe sapere cosa sono.