Quali classi devo inserire in un diagramma di classe? Solo le classi utilizzate in Business Layer e le associazioni tra di loro? O anche altre classi nel livello di accesso ai dati, livello di servizio, ecc.?
Esattamente quelle classi che sono necessarie per capire l'aspetto del sistema che descrive quel particolare diagramma di classe.
Potrebbe essere l'intero modello di dominio o tutte le classi che costituiscono l'API esterna di un determinato livello o sottosistema o qualsiasi altra cosa tu ritenga importante.
Ma nota che i diagrammi delle classi non sono l'unico tipo di diagramma, né il più utile.
Dovresti includere tutte le classi nel tuo programma, poiché un diagramma di classe suppone di descrivere l'intera struttura del tuo programma /applicazione.
Tuttavia, in molte applicazioni questo processo potrebbe diventare piuttosto complesso, quindi prova ad isolare i componenti principali (Livello di accesso ai dati, Livello di servizio, Livello aziendale, ecc.) e tracciarli graficamente in modo indipendente, con una documentazione adeguata su come interagiscono con l'un l'altro.
Perché il diagramma di classe sia utile, devi dividerlo per livelli e per componenti all'interno di questi livelli, se necessario. Se è ancora troppo complesso, significa che potrebbe essere necessario rivedere le relazioni tra le classi. La mappatura di tutti questi elementi può aiutarti a capire quali sono necessari, quali possono essere combinati o quali eliminati e migliorarli al punto da avere un diagramma di classe più semplice, quindi una struttura di programma più semplice.
Prima di tutto, non sei limitato a un diagramma di classe. Puoi avere tanti diagrammi quanti ne vuoi! lo scopo dei diagrammi delle classi è quello di aiutare te (o qualcun altro) a capire meglio il sistema, quindi è principalmente un problema di gusto. Alcune persone hanno bisogno di vedere tutti i dettagli per capire la struttura del sistema e quindi hanno bisogno di un diagramma di grande classe. Ma altre persone preferiscono avere la grande immagine divisa in parti più piccole dove ognuna mostra solo una parte del sistema, e possono costruire la propria "grande immagine" nella testa.
BTW, puoi anche creare un diagramma dei componenti che collega i piccoli dettagli dei diagrammi delle classi in un diagramma di più alto livello.
Un diagramma di classe rappresenta un singolo componente di un sistema o il sistema nel suo insieme. Al livello più alto hai un diagramma di contesto del sistema che mostra i singoli componenti di un sistema.
I diagrammi di classe potrebbero rappresentare tutte le classi in un piccolo progetto, tuttavia sarebbe meglio posizionarsi in modo da avere più diagrammi che rappresentano ciascun componente nel progetto.
Cerco di includere ogni classe, ma a volte durante l'implementazione potrei scoprire che una classe è piuttosto grande, quindi l'ho divisa in classi di helper di piccole dimensioni. In genere non mi preoccupo di inserirli nello schema di classe perché offrirebbe poco valore. Non sono artefatti di design.
Ma inizia includendo tutto nel tuo diagramma.
Leggi altre domande sui tag class-design uml class-diagram