13. Ciclo di Vita e Processi di Sviluppo

Похожие документы
2. Ciclo di Vita e Processi di Sviluppo

Ciclo di vita del progetto

Concetti di base di ingegneria del software

3. Ciclo di Vita e Processi di Sviluppo

UML e (R)UP (an overview)

12. Evoluzione del Software

11. Evoluzione del Software

Rational Unified Process Introduzione

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

4.1 Che cos è l ideazione

Progetto. Portale Turistico Regionale. Andrea Polini, Oliviero Riganelli, Massimo Troiani. Ingegneria del Software Corso di Laurea in Informatica

PROCEDURA PR.07/03. Progettazione e sviluppo software STATO DI REVISIONE. Verificato da

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

7. Architetture Software

Piano di gestione della qualità

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

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

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

MODELLO PER LO SVILUPPO DEL PRODOTTO

MANUALE DELLA QUALITÀ Pag. 1 di 6

IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA. Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale.

Pianificazione e progettazione

LA GESTIONE DELLE INFORMAZIONI IN AZIENDA: LA FUNZIONE SISTEMI INFORMATIVI 173 7/001.0

PASSAGGIO ALLA ISO 9000:2000 LA GESTIONE DELLE PICCOLE AZIENDE IN OTTICA VISION

Tecnologie dell informazione e della comunicazione per le aziende

MANUALE DELLA QUALITA Revisione: Sezione 4 SISTEMA DI GESTIONE PER LA QUALITA

Ciclo di vita dimensionale

SISTEMI DI MISURAZIONE DELLA PERFORMANCE

Configuration Management

Effettuare gli audit interni

Il modello di ottimizzazione SAM

Ciclo di vita del software

Il marketing dei servizi

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

Artifact Centric Business Processes (I)

Le possibili sinergie della Direzione e della AQ orientate alla Buona Gestione del C.d.S.

GESTIONE DELLE NON CONFORMITÀ E RECLAMI

ISO/IEC 2700:2013. Principali modifiche e piano di transizione alla nuova edizione. DNV Business Assurance. All rights reserved.

5. Requisiti del Software II

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

BiblioTech - Personal Digital Library

Il Sistema di Valutazione nel Gruppo UniCredit

Il Direttore DISCIPLINARE DEL PROCESSO DI BUDGET 2015

GESTIONE AVANZATA DEI MATERIALI

CAPITOLO 20 AGGIORNAMENTO DEL CODICE DI STOCCAGGIO

MANUALE DELLA QUALITÀ SEZIONE 5.1: FUNZIONAMENTO DEL SISTEMA DI GESTIONE PER LA QUALITÀ

PROGETTO TECNICO SISTEMA DI GESTIONE QUALITA IN CONFORMITÀ ALLA NORMA. UNI EN ISO 9001 (ed. 2008) n. 03 del 31/01/09 Salvatore Ragusa

COMUNE DI SOLBIATE ARNO

Modellazione dei dati in UML

SCHEDA REQUISITI PER LA QUALIFICAZIONE DEL CORSO PER ESPERTI IN MARKETING & COMUNICAZIONE

S i s t e m a d i v a l u t a z i o n e d e l l e p r e s t a z i o n i d e i d i p e n d e n t i

IL CASO DELL AZIENDA. Perché SAP.

Automazione Industriale (scheduling+mms) scheduling+mms.

A cura di Giorgio Mezzasalma

PROXYMA Contrà San Silvestro, Vicenza Tel Fax

OFFERTA FORMATIVA INDIRIZZI DI STUDIO

La Simbiosi Industriale nel contesto del Piano Gestione Rifiuti della Regione Emilia Romagna

La certificazione ISO 9001:2000 nelle scuole

cin>>c8 s.r.l. Consuntivo Pagina 1 di 11 Consuntivo

Ibpm è lo strumento per la gestione dei processi, dalla modellazione, all esecuzione, al monitoraggio.

Segmentare ovvero capire il contesto di mercato di riferimento

Cenni sull ingegneria del software e sulla qualità dei programmi

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

I Sistemi di Gestione Integrata Qualità, Ambiente e Sicurezza alla luce delle novità delle nuove edizioni delle norme ISO 9001 e 14001

Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: Pag. 1

PrometeoQualità. Manuale Documenti

Business Process Management

Programmi e Oggetti Software

Sistema di gestione della Responsabilità Sociale

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

Generazione Automatica di Asserzioni da Modelli di Specifica

I modelli normativi. I modelli per l eccellenza. I modelli di gestione per la qualità. ! I modelli normativi. ! I modelli per l eccellenza

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

SVILUPPO, CERTIFICAZIONE E MIGLIORAMENTO DEL SISTEMA DI GESTIONE PER LA SICUREZZA SECONDO LA NORMA BS OHSAS 18001:2007

