37
applicazioni informatiche - ingegneria d ei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

Embed Size (px)

Citation preview

Page 1: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 1

APPLICAZIONI INFORMATICHE

i requisiti

Page 2: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 2

Ingegneria dei Requisiti

Page 3: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 3

Progetti Software

Il 26% che vede la luce comunque ha problemi:– Denver Airport: più di 50 milioni di US$ per errori del sistema

di controllo dei bagagli– London Ambulance Service: il sistema è stato disattivato

dopo un giorno di funzionamento

“26% di progetti software terminano con successo”Standish Group, CHAOS Report, 2000

“… cioè il 74% fallisce”Standish Group, CHAOS Report, 2000

Page 4: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 4

Tom De Marco

“Il 56% degli errori di un software possono essere riferiti ai requisiti”

• Durante lo sviluppo di un software, più tardi un errore viene rilevato più costoso sarà risolverlo

• Molti errori sono fatti durante la raccolta e l’analisi dei requisiti• Molti errori relativi ai requisiti possono (e devono) essere

rilevati il prima possibile• Errori tipici: uso di fatti non corretti, omissioni, inconsistenze e

ambiguità• Errori nella specifica dei requisiti sono uno dei problemi

principali per l’industria software

Page 5: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 5

Costi

Page 6: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 6

… in Europa

• Un questionario inviato a 3.805 società ha rilevato:

• Per gli analisti i problemi principali sono:– Specifica dei requisiti (53%)– Gestione dei requisiti (43%)– Documentazione (36%)– Test (35%)

Page 7: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 7

Definizione

L’ingegneria dei requisiti è una sotto area dell’ingegneria del software che studia il processo di definizione dei requisiti del sistema da realizzare.

• E’ una nuova area che ha avuto origine nel 1993 con “the 1st International Symposium on R.E.”

• Ora siamo alla 12 edizione.

“Il processo di definizione dei requisiti è un’interfaccia tra i desideri (o bisogni) dei clienti e la realizzazione dei questi requisiti come sistema software”

Page 8: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 8

… un’altra definizione

• L’ingegneria dei requisiti è:

“Lo sviluppo e l’uso di tecnologie per raccogliere, specificare e analizzare i requisiti degli utenti/clienti che

saranno poi realizzati da un sistema software”

Page 9: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 9

Fred Brook’s

“The most difficult part of building a software system is to decide, precisely, what must be built. No other part of the work can undermine so badly the resulting software if not done correctly. No other part is so difficult to fix later.”

Page 10: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 10

Requisiti di sistema

• Definiscono che cosa un sistema deve fare e sotto quali vincoli deve operare, ad esempio: – Il sistema dovrà archiviare i dati di una biblioteca, in

particolare dati relativi ai libri, ai giornali, le riviste, video, nastri audio e CD-ROM.

– Il sistema dovrà permettere agli utenti di fare delle ricerche per titolo, autore, o ISBN.

– L’interfaccia al sistema dovrà essere realizzata utilizzando un browser web.

– Il sistema dovrà gestire almeno 20 transazioni per secondo

– Il sistema dovrà essere accessibile attraverso l’uso di password

Page 11: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 11

Tipi di requisiti

• Requisiti Funzionali: definiscono parte delle funzionalità del sistema

• Requisiti di implementazione: come il sistema dovrà essere implementato

• Requisiti di prestazione: specificano le prestazioni minime accettabili per il sistema

• Requisiti di usabilità: specificano il tempo massimo per mostrare l’uso del sistema

Page 12: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 12

Tipi di requisiti

• Requisiti non funzionali– Esprimono vincoli sotto i quali il software dovrà

operare– Possono essere visti come qualità specifiche che il

software dovrà avere • Costi• Sicurezza• Robustezza• Portabilità

• Requisiti -1

– Condizioni che non si devono mai verificare– Solitamente associate a requisiti non funzionali

Page 13: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 13

Problemi legati ai requisiti

• I requisiti non riflettono i reali bisogni dei clienti • I requisiti sono inconsistenti e/o incompleti• E’ costoso cambiare i requisiti dopo che sono stati

definiti e concordati• Possono esserci delle incomprensioni

– tra i clienti e chi a raccolto e analizzato i requisiti, – tra chi ha raccolto i requisiti e il progettista, – tra il progettista e chi realizzerà il sistema.

Page 14: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 14

Un esempio di incompletezza

• Il sistema dovrà permettere agli utenti di fare delle ricerche per titolo, autore, o ISBN.

• Che cosa significa per i CD-ROM?– Possono non avere un ISBN– Vale solo per i libri– Immaginate se realizzate il sistema con questo

requisito senza considerare i CD-ROM. • Non possiamo scrivere requisiti universali, ma

possiamo tentare di essere il più possibile completi.

Page 15: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 15

Determinazione dei requisiti

