Unified Process
(o UP). Metodologia di ingegneria del software, sviluppata all'interno di Rational Software Corporation dai creatori di UML e che sfrutta i diagrammi UML come documentazione per la comunicazione tra i diversi partecipanti a un progetto. Lo Unified Process riconosce lo sviluppo del software come un'attività guidata dalla definizione dei requisiti funzionali specificati dal cliente dell'applicazione, ed espressi attraverso i cosiddetti casi d'uso. In un caso d'uso è dettagliata la descrizione della funzionalità richiesta e il dialogo fra un attore che la vuole utilizzare e il sistema che la fornisce. L'analisi dei casi d'uso permette di identificare quelli principali e di definire le caratteristiche dell'architettura software che li realizza in modo integrato. Da questo punto di vista, si dice che UP è centrato sull'architettura, in quanto, una volta stabilita quella di base il progetto procede per incrementi che integrano le funzionalità individuate dall'analisi. L'analisi, a sua volta, è guidata dall'individuazione dei rischi possibili nella realizzazione delle diverse funzionalità. Un progetto che segua lo Unified Process attraversa diverse fasi: inception (inizio) in cui vengono individuati i casi d'uso e stabilite le relative priorità; elaboration (elaborazione) nella quale è definita l'architettura di base; construction (costruzione) in cui sono realizzate in modo incrementale le diverse funzionalità; transition (transizione) mirata all'installazione dell'applicazione sviluppata e alla risoluzione dei problemi che ne emergono. Ogni fase è a sua volta attraversata da diversi flussi di lavoro, che vengono eseguiti a ogni iterazione. Essi sono: l'estrazione dei requisiti, l'analisi, il progetto, l'implementazione e il test. I differenti flussi hanno rilevanze diverse nelle varie fasi. Inception ed elaboration vedono una prevalenza di attività relative ai requisiti e all'analisi, mentre nella construction acquistano prevalenza il progetto, l'implementazione e il test, il quale diviene poi prevalente in transition. Anche il contenuto delle iterazioni definite pure cambia nelle diverse fasi: all'inizio ogni iterazione porta a un raffinamento nella descrizione dei casi d'uso e dell'architettura, successivamente le iterazioni sono finalizzate a produrre incrementi, cioè realizzazioni di funzionalità richieste dai casi d'uso. Lo UP considera la produzione di molti diagrammi UML e può quindi risultare di difficile gestione, ma permette di mantenere un quadro complessivo della realizzazione del progetto, importante per progetti di grosse dimensioni.