Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Documenti analoghi
Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

3. Ciclo di Vita e Processi di Sviluppo

Corso di Ingegneria del Software

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

Il ciclo di vita del software

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_2 V3.

Corso di Ingegneria del Software. Modelli di produzione del software

Gestione dello sviluppo software Modelli Base

Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1

Corso di Ingegneria del Software. Il modello UP

Corso di Ingegneria del Software. Modelli di produzione del software

Piano di Testing. Fontolan Federico Giacomazzi Andrea Yoshida Kotono Rosada Fabio

1. Ciclo di Vita e Processi di Sviluppo

Pratiche di XP [Beck] Extreme Programming (XP) Story Card. Gioco di pianificazione

Sistemi Informativi. Marino Segnan

Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Processo software. Marina Mongiello. il processo

Correzione degli errori

Analisi e Progettazione del Software

Il PROCESSO UNIFICATO

Ingegneria del Software

PIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Tecnologia e Progettazione di Sistemi Informatici e di Telecomunicazioni

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

Corso di Ingegneria del Software. Modelli di produzione del software

Modelli di Ciclo di Vita del Software (CVS)

SCD IS. Processi Software. UniPD Ingegneria del Software mod. A 1. Parole chiave 3. Modelli di ciclo di vita.

Cicli di Vita del Software. Porfirio Tramontana 2009 Ingegneria del Software Cicli di Vita del Software

Materiale didattico. Sommario

Corso di Ingegneria del Software. Modelli di produzione del software

La fase di Implementazione

Ingegneria del software

Corso di Ingegneria del Software

Progetto software 2007/2008 Lezione I. Dott.ssa Marianna Nicolosi Asmundo

Collaudo basato sui guasti

7. Architetture Software

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Piano di gestione della qualità

INTERAZIONE UOMO-MACCHINA

Unified Process - introduzione

software Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione

Ingegneria del Software

Allegato 1 Descrizione profili professionali

Il ciclo di vita del SW

Ingegneria del Software 2010

Verifica e Validazione del Software

In passato, occuparsi di informatica era sinonimo di programmare computer

Modelli di processo. Modello a cascata (Royce 1970) Studio di fattibilità. Analisi e specifica dei requisiti. Progettazione. Codifica e test di unità

Corso di Ingegneria del Software. Modelli di produzione del software

Lo sviluppo del progetto informatico

2. Modellazione dei casi d uso

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Verifica parte IID. Test in grande. Test e modularità. Test di modulo

Introduzione al Calcolo Scientifico

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

UML2. Attività di Progettazione. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino

Esami. Ingegneria del Software. Obiettivi del corso. Sir Tony Hoare s suggestion. There are two ways of constructing a software design.

SCD IS. Processi SW. Processi Software. UniPD Ingegneria del Software mod. A 1. Parole chiave 3. Parole chiave 4. Modelli di ciclo di vita

Tecniche di Programmazione 2009/10

DESIGN SPRINT. Il metodo è stato ideato da Jake Knapp, design partner di GV (ex Google Ventures)

Ingegneria del Software 2014

Cerca di unire i vantaggi delle strategie top-down e bottomup.

Introduzione. Contenuti da Cap. 1 Ghezzi et al.

14. Verifica e Validazione

La fase di Progettazione

Stato dell arte sulle tecniche di testing di Sistemi Embedded

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

GESTIONE DELLE AZIONI CORRETTIVE E PREVENTIVE

L ICF e la pratica clinica

Il ciclo di vita del SW

INTERAZIONE UOMO-MACCHINA

Il ciclo di vita del SW

Programmazione con Java

Da Idea a Startup. Daniele Ugolini Co-Founder Lacerba.io.

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Contenuto del documento: Premessa...3 Principi Generali...3 Approccio Metodologico...3 Applicazione del Modello...5 Struttura del Modello...5 Definizi

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

4. Qualità. un concetto molte sfaccettature. Andrea Polini. Ingegneria del Software Corso di Laurea in Informatica

Verifica e validazione: introduzione

Il processo di sviluppo del software

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

PROGETTISTA DI APPLICAZIONI WEB E MULTIMEDIALI

Corso di Ingegneria del Software. Modelli di produzione del software

PROGETTISTA DI APPLICAZIONI WEB E MULTIMEDIALI

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Definizioni - 1. Ingegneria del Software 2 2. Processi di sviluppo software. Ingegneria del Software 2 Processi di sviluppo software

Kit Documentale Qualità UNI EN ISO 9001:2015. Templates modificabili di Manuale, Procedure e Modulistica. Nuova versione 3.

Programmi e Oggetti Software

Towards Shared Patient Records: an Architecture for Using Routine Data for Nationwide Research

Ingegneria del Software L-A

Ski Ways Piano di Testing

Fasi della programmazione. Gabriella Trucco

Fasi di creazione di un programma

Sistemi Informativi. Marino Segnan

