La gestione delle dipendenze 'import' fra i pacchetti è un aspetto importante della strutturazione di un modello di
oggetto. Un pacchetto dipende da un altro se una delle sue classi ha delle relazioni che portano a classi di un altro
pacchetto. Per esprimere questo tipo di dipendenze si utilizza la dipendenza da importazione da un pacchetto al
pacchetto da cui dipende.
Le dipendenze fra i pacchetti sono espresse da dipendenze di importazione.
Le dipendenze da importazione di evolvono nel seguente modo:
-
Prima di iniziare ad utilizzare il modello di oggetto, creare delle strutture di dipendenze da utilizzare come
linee guida durante il lavoro.
-
Quando il modello viene completato, utilizzarlo per visualizzare le dipendenze che vi sono presenti. Ciò comporta
l'aggiornamento delle dipendenze da importazione nel modello oggetto.
-
Se prima il modello era stato suddiviso in pacchetti, utilizzare le dipendenze di importazione per visualizzare
dove sono consentite le dipendenze.
-
Il modo in cui i pacchetti dipendono l'uno dall'altro influisce sulla tolleranza di un sistema alla modifica. Un
modello oggetto sarà più semplice da modificare se:
-
Dall'esterno di ogni pacchetto si fa riferimento ad un numero minimo delle classi contenute. Se si fa riferimento a
molte classi il pacchetto potrebbe avere troppe responsabilità diverse e dovrebbe essere suddiviso in due.
-
Si rende ogni pacchetto dipendente da pochi altri pacchetti.
-
Si testa separatamente ogni pacchetto. Questo significa che si deve essere in grado di testare un pacchetto
simulando il pacchetto da cui dipende. Non richiedere che altri pacchetti siano implementati completamente o quasi
completamente. Se si riesce a testare un pacchetto separatamente, lo sviluppo e la gestione di sistema di ogni
pacchetto sarà più semplice.
-
Collocare le parti generali del modello oggetto in pacchetti separati da cui dipendono altri pacchetti. Se è
presente un pacchetto del genere, fare molta attenzione a rilasciarne la gestione, poiché diverse parti del sistema
potrebbero essere influenzate dalle modifiche al pacchetto.
Esempio
Si supponga di individuare qualcosa in comune per le classi Pannello cliente e Pannello operatore nella
macchina per il riciclaggio. Assegnare questi servizi generali ad una nuova classe, Pannello, che si colloca in
nuovo pacchetto Pannelli. Le altre due classi potrebbero fare riferimento a questa classe per utilizzare i
servizi generali. Poiché le classi appartengono a due pacchetti separati, i due pacchetti dipenderanno dal nuovo
pacchetto. Questa eliminazione di ridondanza comporta che le modifiche alla funzionalità comune devono essere apportate
in un unico posto.
|