Lezione 2 Ciclo di Vita e ProcessiSoftware



Похожие документы
Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al.

Rational Unified Process Introduzione

Ciclo di vita del progetto

UML e (R)UP (an overview)

Ciclo di vita del software

Modelli di Processo.

RUP (Rational Unified Process)

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

Concetti di base di ingegneria del software

4.1 Che cos è l ideazione

Ciclo di vita dimensionale

11. Evoluzione del Software

12. Evoluzione del Software

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard

13. Ciclo di Vita e Processi di Sviluppo

UniRoma2 - Ingegneria del Software 1 1

Ciclo di Vita Evolutivo

Ingegneria del Software. Processi di Sviluppo

UML - Unified Modeling Language

Configuration Management

La Formazione: elemento chiave nello Sviluppo del Talento. Enzo De Palma Business Development Director

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

IL MODELLO SCOR. Agenda. La Supply Chain Il Modello SCOR SCOR project roadmap. Prof. Giovanni Perrone Ing. Lorena Scarpulla. Engineering.

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

Ingegneria del Software II -Introduzione e Richiami -

2. Ciclo di Vita e Processi di Sviluppo

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

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

SCD IS. Processi software. Processi Software. UniPD Ingegneria del Software mod. A 1. Definizioni. Modelli di ciclo di vita

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

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

Il modello di ottimizzazione SAM

ADEGUATEZZA O ADEGUAMENTO DEL SOFTWARE PRÊT-À-PORTER ALLE ESIGENZE DEGLI UTENTI PROF. FABIO A. SCHREIBER POLITECNICO DI MILANO

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

La gestione della qualità nelle aziende aerospaziali

Progettazione dei Sistemi di Produzione

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari

Ingegneria del Software

Progettaz. e sviluppo Data Base

Piano di gestione della qualità

GESTIONE AVANZATA DEI MATERIALI

Automazione Industriale (scheduling+mms) scheduling+mms.

1. L Ingegneria del Software

Strumenti per la gestione della configurazione del software

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Modellazione di sistema

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

Poca documentazione: uso di Story Card e CRC (Class Responsibility Collabor) Collaborazione con il cliente rispetto alla negoziazione dei contratti

Generazione Automatica di Asserzioni da Modelli di Specifica

Change Management. Obiettivi. Definizioni. Responsabilità. Attività. Input. Funzioni

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

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

GESTIONE AVANZATA DEI MATERIALI

Collaudo e qualità del software Quali test eseguire

La Metodologia adottata nel Corso

Le fattispecie di riuso

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Presidenza della Giunta Ufficio Società dell'informazione. ALLEGATO IV Capitolato tecnico

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

MBM Italia S.r.l. Via Pellizzo 14/a Padova. Tel. Fax

Diventa fondamentale che si verifichi una vera e propria rivoluzione copernicana, al fine di porre al centro il cliente e la sua piena soddisfazione.

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

QUESTIONARIO 1: PROCESSO DI AUTOVALUTAZIONE

Incident Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Indice strutturato dello studio di fattibilità

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

Scheda. Il CRM per la Gestione del Marketing. Accesso in tempo reale alle Informazioni di rilievo

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

MODELLO PER LO SVILUPPO DEL PRODOTTO

Gestire il rischio di processo: una possibile leva di rilancio del modello di business

Valorizzazione della professionalità di SW Quality Assurance

La gestione manageriale dei progetti

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_3 V2.0. Processi. Scelta dei processi adeguati

Progettazione dei Sistemi Produttivi. Sergio Terzi

Direzione Centrale Audit e Sicurezza IL SISTEMA DELL INTERNAL AUDIT NELL AGENZIA DELLE ENTRATE

1- Corso di IT Strategy

CORSO BUSINESS CONTINUITY AND DISASTER RECOVERY MANAGEMENT LE 10 PROFESSIONAL PRACTICES

Grafica ed interfacce per la comunicazione Scienze della Comunicazione

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