Transcript:

Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate tra loro Attività o fasi dello sviluppo Analisi dei requisiti (specifiche) Progettazione (design) Codifica o implementazione (codice) Convalida o testing (approvazione) Manutenzione E. Tramontana - Processi Software - 21-Mar-11 1 L analisi dei requisiti è il processo che porta a definire le specifiche, stabilisce i servizi richiesti ed i vincoli del software Requisito: ciascuna delle caratteristiche che il software deve avere Specifica: descrizione rigorosa delle caratteristiche del software I requisiti tendono ad essere granulari (ovvero: molti e piccoli) Feature: un set di requisiti correlati tra loro Una feature permette all utente di soddisfare un obiettivo Fasi per l ingegneria dei requisiti [vedi lezioni da 5 a 7] (1) Studio di fattibilità, (2) Analisi dei requisiti, (3) Specifica dei requisiti, (4) Convalida requisiti Requisiti Funzionali: Cosa il sistema deve fare (funzionalità) Non-funzionali: Come il sistema lo fa (es. affidabilità, efficienza, prestazioni, E. Tramontana - Processi Software - 21-Mar-11 manutenibilità, etc.) 2 Esempi di Feature e Requisiti Progettazione ed implementazione Feature di Firefox 3.6 Browsing privatamente: navigazione del web senza lasciare tracce Password manager: ricordare le password dei siti, senza usare pop-up Awesome Bar: trovare i siti preferiti in pochi secondi One-click bookmark: bookmark, cerca e organizza siti web velocemente e facilmente Requisiti (sintetici) di Firefox 3.7 Eseguire i plug-in in un processo separato per migliorare la stabilità dell applicazione e diminuire i tempi di risposta Migliorare i tempi di startup Ottimizzare caricamento delle pagine E. Tramontana - Processi Software - 21-Mar-11 3 Fase di Progettazione [vedi lezioni da 8 a 18] Il processo che stabilisce la struttura software che realizza le specifiche Attività della progettazione 1. Suddivisione dei requisiti 2. Identificazione sottosistemi, ovvero progettazione architettura software 3. Specifica delle responsabilità dei sottosistemi 4. Progettazione di: interfacce, componenti, strutture dati, algoritmi Ognuna delle attività suddette produce un documento corrispondente (o integra un documento già esistente) che descrive un modello Modello degli oggetti, di sequenza, di transizione stati, strutturale, data-flow Fase di Implementazione Produce un programma eseguibile a partire dalla struttura stabilita Progettazione ed implementazione sono attività correlate e spesso sono alternate E. Tramontana - Processi Software - 21-Mar-11 4

Fase di Implementazione Fase di Convalida (Verifica & Validazione) Consiste nella programmazione ovvero nella traduzione dei modelli del progetto in un programma (codice) e della rimozione degli errori dal programma I programmatori effettuano alcuni test sul programma prodotto per scoprire bug e rimuoverli Per rimuovere i bug 1. Localizzare l errore nel codice 2. Rimuovere l errore nel modello e poi nel codice 3. Effettuare nuovamente il test nel programma La fase di convalida o Verifica e Validazione (V & V) del sistema software intende mostrare che il sistema software è conforme alle specifiche e che soddisfa le richieste (aspettative) del cliente Viene condotta tramite processi di revisione e test del sistema software I test mirano ad eseguire il sistema software in condizioni derivate dalle specifiche di dati reali che il sistema software dovrà elaborare [vedi lezione 21] E. Tramontana - Processi Software - 21-Mar-11 5 E. Tramontana - Processi Software - 21-Mar-11 6 Fase di Test Test di componenti o unità (unit test) I singoli componenti sono testati indipendentemente Componenti potranno essere funzioni, o oggetti, o loro raggruppamenti Test di sistema L intero sistema è testato, dando speciale importanza alle proprietà emergenti Test di accettazione (alpha testing) Test condotti dagli sviluppatori con dati del cliente per verificare che il sistema soddisfi le esigenze del cliente Beta test: test condotti da alcuni clienti sul prodotto quasi completo Quadro riassuntivo Dai requisiti (R) otteniamo il documento della specifica dei requisiti (SRS) Dall SRS ricaviamo il design del sistema (DS) Dal DS ricaviamo il design dettagliato (DD) Da DD ricaviamo codice e test Da DS e da DD ricaviamo come integrare i sottosistemi e come fare i test di sistema Da R e SRS ricaviamo come fare i test di accettazione Prodotti software corrispondenti alle varie fasi di test versione alfa, versione beta, versione golden E. Tramontana - Processi Software - 21-Mar-11 7 E. Tramontana - Processi Software - 21-Mar-11 8

