Zusammenfassung der Ressource
Requisiti
software
Anmerkungen:
- I requisiti: ancora oggi un anello debole
Da uno studio effettuato dalla Standish Group, dei fattori che portano al fallimento di un progetto software, 5 su 8 riguardano i requisiti.
Molto spesso, il fallimento del sistema viene scoperto solo alla sua messa in opera.
Quali sono le cause che determinano il RITARDO nella individuazione del problema:
1) insufficiente interazione tra gli attori coinvolti
2) insufficiente individuazione dei conflitti tra requisiti
3) mancato coinvolgimento degli utenti nella verifica dei requisiti individuati dagli analisti
4) mancato coinvolgimento degli utenti per esprimere feedback sulle ipotesi progettuali
5) insufficiente controllo sull’evoluzione dei requisiti durante l’intero ciclo di vita del sistema
6) rinvio della presa in carico del nuovo requisito sopraggiunto in corso d’opera ad una release successiva
7) mancato accordo sui contenuti e/o costi e/o tempi durante la rinegoziazione per l’aggiunta di un requisito sopraggiunto in corso d’opera
- Studio di fattibilità
Anmerkungen:
- OUTPUT: preventivo o documento di fattibilità
- valutazione preliminare di costi e benefici
- valutazione di opzioni alternative
- stima delle risorse umane e
finanziarie necessarie
- Specifica (raccolta e
analisi) dei requisiti
Anmerkungen:
- NB
La specifica dei requisiti risponde alla domanda
COSA DEVE FARE IL SISTEMA
non come dovrà farlo!
- L’insieme delle attività che si occupano dei requisiti
→ Ingegneria dei requisiti - requirements engineering
- analisi del
problema: cosa
deve fare il sistema
- definizione delle funzionalità: vincoli
aziendali interni/esterni,
caratteristiche sistema
- redazione di un documento di Specifica
dei Requisiti sw: SRS Software
Requirements Specification - documento
formale
- convalida da parte del committente del SRS
- Requisiti software e stakeholder
- Requisito
Anmerkungen:
- Def.
ogni informazione circa le funzionalità, i servizi, le modalità operative e di gestione del sistema da sviluppare
- Def. Requisito IEEE Std 610.12 (1990)
A) A condition or capability needed by a user to solve a problem or achieve an objective
(B) A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document.
(C) A documented representation of a condition or capability as in definition (A) or (B)
- La definizione dei requisiti
- analizza i bisogni dell’utente
- indaga il dominio del problema
- coinvolge diverse persone
- sia il team di sviluppo
- sia l’azienda del cliente - engagement
- consulenti esterni (legali, sviluppatori legacy system)
- fattori esterni possono
influenzare pesantemente i
requisiti del sistema
- cambiamenti nell’organizzazione aziendale
- necessità di adeguamento a nuove politiche di mercato
- cambiamento a livello di obblighi legislativi
- La fase di analisi dei requisiti è molto delicata
- errori in questa fase → fallimento possibile dell’intero progetto
- rischi principali
- dimenticare o ignorare una funzionalità
- implementare in modo errato una richiesta
- realizzare interfacce utenti poco intuitive e difficili da usare
- Classificazione dei requisiti
- livello di dettaglio
- requisiti UTENTE
- osservati - proposti - dal cliente
- descritte con il linguaggio del cliente
- equisiti aperti perché sottoposti
successivamente al team di sviluppo
che propone una soluzione
- requisiti DI SISTEMA
- imposti da vincoli esistenti
- esistenza di apparecchiature
esistenti all’interno dell’azienda
- vincoli di natura fiscale e/o legislativa
- molto strutturati e vincolanti
- scritti in linguaggi tecnici e/o semi-formali
- spesso non sono noti all’utente,
ma solo al programmatore
- requisiti restrittivi o requisiti chiusi
- tipo di requisito
- requisiti FUNZIONALI
Anmerkungen:
- descrivono le funzionalità che il sistema deve avere e tutti i servizi che dovrà offrire agli utenti
- Devono essere COMPLETI: tutti
i servizi richiesti dagli utenti
- Devono essere COERENTI:
non devono esserci
definizioni contraddittorie
- requisiti NON FUNZIONALI
Anmerkungen:
- Tutti quei requisiti imposti:
dalle modalità operative
dal CICLO DI VITA del prodotto
dal rispetto della normativa vigent
- Sommerville:
distingue 3 macro categorie di requisiti non funzionali
- Req. di prodotto
- affidabilità
- portabilità
- efficienza
- spazio
- performance
- Req. organizzativi
- req. di consegna
- di implementazione
- su standard
- Req. esterni
- interoperabilità
- Req. etici
- Req. legislativi
- requisiti di DOMINIO
Anmerkungen:
- dipendono dal DOMINIO in cui il sistema deve operare
ES :
- impianti industriali
- riservatezza dati sensibili
- accessi area riservata
- Verifica dei requisiti
Anmerkungen:
- req. funzionali
- collaudo del sistema con gli utenti
- verifica se le aspettative sono state soddisfatte
- req. di dominio
- collaudo del sistema con il “resto del mondo” (software aziendale preesistente, terze parti)
- verifica delle normative di settore
- req. non funzionali
- spesso non quantificabili e difficili da verificare
- grado di soddisfacimento del requisito
- Stakeholder
Anmerkungen:
- Le persone coinvolte sono chiamate STAKEHOLDER - portatori di interesse - e sono “persone o gruppi che influenzano e/o sono influenzati dalle attività di un’organizzazione, dai suoi prodotti o servizi e dai relativi risultati di performance (Freeman, 1984)
- Problema
- non hanno le idee chiare
- parlano un proprio linguaggio tecnico
- hanno poca dimestichezza nello
sviluppo del software e idee
confuse sulle funzionanlità da
implementare
- possono effettuare richieste diverse tra loro,
che vanno spesso in conflitto
- Compito dell’analista è ottenere una
descrizione dettagliata (e il più
possibile rigorosa) del sistema!
- Classificazione FURPS (1987)
- Functionality
Anmerkungen:
- le caratteristiche e le funzionalità fornite dal programma
- Usability - usabilità
Anmerkungen:
- semplicità di apprendimento e utilizzo del sistema da parte degli utenti
- Reliability -affidabilità
- il sistema deve
garantire le funzioni
richieste nel tempo
- per un determinato
insieme di situazioni
- Performance - prestazioni e tempi di risposta
- velocità nel fornire risultati
- quantità di risorse utilizzate
- throughput: efficienza /
effettiva velocità di utilizzo
- Supportability - supportabilità
- manutenibilità
- estendibilità e adattabilità
- compatibilità e configurabilità
- Ulteriori pseudo-requisiti o VINCOLI
Anmerkungen:
- - implementazione
- interfacce
- operazioni
- packaging
- legali
- Tipi di raccolta dei requisiti
- greenfield engineering
- sviluppo da zero del sistema
- la fonte dei requisiti è l’azienda committente
- lo sviluppatore: deve valutare
disponibilità sul mercato di un prodotto
analogo da confrontare o proporre in
alternativa allo sviluppo ex-novo
- re-engineering
Anmerkungen:
- esiste già in azienda un sistema
- analisi del sistema esistente → alla base del nuovo progetto
- interface engineering
Anmerkungen:
- non è possibile sostituire completamente il software esistente
- MA si deve adeguare ALMENO l’interfaccia grafica
- non è necessario raccogliere nuovi requisiti
- Elicitazione (scoperta) dei requisiti
Anmerkungen:
- questa fase è detta fase di esplorazione in quanto il problema da risolvere va esplorato
elicitazione → “scoperta” dei requisiti (sono difficili da individuare)
- è necessario raccogliere il
maggior numero possibile di
informazioni
Anmerkungen:
- sugli obiettivi del sistema
- sulle necessità riguardanti il sistema
- Passi da seguire
- esaminare le richieste del
committente → il
principale referente del
cliente
- definizione degli
stakeholder (attori)
- Stakeholder engagement
Anmerkungen:
- partecipazione attiva degli attori che sono a tutti gli effetti parte del gruppo di lavoro
- Gli ingegneri
del software
devono
Anmerkungen:
- dialogare con gli attori
- integrare ciò che emerge da questo processo di dialogo (dipendenti vs direzione aziendale)
- Si rende necessario
Anmerkungen:
- individuare criteri di selezione che garantiscano la rappresentatività degli stakeholder
- conoscere tutti i punti di vista (viewpoint) dei diversi utilizzatori del sistema