Sei sulla pagina 1di 35

4.

Requisiti del Software


Cosa? Andrea Polini
Ingegneria del Software Corso di Laurea in Informatica

(Ingegneria del Software)

4. Requisiti del Software

1 / 35

Sommario

Generalit Categorizzazione dei Requisiti Documenti dei Requisiti Esercizi

(Ingegneria del Software)

4. Requisiti del Software

2 / 35

Generalit

Sommario

Generalit Categorizzazione dei Requisiti Documenti dei Requisiti Esercizi

(Ingegneria del Software)

4. Requisiti del Software

3 / 35

Generalit

Ingegneria dei Requisiti

Disciplina che si occupa di denire cosa un sistema debba fare, le sue propriet essenziali ed i vincoli a cui deve rispondere. Scoprire, analizzare, documentare e vericare i requititi va sotto il nome di ingegneria dei requisiti Presenta forte interazione con il cliente. Non soltanto un attivit dagli aspetti tecnici ma forti implicazioni umane

(Ingegneria del Software)

4. Requisiti del Software

4 / 35

Generalit

Rilevanza dei Requisiti


La fase di gestione dei requisiti probabilmente la pi critica Problemi inseriti in questa fase dello sviluppo sono i pi costosi da rimuovere. Studi rivelano che circa il 37% dei problemi, nello sviluppo di sistemi software challenging, sono relativi alla fase dei requisiti

(Ingegneria del Software)

4. Requisiti del Software

5 / 35

Generalit

Come specicare i requisiti

Differenti techniche possibili Informali: usano tipicamente linguaggi naturali Semi formali: usano notazioni grache per cui la semantica non sempre precisamente denita Formali: attraverso modelli matematici Esempio: apertura sbarra passaggio a livello

(Ingegneria del Software)

4. Requisiti del Software

6 / 35

Generalit

Requisiti

Caratteristiche e categorizzazione dei requisiti Documenti dei requisiti Processi e strumenti di elicitazione dei requisiti Modelli di sistema

(Ingegneria del Software)

4. Requisiti del Software

7 / 35

Categorizzazione dei Requisiti

Sommario

Generalit Categorizzazione dei Requisiti Documenti dei Requisiti Esercizi

(Ingegneria del Software)

4. Requisiti del Software

8 / 35

Categorizzazione dei Requisiti

Requisiti utente vs. sistema


Requisiti utente Linguaggio naturale (eventualmente pi diagrammi) Requisiti di sistema Cosa sar necessario implementare. Dettaglio su aspetti funzionali e vincoli operazionali In generale deniti e destinati ad utenti differenti: Requisiti utente - manager del cliente, utenti nali del sistema, ingegneri del cliente, architetti del sistema. Requisiti di sistema - utenti nali del sistema, ingegneri del cliente, architetti del sistema, sviluppatori

(Ingegneria del Software)

4. Requisiti del Software

9 / 35

Categorizzazione dei Requisiti

Esempio: il sistema di gestione della biblioteca


Denizione di requisito utente: Il sistema deve tener traccia di tutti i dati richiesti dalla normativa sul copyright Requisiti di Sistema Nelleffettuare una richiesta devono essere forniti allutente i dettagli sullo storico dellaccount ogni richiesta deve essere memorizzata per almeno 5 anni tutti i dati devono poter essere indicizzati a seconda dellutente Log di tutte le richiesta fatte particolari tipologie di editori possono voler ricevere informazioni sul prestito dei loro libri.

(Ingegneria del Software)

4. Requisiti del Software

10 / 35

Categorizzazione dei Requisiti

Requisiti funzionali, non-funzionali

Requisiti funzionali: cosa deve fare il sistema. Come deve reagire agli stimoli esterni. Anche cosa il sistema non deve fare. Requisiti non-funzionali: propriet del sistema che devono essere soddisfatte. Requisiti di dominio: Categoria trasversale - riguarda quei requisiti che derivano direttamente dallo specico dominio applicativo Attenzione distinzione non sempre netta!!

(Ingegneria del Software)

4. Requisiti del Software

11 / 35

Categorizzazione dei Requisiti

Requisiti funzionali
Vengono descritte le funzionalit in dettaglio - input, output, eccezioni Possono contenere differenti livelli di astrazione. E.g. il sistema di gestione della biblioteca: Lutente deve essere capace di cercare in tutti i cataloghi o selezionare un sottoinsieme di essi il sistema deve fornire allutente appropriati visulizzatori al ne di permettere la lettura allinterno del sistema ad ogni ordine deve essere allocato uno specico ID Attenzione a requisiti specicati in maniera imprecisa (requisiti ambigui) Completezza e consistenza dei requisiti

(Ingegneria del Software)

4. Requisiti del Software

12 / 35

