A questo punto, il team è pronto per andare a fondo sui risultati
ottenuti dalla raccolta delle informazioni e approfondire, dunque, la
conoscenza del problema. Alcune delle azioni di Analisi iniziano, in
realtà, proprio durante la fase di raccolta delle informazioni quando
viene abbozzato uno "schizzo" del Class Diagram.
Comprensione dell'utilizzo del sistema. In una sessione JAD
(Joint Application Development) con i potenziali utenti, il team di
sviluppo lavora con gli utenti per definire gli actors (Con tale
termine si può intendere sia una persona che un sistema, ma ne
parleremo in seguito) che interagiscono con ogni singolo use case (caso
d'uso) sia come beneficiari che come iniziatori dello stesso use case.
È questo il momento in cui vengono prodotti gli Use Case Diagrams.
Consolidare gli Use Cases. È importante continuare a
lavorare con gli utenti al fine di verificare ogni singolo use case in
base alla sequenza di azioni che ognuno di essi descrive. Durante tale
fase, viene aggiunta una descrizione testuale ai singoli passi di ogni
use case diagram.
Rifinire i Class Diagrams. La persona incaricata di
modellare gli oggetti, durante la sessione JAD, dovrà porre la massima
attenzione alle discussioni e alle richieste dei clienti al fine di
rifinire i vari diagrammi delle classi. Tale operazione può consistere
nel dare dei nomi appropriati alle classi, alle associazioni, alle
classi astratte, alle generalizzazion e alle aggregazioni (per la
comprensione di tali termini si veda la loro descrizione più avanti in
questa guida). È questo il momento in cui il Class Diagram diviene più
dettagliato.
Analizzare i cambi di stato negli oggetti. Durante la
creazione dei modelli, sarà importante anche porre attenzione alla
descrizione di eventuali cambi di stato di un oggetto, dove questo si
renda necessario. Vengono prodotti in questa fase gli State Diagrams.
Definire le interazioni tra gli oggetti. Fino ad ora
il team di lavoro è arrivato a mettere giù un insieme di Use Cases e di
Class Diagrams più o meno rifiniti. È ora tempo di definire come gli
oggetti descritti interagiranno tra di loro. Il responsabile della
descrizione dei modelli dovrà sviluppare un insieme di diagrammi che
includano i cambi di stato. È qui che vengono prodotti i Sequence Diagrams e i Collaboration Diagrams.
Analizzare l'integrazione del sistema da sviluppare con gli altri sistemi preesistenti. Il
System Engineer, procedendo in parallelo con tutte le fasi descritte
sin qui, scopre ed analizza tutti i dettagli relativi alla integrazione
del sistema che si intende sviluppare con eventuali sistemi
pre-esistenti o comunque sistemi con i quali sarà necessario cooperare.
Le domande che sarà opportuno porsi per tale operazione saranno
qualcosa del tipo: Quale tipo di comunicazione viene utilizzata? Come è
fatta l'architettura della rete? Il sistema dovrà interagire con un
database? Se si, con quali tipi di database? In tale fase verranno
costruiti i Deployment Diagrams.