Il metamodello UMA (Unified Method Architecture) è stato sviluppato come unificazione di linguaggi di
progettazione di processi e di metodi differenti, come l'estensione SPEM alla UML per la progettazione del processo
software, i linguaggi usati per RUP v2003, Unified Process, IBM Global Services Method, nonché per IBM Rational Summit
Ascendant. In quanto tale, fornisce concetti e capacità provenienti da tutti questi modelli di origine, unificandoli in
modo coerente ma consentendo comunque di esprimere a ciascuno di questi metodi le proprie caratteristiche.
Questo concetto fornisce una panoramica generale delle capacità UMA.
Separazione del Contenuto del metodo e del Processo
UMA fornisce una chiara separazione delle definizioni del Contenuto del metodo dalle sue applicazioni nei Processi.
Questo si realizza definendo separatamente
-
il Contenuto del metodo di base riutilizzabile, nel modulo delle descrizioni del contenuto generale come Ruoli,
Compiti, Prodotti di lavoro e Guida.
-
le applicazioni specifiche del tipo di progetto del Contenuto del metodo nel modulo delle descrizioni del
processo che fa riferimento al Contenuto del metodo
Il contenuto del metodo fornisce spiegazioni dettagliate su come conseguire obiettivi di sviluppo specifici,
indipendentemente dalla collocazione di questi passi all'interno di un ciclo di sviluppo. I processi utilizzano questi
elementi del Contenuto del metodo e li organizzano in sequenze che possono essere personalizzate in specifici tipi di
progetti. Ad esempio, un progetto di sviluppo software che sviluppa da zero un'applicazione, esegue attività di
sviluppo simile ad un progetto che estende un sistema software esistente. Tuttavia, i due progetti eseguiranno passi
analoghi in momenti differenti con un'enfasi differente e forse con variazioni individuali.
Riutilizzo del contenuto
UMA consente a ciascun Processo di fornire di rimandi il comune Contenuto del metodo da un comune pool del Contenuto
del metodo. A causa di questi riferimenti, le modifiche dei Contenuti dei metodi si rifletteranno automaticamente in
tutti i processi che li utilizzano. Tuttavia, UMA consente comunque la sovrascrittura del contenuto correlato al metodo
all'interno di un Processo nonché la definizione di relazioni individuali specifiche del processo per ogni Elemento del
processo (come l'aggiunta di un prodotto di lavoro aggiuntivo ad un Compito, la ridenominazione di un Ruolo o la
rimozione dei passi che non dovrebbero essere eseguiti da un Compito).
Famiglie di processi
Lo scopo di UMA non è solo quello di supportare la rappresentazione del processo specifico di sviluppo o la
manutenzione di svariati processi non correlati ma è anche quello di fornire ai tecnici del processo una serie di tool
per gestire costantemente ed efficacemente tutte le famiglie dei processi correlati. UMA realizza ciò definendo i
concetti di Modelli di capacità e Processi di produzione nonché tramite le relazioni di riutilizzo specifiche tra
questi tipi di processi. Questi concetti consentono al tecnico del processo di gestire famiglie di Processi di
produzione che sono specifici tipi di progetto e che sono variazioni dello stesso Contenuto del metodo base e dei
Modelli di capacità. Il risultato dà varianti differenti di processi specifici costruiti con il riutilizzo dinamico dei
Modelli e del Contenuto del metodo ma applicati con differenti livelli di scala e dettaglio. Ad esempio, le varianti
del processo per progetti di sviluppo su piccola in contrapposizione a larga scala.
Cicli di sviluppo multipli
Un'architettura di metodo generale deve supportare varietà differenti ed anche combinazioni di modelli di cicli di
sviluppo per le definizioni dei processi. Questi comprendono Waterfall, Iterativo, Incrementale, Evolutivo e così via.
Il metamodello UMA è progettato per accogliere molteplici approcci. Fornisce una ricca serie di concetti e di attributi
di personalizzazione per specificare semantiche temporali per Elemeti del processo come le fasi, le iterazioni, le
dipendenze, lavoro in corso o guidato dall'evento e così via.
Estensibilità flessibile e meccanismi di Plug-in
I Plug-in del metodo UMA forniscono un modo unico di personalizzazione dei Processi e del contenuto del metodo, senza
modificare direttamente il contenuto originale. Al contrario, descrivono solo le differenze (aggiunte cui si fa
riferimento come a contribuzioni e sostituzioni) relative all'originale. Il concetto di Plug-in consente agli
utenti di aggiornare facilmente le versioni di Contenuto del metodo senza perdere le proprie personalizzazioni.
'Viste' dei processi multipli
UMA definisce viste sui processi multiple e gestite costantemente. Queste viste consentono ai tecnici del processo di
approcciare l'authoring del processo basato sulle preferenza personali. Un tecnico del processo può scegliere di
definire i propri processi concentrando l'attenzione su uno dei seguenti:
-
Interruzione lavoro - questa è un vista centrata sul lavoro che definisce i compiti associati ad una particolare
attività di livello elevato
-
Utilizzo del Prodotto di lavoro - questa è una vista basata sui risultati che definisce lo stato di certe parti
distribuibili ed Artefatti nei diversi punti nel processo
-
Assegnazione team - questa è una vista basata sulla responsabilità che definisce i ruoli di cui si ha bisogno e le
responsabilità del loro prodotto di lavoro
UMA provvede alla coerenza tra tutte queste viste in quanto sono tutte basate su una struttura di oggetti integrati. Le
modifiche apportate in una vista si riflettono immediatamente nell'altra vista.
Modelli di processi riutilizzabili
I modelli di capacità di UMA sono blocchi riutilizzabili per la creazione di nuovi processi di sviluppo. La selezione e
l'applicazione dei modelli di capacità può essere effettuata in uno o due modi flessibili:
-
Un pattern può essere applicato in un'operazione di modifica e copia sofisticata, che consente al tecnico del
processo personalizzare individualmente il contenuto del pattern secondo le sue necessità durante l'applicazione
del pattern.
-
Un pattern può essere applicato tramite un vincolo dinamico. Questo nuovo e unico modo di riutilizzare la
conoscenza del processo consente alle Attività comunemente ricorrenti di essere scomposte in pattern che possono
essere applicati in un processo più e più volte. Quando il pattern viene revisionato o aggiornato, tutte le
modifiche si rifletteranno automaticamente in tutti i Processi applicati a quel pattern.
|