Corso di Ingegneria del Software. Modelli di produzione del software

Documenti analoghi
Ingegneria del Software

Corso di Ingegneria del Software. Modelli di produzione del software

Gestione dello sviluppo software Modelli Base

Corso di Ingegneria del Software. Activity Diagram

Metodologie e modelli di progetto

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Modelli di Ciclo di Vita del Software (CVS)

IS Corso di Ingegneria del Software 1

Progettazione di basi di dati

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

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

Materiale didattico. Sommario

3. Ciclo di Vita e Processi di Sviluppo

UML I diagrammi implementativi

Fondamenti VBA. Che cos è VBA

Programmazione con Java

Traduzione e interpretazione

La Raccolta dei Requisiti. Corso di Ingegneria del Software Anno Accademico 2012/2013

Analisi e Progettazione del Software

Web Application Engineering

Introduzione ai casi d uso

Fasi di revisione del progetto

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati

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

Introduzione alla programmazione

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

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

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

Analisi e specifica dei requisiti

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Ingegneria del Software 3. Analisi dei requisiti. Dipartimento di Informatica Università di Pisa A.A. 2014/15

2. Modellazione dei casi d uso

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Tecnico in meteo-climatologia operativa

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

REGIONE BASILICATA UFFICIO S. I. R. S.

NORME PER LA PREDISPOSIZIONE DEL PIANO DI FABBRICAZIONE E CONTROLLO (PFC)

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Lezione 6 Introduzione al C++ Mauro Piccolo

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

LA PROGETTAZIONE DELLA BASE DI DATI. la progettazione della base di dati 1

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo

Corso di Ingegneria del Software. Introduzione al corso

Piano dei Test e Collaudo del software Titolo Documento

Impostazioni progettuali dello stabilimento

NEGOZIO ELETTRONICO. Premesse e Funzionalità

Unità di apprendimento 6. Dal problema al programma

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

Introduzione alla programmazione strutturata

Progetti di ricerca: cenni metodologici. Alessandro Tuccio Provincia Autonoma di Trento Servizio Università e ricerca scientifica

REGIONE PUGLIA P.O.R. PUGLIA Misura 1.5 Azione 1 - Costruzione del Sistema Informativo Pugliese dell Ambiente (SIPA )

Progetto sito web Gigli Elisa

PROGETTARE SISTEMI INFORMATIVI. Fasi e relativi approcci

Oggetto Progetto Responsabile di progetto GESTIONE DELLA MODIFICA

Acquisizione di prodotti e servizi Parte 2

DESCRIZIONE. del brevetto per invenzione industriale dal titolo: METODO PER ASSOCIARE UNA IMMAGINE A UNA SEQUENZA DI

Elementi di programmazione

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

Corso di Laurea in Informatica Basi di Dati a.a

Stato dell arte sulle tecniche di testing di Sistemi Embedded

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

Tesi di Laurea Triennale in Ingegneria Informatica REALIZZAZIONE DI UN APPLICATIVO PER LA GESTIONE DI FOGLI DI LAVORO INTEGRATO IN OUTLOOK 2010

Il PROCESSO UNIFICATO

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Obblighi di controllo dei Fornitori esterni. Rischio tecnologico

Introduzione ai casi d uso. Iolanda Salinari

Concetti Introduttivi. Il Computer

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Rappresentazione con i diagrammi di flusso (Flow - chart)

Release MOVIO SCMS. Versione Tutorial. Commenti Dichiarazione di copyright

Verifica e validazione: introduzione

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica. Compressione dati

Ciclo di vita di un sistema informativo

Automatic generation of test cases

Modelli Matematici Ambientali 1. Mastroeni/Cioni (Dipartimento di Informatica/Scuola Normale Superiore) Lezione 13/03 A.A.

Pianificazione e sviluppo SIT. Corso: Progettazione di SIT. Lezione 1: Corso: Progettazione di SIT. Progettazione SIT

LEZIONE 4. Hardware (periferiche) Software (algoritmi)

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

IL PROCESSO di PROGETTAZIONE

EMISSIONE DELL OFFERTA E RIESAME DEL CONTRATTO Rev. 00 del 11/11/08

IS Corso di Ingegneria del Software 1

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

CICLO DI VITA DEL PROGETTO

AREA PROFESSIONALE DI RIFERIMENTO 16. TECNICO DELL ABBIGLIAMENTO. Nomenclatura delle Unità Professioni (NUP/ISTAT):

Ingegneria del Software. Simulazione Prova parziale del 24/4/2015

LA RELAZIONE TRA ICT, INFORMAZIONE E ORGANIZZAZIONE

LA PIANIFICAZIONE DEI PROGETTI

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

LINEE GUIDA PER LA REALIZZAZIONE DELLA RELAZIONE FINALE del PROGETTO STRADALE. I.S.IS. Buonarroti - Fossombroni SETTORE TECNOLOGICO