Dai sistemi documentari al knowledge management: un'opportunità per la pubblica amministrazione

DOCUMENTO DI SPECIFICA DEI REQUISITI SOFTWARE

LA LOGISTICA INTEGRATA

Procedura SODDISFAZIONE DEL CLIENTE E MIGLIORAMENTO CONTINUO

SISTEMA DI GESTIONE INTEGRATO. Audit

RUP (Rational Unified Process)

Raggruppamenti Conti Movimenti

Project Cycle Management

Implementing a new ADT based on the HL7 version 3 RIM. Esempio

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

IV. TEMPI E RISORSE: STRUMENTI DI PIANIFICAZIONE E CONTROLLO

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

GESTIONE DEL MOVIMENTO DEL PERSONALE IN AMBIENTE INTRANET. Open System s.r.l.

GUIDA - Business Plan Piano d impresa a 3/5 anni

APQP. Un sistema avanzato di gestione o una gabbia?

La cultura della Sicurezza nelle PMI Ing. Francesco Guatelli Parma, 23 marzo 2006 Unione Parmense degli Industriali

Транскрипт:

13. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 1 / 30

Modelli di Processo Un processo software è costituito da un insieme di attività che conducono alla realizzazione di un prodotto software Nessuna soluzione generale! Infatti molte organizzazioni sviluppano proprio processo di sviluppo Forte dipendenza dalla persone e dall organizzazione interna Principali modelli di processo discussi (Attenzione! sono solo categorie): Modello a Cascata (waterfall) Sviluppo Evolutivo Component-based Software Engineering (CBSE) Sviluppo tramite metodi formali (cleanroom development, B method, Model Driven Development) Nella realtà spesso processi utilizzati sono una commistione dei diversi modelli (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 2 / 30

Processo a Cascata Primo processo di sviluppo apparso in letteratura (Royce 1970). Fasi dello sviluppo strutturate in accordo alle attività fondamentali: Analisi e definizione dei requisiti Progettazione del sistema e del software Implementazione e test di unità Integrazione e test di sistema Istallazione e mantenimento (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 3 / 30

Processo a Cascata le varie attività in realtà vengono ripetute diverse volte ma comunque ad un certo punto congelate - ogni attività fornisce manufatti alle fasi successive attraverso appositi documenti terminata definitivamente un attività questa NON viene ulteriormente riconsiderata nel seguito in generale auspicabile sovrapposizione dei vari team (se assegnati sulle fasi) per passaggio di informazioni Conseguenze principali: I requisiti vengono fissati ad un certo punto e mai più modificati Prematura decisione sui requisiti rende il processo sordo alle successive richieste di adattamento dei requisiti da parte del cliente. Processo fortemente documentato e guidato dal rilascio di documenti (document driven). Visibilità alta o bassa? Timeliness? Quando applicarlo? (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 4 / 30

Processo Evolutivo Il prodotto viene sviluppato cercando dapprima di derivare un prototipo e poi per incrementi successivi fino a raggiungere un sistema soddisfacente Sviluppo Esplorativo - strette fasi di interazione con l utente Prototipo usa e getta (Throaway Prototyping) - scopo principale del prototipo è la comprensione dei requisiti Conseguenze principali: L organizzazione del sistema tende ad essere poco strutturata a causa dei continui cambiamenti Induce probabili difficoltà in fasi di mantenimento Visibilità alta o bassa? Timeliness? Quando applicarlo? Do it twice - Baker (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 5 / 30

Processo Evolutivo Il prodotto viene sviluppato cercando dapprima di derivare un prototipo e poi per incrementi successivi fino a raggiungere un sistema soddisfacente Sviluppo Esplorativo - strette fasi di interazione con l utente Prototipo usa e getta (Throaway Prototyping) - scopo principale del prototipo è la comprensione dei requisiti Conseguenze principali: L organizzazione del sistema tende ad essere poco strutturata a causa dei continui cambiamenti Induce probabili difficoltà in fasi di mantenimento Visibilità alta o bassa? Timeliness? Quando applicarlo? Do it twice - Baker (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 5 / 30

Component based software engineering generalità Aumento nella complessità dei sistemi implica forte spinta al riuso (interno e non - COTS) Obiettivo di CBSE: implementare un sistema come integrazione di componenti preconfezionati. Un po di storia... Conferenza di Garmisch 1968 primi modelli a componenti OLE-X (anni ottanta) oggi... Modelli di componenti Desktop (COM, Bonomo...) Modelli di componenenti distribuiti (CCM, EJB,...) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 6 / 30

Component based Software Engineering Modelli di componenti Definiscono una piattaforma di supporto al riuso ed una serie di regole per: interfacce da definire meccanismi di interazione tra componenti impacchettare il componente (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 7 / 30

Component based Software Engineering Processo di sviluppo Non si sono ancora evidenziati processi di sviluppo condivisi in questo ambito. Principali differenze comunque si avranno con introduzione di nuove fasi nello sviluppo e nuove iterazioni. Component provisioning Requirements adaptation Design orientato al riuso Sviluppo orientato all integrazione ed adattamento (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 8 / 30

Component based Software Engineering Conseguenze Visibilità alta o bassa? Timeliness? Produttività? Quando applicarlo? Approccio profondamente differente allo sviluppo. Introduzione all interno di un organizzazione richiede training e persone con forti doti di astrazione. Capacità di sviluppare sistemi complessi in minor tempo. Riduce il rischio dello sviluppo. Tendenzialmente il prodotto finale dovrebbe essere migliore. Sviluppo di un semplice mailer di posta elettronica (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 9 / 30

Processi Iterativi Cercano di fondere le strutture dei processi evolutivi e a cascata cercando di mantenerne le qualità positive rimuovendo quelle negative. Basati sul concetto di iterazione (la specifica si sviluppa con il sistema): Rilascio incrementale Sviluppo a spirale (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 10 / 30

Rilascio incrementale Processo procede con tanti mini waterfall in sequenza Ad ogni iterazione viene rilasciato un sistema funzionante che potrà essere utilizzato dal cliente. Si pianificano iterazioni successive introducendo via via nuove funzionalità Una volta attivata un iterazione deve essere terminata senza interferenze Ogni iterazione dovrebbe tendere ad aumentare il sistema di una porzione gestibile (20.000 LOC?) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 11 / 30

Rilascio incrementale vantaggi Principali vantaggi: clienti non devono aspettare rilascio finale prima di poter utilizzare il sistema Uso sul prototipo comporta scoperta, definizione e modifica di requisiti si riduce rischio di fallimento funzionalità più importanti maggiormente testate (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 12 / 30

Sviluppo a Spirale Proposto da Boehm nel 1988 introduce gestione del rischio nella pianificazione delle varie iterazioni. Rappresentabile su un piano tramite una spirale dove ogni quadrante consiste di attività volte a: Specificare gli obiettivi dell iterazione ed itentificazione dei rischi Valutare il rischio e definire techniche per la sua gestione Procedere allo sviluppo ed alla validazione Pianificazione, si procede a valutare la necessità di un ulteriore iterazione. (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 13 / 30

Processi Iterativi Processi di Sviluppo Software Visibilità alta o bassa? Timeliness? Quando applicarlo? (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 14 / 30

Il Processo Unificato UP è un processo industriale standardizzato per lo sviluppo del software: è il processo di riferimento che si associa all uso di UML è free descritto nel libro The Unified Software Development Process Caratteristiche salienti: Guidato dal rischio Guidato dai Casi d uso È incentrato sull architettura Processo Iterativo incrementale UP è un processo generico di sviluppo del software. Deve essere adattato per ogni singolo progetto: Standard interni, formati di documenti, tools, databases, modifiche al ciclo di vita... Rational Unified Process (RUP) è una particolare istanza di UP: è un prodotto di Rational Corporation Deve esssere adattato ma precisamente definito (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 15 / 30

Storia dello UP Processi di Sviluppo Software (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 16 / 30

Iterazioni Un iterazione può essere considerata come un mini progetto che include le seguenti attività: Pianificazione Analisi e Design Implementazione Integrazione e Test Rilascio interno o esterno il prodotto viene derivato attraverso una sequenza di iterazioni le iterazioni si possono sovrapporre le iterazioni sono organizzate in fasi Favorire agilità: iterazioni timeboxed e durata ridotta (2-3 settimane) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 17 / 30

Flusso di lavoro nelle iterazioni nello UP Ogni iterazione può contenere tutte le attività del flusso di lavoro con una differente enfasi su ognuna di esse in dipendenza dello stato di avanzamento del progetto (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 18 / 30

Baselines Ogni iterazione genera una baseline una baseline è un insieme di artefatti rivisti ed approvati che: Forniscono un base condivisa per ulteriore sviluppo Possono essere modificati solo attraverso una procedura formale Un incremento è la differenza tra la baseline generata ad una iterazione e quella generata all iterazione successiva (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 19 / 30

Struttura dello UP Processi di Sviluppo Software Dipendentemente dalla dimensione del progetto ogni fase può includere diverse iterazioni per ognuna delle quattro fasi Una fase si conclude con una milestone Fasi caratterizzate da: obiettivi, focus dei flussi di lavoro (attività), milestone (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 20 / 30

Fasi e flussi di lavoro dello UP (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 21 / 30

Avvio (Inception) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 22 / 30

Avvio (Inception) Condizioni da soddisfare dalla fase e artefatti attesi: Lo scopo del sistema è stato definito (documento di alto livello con i requisiti principali) Definire l ambito del progetto (I requisiti base del sistema sono stati catturati e concordati con i vari attori Casi d uso 10-20 %) Una visione architetturale è stata definita (documento iniziale di architettura) Una prima valutazione del rishio è stata derivata (documento o archivio di valutazione dei rischi) Una prima valutazione dei costi e dei tempi (pianificazione del progetto) Un caso illustrativo di business è stato prodotto con evidenziazione dei vantaggi (caso di business) Fattibilità del progetto è stata confermata (definizione di uno o più prototipi) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 23 / 30

Elaborazione (Elaboration) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 24 / 30

Elaborazione (Elaboration) Condizioni da soddisfare dalla fase ed artefatti attesi: Creare Baseline robusta ed eseguibile (la baseline è eseguibile) Baseline eseguibile dimostra che i rischi sono stati identificati e risolti (modello statico UML, modello dinamico UML, casi d uso) Revisione della stima dei rischi (valutazione aggiornata) Visione d insieme del sistema stabilizzata (80 % dei casi d uso definiti - documento descrittivo del sistema) La parti hanno approvato la pianificazione di progetto pianificazione a livello di dettaglio tale da consentire formulazioni realistiche di tempi, costi e risorse richieste (pianificazione aggiornata) Accordo finale tra le parti (Accordo firmato) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 25 / 30

Costruzione (Construction) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 26 / 30

Costruzione (Construction) Condizioni da soddisfare dalla fase ed artefatti attesi: Software stabile e di qualità sufficiente ad essere rilasciato (prodotto software, modello UML, suite di test) verifica dei costi rispetto alla pianificazione (pianificazione del progetto) Accordo tra le parti per il rilascio (manuale utente e descrizione del rilascio) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 27 / 30

Transizione (Transition) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 28 / 30

Transizione (Transition) Condizioni da soddisfare dalla fase ed artefatti attesi: Il beta test è ultimato, le necessarie modifiche al software sono state effettuate, gli utenti concordano con l affermare che il sistema è stato rilasciato con successo (prodotto software) Gli utenti utilizzano attivamente il prodotto (pianificazione del supporto) definizione delle strategie di supporto (manuali utente aggiornati) (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 29 / 30

Scenari d uso 1 Si vuole implementare da zero un sistema per la gestione delle buste paga di un azienda visto che il vecchio sistema manifesta problemi di affidabilità e performance 2 Si vuole reimplementare l intero sistema di automazione di ufficio dell azienda al fine di poterlo integrare pienamente con altri sistemi quali ad esempio le movimentazioni di magazzino 3 Un ricco magnate richiede di sviluppare un nuovo software che permetta di comandare attraverso il cellulare tutti gli elettrodomestici di casa. 4 Si vuole implementare un sistema per il controllo di un sistema di dighe azionate dal movimento della marea. (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 30 / 30

Scenari d uso 1 Si vuole implementare da zero un sistema per la gestione delle buste paga di un azienda visto che il vecchio sistema manifesta problemi di affidabilità e performance 2 Si vuole reimplementare l intero sistema di automazione di ufficio dell azienda al fine di poterlo integrare pienamente con altri sistemi quali ad esempio le movimentazioni di magazzino 3 Un ricco magnate richiede di sviluppare un nuovo software che permetta di comandare attraverso il cellulare tutti gli elettrodomestici di casa. 4 Si vuole implementare un sistema per il controllo di un sistema di dighe azionate dal movimento della marea. (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 30 / 30

Scenari d uso 1 Si vuole implementare da zero un sistema per la gestione delle buste paga di un azienda visto che il vecchio sistema manifesta problemi di affidabilità e performance 2 Si vuole reimplementare l intero sistema di automazione di ufficio dell azienda al fine di poterlo integrare pienamente con altri sistemi quali ad esempio le movimentazioni di magazzino 3 Un ricco magnate richiede di sviluppare un nuovo software che permetta di comandare attraverso il cellulare tutti gli elettrodomestici di casa. 4 Si vuole implementare un sistema per il controllo di un sistema di dighe azionate dal movimento della marea. (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 30 / 30

Scenari d uso 1 Si vuole implementare da zero un sistema per la gestione delle buste paga di un azienda visto che il vecchio sistema manifesta problemi di affidabilità e performance 2 Si vuole reimplementare l intero sistema di automazione di ufficio dell azienda al fine di poterlo integrare pienamente con altri sistemi quali ad esempio le movimentazioni di magazzino 3 Un ricco magnate richiede di sviluppare un nuovo software che permetta di comandare attraverso il cellulare tutti gli elettrodomestici di casa. 4 Si vuole implementare un sistema per il controllo di un sistema di dighe azionate dal movimento della marea. (Ingegneria del Software) 13. Ciclo di Vita e Processi di Sviluppo 30 / 30