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

Documenti analoghi
Gestione dello sviluppo software Modelli Base

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A6_3 V2.1. Gestione

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

Gestione dello sviluppo software Modelli Agili

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

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

Acquisizione di prodotti e servizi Parte 2

Configuration Change Release Management

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

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT. Paolo Salvaneschi B1_1 V1.

Tecniche di Programmazione 2009/10

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

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A5_3 V2.1. Controllo Qualità. Ispezioni

Sistemi Qualità e normativa

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

Corso di Ingegneria del Software

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Introduzione all ingegneria dei sistemi ICT

Il ciclo di vita del SW

Università di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi A3_1 V1.3. Agenti

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

Capacity Availability Continuity Infrastructure Management

Il ciclo di vita del SW

3. Ciclo di Vita e Processi di Sviluppo

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi B1_1 V2.1. Reti di Petri

Il ciclo di vita del SW

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

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

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

2. Finalità generali previste dalle indicazioni nazionali

Unified Process - introduzione

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. Modelli di produzione del software

Ingegneria del Software

Materiale didattico. Sommario

Il ciclo di vita del SW

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

A3_3 V3.1 Requisiti e Specifica Modellazione e riuso della conoscenza

SCD IS. Processi SW. Processi Software. Ciclo di vita del SW 1. Ciclo di vita del SW 2. Parole chiave 3

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

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi A5_1 V1.3 Applicazioni B2B

Programmazione Disciplinare: Tecnologie e progettazione di sistemi informatici e di telecomunicazioni Classe:3F-3G- etc...

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

IS Corso di Ingegneria del Software 1

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

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

Ingegneria del Software

Corso di Ingegneria del Software. Modelli di produzione del software

Ingegneria del Software

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

Ingegneria del Software 2. Ciclo di vita. Dipartimento di Informatica Università di Pisa A.A. 2014/15

CICLO DI VITA DEL PROGETTO

Analisi e Progettazione del Software

Tecnologie dei Sistemi di Automazione

1. Ciclo di Vita e Processi di Sviluppo

Sistemi di Interpretazione dati e Diagnosi Overview

IS Corso di Ingegneria del Software 1

Sistemi Informativi e Commercio Elettronico

Lo sviluppo del progetto informatico

A3_4 V2.2 Analisi dei Requisiti e Specifica Relazioni con le altre fasi

SCD IS. Processi SW. Processi Software. Glossario 4. Ciclo di vita del SW 2. Ciclo di vita del SW 1

INGEGNERIA DEL SOFTWARE

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

Unified Modeling Language (UML)

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

Fasi di revisione del progetto

Redazione e Presentazione di Progetti Informatici

Basi di conoscenza nella logica del primo ordine

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

Ingegneria del Software

PROGETTARE SISTEMI INFORMATIVI. Fasi e relativi approcci

Sistemi informativi secondo prospettive combinate

Modelli di Ciclo di Vita del Software (CVS)

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

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

Corso di Ingegneria del Software

INTERAZIONE UOMO-MACCHINA

2. Modellazione dei casi d uso

Sviluppo iterativo ed evolutivo

2. Finalità generali previste dalle indicazioni nazionali

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

RUP e OpenUP. Giuseppe Calavaro

INTERAZIONE UOMO-MACCHINA

MATERIALI PER LA DISCUSSIONE

In passato, occuparsi di informatica era sinonimo di programmare computer

Analisi e Progettazione del Software

PON Metro Agenda digitale metropolitana

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo

Corso di Ingegneria del Software. Introduzione al corso

GESTIONE DEI SISTEMI INFORMATIVI IN AZIENDA. La funzione sistemi informativi

IL PATRIMONIO DI DATI E LE BASI DI DATI

Transcript:

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A2_2 V3.4 Processi Modelli di processi di sviluppo software (cicli di vita) Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie. Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall autore. Sono graditi commenti o suggerimenti per il miglioramento del materiale

INDICE Code and fix Sequenziale Sequenziale: Processi e documenti Sequenziale: Sforzi e Costi Incrementale Con prototipi per la specifica Iterativo Per integrazione (COTS e legacy systems) Sviluppo di un sistema A2 - Processi Paolo Salvaneschi 2

INDICE Modello a spirale Unified Process Modelli agili Sviluppo, controllo e gestione Integrazione con le attività di controllo Integrazione con le attività di gestione A2 - Processi Paolo Salvaneschi 3

Code and fix Un non-modello Attività non identificate né organizzate Progetti non gestiti Utilizzabile in piccolo Codifica Prova A2 - Processi Paolo Salvaneschi 4

Sequenziale Sequenziale o a cascata Definito nel 1970 da Royce Lo sviluppo di software procede attraverso una sequenza lineare di attività. Ogni attività produce un risultato intermedio che viene utilizzato dall attività a valle Uno svolgimento normale dei lavori è tale per cui non si comincia una nuova fase fintantoché non si è terminata la precedente A2 - Processi Paolo Salvaneschi 5

Sequenziale Specificazione Progettazione Codifica Test A2 - Processi Paolo Salvaneschi 6

