Durante questa attività, è importante creare almeno un diagramma di classe che mostra le relazioni r ea i
componenti funzionali e tecnici di ogni componente del servizio. Il modellameno UML standard è applicato a questo
punto. L'utilizzo dei modelli viene incoraggiato per strutturare il grafico dell'oggetto risultante in un modo che è
estendibile e aperto alle modifiche. Se un ampio grado di modifiche viene anticipato, si consiglia di condurre l'Analisi di variabilità a questo punto.
Come descritto nell'attività precedente, quando si progetta una modifica, o si anticipa un impatto significativo sul
progetto e la struttura del sistema IT come risultato delle modifiche del business futuro, allora è saggio impiegare le
tecniche di Analisi di variabilità. Queste tecniche riflettono l'associazione ed
esternalizzano le variazioi utilizzando modelli di progettazione. Le associazioni e le variazioni scoperte
precedentemente possono essere utilizzate come punto di inizio ed aumentate tramite l'utilizzo dei modelli di
progettazione comuni come la Strategia, lo Stato [i], l'oggetto della regola [ii], l'oggetto del tipo, ecc...
L'analisi eseguita durante la progettazione dettagliata identifica l'associazione e si incentra sulla creazione di
variazioni collegabili e conivolge sei principi che aiutano a separare gli aspetti che cambiano da quelli che cambiano
meno dei sistemi software ed isolano ed incapsulano le modifiche:
-
Separazione e cambiamento del modello dagli aspetti che non cambiano del dominio:Identificazione, Separazione,
Incapsulamento e Esternalizzazione delle variazioni in aumento.
-
Creazione delle gerarchie del tipo per ogni punto di variazione.
-
Assegnazione tipi di regole ad ogni tipo di variazione.
-
Implementazione dei tre livelli di astrazione utilizzo del metamodello di eredità aggregato.
-
Avvio dai livelli di riutilizzo più alti degli oggetti e creazione asset ad ogni livello di riutilizzo;
creazione piccoli framework attorno ai punti di variazione. In generale, ogni framework dovrebbe avere non più di
7+-2 classi.
-
Ogni elemento di riutilizzo ha i propri funzionamenti. Esternalizzazione del funzionamento come dati
configurabili che possono essere letti nell'applicazione per consentire un collegamento software.
[i] Erich
Gamma, Richard
Helm, Ralph
Johnson, John
Vlissides, Design Patterns, Addision-Wesley 1994.
[ii] Arsanjani, A., Rule Object: A Pattern Language for Flexible Modeling and Construction of Business Rules,
Washington University Technical Report number: wucs-00-29, Proceedings of the Pattern Languages of Program
Design, 2000.
|