Via Don Angelo Scapin, 36 I Roncaglia di Ponte San Nicolò (PD) ITALIA Phone/Fax: info@spinips.com

7. Architetture Software

Corso di Laurea Magistrale in Ingegneria Informatica. Ingegneria del Software II (IS2)

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

Osservatorio P 3 MO. Il PMO come strumento di diffusione ed enforcement della cultura di Project Management

IL SOFTWARE SECONDO LA NORMA UNI EN ISO :2008 (IIA PARTE) 1

Manutenzione del software

Business Process Management

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

FONDAMENTI di INFORMATICA L. Mezzalira

INGEGNERIA DEL SOFTWARE

Appendice III. Competenza e definizione della competenza

Gestione del workflow

Транскрипт:

Lezione 2 Ciclo di Vita e ProcessiSoftware Ingegneria del Software 2 CVS e Processi Software 1 Riferimenti bibliografici I. Sommerville Ingegneria del Software 8a edizione Cap.4 R. Pressman- Principi di Ingegneria del Software- 4 edizione- Cap. 3 Ingegneria del Software 2 CVS e Processi Software 2 1

Obiettivi della lezione 1. Richiamare I concetti di Ciclo di Vita del Software e di Ciclo di Sviluppo Software 2. Classificare I Modelli di Processo Software fondamentali Ingegneria del Software 2 CVS e Processi Software 3 Il Ciclo di Vita del Software (CVS) Standard IEEE 610.12-1990 (Glossary of Software Engineering Terms) Software Life Cycle: The period of time that starts whena software product is conceived and ends when the product is no longer available for use. The software life cycle typically includes a concept phase, requirements phase, design phase, implementation phase, test phase, installation and checkout phase, operation and maintenance phase, and sometimes, retirement phase. Note: These phases may overlap or be performed iteratively. Contrast with Software Development Cycle. Ingegneria del Software 2 CVS e Processi Software 4 2

Ciclo di Sviluppo Software Standard IEEE 610.12-1990 Software Development Cycle : (1) The period of time that begins with the decision to develop a software product and ends when the product is delivered. This cycle typically includes a requirements phase, design phase, implementation phase, test phase, and sometimes, installation and checkout phase. Contrast with Software Life Cycle. Notes: The phases listed above may overlap or be performed iteratively, depending upon the software development approach used. (2) This term is sometimes used to mean a longer period of time, either the period that ends when the software is no longer being enhanced by the developer, or the entire software life cycle Ingegneria del Software 2 CVS e Processi Software 5 Una architettura per la definizione di CVS Standard IEEE 12207.0-1996/ 2008 (Software Life-Cycle Processes) Software Life Cycle Processes: the Standard defines a framework containing the processes, activities,and tasks in the development, operation and maintenance of a software product, spanning the life of the system from the definition of its requirements to the termination of its use Ingegneria del Software 2 CVS e Processi Software 6 3

Ciclo di Vita ed i suoi Processi (St.ISO 12207-1996) PRIMARY MAINTENANCE OPERATION DEVELOPMENT SUPPLY ACQUISITION LIFE CYCLE SUPPORTING DOCUMENTATION CONFIGURATION MANAGEMENT QUALITY ASSURANCE VERIFICATION VALIDATION JOINT REVIEW AUDIT PROBLEM RESOLUTION ORGANIZATIONAL MANAGEMENT INFRASTRUCTURE IMPROVEMENT TRAINING Ingegneria del Software 2 CVS e Processi Software 7 Ciclo di Vita ed i suoi Processi (St.ISO 12207-2008 nuova versione) Ingegneria del Software 2 CVS e Processi Software 8 4