• Fornire una definizione informale dei requisiti• Generalmente in questa fase si parla anche di servizi

attesi dal sistema e vincoli a cui deve sottostare• L’attività di raccolta dei requisiti è svolta da un

analista di business (o di sistema) utilizzando tecniche diverse, che possono spaziare dalle tradizionali interviste ai clienti andando (se necessario) fino alla costruzione di prototipi.

• Analisi delle duplicazioni e contraddizioni• Revisioni e rinegoziazione dei requisiti• Documento dei requisiti

Page 16: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 16

Raccolta o negoziazione dei requisiti

• Discussione con clienti e esperti del dominio• Esperti del dominio conoscenza del dominio • Clienti requisiti• Casi d’uso e conoscenza del domino devono essere

integrati

Page 17: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 17

Metodi di raccolta requisiti

• Tradizionali– Interviste– Questionari– Osservazioni– Studio dei documenti e dei sistemi software

• Metodi moderni– Prototipi– Sviluppo cooperativo delle applicazioni– Sviluppo rapido delle applicazioni

Analizziamoli

Page 18: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 18

Interviste

• Condotte principalmente con i clienti (anche gli esperti possono essere intervistati)

• Problemi– Generalmente i clienti hanno solo una vaga idea dei

requisiti del sistema e non sono in grado di esprimerli – Possono anche richiedere funzionalità che vanno fuori

i costi e gli obiettivi del progetto– Possibili conflitti

• Due tipi di intervista:– Strutturata (formali)– Non strutturate (informali)

Page 19: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 19

Interviste

• Strutturate– Preparate in anticipo– Un’agenda– Domande predeterminate (aperte o chiuse) – Sono generalmente accompagnate da interviste

informali (non strutturate) • Non strutturate

– Incontri informali– Senza domande anticipate o obiettivi prederminati– Incoraggiare il cliente a parlare di ciò che ha in mente,

su cui l’analista potrebbe non aver riflettuto• Per entrambe si parte da un contesto di discussione (ad

esempio un breve documento inviato in anticipo)

Page 20: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 20

Domande da evitare

• Domande sulle quali l’intervistatore esprime (direttamente o indirettamente) la propria opinione sul problema– dobbiamo fare le cose nel modo in cui le facciamo?

• Domande prevenute, simili alle precedenti, eccetto che l’opinione dell’intervistatore è chiaramente espressa– non intendi fare questo, vero?

• Domande contenenti già la risposta– devi fare le cose in questo modo, non è vero?

Importante è ascoltare

Page 21: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 21

Questionari

• In aggiunta alle interviste – Sostituiscono le interviste quando il progetto è a

basso rischio con obiettivi ben definiti• Non è possibile chiedere chiarimenti sui quesiti e le

risposte– Vantaggi: tempo per valutare la risposta, anonimato– Svantaggi: non c’è la possibilità di discutere e

approfondire i quesiti

Page 22: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 22

Questionari

• I quesiti dovrebbero essere chiusi (evitare i quesiti aperti)

• Tre tipi:– A scelta multipla– A punteggio– Con ordinamento

Page 23: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 23

Osservazioni

• Ricerca di fatti attraverso l’osservazione:

– Osservazione passiva: l’analista osserva le attività senza interruzioni o coinvolgimento diretto del cliente che lavora (anche con videocamera).

– Osservazione attiva: l’analista partecipa direttamente alle attività ed entra a far parte del gruppo di lavoro.

• Svolte per periodi lunghi e con differenti carichi di lavoro

• Difficoltà: le persone tendono a comportarsi diversamente quando osservate

Page 24: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 24

Studio dei documenti e dei sistemi software

• ….. per approfondire la conoscenza di dominio• Documenti organizzativi:

– modulistica aziendale (compilata, se possibile)– descrizione delle procedure lavorative e delle politiche

di intervento– piani di business– organigrammi– corrispondenza fra uffici– minute di incontri– registrazioni contabili– corrispondenza esterna– lamentele clienti– ecc.

Page 25: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 25

Studio dei documenti e dei sistemi software

• Moduli e rapporti di sistema: schermate e rapporti computerizzati (con la relativa documentazione), manuali operativi di sistema, documentazione utente, documentazione tecnica, modelli di analisi di progetto, ecc.

• Libri, riviste, pacchetti proprietari (sistemi ERP) - internet

Page 26: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 26

Negoziazione e validazione

• In parallelo alla raccolta dei requisiti• Validazione e negoziazione fatta sul documento dei

requisiti (acquisiti)• Revisione del documento

– Requisiti fuori dal contesto– Matrice di dipendenza dei requisiti– Priorità e rischi associati ai requisiti

Page 27: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 27

Matrice di dipendenza

Requisito R1 R2 R3 R4

R1

R2 Conflitto

R3 Indipendenti Indipendenti

R4 Indipendenti Sovrapposto Sovrapposto