Categorizzazione dei Requisiti

Requisiti non funzionali


classicazione

Si riferiscono a propriet del sistema (vedi 2a lezione) Sono per certi versi critici tanto quanto i requisiti funzionali Classicati in: Requisiti di Prodotto Requisti organizzativi Requisiti esterni

(Ingegneria del Software)

4. Requisiti del Software

13 / 35

Categorizzazione dei Requisiti

Requisiti non-funzionali
esempi

Product: Lintefaccia utente deve essere implementata come HTML standard 4.0 No frames o Java applet Organizzativi il sistema di documentazione del processo di sviluppo deve essere conforme a quello denito in XYZStand-2007 Esterno il sistema non deve rendere publici dati personali

(Ingegneria del Software)

4. Requisiti del Software

14 / 35

Categorizzazione dei Requisiti

Requisiti non-funzionali

(Ingegneria del Software)

4. Requisiti del Software

15 / 35

Categorizzazione dei Requisiti

Requisiti non-funzionali
problemi

Difcili da vericare!! In generale i requisiti devono poter essere facilmente ed economicamente vericati Esempio: interfaccia utente e uso da parte di personale esperto Spesso non comunque facile denire metriche per la propriet non funzionale

(Ingegneria del Software)

4. Requisiti del Software

16 / 35

Categorizzazione dei Requisiti

Requisiti non funzionali


esempi di metriche

Speed dimensioni Facilit duso Afdabilit Robustezza Portabilit

Tempo per transazione, tempi di risposta K bytes, Numero di chip nella RAM Tempi di training, numero di frame di aiuto MTBF, probabilit di indisponibilit ... Tempo di riavvio, percentuale di eventi che causano errori Percentuale degli statement dipendenti dalla piattaforma, numero di sistemi target.

(Ingegneria del Software)

4. Requisiti del Software

17 / 35

Categorizzazione dei Requisiti

Requisiti di dominio

Requisiti che sono del tutto ovvi a persone che lavorano nel dominio (vedi esistenza di leggi giuridiche, regola matematica, legge sica, etc.) Sono spesso difcili da capire per chi non ha conoscenze nel dominio Altrettanto spesso sono considerati ovvi dal cliente e non vengono manifestati

(Ingegneria del Software)

4. Requisiti del Software

18 / 35

Categorizzazione dei Requisiti

Requisiti utente

Specicano il comportamento del sistema in modo comprensibile al cliente. Si occupano del comportamento osservabile del sistema per lutente e non dovrebbero contenere speciche di design. Tipici problemi: Mancanza di chiarezza - verbosit vs. precisione Le diverse tipologie di requisiti sono mischiati tra loro Molti requisiti vengono specicati come un singolo requisito

(Ingegneria del Software)

4. Requisiti del Software

19 / 35

Categorizzazione dei Requisiti

Requisiti utente
esercizio

Il sistema di gestione della bibblioteca deve fornire un sistema di gestione dei conti che riporti tutti i pagamenti fatti dagli utenti del sistema. I gestori del sistema devono poter congurare il sistema in modo da poter accordare sconti ad utenti regolari. Problemi?

(Ingegneria del Software)

4. Requisiti del Software

20 / 35

Categorizzazione dei Requisiti

Requisiti utente
esempio

Griglia di supporto: nellassistere lutente nel posizionamento delle entit in un diagramma, lutente pu attivare una griglia, che fornisca sia i centimetri che i pollici, attraverso unopzione nel pannello di controllo. Inizialmente la griglia disattivata. La griglia pu essere attivat/deattivat in qualsiasi momento. Un opzione griglia verr fornita nella vista adatta-a-dimensioni ma il numero di linee mostrate sar ridotto per evitare di riempire diagrammi pi piccoli con linee di griglia. Problemi?

(Ingegneria del Software)

4. Requisiti del Software

21 / 35

Categorizzazione dei Requisiti

Requisiti utente
esempio

Molti differenti tipi di requisiti sono mischiati nella prima frase: funzionali: la griglia non funzionali: centimetri / pollici non funzionale: dove il meccanismo si trova Nota: Troppi dettagli tecnici limitano il raggio di azione degli sviluppatori che invece potrebbero fornire soluzioni innovative.

(Ingegneria del Software)

4. Requisiti del Software

22 / 35

Categorizzazione dei Requisiti

Requisiti utente
esempio

Leditor deve fornire una funzionalit griglia dove una matrice di linee orizontali e verticali vengano visualizzate come background della vista nella nestra delleditor. La griglia dovrebbe essere passiva e lallineamento alla griglia deve essere fatto su iniziativa dellutente. Motivazione: una griglia aiuta lutente nella creazione di un diagramma pi pulito con entit ben spaziate. Una griglia attiva pu essere utile ma creare effetti indesiderati come posizionamenti imprecisi. Lutente la persona pi appropriata a decidere il posizionamento Sorgente: Micky Mouse