Processi Software: definizione Processo : un insieme di attività concentrate nel tempo finalizzate alla realizzazione di un particolare output. Processo Software: Un insieme strutturato di attività necessarie per lo sviluppo di un sistema software. Specifica; Progettazione (o Design); Validazione; Evoluzione Progetto Software: è un impegno (con date di inizio e fine stabilite) a produrre un prodotto o servizio, con specificate risorse e requisiti Ingegneria del Software 2 CVS e Processi Software 9 Modelli di Processo Software Un processo software può essere organizzato usando i Modelli di ProcessoSoftware: I Modelli di Processo Software (talora detti ancora CVS) definiscono la struttura di massima di un processo software, indicando le fasi in cui si articola e i criteri di successione. Un Modello di processo software è una rappresentazione astratta di un processo. Fornisce una descrizione del processo da una particolare prospettiva. Ingegneria del Software 2 CVS e Processi Software 10 5

Quali Modelli di Processo Software? Una possibile classificazione: 1. Processi basati su documentazione Basati su linguaggi semi-formali per la specifica dei documenti (es. UML), e richiedono trasformazioni e controlli manuali dei prodotti intermedi 2. Processi basati su Metodi Formali Basati su linguaggi formali di specifica, con trasformazioni e controlli automatici dei prodotti intermedi 3. Approcci AGILI Uso ridotto di documentazione Ingegneria del Software 2 CVS e Processi Software 11 Processi basati su Metodi Formali Uso di formalismo matematico per esprimere i requisiti Es. Specifiche algebriche (es. per tipi di dato astratto) Es. approccio basato su modelli di stato Uso di tecniche di model checking per provare la correttezza sul modello Trasformano automaticamente le specifiche in codice La correttezza è preservata La verifica è ottenuta implicitamente Definizione Requisiti Specifica Formale Trasformazione formale Integrazione e Testing di sistema Ingegneria del Software 2 CVS e Processi Software 12 6

Processi basati su Metodi Formali Problemi necessità di specifici skill (in linguaggi matematici) Impossibilità a specificare formalmente alcune parti Difficoltà del cliente nella convalida dei requisiti Applicabilità Non adatti per sistemi di grandi dimensioni Usati solo per parti critiche Ingegneria del Software 2 CVS e Processi Software 13 In questo corso approfondiremo: (1) Processi basati su documentazione (3) Processi basati su metodi AGILI Ingegneria del Software 2 CVS e Processi Software 14 7

Modelli di Processo dalla letteratura Basati su documentazione: Waterfall Evolutivo Basato sul Riuso (di Componenti, Linee di Prodotto ) Incrementale A Spirale Rational Unified Process (UP e RUP) AGILI: XP (extreme Programming) TDD (Test Driven Development) Scrum, Lean, Ingegneria del Software 2 CVS e Processi Software 15 Il Waterfall model Definizione Requisiti Progettazione software Codifica e Testing di unità Integrazione e Testing di Sistema Operatività e Manutenzione Ingegneria del Software 2 CVS e Processi Software 16 8

Il Waterfall model Fasi sequenziali ben definite Sviluppo Guidato dalla documentazione ma... Troppo rigido/ burocratizzato Rilascia software solo a completamento di tutte le fasi Richiede conoscenza immediata e stabilità dei requisiti Ingegneria del Software 2 CVS e Processi Software 17 Modello a cascata: una variante Fattibilità validazione Analisi e specifica dei requisiti validazione Progettazione verifica Codifica Verifica: Stabilire la verità della corrispondenza tra un prodotto software e la sua specifica Validazione: Stabilire l appropriatezza di un prodotto software rispetto alla sua missione operativa verifica Testing Validazione : Stiamo costruendo il prodotto giusto? Verifica : Stiamo costruendo giustamente il prodotto? V&V Messa in esercizio V&V Manutenzione Ri-validazione Ingegneria del Software 2 CVS e Processi Software 18 9