PROBLEMI ALGORITMI E PROGRAMMAZIONE

MODULO 07. La soluzione dei problemi mediante gli algoritmi

LA RELAZIONE TRA ICT, INFORMAZIONE E ORGANIZZAZIONE

Il nuovo riuso. L Innovazione in Campania

Transcript:

Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it

1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 Modelli evolutivi 2.4 Modelli agili 3. Comparazione dei modelli 4. Bibliografia

1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 Modelli evolutivi 2.4 Modelli agili 3. Comparazione dei modelli 4. Bibliografia

Generalità Lo studio del modello a cascata è importante perchè 1. è il modello più noto 2. l analisi delle varie fasi permette di descrivere delle attività che fanno parte di tutti i modelli di processo, anche se raggruppate e pianificate in modi diversi. (waterfall) prevede una successione di fasi consecutive. Ciascuna fase produce dei semilavorati (deliverable). I semilavorati sono documenti relativi al processo, oppure documentazione del prodotto e codice sorgente o compilato, che vengono ulteriormente elaborati dalle fasi successive.

Generalità Lo studio del modello a cascata è importante perchè 1. è il modello più noto 2. l analisi delle varie fasi permette di descrivere delle attività che fanno parte di tutti i modelli di processo, anche se raggruppate e pianificate in modi diversi. (waterfall) prevede una successione di fasi consecutive. Ciascuna fase produce dei semilavorati (deliverable). I semilavorati sono documenti relativi al processo, oppure documentazione del prodotto e codice sorgente o compilato, che vengono ulteriormente elaborati dalle fasi successive.

Generalità Lo studio del modello a cascata è importante perchè 1. è il modello più noto 2. l analisi delle varie fasi permette di descrivere delle attività che fanno parte di tutti i modelli di processo, anche se raggruppate e pianificate in modi diversi. (waterfall) prevede una successione di fasi consecutive. Ciascuna fase produce dei semilavorati (deliverable). I semilavorati sono documenti relativi al processo, oppure documentazione del prodotto e codice sorgente o compilato, che vengono ulteriormente elaborati dalle fasi successive.

Generalità Lo studio del modello a cascata è importante perchè 1. è il modello più noto 2. l analisi delle varie fasi permette di descrivere delle attività che fanno parte di tutti i modelli di processo, anche se raggruppate e pianificate in modi diversi. (waterfall) prevede una successione di fasi consecutive. Ciascuna fase produce dei semilavorati (deliverable). I semilavorati sono documenti relativi al processo, oppure documentazione del prodotto e codice sorgente o compilato, che vengono ulteriormente elaborati dalle fasi successive.

Caratteristiche - 1/3 Il software è sviluppato attraverso una successione lineare ordinata di fasi (stadi) di lavoro. Il numero, il contenuto e la denominazione delle fasi può variare da un organizzazione all altra, e da un progetto all altro. Specifica dei requisiti! Disegno sistema! Codifica! Testing! Messa in esercizio! Gestione e Manutenzione Ogni fase ha in input i semilavorati usciti dalla fase precedente e produce output che sono in ingresso alla fase successiva.

Caratteristiche - 1/3 Contemporaneamente a queste fasi, e nel corso di tutto il processo, si svolgono anche queste attività di supporto: gestione controllo di qualità documentazione

Caratteristiche - 2/3 Le fasi sono descritte in termini di: prodotti in ingresso alle attività e dai task che le compongono attività e compiti da svolgere prodotti in uscita dalle attività e dai task che le compongono responsabilità e ruoli riguardo le attività controlli da effettuare per validare input ed output dipendenze causali e temporali tra le attività documentazione da produrre

Caratteristiche - 3/3 Una fase inizia solo quando la precedente è stata completata; assenza feedback Le fasi partizionano il progetto: ogno fase serve ad uno scopo In ingresso ad ogni attività è un documento/prodotto proveniente dalla fase immediatamente precedente, che, una volta lavorato, è in input alla fase successiva.

Figura: (waterfall model)

Studio di fattibilità: caratteristiche Lo studio di fattibilità serve a stabilire se un dato prodotto può essere realizzato e se è conveniente realizzarlo. Lo studio di fattibilità deve accertare quali sono le possibili strategie per la sua realizzazione valutare la quantità di risorse necessarie stimare costi In base al risultato dello studio di fattibilità, il committente decide se firmare o no il contratto per la fornitura del software.

Studio di fattibilità: caratteristiche Il semilavorato prodotto dallo studio di fattibilità è un documento che dovrebbe contenere queste informazioni: o una descrizione del problema che deve essere risolto dall applicazione, in termini di obiettivi e vincoli; o un insieme di scenari possibili per la soluzione, sulla base di un analisi dello stato dell arte, cioè delle conoscenze e delle tecnologie disponibili; o le modalità di sviluppo per le alternative proposte, insieme a una stima dei costi e dei tempi richiesti.