Sequenziale Specificazione CHE COSA deve fare il prodotto software (risultato dell analisi dei requisiti) Funzioni Dati Caratteristiche non funzionali Obiettivi Contesto Utenti. A2 - Processi Paolo Salvaneschi 7

Sequenziale Progettazione COME deve essere fatto il prodotto software che realizza le specifiche Architettura Componenti Connessioni tra componenti Progetto dettagliato A2 - Processi Paolo Salvaneschi 8

Sequenziale Codifica Realizzazione del codice Sorgenti Prodotto installabile Procedura di installazione A2 - Processi Paolo Salvaneschi 9

Sequenziale Test Acquisizione di una sufficiente fiducia che il codice realizza le prestazioni specificate e progettate Acquisizione di una sufficiente fiducia che il codice soddisfa le esigenze di chi lo ha commissionato A2 - Processi Paolo Salvaneschi 10

Sequenziale Le fasi sono descritte in termini di: Attività e prodotti intermedi Contenuti e struttura dei documenti Responsabilità e ruoli coinvolti Scadenze di consegna dei documenti A2 - Processi Paolo Salvaneschi 11

Sequenziale Boehm 1976 A2 - Processi Paolo Salvaneschi 12

Sequenziale Ogni fase rilascia un documento che serve da ingresso per la fase successiva Specificazione Specifica Progettazione Progetto Codifica Codice Test A2 - Processi Paolo Salvaneschi 13

Sequenziale: Processi e documenti Contesto e obiettivi I processi si manifestano in documenti Specifica Progetto architett. Progetto dettagliato Codice Doc. Utente Piano di Qualita Piano/Rapp. di Test Rapporto di Qualita Piano di Sviluppo Piano di Gestione Config. A2 - Processi Paolo Salvaneschi 14

Sequenziale: Processi e documenti European Space Agency ESA software engineering standards ESA PSS-05-0 A2 - Processi Paolo Salvaneschi 15

Sequenziale: Sforzi e Costi Tipica distribuzione dei costi nelle fasi Verifica e validazione 45% Documentazione 20% Sviluppo 20% Codifica 10% Modifiche e correzioni 15% Sviluppo Specifica e progettazione 10% Manutenzione 80% Vita dell applicazione A2 - Processi Paolo Salvaneschi 16

Sequenziale: Sforzi e Costi MS Windows NT prima versione: 6 milioni di linee di codice, 150 Milioni US $, 4 anni, 250 persone (1000 anni/uomo, 20 linee/giorno/uomo, 25 $/linea) A2 - Processi Paolo Salvaneschi 17

Sforzi e Costi Andamento dei costi di correzione di un errore in funzione della fase del processo in cui è individuato (importanza delle fasi di specifica e progettazione) Boehm 1980 A2 - Processi Paolo Salvaneschi 18

Sequenziale Modello molto criticato Rigidità Necessità di adattarsi a specifiche incerte Necessità di gestire l evoluzione Modello molto usato A2 - Processi Paolo Salvaneschi 19

Incrementale I requisiti e l architettura sono definiti Il sistema è decomposto in componenti E pianificata una progettazione di dettaglio, realizzazione e test incrementale dei componenti Criteri: i componenti più critici, i componenti più urgenti, Integrazioni progressive e rilasci incrementali del sistema A2 - Processi Paolo Salvaneschi 20

Incrementale Specificazione Progettazione architetturale Progett. dettaglio Progett. dettaglio Progett. dettaglio Codifica Test Integrazione e rilascio di Versione 1 Codifica Test Integrazione e rilascio di Versione 2 Codifica Test Integrazione e rilascio di Versione 3 A2 - Processi Paolo Salvaneschi 21

Con prototipi per la specifica Sviluppo di un prototipo come strumento per comprendere i requisiti Specificazione Sviluppo prototipo Progettazione Codifica Test A2 - Processi Paolo Salvaneschi 22

Iterativo Sviluppo di un prototipo ed evoluzione Specificazione Progettazione Sviluppo prototipo Test A2 - Processi Paolo Salvaneschi 23

Per integrazione Tiene conto dei sistemi esistenti (legacy) Valuta l integrazione di prodotti acquisiti dal mercato (COTS) A2 - Processi Paolo Salvaneschi 24

Per integrazione Specificazione Analisi dei componenti esistenti. Analisi alternative (make or buy) Progettazione architetturale Specificazione Software ad hoc Progettazione Codifica Test Integrazione con i componenti (legacy) esistenti Acquisizione e adattamento di componenti di mercato Integrazione e test A2 - Processi Paolo Salvaneschi 25

Sviluppo di un sistema Software Engineering e System Engineering Il software è solo un tipo di componente di un sistema Il processo di sviluppo di un sistema è più complesso ed articolato del processo di sviluppo di un prodotto software A2 - Processi Paolo Salvaneschi 26

Sviluppo di un sistema Specificazione del sistema Progettazione del sistema Software Specificazione Progettazione Codifica Test Altri componenti: Hardware di elaborazione Reti Procedure organizzative Dati. Integrazione e test del sistema A2 - Processi Paolo Salvaneschi 27