Modello di Sviluppo a V (V-Model) Un altra variante Molto usata per sviluppo di software embedded Ingegneria del Software 2 CVS e Processi Software 19 Sviluppo Evolutivo Basato sull idea di produrre una versione iniziale del software, esporla agli utenti e perfezionarla attraverso varie versioni. Due modelli fondamentali: (A) Sviluppo Esplorativo L obiettivo è di lavorare col cliente per esaminare i requisiti iniziali e farli evolvere fino al sistema finale. Dovrebbe partire da pochi requisiti ben compresi e aggiungere nuove caratteristiche proposte dal cliente. (B) Prototipale (Usa e Getta) L obiettivo è di comprendere i requisiti del sistema. Si parte da requisiti poco chiari e si realizzano prototipi per esplorare i requisiti e chiarirli. Ingegneria del Software 2 CVS e Processi Software 20 10

(A) Sviluppo evolutivo- Esplorativo Descrizione Requisiti iniziali Specifica requisiti requisiti Sviluppo Versione Iniziale Versioni Intermedie Convalida Versione Finale Ingegneria del Software 2 CVS e Processi Software 21 (A) Sviluppo evolutivo- Esplorativo Vantaggi: Rapido feedback e possibilità di far cambiare I requisiti Problemi Mancanza di visibilità del processo (è anti-economico documentare ogni versione del sistema); I sistemi diventano spessomal strutturati (per i continui cambiamenti); Richiedono particolari skills (es. Uso di linguaggi di prototipazione rapida) Applicabilità A sistemi interattivi di piccole e medie dimensioni (<500.000 LOC); Per sviluppare alcune parti di sistemi di grandi dimensioni (per es. l interfaccia utente); Per sistemi destinati a vita breve. Per grandi sistemi è consigliabile un approccio misto. Ingegneria del Software 2 CVS e Processi Software 22 11

(B) Sviluppo Evolutivo- Prototipale Realizzazione di una prima implementazione (prototipo), più o meno incompleta da considerare come una prova, con lo scopo di: accertare la Fattibilità del prodotto validare i Requisiti Dopo la fase di utilizzo del prototipo si passa alla produzione della versione definitiva del Sistema Sw mediante un modello che, in generale, è di tipo waterfall. Ingegneria del Software 2 CVS e Processi Software 23 Modello con Prototipo (Usa e Getta) REQUISITI PROGETTAZIONE VELOCE SVILUPPO PROTOTIPO VALUTAZIONE E RAFFINAMENTO REQUISITI SVILUPPO PRODOTTO CVS CLASSICO Ingegneria del Software 2 CVS e Processi Software 24 12

IS basata sul Riuso Sviluppo basato sul riuso sistematico, integrando Componenti esistenti o interi sistemi COTS (Commercialoff-the-shelf) Fasi del Processo (CBSE) Specifica dei requisiti; Analisi dei componenti; Modifica dei Requisiti (specificando i componenti disponibili); Progettazione con riuso; Sviluppo e Integrazione. Necessita di appositi standard per la specifica di componenti. Ingegneria del Software 2 CVS e Processi Software 25 Sviluppo basato sul Riuso Specifica Specifica Requisiti Requisiti Analisi Analisi Dei Dei componenti componenti Modifica Modifica dei dei requisiti requisiti Progetto Progetto del del Sistema Sistema con con riuso riuso Sviluppo Sviluppo E E Integrazione Integrazione Convalida Convalida del del Sistema Sistema Ingegneria del Software 2 CVS e Processi Software 26 13

