Domanda

Ho una classe super, che altri 40 clases ereditano, a questo punto vorrei semplificare il diagramma, per l'esattezza tutte le relazioni di ereditarietà (40 rapporti indicano una singola classe) tutti questi "frecce" basta fare il diagramma di un disastro completo, è posible per semplificare questo?

È stato utile?

Soluzione

Non v'è alcun modo diretto per semplificare tale caso in UML Spec, ma in realtà 40 classi di ereditare da una classe? Penso che potrebbe essere necessario ri-considerare di nuovo il vostro disegno.

In generale, è possibile omettere attributi e metodi delle classi, in questo modo è meglio, almeno.

Altri suggerimenti

Si sta utilizzando l'ereditarietà per riutilizzo del codice? Non ho mai incontrato uno scenario in cui ci sono 40 sottoclassi. In ogni modo, un'idea è quella di raggruppare le classi logicamente correlati in 1 unico diagramma pacchetto e quindi avere rapporti pacchetto.

vorrei offrire alcuni suggerimenti se

    diagrammi
  1. UML sono 90. ;-). Nel mondo attuale agile, vedo poco l'utilizzo di questi diagrammi
  2. Se vuoi in strumenti che possono decodificare il codice e creare diagrammi di classe e di sequenza quando necessario. Questo vi aiuta a visualizzare solo le parti rilevanti di un'applicazione ON-DEMAND
  3. sub-tipizzazione contro sub-classing

Questa è una buona domanda, perché ho avuto un problema simile in uno dei miei progetti. Quello che ho fatto è quello di ridurre le dimensioni del ciascuna classe in modo solo per avere il nome visualizzato. Ho quindi scelto una circolare + layout gerarchici e si è trasferito con il mio mouse tutti questi collegamenti.

Il risultato è stato brillante. Lo strumento che ho usato era EclipseUML Omondo.

vorrei suggerire quanto segue:

**

  • SCENARIO 1

**

Se non si pensa di utilizzare il modello per la generazione di codice :

  • Mettere tutti i sottoclassi in un pacchetto. Dare a questo pacchetto di un nome per indicare che tutto è conteneva elementi / classi eredita dalla classe specifica eccellente. Per esempio, se la classe eccellente si chiama "SuperFoo", che chiamerei il pacchetto "SuperFoo_SubTypes"
  • Inserire una nota nel pacchetto per indicare che tutte le classi nelle eredita pacchetto del super classe.

**

  • SCENARIO 2

**

effettivamente intenzione di generare il codice dal tuo modello:

1 Avrei forse suggerire che si disegna tutte le associazioni di eredità come al solito, e poi nascondere la super classe utilizzando la funzionalità di nascondere il vostro strumento di modellazione.

2 Utilizzare la notazione alternativa a descrivere eredità / generalizzazione, per ciascuna delle sottoclassi, scrivendo il nome della superclasse in corsivo e negli angoli destri degli elementi sottoclassi. Questo metodo è brevemente spiegato in questo articolo: http://www.sparxsystems.com/resources/uml2_tutorial/uml2_classdiagram.html Ovviamente questo dipende dal fatto che il vostro strumento di modellazione supporta questa notazione.

Spero che questo aiuta!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top