Evoluzione Cascata (Waterfall) [Royce 1970] Il software è intrinsecamente flessibile e può cambiare Al cambiare dei requisiti per cambiamenti dell ambiente a cui è rivolto (business, hardware, etc.), il software deve evolvere se deve rimanere ad essere utile [vedi lezione 19] E. Tramontana - Processi Software - 21-Mar-11 9 E. Tramontana - Processi Software - 21-Mar-11 10 Cascata (Waterfall) Il primo dei processi (anni 70), derivato da altri processi di ingegneria Focalizza sul prodotto completo Si comincia la fase successiva solo se la fase precedente è completa Prima specifica tutto, poi produci tutto, poi testa tutto, Processo statico con tanta documentazione - Lungo tempo per ottenere il prodotto - Poche interazioni con i clienti (solo nella fase iniziale) - Difficoltà ad introdurre i cambiamenti richiesti dal cliente + Consistenza tra artefatti + Ampia documentazione + Utile se i requisiti sono stabili e chiaramente definiti + Usato principalmente per sistemi grandi, complessi, critici, per gestire team numerosi + Alta qualità del codice prodotto E. Tramontana - Processi Software - 21-Mar-11 11 Processo Evolutivo Il processo evolutivo ha due varianti: esplorazione e Build and Fix Sviluppo per esplorazione Gli sviluppatori lavorano con i clienti Dalle specifiche iniziali si arriva per mezzo di trasformazioni successive (evoluzione) fino al sistema software finale Dovrebbe partire da requisiti ben chiari ed aggiungere nuove caratteristiche definite dal cliente Sviluppo Build and Fix Documentazione inesistente o quasi Comprensione limitata del sistema da produrre Costruire la prima versione e modificarla fino a che il cliente è soddisfatto Fase di design pressoché inesistente E. Tramontana - Processi Software - 21-Mar-11 12 Codice prodotto di bassa qualità

Evolutivo Evolutivo Problemi Tempi lunghi Sistemi difficilmente comprensibili e modificabili, probabilmente non corretti Mancanza di visione d insieme del progetto Applicabilità Sistemi di piccole dimensioni Singole parti di sistemi grandi (es. interfaccia utente) Sistemi con vita breve (es. prototipi) E. Tramontana - Processi Software - 21-Mar-11 13 E. Tramontana - Processi Software - 21-Mar-11 14 Altri Processi A Spirale [Boehm 1988] Processo di Sviluppo Incrementale Sono implementate prima le funzionalità di base (o prioritarie) Al codice sviluppato in precedenza è aggiunto altro codice per un altro gruppo di funzionalità Si ripete il passo precedente, fino a completamento Processo CBSE o basato su COTS COTS = componenti esistenti (Components Off The Shelf) Analisi dei componenti esistenti Modifica dei requisiti (?) Progettazione tramite riuso Sviluppo ed integrazione E. Tramontana - Processi Software - 21-Mar-11 15 Focalizza su tanti prodotti parziali (sottosistemi funzionali) Ogni loop (giro della spirale) è una fase (es. loop per requisiti) Ogni loop consiste dei seguenti settori 1. Identificazione obiettivi specifici per la fase corrente 2. Valutazione rischi del progetto Terminologia: Rischio = qualcosa che può impedire il successo e che è sconosciuta Successo: soddisfare tutti i requisiti. Attributi del rischio: (i) probabilità di occorrenza; (ii) impatto sul progetto (ovvero gravità, danno peggiore) 3. Produzione di una parte e convalida della parte 4. Revisione del progetto e pianificazione fase successiva Processo agile + Poco tempo per la prima versione del prodotto + Opportunità di interagire con il cliente Ogni fase produce un codice testato ed integrato nel sistema complessivo E. Tramontana - Processi Software - 21-Mar-11 16

A Spirale Settori del processo a Spirale Stabilire obiettivi Gli obiettivi per la fase corrente sono identificati Valutare il rischio e ridurlo I rischi sono valutati ed attività sono intraprese per ridurre quelli più importanti Sviluppo e convalida Secondo uno dei modelli precedenti Pianificazione Il progetto è revisionato e la prossima fase della spirale è pianificata E. Tramontana - Processi Software - 21-Mar-11 17 E. Tramontana - Processi Software - 21-Mar-11 18 Rational Unified Process (RUP) [ 95-98] Processo iterativo (può essere usato come un processo agile) Fasi (attività): avvio, elaborazione, costruzione, transizione (e produzione) Ripetute più volte 1 iterazione dura 2-6 settimane Tipicamente [1, 2, 2, 1] iterazioni (6 più o meno 3) Fase di avvio (Inception) Comunicazione con il cliente Identificazione requisiti Requisiti descritti da casi d uso 10% requis. chiave in dettaglio Identificazione architettura base Indica principali sottosistemi e relative caratteristiche Pianificazione Identificazione di risorse, principali rischi, un piano dei tempi e le fasi da seguite per E. Tramontana - Processi Software - 21-Mar-11 19 lo sviluppo di parti del software Rational Unified Process (RUP) Fase di elaborazione Comunicazione con il cliente Raffinamento ed ampliamento dei casi d uso (80% requis. chiave identific.) Espansione della rappresentazione dell architettura Sviluppo piano di progetto e rischi Fase di costruzione Sviluppa (progettazione e codifica) o acquisisce i componenti software che serviranno gli utenti nei vari casi d uso Test sui componenti, integrazione dei componenti Alla fine di questa fase il sistema dovrebbe essere funzionante Fase di transizione Fornisce una versione del sistema su cui sono condotti i beta test Sposta il sistema dall ambiente di sviluppo all ambiente reale Fase di Produzione Viene monitorato l utilizzo del software E. Tramontana - Processi Software - 21-Mar-11 20