Processi di sviluppo Iterativi In un ambiente globale di rapidi cambiamenti, è essenziale per la competitività delle aziende che il software di cui necessitano sia sviluppato e consegnato in tempi rapidi! La mutevolezza ed instabilità dei requisiti impongono di adottare processi di sviluppo ciclici, in cui il software viene consegnato in una serie di incrementi, prodotti in vari cicli di processo (iterazioni) in cui si ritorna sulle fasi già condotte I cicli di processo possono essere applicati ad ogni generico modello di processo. Due possibili approcci: (A) Sviluppo e Consegna Incrementale; (B) Sviluppo a Spirale. Ingegneria del Software 2 CVS e Processi Software 27 (A) Sviluppo e Consegna Incrementale Piuttosto che consegnare il sistema tutto in una volta, lo sviluppo e la consegna sono eseguiti per incrementi,dove ogni incremento rilascia parte delle funzionalità richieste. Ai requisiti Utente vengono associati livelli di priorità e quelli a priorità maggiore vengono rilasciati con I primi incrementi. Una volta partito lo sviluppo di un incremento, I relativi requisiti devono essere congelati, mentre I requisiti coinvolti in incrementi successivi possono continuare ad evolvere. I servizi comuni possono essere implementati all inizio del processo, o quando una funzione è richiesta da un dato incremento. Ingegneria del Software 2 CVS e Processi Software 28 14

(A) Sviluppo e Consegna Incrementale Individuazione Individuazione Preliminare Preliminare requisiti requisiti Assegnazione Assegnazione requisiti requisiti agli agli incrementi incrementi Progetto Progetto architetturale architetturale Sviluppo Sviluppo dell incremento dell incremento Convalida Convalida dell incremento dell incremento Integrazione Integrazione dell incremento dell incremento Convalida Sistema Completo Sistema Incompleto Ingegneria del Software 2 CVS e Processi Software 29 Esempio di processo incrementale Requisiti: R1, R2, R3 Architettura: M1, M2, M3, M4 Pianificazione: 3 iterations Iteration1 R1, requires M1, M2 Develop and integrate M1, M2 Deliver R1 Iteration2 R2, requires M1, M3 Develop M3, integrate M1, M2, M3 Deliver R1 + R2 Iteration3 R3, requires M3, M4 Develop M4, integrate M1, M2, M3, M4 Deliver R1 + R2 + R3 Ingegneria del Software 2 CVS e Processi Software 30 15

Vantaggi dello sviluppo incrementale I clienti non devono aspettare il sistema completo per la consegna, ma possono disporre al più presto dei requisiti più critici, attraverso I primi incrementi. I primi incrementi possono essere usati come prototipo per aiutare a definire I requisiti degli incrementi successivi. Si riduceil rischio di un fallimento totale del progetto. I servizi a più alta priorità saranno anche testati più intensamente degli altri. Ingegneria del Software 2 CVS e Processi Software 31 Problemi dello sviluppo Incrementale Problemi Gli incrementi devono essere relativamente piccoli (<=20.000 LOC) ma può essere difficile predisporre i requisiti in incrementi della dimensione giusta. Le funzionalità comuni (richieste da più requisiti) potrebbero non essere identificate abbastanza presto, giacchè bisogna prima attendere che gli incrementi siano completati per avere ben chiari tutti i requisiti. Ingegneria del Software 2 CVS e Processi Software 32 16

Un esempio: Extreme programming Extreme Programming Un esempio di approccio allo sviluppo basato su sviluppo e consegna di piccolissimiincrementi di funzionalità. Si basasuun continuo miglioramento del codice, sul coinvolgimento dell utente nel processo di sviluppo, e sulla programmazione a coppie. Ingegneria del Software 2 CVS e Processi Software 33 (B) Sviluppo a Spirale (di Boehm) Il processo è rappresentato come una spirale, piuttosto che una sequenza di attività con retroazioni. Ogni giro nella spirale rappresenta una fase del processo. Non prevede fasi prefissate a priori (come la specifica o il design) ma i cicli sono definiti in base al caso specifico. C è una esplicita gestione dei rischi che vengono valutati e risolti durante tutto il processo. Metamodello perché comporta la selezione di un modello di CVS da adottare nello sviluppo. Ingegneria del Software 2 CVS e Processi Software 34 17