Modello a spirale Definito nel 1988 da Boehm Prevede quattro attività principali da iterare ciclicamente Definizione degli obiettivi Analisi dei rischi Sviluppo e validazione Pianificazione Non e un modello, ma uno strumento per descrivere i modelli A2 - Processi Paolo Salvaneschi 28

Modello a spirale Definizione degli obiettivi Analisi dei rischi Pianificazione Barry Boehm 1980 Sviluppo e validazione A2 - Processi Paolo Salvaneschi 29

Modello a spirale Fasi Definizione degli obiettivi Requisiti, identificazione di rischi, alternative (es make or buy), vincoli, piano di gestione Analisi dei rischi Studio di conseguenze e alternative, prototipi e simulazioni Sviluppo e validazione Realizzazione del prodotto e verifica Pianificazione Revisione dei risultati, Decisione circa il proseguimento, pianificazione del ciclo A2 - Processi Paolo Salvaneschi 30

Modello a spirale Introduce la gestione del rischio Evidenzia gli aspetti gestionali Pianificazione Definizione degli obiettivi Incorpora cicli sequenziali e per prototipi A2 - Processi Paolo Salvaneschi 31

Unified Process (UP o RUP) Processo iterativo e incrementale guidato dai casi d uso e centrato attorno all architettura Utilizza UML Unified Process Il processo è costituito da più cicli di sviluppo. Ogni ciclo produce una versione rilasciabile del prodotto Ogni ciclo è costituito da Fasi (parzialmente sovrapposte) Fase di avviamento Fase di elaborazione Fase di realizzazione Fase di transizione Verifiche possibili al termine di ogni fase e ogni ciclo A2 - Processi Paolo Salvaneschi 32

Fase di avviamento Valutazione iniziale del progetto. Sforzo costo, tempo (studio di fattibilità) Fase di elaborazione Unified Process Sviluppo iterativo della struttura portante del prodotto attraverso i casi d uso più importanti (architettura, baseline) Fase di realizzazione Accrescimento iterativo (guidato da casi d uso) e perfettivo delle funzionalità necessarie per il rilascio Fase di transizione Messa in servizio A2 - Processi Paolo Salvaneschi 33

Modelli agili Il problema Tempi stretti e requisiti incerti Approccio (criteri gestionali, valori, euristiche, Importanza delle persone Adattamento vs pianificazione Poca documentazione.. A2 - Processi Paolo Salvaneschi 34

Modelli agili Agile Modeling http://www.agilemodeling.com http://www.agilemanifesto.com extreme Programming (Kent Beck) http://www.xprogramming.com SCRUM http://www.scrumalliance.org/pages/what_is_scrum A2 - Processi Paolo Salvaneschi 35

Modelli agili A2 - Processi Paolo Salvaneschi 36

Modelli agili A2 - Processi Paolo Salvaneschi 37

Modelli agili In che modo gli elementi agili (principi, regole organizzative, tecniche, ) si sostituiscono/integrano con processi più strutturati (specifica-architettura-..)? Gli elementi agili includono: Aspetti dannosi per il processo software Aspetti indifferenti e poco usati Aspetti buoni e utilizzabili con profitto integrati in processi strutturati A2 - Processi Paolo Salvaneschi 38

Modelli agili The ugly Rejection of upfront tasks (requirements/specification, architecture). The indifferent Pair programming. The good Short iterations. Bertrand Meyer: Agile! The Good, the Hype and the Ugly Springer-Verlag, 2014 A2 - Processi Paolo Salvaneschi 39

Sviluppo, controllo e gestione La realizzazione di un prodotto software richiede la conduzione di un insieme di processi Specificare Progettare Codificare Documentare Gestire ordinatamente gli oggetti che si realizzano Pianificare.. Definire ed eseguire test Eseguire verifiche sui documenti A2 - Processi Paolo Salvaneschi 40

Sviluppo, controllo e gestione SVILUPPO CONTROLLO GESTIONE Uno schema semplificato: i processi di sviluppo, controllo e gestione A2 - Processi Paolo Salvaneschi 41

Integrazione con le attività di controllo Le attività di controllo raccolgono misure dal processo di sviluppo e retroagiscono sullo stesso Le attività di controllo possono essere eseguite durante tutte le fasi del processo di sviluppo Es: verifica della corrispondenza tra progetto e specifica Tutte le funzioni sono state allocate? L architettura progettata è adeguata rispetto alle caratteristiche specificate (es. tempi di risposta) A2 - Processi Paolo Salvaneschi 42

Integrazione con le attività di controllo Boehm 1976 A2 - Processi Paolo Salvaneschi 43

Integrazione con le attività di controllo Il modello a V Jensen, Tonies 1979 A2 - Processi Paolo Salvaneschi 44

Integrazione con le attività di gestione Le attività di gestione si applicano trasversalmente sia allo sviluppo che al controllo Es. Sviluppo e controllo rilasciano documenti (documento di progettazione, moduli di codice sorgente, casi di test, ). Tutti devono essere ordinatamente conservati (data base di progetto) Devono essere gestite le versioni Deve essere gestita la configurazione degli oggetti che produce un sistema consegnabile A2 - Processi Paolo Salvaneschi 45