Analisi e formalizzazione dei requisiti non funzionali Università Ca’ Foscari di Venezia Facoltà di Scienze matematiche, Fisiche e Naturali Corso di Laurea in informatica Analisi e formalizzazione dei requisiti non funzionali Laureando: Pietro Cappellazzo – 783437 Relatore: Chiar.mo prof. Agostino Cortesi Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 1
Introduzione Problema nel definire metodi standard e avere strumenti per la verifica automatica dei requisiti non funzionali. Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 2
Obiettivi Capire perché esistono questi problemi, analizzando i requisiti non funzionali. Cercare possibili soluzioni analizzando il processo che porta alla produzione e verifica del documento dei requisiti. Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 3
I requisiti non funzionali Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 4
Ricerca Fase di comprensione Difficoltà di comunicazione Limiti budget Limiti tecnologici Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 5
Analisi e negoziazione Processi connessi in modo diretto con la ricerca Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 6
Formalizzazione Cosa abbiamo: Cosa vogliamo: Un Documento non strutturato al quale sono aggiunti man mano i dettagli necessari. Cosa vogliamo: Un documento strutturato con all’interno requisiti di qualità e non ambigui. Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 7
Formalizzazione Caratteristiche di un buon requisito: Verificabilità Consistenza Completezza Realismo Comprensibilità Tracciabilità Adattabilità Problematiche sulla scelta del linguaggio (Linguaggio Naturale, Naturale strutturato, di specifica, grafico, matematico) Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 8
Validazione Processo di controllo del documento dei requisiti. Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 9
Validazione Errori che possono essere riscontrati: Mancanza di conformità con gli standards Cattiva stesura dei requisiti Conflitti Possibilità di effettuare verifiche automatiche. Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 10
Linguaggio naturale controllato linguaggio naturale semplificato Traducibile in modo automatico in più linguaggi formali Offre Molteplici vantaggi (conserva sia le caratteristiche del linguaggio naturale che quelle dei linguaggi formali) Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 11
ACE Un esempio: Attempto Controlled English Linguaggio naturale Also, there are some grains, and grains are plant ACE Every Grain is a plant FOL All(A, grains(A)=>plant(A)) PRQ Axiom(all(A, grains(A)=>plant(A))) Linguaggio naturale Every animal either likes to eat all plants or all animal much smaller than itself that like to eat some plants ACE Every animal A eats plant or eats every animal D that is smaller than A and that eat plants FOL All(A, animal(A)=>(all(B, plant(B) => eat(A,B)) $ all(D,all(F,animal(D) & smaller_then (D,A) & plant(F) & eat(D,F) => eat (A,D))))) PRQ Axiom(All(A, animal(A)=>(all(B, plant(B) => eat(A,B)) $ all(D,all(F,animal(D) & smaller_then (D,A) & plant(F) & eat(D,F) => eat (A,D))))) Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 12
Conclusioni La difficoltà nel trovare modelli adatti ai requisiti non funzionali è dovuta alla vastità di questi. Possibile uso del linguaggio naturale controllato per avere un documento scritto in un unico linguaggio e verificabile in modo automatico. Il fatto di avere un unico linguaggio per l’intero documento dei requisiti (sia funzionali che non funzionali) può servire per trovare un modello. Laureando: Pietro Cappellazzo - 783437 - Relatore: Chiar.mo prof. Agostino Cortesi - Analisi e formalizzazione dei requisiti non funzionali - 13