Modello di sviluppo a spirale 1. Determinazione Deter mine objecti ves, di obiettivi, alterna tives and alternative constr aintse vincoli 4. Pianificazione della fase successiva Plan ne xt phase REVIEW Requir ements plan Life-cycle plan De velopment plan Integ ration and test plan Risk anal ysis Risk anal ysis Risk analysis Pr ototype 2 Risk anal ysis Pr ototype 1 Concept of Oper ation S/W requir ements Requir ement v alidation Design V&V Acceptance Service test Pr ototype 3 Oper a- tional pr oto ype Simula tions, models, benchmar ks Product design Integ ra tion test Evalua te alterna tives, identify, resolv e risks Unit test 2. Valutazione di alternative, identificazione e risoluzione dei rischi Detailed design Ingegneria del Software 2 CVS e Processi Software 35 Code De velop, verify ne xt-level pr oduct 3. Sviluppo e Verifica del prodotto Settori del modello a spirale Determinazione degli obiettivi Definizione di obiettivi, vincoli e piano di gestione della fase. Valutazione e riduzione del rischio Si analizzano I rischi della fase e si scelgono le attività necessarie a gestire I rischi. Sviluppo e Convalida Si sceglie un modello di sviluppo per il sistema tra I modelli generici. Pianificazione Il progetto viene revisionato e si decide se continuare con un nuovo giro della spirale. Si pianifica tale giro. Ingegneria del Software 2 CVS e Processi Software 36 18

Il RUP (Rational Unified Process) Un esempio di modello di processo ibrido Ingegneria del Software 2 CVS e Processi Software 37 Unified Process (UP) Booch, Rumbaugh, Jacobson (autori sia di UML che UP) UML (Unified Modeling Language) UP (Unified Process) Linguaggio per la modellazione e costruzione di sistemi software. È Standard OMG (Object Management Group) dal 1997 È il processo definito dai tre autori per lo sviluppo con utilizzo di UML Non è uno standard La versione commerciale è nota come RUP (Rational Unified Process) creata da IBM Ingegneria del Software 2 CVS e Processi Software 38 19

Rational Unified Process (RUP) Un moderno modello di processo software derivato da UML e dal relativo processo. Include tutte le caratteristiche dei modelli generici (sviluppo iterativo ed incrementale) Individua 3 prospettive sul processo: Una prospettiva dinamica che mostra le fasi del modello al fluire del tempo; Una prospettiva statica che mostra le attività (workflow) coinvolte; Una prospettiva pratica che suggerisce le buone regole da seguire. Ingegneria del Software 2 CVS e Processi Software 39 Prospettiva dinamica: Le fasi del RUP Iterazione Phase iteration delle fasi Inception Avvio Elaboration Elaborazione Costruzione Construction Transizione Transition Ingegneria del Software 2 CVS e Processi Software 40 20

Le fasi del RUP Avvio Stabilire gli obiettivi di business (e relativi limiti, fattibilità e giustificazioni economiche) per il sistema. Elaborazione Ottenere una comprensione del dominio del problema (e specificare i requisiti), stabilire una struttura architetturale ed il piano di progetto. Costruzione Progettare, programmare e testare il sistema incrementalmente. Transizione Trasferire il sistema nel suo ambiente operativo. Ingegneria del Software 2 CVS e Processi Software 41 Fasi, Iterazioni ed Incrementi Ogni fase può essere eseguita in modo ciclico (più iterazioni), con risultati sviluppati in modo incrementale. Avvio Elaborazione Costruzione Transizione It. Avvio It. Elab. It. Costr. It. Trans. Release Release Release Release Release Release Release Anche l intero sistema delle fasi può essere ripetuto ciclicamente. Ingegneria del Software 2 CVS e Processi Software 42 21

Prospettiva Statica: I Workflow Il RUP prevede vari workflow (6 attività principali e 3 di supporto): Modellazione Processi di business Requisiti Analisi e Progettazione Implementazione Test Rilascio Gestione della configurazione e delle modifiche Gestione del Progetto Ambiente Ingegneria del Software 2 CVS e Processi Software 43 Workflow e Fasi Il RUP non vincola l esecuzione delle attività a specifiche fasi Tutti i workflow del RUP possono essere eseguiti in qualunque iterazione del processo. Ovviamente nelle prime iterazioni gli sforzi si concentreranno sui workflow di modellazione e dei requisiti, nelle successive sulla implementazione e sul test. Ingegneria del Software 2 CVS e Processi Software 44 22

