In ingegneria del software, l'analisi è una delle fasi del ciclo di vita del software; essa ha lo scopo generale di chiarire, dettagliare e documentare le funzioni, i servizi e le prestazioni che devono essere offerti da un sistema software o programma, al fine di risolvere un dato problema nel contesto in cui esso dovrà operare. Le informazioni raccolte nella fase di analisi rappresentano il punto di partenza per la progettazione di un prodotto software e per l'intero processo della sua realizzazione, validazione e manutenzione.

Descrizione

[modifica | modifica wikitesto]

Se l'analisi sia una fase che viene conclusa una volta per tutte all'inizio del processo di realizzazione di un prodotto software, oppure un'attività che viene svolta iterativamente nel processo stesso, dipende dal particolare modello di ciclo di vita del software adottato nel progetto.

I modi e gli strumenti (sia concettuali che tecnici) con cui viene svolta l'analisi dipendono dalla metodologia scelta. Nel caso della analisi object-oriented, per esempio, gli strumenti possono includere notazioni come UML, che consente la descrizione del dominio applicativo, nonché di come il sistema deve interagire con tale dominio, in termini di classi, relazioni fra classi, e altri concetti tipici dello sviluppo orientato agli oggetti; e gli strumenti possono includere ambienti CASE (Computer Aided Software Engineering) specifici come Rational Rose.

L'attività di analisi è comunque complessa, e se ne possono distinguere diversi aspetti o sottoattività; a seconda della metodologia scelta e del modello di ciclo di vita del software usato come riferimento, tali sottoattività possono avere un'enfasi relativa differente (o addirittura non essere contemplate).

Esempi di sottoattività che si possono considerare parte dell'analisi in senso generale includono: