In ingegneria del software, l'analisi del dominio (domain analysis nella letteratura di lingua inglese) è una delle attività che costituiscono l'analisi e concorrono alla definizione delle specifiche di un sistema o applicazione software o, più spesso, di una intera famiglia di applicazioni.
Descrizione
[modifica | modifica wikitesto]Lo scopo dell'analisi del dominio è quello di comprendere a fondo i concetti, le dinamiche, le regole generali che definiscono il dominio applicativo in cui il sistema software dovrà essere impiegato, ovvero il contesto in cui il software dovrà agire. Normalmente, l'analisi del dominio precede l'analisi dei requisiti, poiché solo avendo compreso a fondo il contesto in cui il sistema software dovrà operare è possibile stabilire quali siano le caratteristiche che il sistema deve esibire per integrarsi in quel contesto nel modo più efficace. L'analisi del dominio, come le altre fasi dell'analisi, deve quindi essere condotta congiuntamente da analisti ed esperti del dominio (per esempio, i clienti stessi che commissionano lo sviluppo del sistema, o i probabili utenti del sistema stesso).
L'analisi del dominio è spesso associata alla ingegnerizzazione del dominio (domain engineering): l'introduzione di un sistema software in un certo contesto produttivo potrebbe infatti portare alla ridefinizione o alla riorganizzazione di alcuni aspetti del contesto stesso, per cui lo stesso "dominio" potrebbe essere modificato. Per esempio, una procedura d'ufficio strutturata in un certo modo per essere applicabile da impiegati umani potrebbe essere ripensata in modo da sfruttare i punti di forza dell'automazione impiegando software di produttività personale o di produttività cooperativa come i sistemi di gestione del workflow.
L'ingegneria del software moderna attribuisce una grande importanza all'analisi del dominio anche rispetto all'obiettivo del massimo riuso del software. La comprensione del dominio può infatti portare alla realizzazione di moduli software che incorporano la conoscenza acquisita durante l'analisi, e che quindi potranno probabilmente essere riutilizzati in diverse applicazioni afferenti allo stesso dominio applicativo. Essi potrebbero per esempio essere raccolti in un framework di componenti riusabili.
Le tecniche di analisi orientata agli oggetti sono normalmente considerate fra le più adatte all'analisi del dominio. Concetti come quello di classe, ereditarietà, metodo e attributo si prestano a essere usati durante il dialogo fra analisti ed esperti del dominio (essendo comprensibili anche ai non tecnici) e al contempo forniscono un modello già adatto a essere raffinato in un progetto. L'analisi a oggetti del dominio utilizzerà quasi certamente la notazione standard UML o suoi derivati.