Studio di fattibilità: problemi CASO 1 La rilevanza economica di questa fase può influenzare negativamente la qualità dello studio di fattibilità poichè il produttore di software, per non perdere il contratto, può sottovalutare i costi e le difficoltà della proposta, ovvero sopravvalutare le proprie capacità e risorse. Questi errori di valutazione rischiano poi di causare ritardi e inadempienze contrattuali, con perdite economiche per il fornitore o per il committente. CASO 2 A volte il committente paga lo studio di fattibilità, che in questo caso si può considerare un prodotto finito anche se il progetto iniziale cade. In questo caso lo studio di fattibilità è servito ad evitare il danno economico derivante dalla decisione di sviluppare un prodotto eccessivamente costoso o addirittura irrealizzabile.

Le fasi - Raccolta ed analisi dei requisiti Questa fase serve a capire e descrivere nel modo più completo e preciso possibile che cosa vuole il committente dal prodotto software.

Le fasi - Raccolta ed analisi dei requisiti La Raccolta ed analisi dei requisiti utente deve produrre una descrizione formale delle esigenze del cliente che il software deve soddisfare. La fonte principale dei requisiti sono i futuri utenti del software che deve essere sviluppato. Il metodo di raccolta principale sono le interviste o dei test svolti con l ausilio di prototipi. In questa fase deve essere definito un accordo (senza ambiguità) tra cliente e fornitore su cosa deve fare il software (funzionalità) sulle caratteristiche che dovrà avere su come il software dovrà essere utilizzato dall utente

Le fasi - Raccolta ed analisi dei requisiti La fase di analisi e specifica può essere suddivisa nelle sottofasi di definizione dei requisiti specifica dei requisiti specifica dei requisiti del software.

Le fasi - - Esempio 1/3 Definizione dei requisiti dell utente 1. L applicazione deve permettere la rappresentazione di file creati da altre applicazioni l elaborazione di file creati da altre applicazioni (detti file esterni)

Le fasi - Raccolta ed analisi dei requisiti - Esempio 2/3 Specifica dei requisiti dell utente 1.1 L applicazione deve permettere all utente di definire i tipi dei file da elaborare. 1.2 Ad ogni tipo di file corrisponde un programma ed una icona che viene usata per rappresentare il file. Se al tipo di un file non è associata alcuna icona, viene usata un icona default non associata ad alcun tipo. 1.3 L applicazione deve permettere all utente di definire l icona associata ai tipi di file esterni. 1.4 La selezione di un icona rappresentante un file esterno causa l elaborazione del file rappresentato, per mezzo del programma associato al tipo del file stesso.

Le fasi - Raccolta ed analisi dei requisiti - Esempio 3/3 Specifica dei requisiti del software 1.1.1 L utente può definire i tipi dei file sia per mezzo di menù. 1.2.1 L utente può associare un programma esterno ad un tipo di file esterno sia per mezzo di finestre di dialogo. 1.2.2 L utente può associare un icona ad un tipo di file esterno per mezzo di una finestra di selezione grafica. 1.3.1 L applicazione deve comprendere una libreria di icone già pronte ed uno strumento grafico che permetta all utente di crearne di nuove. 1.4.1 La selezione di un icona rappresentante un file esterno può avvenire sia per mezzo del mouse che della tastiera.

Le fasi - Raccolta ed analisi dei requisiti Tipologia di requisiti da definire: Funzionali (ciò che il software deve fare, i servizi che eroga per ĺıutente). Descritti generalmente in termini di relazioni fra dati di ingresso e dati di uscita. Non funzionali (caratteristiche generali che dovrà avere il software, quali affidabilità, usabilità, prestazioni, portabilità in vari ambienti, ecc.). Tecnologici (le tecnologie da utilizzare per lo sviluppo, ad es, JAVA, UML, ecc ). Inversi (le operazioni che il software non deve compiere e che riguardano spesso la sicurezza).

Le fasi - Raccolta ed analisi dei requisiti Il prodotto tipico della fase di specifica dei requisiti è costituito dai seguenti documenti: Documento di Specifica dei Requisiti (DSR). È il fondamento di tutto il lavoro successivo, e, se il prodotto è sviluppato per un committente esterno, ha anche un valore legale poichè viene incluso nel contratto. Manuale Utente Descrive il comportamento del sistema dal punto di vista dell utente Piano di Test di Sistema Definisce come verranno eseguiti i test finali per convalidare il prodotto rispetto ai requisiti. Anche questo documento può avere valore legale, se firmato dal committente: il piano di test serve come piano di collaudo per l accettazione del sistema.

Le fasi - Raccolta ed analisi dei requisiti Il DSR della fase di specifica dei requisiti deve essere completo Deve contenere esplicitamente tutte le caratteristiche consistente Non deve contenere requisiti contraddittori. Può essere scritto usando un linguaggio formale, il linguaggio naturale o linguaggi semi-formali (naturali più diagrammi esplicativi, glossari ecc.).