• Conflitti: discussi con i clienti• Sovrapposti: riscritti per eliminare le sovrapposizioni

Page 28: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 28

Goal Analisys

la goal analysis è una tecnica che aiuta il progettista a focalizzarsi sugli obiettivi che un sistema software deve raggiungere, e fornisce i mezzi per raffinare questi obiettivi, esplorando più soluzioni alternative

Page 29: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 29

1. si definiscono gli obiettivi

2. si definiscono le strategie per raggiungerli

3. l’analisi comparativa tra le strategie porta ad scelta che deve essere condivisa

Goal Analisys

Page 30: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 30

Goal Analisys

• What QUALI obiettivi si devono portare a compimento in questo passo?

• Why PERCHE’ questi obiettivi? • How COME vengono eseguiti questi obiettivi?

Page 31: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 31

Priorità e rischi associati ai requisiti

• Analisi del rischio: identifica i requisiti che potrebbero causare difficoltà nello sviluppo

• Tipologie di rischio: rischio tecnico, rischio di prestazione, rischio di sicurezza, rischio di integrità dei database, rischio nel processo di sviluppo, rischio politico, rischio legale, rischio di volatilità

• Valutazione della priorità: permette la ritaratura del progetto rispetto ai ritardi (es. scaricando i requisiti con bassa priorità per rispettare tempi di progetto).

• Le priorità devono essere negoziate con gli utenti tendo conto dei fattori di rischio

Page 32: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 32

Acquisti on line

• Un esempio di definizione dei requisiti

Page 33: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 33

Acquisti online – “raccolta” dei requisiti

(R1) Il cliente usa la pagina web del produttore per vedere la configurazione standard del computer (server, desktop, portatile) scelto. Il prezzo è esplicitamente mostrato

(R2) Il cliente sceglie di vedere i dettagli della configurazione: per l’acquisto oppure per definire un’altra configurazione più adatta. Il costo di qualunque configurazione può essere calcolato su richiesta del cliente

(R3) Il cliente può scegliere di ordinare il computer direttamente online oppure può richiedere un incontro con il venditore prima di confermare l’ordine, per ottenere maggiori spiegazioni sui dettagli dell’ordine, una negoziazione del costo, etc.

(R4) Per ordinare, il cliente deve riempire online un modulo con i dettagli della spedizione, l’indirizzo di fatturazione, e i dettagli di pagamento (carta di credito o assegno)

(R5) Dopo che l’ordine del cliente è stato inviato e confermato, il venditore invia elettronicamente una richiesta al magazzino con i dettagli della configurazione ordinata

(R6) I dettagli della transazione, compresi un numero d’ordine e un numero cliente, sono inviati via e-mail al cliente, permettendo a quest’ultimo di controllare lo stato d’ordine

(R7) Il magazzino riceve la fattura dal venditore e spedisce il computer al cliente

Page 34: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 34

Requisito Attore Attività

R1 Cliente Mostrare configurazione Computer Standard

R2 Cliente Costruire Configurazione Computer

R3 Cliente, Venditore Ordinare Computer configurato, richiedere contatto commerciale

R4 Cliente Ordinare Computer configurato, verificare e accettare pagamento cliente

R5 Venditore, Magazzino

Informare magazzino su ordine

R6 Cliente, Venditore Ordinare computer configurato, aggiornare stato ordine

R7 Venditore, Magazzino

Stampare fattura

Acquisti online - strutturazione dei requisiti

Page 35: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 35

Acquisti online - documento dei requisiti

1. Premessa1.1 Obiettivo e scopo del prodotto1.2 Contesto di business1.3 Stackeholders1.4 Soluzioni preliminari1.5 Sintesi del documento

2. Servizi del sistema2.1 Scopo del sistema2.2 Requisiti funzionali2.3 Requisiti non funzionali

3. Vincoli di sistema3.1 Requisiti di interfaccia3.2 Requisiti di presentazione3.3 Requisiti di sicurezza3.4 Requisiti operativi3.5 Requisiti politici e legali3.6 Altri vincoli

4. Aspetti progettuali4.1 Problemi aperti4.2 Programma preliminare4.3 Previsione costi

AppendiciGlossarioDocumenti e moduli di businessRiferimenti

Page 36: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 36

Acquisti online - negoziazione dei requisiti

• Ma non è meglio verificare la disponibilità a magazzino prima che il cliente completi l’ordine?

• Ma sei proprio sicuro che ti serva …• Ma non sarà che il tuo cliente potrebbe …• Ma non succede mai che l’ordine arriva in questo modo …

Page 37: Applicazioni informatiche - ingegneria dei requisiti 1 APPLICAZIONI INFORMATICHE i requisiti

applicazioni informatiche - ingegneria dei requisiti 37

Requisiti

• Il primo problema …

• Un bel problema …

• Forse … IL PROBLEMA !