Introduzione ai meccanismi di analisi
Un meccanismo di analisi rappresenta un pattern (modello) che costituisce una soluzione comune ad un problema comune. I
meccanismi di analisi possono mostrare dei pattern di struttura, dei pattern di comportamenti o entrambi. Possono
essere utilizzati durante l'analisi per ridurne la complessità e per migliorare la coerenza fornendo ai progettisti una
rappresentazione sintetizzata di una funzionalità complessa. I meccanismi consentono all'impegno lavorativo
dell'analisi di focalizzare l'attenzione sulla conversione dei requisiti funzionali in concetti software senza restare
bloccati nella specifica di un comportamento relativamente complesso, necessaria a supportare la funzionalità ma non
vitale per essa. I meccanismi di analisi spesso risultano dalla creazione dell'istanza di uno o più pattern strutturali o di analisi.
I meccanismi di analisi vengono utilizzati principalmente come 'segnaposto' di tecnologie complesse nei livelli mediani
ed inferiori dell'architettura. Utilizzando i meccanismi come 'segnaposto' nell'architettura, l'impegno lavorativo
necessario per essa più difficilmente verrà distratto dai dettagli di comportamento del meccanismo. Ad esempio, la
necessità che la durata degli oggetti si estenda ai casi d'uso, alla durata del processo o alla chiusura ed avvio del
sistema, definisce la necessità di persistenza dell'oggetto. La persistenza è un meccanismo particolarmente complesso e
durante l'analisi non si desidera essere distratti dai dettagli relativi a come ottenere la persistenza. Questo dà
origine al meccanismo di analisi di 'persistenza', che consente di parlare di oggetti permanenti e di catturare i
requisiti del meccanismo di persistenza senza doversi preoccupare di cosa faccia esattamente il meccanismo di
persistenza o come funzioni.
I meccanismi di analisi di solito, ma non necessariamente, non sono correlati al dominio dei problemi, sono invece dei
concetti di "scienza informatica"; come risultato in genere occupano i livelli mediani ed inferiori dell'architettura.
Forniscono specifici comportamenti ad una classe o a un sottosistema correlati al dominio o corrispondono
all'implementazione della cooperazione fra le classi e/o i sottosistemi. Possono essere implementati come framework. Gli esempi includono i meccanismi per gestire la persistenza, le
comunicazioni fra processi, la gestione degli errori o dei malfunzionamenti, le notifiche e la messaggistica,
ecc.
Tuttavia, poiché nei vari domini vengono istituiti più pattern di analisi, la creazione di una loro istanza parziale o completa nei
meccanismi di analisi porta i meccanismi a comparire nei livelli superiori dell'architettura.
-
Persistenza
Per tutte le classi le cui istanze potrebbero divenire permanenti è necessario identificare:
-
Granularità: Intervallo delle dimensioni degli oggetti da rendere permanenti
-
Volume: Numero degli oggetti da rendere permanenti
-
Durata: Per quanto tempo l'oggetto in genere deve essere mantenuto?
-
meccanismo di richiamo: Come viene identificato in modo univoco e richiamato un determinato oggetto?
-
Frequenza di aggiornamento: Gli oggetti sono più o meno costanti? Vengono aggiornati
permanentemente?
-
Affidabilità: gli oggetti devono sopravvivere ad un malfunzionamento del processo, del processore o
dell'intero sistema?
-
-
Comunicazioni fra processi
Per tutti gli elementi del modello che devono comunicare con i componenti o i servizi in esecuzione su altri
processi o thread, è necessario identificare:
-
Latenza: A che velocità i processi devono comunicare fra loro?
-
Sincronismo: Comunicazione asincrona
-
Dimensione del messaggio: uno spettro potrebbe essere più appropriato di un singolo numero.
-
Protocollo, flusso di controllo, buffer e così via.
Altri tipici meccanismi:
-
Instradamento di messaggi
-
Controllo del processo e sincronizzazione
-
Gestione delle transazioni
-
Scambio di informazioni
-
Sicurezza
-
Ridondanza
-
Segnalazione degli errori
-
Conversione dei formati
Il processo per la descrizione dei meccanismi di analisi è il seguente:
-
Raccogliere tutti i meccanismi di analisi in un elenco
Lo stesso meccanismo di analisi potrebbe essere presente con diversi nomi differenti nelle varie differenti
realizzazioni dei casi d'uso o con progettisti differenti. Ad esempio, memoria, persistenza,
database e repository potrebbero fare tutti riferimento ad un meccanismo di persistenza. Oppure
comunicazioni fra processi, trasmissione di messaggi o richiamo remoto potrebbero fare tutti
riferimento al meccanismo di comunicazione fra processi.
-
-
Tracciare una mappa delle classi client per i meccanismi di analisi
-
Le classi ed i sottosistemi identificati devono essere messi in corrispondenza con i meccanismi di analisi
identificati: le frecce indicano che la classe utilizza il meccanismo. Non è insolito che una classe client
richieda i servizi di più meccanismi.
-
Identificare le caratteristiche dei meccanismi di analisi
Per effettuare una scelta in un ambito di potenziali progettazioni, identificare le caratteristiche chiave
utilizzate per qualificare ciascun meccanismo di analisi. Queste caratteristiche compongono in parte la
funzionalità e in parte le dimensioni e le prestazioni.
-
-
Modellazione con l'utilizzo delle collaborazioni
Una volta identificati e denominati, i meccanismi di analisi devono, infine, essere modellati mediante la
collaborazione di una 'società di classi' (consultare [BOO98]), alcune delle quali non producono direttamente la funzionalità
dell'applicazione ma esistono solo per supportarla. Molto spesso queste 'classi di supporto' si trovano nei
livelli mediani o inferiori di un'architettura a livelli, fornendo quindi un servizio di supporto comune a
tutte le classi dei livelli dell'applicazione.
Se il meccanismo identificato è abbastanza comune, forse esistono dei pattern (modelli) dai quali è possibile creare un'istanza del
meccanismo, collegando le classi esistenti ed implementandone di nuove a seconda delle necessità del pattern.
Un meccanismo di analisi prodotto in questo modo sarà astratto e richiede un ulteriore perfezionamento mediante
la progettazione e l'implementazione.
I meccanismi di analisi sono documentati nel Prodotto di lavoro: Documento dell'architettura software. Col
maturarsi dell'architettura software, il Prodotto di lavoro: Documento dell'architettura software include una
relazione (o mappatura) dei meccanismi di analisi con i meccanismi di progettazione e di implementazione, ed il
fondamento logico associato alle scelte.
|