(Ingegneria del Software)

4. Requisiti del Software

23 / 35

Categorizzazione dei Requisiti

Requisiti utente
reccomandazioni

Denite un formato standard per la denizione dei requisiti Utilizzate linguaggio consistentemente - attenzione alle parole deve, dovrebbe Utilizzate meccanismi di evidenziazione del testo Non usare, per quanto possibile, gergo tecnico del dominio informatico.

(Ingegneria del Software)

4. Requisiti del Software

24 / 35

Categorizzazione dei Requisiti

Requisiti di sistema

Aggiungono dettagli per capire come i requisiti utente possono essere effettivamente raggiunti dal sistema. Anche questi si dovrebbero limitare al comportamento osservabile e non contenere scelte di design. Ma . . . Potreste aver bisogno di denire unarchitettura iniziale per strutturare i requisiti. In molti casi il sistema interagir con sistemi pre-esistenti avete bisogno di certicare larchitettura ad esempio rispetto a norme di safety

(Ingegneria del Software)

4. Requisiti del Software

25 / 35

Categorizzazione dei Requisiti

Requisiti di sistema

Problemi nelluso di linguaggio naturale: si basa sulla comune comprensione dei concetti nel sistema troppo essibile difcile modularizzare requisiti scritti con linguaggio naturale Soluzioni: Structured natural language Design description language Graphical notation Mathematical specications

(Ingegneria del Software)

4. Requisiti del Software

26 / 35

Categorizzazione dei Requisiti

Specica dei punti di interazione

Praticamente tutti i sistemi software si trovano ad interagire con altri sistemi software. Le interfacce di interazione devono essere denite formalmente: API Data structures Rappresentazione dei dati

(Ingegneria del Software)

4. Requisiti del Software

27 / 35

Documenti dei Requisiti

Sommario

Generalit Categorizzazione dei Requisiti Documenti dei Requisiti Esercizi

(Ingegneria del Software)

4. Requisiti del Software

28 / 35

Documenti dei Requisiti

documento dei requisiti software

Il documento dei requisiti software ci che deve essere implementato dagli sviluppatori. Contiene generalmente sia requisiti utente che di sistema. Differenti utenti . . . differenti requisiti Formato dipendente anche da processo adottato! Esistono standard per la specica dei requisiti di sistema.

(Ingegneria del Software)

4. Requisiti del Software

29 / 35

Documenti dei Requisiti

IEEE/ANSI 830-1998
Suggerisce la seguente struttura: Introduction
1 2 3 4 5

Scopo del documento dei requisiti Scopo del prodotto Denizione, acronimi ed abbreviazioni Riferimenti Overview dellintero documento Prospettive sul prodotto Funzioni del prodotto Caratteristiche degli utenti vincoli generali Assunzioni e dipendenze

Descrizione generale
1 2 3 4 5

Requisiti specici Appendici Indici


(Ingegneria del Software) 4. Requisiti del Software 30 / 35

Documenti dei Requisiti

Contenuto generale

1 2 3 4 5 6 7 8 9 10

Prefazione Introduzione Glossary Denizione dei requisiti utente Architettura del sistema Denizione dei requisiti di sistema Modelli del sistema Evoluzione del sistema Appendici Indici

(Ingegneria del Software)

4. Requisiti del Software

31 / 35

Documenti dei Requisiti

Possibili alternative

Il caso della programmazione estrema (eXstreme Programming - XP)

(Ingegneria del Software)

4. Requisiti del Software

32 / 35

Esercizi

Sommario

Generalit Categorizzazione dei Requisiti Documenti dei Requisiti Esercizi

(Ingegneria del Software)

4. Requisiti del Software

33 / 35

Esercizi

Ambiguit ed omissioni
Un sistema di emissione automatica di emissione di biglietti ferroviari. Gli utenti selezionano la loro destinazione ed inseriscono una carta di credito ed il corrispondente codice segreto. Il biglietto emesso e la carta di credito caricata. Quanto lutente pigia sul bottone di start una schermata delle destinazioni proposta, insieme ad un messaggio allutente che richiede di scegliere la destinazione. Quando la destinazione stata scelta, gli utenti devono inserire la loro carta di credito. La validit vericata ed il codice segreto viene richiesto. Successivamente alla validazione della carta il biglietto viene emesso e la carta caricata. Si identichino ambiguit ed omissioni

(Ingegneria del Software)

4. Requisiti del Software

34 / 35

Esercizi

Specica dei requisiti

Si specichino i requisiti per la macchina del caff nellatrio

(Ingegneria del Software)

4. Requisiti del Software

35 / 35

Potrebbero piacerti anche