Introduzione
Il passaggio da livello di analisi a quello di progettazione dell'architettura implica lo stabilire una progettazione
dei componenti hardware software. La specifica del livello progettazione consiste nei componenti da distribuire:
hardware, software e risorse umane.
I componenti hardware vengono determinati analizzando le località, le relative caratteristiche derivate e le operazioni
dei sottosistemi ospitati. Con queste informazioni possono essere selezionate le realizzazioni di livello Descrittore
delle località. I diagrammi del nodo descrittore specificano i componenti, i server, le workstation, le risorse umane,
ecc. ecc. senza scelte specifiche di tecnologie che implementano quei componenti. La figura è un esempio di diagramma
di nodo Descrittore che realizza il diagramma Località mostrato in Concetto: Località.
L'adempimento della località viene realizzato sotto forma di quattro componenti: un gateway warehouse, un sistema di
posta/affrancatura e due risorse lavorative.
I nodi Descrittore ereditano le caratteristiche dalle rispettive località mediante un'assegnazione o un processo di
budget.
Hardware
I componenti hardware di implementazione, l'effettivo insieme hardware distribuito, vengono determinati effettuando
delle attività economiche costo/prestazione/capacità dalla vista Descrittore. Infatti un sistema potrebbe disporre di
più di una configurazione hardware, ciascuna con punti prezzo/prestazione differenti.
Software
I componenti vengono determinati specificando una serie di classi e compilando ed assemblando in file eseguibili il
codice associato a quelle classi. Una progettazione di componente software completa deve riflettere una varietà di
considerazioni:
-
Località—dove devono andare in esecuzione i componenti
-
Istruzioni host—serie di istruzioni del processore e limitazioni di memoria per il codice in esecuzione
-
Simultaneità—la suddivisione dell'elaborazione su host o spazi di memoria diversi per ottenere affidabilità e
concetti correlate
Le informazioni necessarie a specificare i componenti includono la valutazione delle operazioni dei sottosistemi
ospitati relativa alle località ed ai componenti hardware realizzati, la valutazione delle operazioni eseguite per i
processi, oltre alle collaborazioni, realizzando le operazioni dei sottosistemi, che consentono alla serie di classi di
essere composte in una struttura di componenti.
Come prima approssimazione, supponiamo che tutte le classi risiedano in un unico componente, fornendo una
corrispondenza uno-a-uno del componente con il sistema—questo è il suggerimento di base fornito in Guida del prodotto di lavoro: Sottosistema di progettazione. Quindi, cercare delle
motivazioni per suddividere ulteriormente il componente. Se la serie di classi contiene più di una classe attiva, che
rappresenta un processo, considerare la partizione di una classe attiva (processo) per componente, raccogliendo in un
cluster le classi con le relazioni più forti. Alcune classi possono quindi essere utilizzate da più componenti. Se una
di queste classi rappresenta uno stato condiviso in un insieme comune di istanze che devono essere accedute da diversi
componenti, allora è il caso di suddividerle in un altro componente a parte. Se le classi condivise sono senza stato,
si può scegliere di separarle in un componente di servizi (un componente funzionale senza stato), se sono
funzionalmente coesive. Anche in un sistema passivo (senza classi attive), è possibile scegliere di creare ulteriori
partizioni, ad esempio, per disporre di componenti riutilizzabili ancora più finemente definiti. Terminare il processo
ripartendo/suddividendo ulteriormente i componenti per giustificare specifiche scelte tecnologiche (ad esempio la
piattaforma J2EE™ o Microsoft® .NET), vincoli di memoria (ad esempio i compromessi.exe e .dll), limitazione di invio di
supporti, e così via.
Queste operazioni hanno come risultato una serie di specifici componenti hardware e software che formano il sistema.
|