2009-06-06 2 views
9

Per il mio rapporto di progetto, ho bisogno di mostrare il diagramma di classe del software che ho costruito che conta circa 20 classi! Il problema è che quando eseguo il rendering del diagramma di classe nel file jpeg (usando StarUML o ArgoUMl o qualsiasi altra cosa), non possiamo vedere correttamente i dettagli (immagine molto grande a causa dell'elevato numero di classi). Bene, come gestire correttamente questa situazione? Dal momento che il rapporto verrà stampato su pagine A4?UML - Come gestire diagrammi di grandi classi?

Grazie!

risposta

18

Con 20 classi che ci si aspetterebbe almeno 3 sottosistemi, (moduli, livelli), possibilmente più

Marchio diagramma dei package che mostra la relazione tra questi, uno schema classe per ogni sottosistema. Aggiungi diagrammi di classe per cose speciali che vuoi mostrare. Stampa ciascuno su A4.

Se non è possibile dividere facilmente il diagramma in moduli, considererei un odore di progettazione.

È divertente stampare grandi diagrammi su enormi fogli di carta (come 500 tavoli su A0 ;-) ma in realtà non è molto utile.

1

Generalmente un buon modo per gestire questo è creare diversi diagrammi per diversi moduli o aree di funzionalità per il software. In alternativa è possibile stampare la singola immagine su più pagine e mostrare come assemblarle per formare l'intera immagine.

1

Utilizzare BOUML. L'ArgoUML e lo StarUML sono classici che tutti menzionano quando si tratta di domande "c'è qualche software UML gratuito?". È buffo che l'essere un software storico non renda il software sconosciuto e inutilizzato. Nel caso di Argo e Star il coefficiente storico li rende noti e utilizzati.

BOUML può esportare in SVG. Questo risolverà i vostri problemi.ho descritto lo strumento here

Grazie a SVG sarete in grado di passare rapidamente tra vista a volo d'uccello e vista di dettaglio. Lo faccio con Firefox. È rapidamente veloce.

PS. Ho appena notato che vuoi stampare il rapporto. L'SVG è quindi probabilmente non è ciò che si vuole: \

+0

-1 - Questo problema interessa tutti gli strumenti UML. Non vedo come l'esportazione in un particolare formato grafico la indirizzi. – duffymo

+0

Non capisco come sia importante quando lo si stampa su carta A4. Cosa c'entra FF? – duffymo

+0

@duffymo: SVG è un formato vettoriale. Risolve il problema, perché può essere rapidamente ridimensionato (ad esempio in Firefox). Spero che questo spieghi i tuoi dubbi in modo da poter ritirare il tuo voto negativo? PS. Sembra che tu abbia ragione, perché l'autore vuole stampare il rapporto. –

2

ci sono un paio di cose che si possono fare:

  1. Bigger carta
  2. Non visualizzare le firme dei metodi
  3. Non visualizzare i metodi privati
  4. partizionare il vostro problema in più pacchetti
  5. Meno classi per diagramma

Questo è uno dei problemi con il tentativo di trattare i disegni ingegneristici di UML: una volta scaricato da una lavagna, è un linguaggio scadente per la comunicazione. Non legge molto bene.

1

Penso che sia il problema inerente che stai cercando di mostrare così tante cose in un diagramma. La tua domanda è come "come posso mettere 100 parole in una frase senza che il lettore si stia stancando di farlo?"

È possibile refactoring probabilmente con façade pattern. Fondamentalmente è solo scomporre materiale in moduli. Ad es.Timesheet, PayCheck, BonusRecord possono essere inseriti in ManagementSystem. Prodotto, l'ordine può essere raggruppato in OperationSystem, ecc.

4

La produzione di uno schema di classe contenente 20 classi è totalmente inutile: cosa mostra effettivamente? Quando utilizzo i diagrammi delle classi non ho mai creato un diagramma che abbia più di circa 5-8 classi su di esso.

La domanda da porsi è "quali informazioni utili sto cercando di mostrare con questo diagramma?". Non produrre un diagramma di classe per il gusto di farlo!

L'interruzione per dimostrare un particolare modello di progettazione, sottosistema o componente è ciò che trovo utile per i diagrammi delle classi.

2

un altro modo è quello di non mostrare tutti i membri ma solo quelli principali, questo riduce la dimensione delle classi quindi la dimensione del diagramma. Naturalmente questo supponiamo che tu usi uno strumento che permetta di scegliere quali operazioni/attributi/relazioni debbano essere visibili, ma questa impostazione di disegno è classica

può essere che lo strumento abbia anche impostazioni di disegno per nascondere parte dell'operazione per ridurre la larghezza , ad esempio per mostrare o meno i parametri, o la loro direzione, il loro tipo ecc

BOUML (http://bouml.free.fr) ha tutto questo le opzioni di disegno, e, come si è detto ha PNG e le esportazioni SVG

migliori saluti e modellazione felice

Bruno

0

Dividi le tue classi in più diagrammi! Quando si crea un modello UML, è possibile avere elementi del modello come le classi visualizzate (no) in diversi diagrammi. Un diagramma è solo una vista del modello UML in modo da poter evidenziare i moduli nei diagrammi specifici.