Distribuzione dei workflow per fasi UP Phases Workflows Incept ion Elabor at ion Const ruct ion Tr ansition Production Requirements Analysis Design Implementation Test Support Iterations #1 #2 #n-1 #n Ingegneria del Software 2 CVS e Processi Software 45 Le sei pratiche fondamentali del RUP Sviluppare il software iterativamente: Pianificare gli incrementi in base alle priorità del cliente Gestire i requisiti: Documentare esplicitamente I requisiti ed I cambiamenti effettuati Usare architetture basate sucomponenti: Strutturare l architettura con un approccio a componenti Creare modelli visuali del software: Usare modelli grafici UML per rappresentare viste statiche e dinamiche del sistema Verificare la qualità del software: Verificare l aderenza a standard di qualità aziendali Controllare le modifiche al software: Gestire I cambiamenti e le configurazioni del software Ingegneria del Software 2 CVS e Processi Software 46 23

Configurazione del RUP Il RUP è un processo generico di sviluppo software: deve essere istanziato per ciascuna organizzazione e per ciascun progetto specifico, aggiungendo: standard, modelli di documento standard, strumenti, Punti di forza: Separazione di fasi e workflow Le fasi sono dinamiche e vanno pianificate, i workflow sono statici e sono attività tecniche condotte nelle varie fasi Comprende un vasto insieme di linee guida e template per operare con approccio OO e basato su componenti Definisce in modo accurato: Ruoli, Attività, Input Output delle varie attività Ingegneria del Software 2 CVS e Processi Software 47 Costi del RUP Impatto organizzativo Può portare ad una riorganizzazione completa del lavoro Impatto culturale Può comportare una ridefinizione del modo di lavorare Costi tecnologici L utilizzo del processo é agevolato dall uso di strumenti (tool) specifici (come quelli della suite Rational) Costi di avvio Adattamento del processo Divulgazione Inquadramento dei processiesistenti Spesso si rinuncia ad adottare il RUP proprio perchè esso comporta un drastico cambiamento nel modo di lavorare delle persone, che potrebbero reagire (sul breve termine) diminuendo la loro produttività Ingegneria del Software 2 CVS e Processi Software 48 24

Scelta di un Modello di Processo: alcuni aspetti da valutare tolleranza del modello ai rischi che si potranno incontrare facilità di comunicazione tra sviluppatori e utilizzatori stabilità dei requisiti noti; probabilità di esistenza di requisiti (ancora) non noti importanza di rilasci early di (parziali) funzionalità Intrinseca complessità del problema e delle probabili soluzioni (anticipata) conoscenza di frequenza e dimensione di richieste di cambiamento maturità dell applicazione (o del dominio applicativo) disponibilità e priorità di fondi flessibilità dello scheduling e budget (scadenze per il ricevimento e spesa dei fondi; possibilità di modificare gli incrementi per ottimizzare costi e minimizzare rischi) criticità del rispetto di scheduling e budget adeguatezza del processo istituzionale e tool di sviluppo dello sviluppatore corrispondenza tra organizzazione del management e il modello da adottare Ingegneria del Software 2 CVS e Processi Software 49 Ulteriori Riferimenti bibliografici Booch, Rumbaugh, Jacobson, Unified Software Development Process, Addison Wesley 1999 Kroll, Kruchten, Booch, The Rational Unified Process Made Easy: a Practitioner s Guide to RUP, Addison Wesley, 2003 J.Arlow, I. Neustadt, UML2 e Unified Process- Analisi e progettazione Object-Oriented, 2 ed., McGraw Hill 2006 Ingegneria del Software 2 CVS e Processi Software 50 25