Il processo di sviluppo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il processo di sviluppo"

Transcript

1 Il processo di sviluppo Processo di sviluppo software = framework all'interno del quale si svolgono le attività necessarie per produrre software di alta qualità. E' il modo in cui viene organizzato e praticato lo sviluppo dei sistemi software. Coloro che, individualmente o in gruppo, lavorano allo sviluppo o alla modifica di un software, adottano necessariamente un certo approccio nel modo di relazionarsi con i propri clienti / utenti, nell'organizzare il proprio lavoro, nella scelta delle tecniche da utilizzare. Adottano un processo. In modo consapevole o meno, ogni sviluppatore (o gruppo di sviluppatori) software ha un proprio processo di sviluppo - un proprio modo di lavorare. Basato sulla propria esperienza, sulla propria cultura, e sul contesto culturale ed organizzativo in cui si trova ad operare. La storia dei successi (e soprattutto degli insuccessi) dei progetti di sviluppo software ha insegnato che ogni processo di sviluppo ha i propri pregi ed i propri limiti. E che un processo di sviluppo inadeguato alla concrete esigenze dello specifico progetto può condurre al fallimento del progetto stesso, o comunque all'insoddisfazione dei clienti / utenti e degli stessi sviluppatori. 1

2 Il processo di sviluppo A Common Process Framework Common process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities 2

3 Il processo di sviluppo Un generico processo di sviluppo software è costituito da uno o più set di Attività portanti (Framework Activities), cioè dalle attività necessarie per garantire l'avanzamento del processo di produzione del software. Le attività portanti rappresentano il fondamento del processo di sviluppo, in quanto comprendono le attività direttamente legate alla realizzazione del prodotto software. Fra queste possiamo citare: la suddivisione del prodotto in moduli la codifica il controllo di avanzamento la verifica del livello qualitativo del software il bug fixing 3

4 Il processo di sviluppo Alle attività portanti si affiancano le Attività ausiliarie (Umbrella Activities), che rappresentano l'insieme di tutte le attività non direttamente collegate alle fasi produttive, ma che concorrono con esse al raggiungimento dell'obiettivo. Software project management Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management 4

5 Capability Maturity Model Il Modello di Maturità delle Capacità (CMM - Capability Maturity Model) individua un insieme di capacità corrispondenti al livello di maturità di processo di una software house. Misura esclusivemente la validità di processo, dunque non fornisce una valutazione della validità tecnica e/o architetturale del prodotto dell'azienda. Il CMM è stato elaborato dal Software Engineering Institute nel 1993, sulla base del processo di sviluppo descritto nello standard Mil-Std-498, sviluppato negli Stati Uniti in ambito militare.. Il CMM prevede 5 livelli di valutazione, ad ognuno dei quali sono associate più Key Process Areas (KPA); ogni livello comprende tutte le caratteristiche dei livelli precedenti. 1. Livello Iniziale: il processo di svluppo è definito di volta in volta risulta confuso, spesso non è nemmeno definito la riuscita del progetto dipende dalle capacità individuali degli sviluppatori KPA: nessuna! 5

6 Capability Maturity Model 2. Livello Ripetibile: nell'azienda esistono processi basilari per la gestione dei progetti, al fine di tenere sotto controllo costi, tempi e soddisfacimento dei requisiti. le metodologie usate in progetti di successo precedenti vengono ripetute in progetti successivi. KPA: Gestione Garanzia di qualità del sw Gestione dei sottocontratti (Outsourcing) Controllo e sorveglianza del progetto Pianificazione del progetto Gestione dei requisiti 6

7 Capability Maturity Model 3. Livello Definito: il processo è conforme ad uno standard aziendale definito, stabile e documentato sia per quanto riguarda le attività portanti che per quanto riguarda le attività ausiliarie. KPA: Revisioni Coordinamento dei gruppi Ingegneria del prodotto sw Gestione integrata del sw Programmi di addestramento Definizione del processo azindale Obiettivo primario del processo aziendale 4. Livello Gestito: sia il prodotto sia il processo software sono valutati quantitativamente e qualitativamente sulla base di misure dettagliate. KPA: Gestione della qualità del software Gestione quantitativa del processo 7

8 Capability Maturity Model 5. Livello Ottimizzato: utilizzo di tecnologie e metodologie innovative al fine di raggiungere un livello ottimo di gestione del processo software e sviluppo del prodotto. KPA: Gestione del cambiamento nel processo Gestione del cambiamento tenologico Prevenzione dei difetti 8

9 Modelli di processo La strategia adottata da un azienda per gestire il processo di sviluppo software (comprendente metodologie, tecniche e strumenti) è denominata Modello di Processo o Paradigma di Ingegneria del Software dell azienda. Qualunque modello di processo adotti un azienda, esistono elementi comuni. problem definition status quo technical development solution integration 9

10 Modelli di processo (L. Raccoon, The chaos model end the chaos lifecycle, ACM Software Engineering Notes, vol.20 n.1, 1995) Lo status quo dello sviluppo software viene modificato attraverso delle iterazioni che prevedono: La definizione del problema Lo sviluppo tecnico L integrazione della soluzione Una iterazione produce un nuovo status quo che può essere modificato con successive iterazioni. Il ciclo di Raccoon è indipendente dal modello di processo e dalla tecnologia adottata; le attività portanti ed accessorie descritte in precedenza si possono facilmente ascrivere ad una delle fasi. Ad esempio, codifica e bug fixing appartengono alla fase di sviluppo tecnico, mentre la redazione di documentazione di progetto appartiene alla fase di integrazione. 10

11 Modelli di processo Possiamo osservare che il ciclo di Raccoon si applica a più livelli di dettaglio: a livello dell intera applicazione, a livello di progettazione dell infrastruttura di base, di progettazione di componenti, fino allo sviluppo di parti di codice. Qualunque siano il modello di processo e le tecnologie adottate, le fasi di definizione del problema, sviluppo tecnico e integrazione della soluzione coesistono ad un certo livello di dettaglio. Durante il cammino verso lo sviluppo di un applicazione completa, le quattro fasi si applicano ricorsivamente dalla raccolta dei requisiti utente fino ai più piccoli dettagli implementativi. Il risultato è una visione frattale del processo di sviluppo software! 11

12 Modelli di processo Il Modello Sequenziale Lineare Il Modello Sequenziale Lineare trae origine dal Modello a Cascata, originariamente proposto da Royce nel (W.Royce, "Managing the Development of Large Software Systems", Proceedings of IEEE Wescon, 1970) System/information engineering analysis design code test 12

13 Modelli di processo Il Modello Sequenziale Lineare Il progetto è organizzato in una sequenza di fasi, ciascuna delle quali produce un output che costituisce l'input per la fase successiva. All'inizio di ciascuna fase si verifica la qualità del lavoro effettuato nella fase precedente, con possibilità di ricicli per modifica Le fasi individuate da Royce prevedono: Strutturazione e modellazione del sistema e dei dati Il modello sequenziale lineare prevede una fase iniziale di macro-analisi durante la quale vengono esaminati tutti i requisiti e viene progettata l infrastruttura dell applicazione e dei dati. Il processo viene raffinato nelle due fasi successive di analisi e progettazione. Analisi dei requisiti Prevede la definizione dettagliata (e relativa documentazione) di funzionalità, prestazioni, interfacce del software. 13

14 Modelli di processo Il Modello Sequenziale Lineare Progettazione La fase di progettazione traduce i requisiti utente in una modellazione del software, ossia in una documentazione che consenta di valutare la qualità del software prime che inizi la codifica. Si articola in modellazione di architettura, struttura dati, interfacce ed algoritmi di elaborazione. Codifica Testing Il modello sequenziale lineare si applica sia alla realizzazione iniziale di un software, sia alla sua manutenzione, cioè alla revisione del software stesso al fine di correggere errori o soddisfare le mutate esigenze del committente. 14

15 Modelli di processo Il Modello Sequenziale Lineare Diffusione del processo a cascata E' probabilmente il processo di sviluppo software più diffuso al mondo, anche perché segue il modello della catena di montaggio tipico della produzione industriale della prima metà del novecento. Ma è considerato irrimediabilmente obsoleto, ed è raro trovare esperti che lo raccomandino ancora. I settori economici per i quali la qualità e produttività dei progetti di sviluppo software sono più critici hanno da tempo abolito la pratica dello sviluppo a cascata, in quanto troppo rischioso. Vantaggi E' molto semplice da capire, quasi intuitivo (anche per chi non ha mai sviluppato software): prima si raccolgono tutti i requisiti, poi si fa tutta l'analisi, poi tutto il design, poi tutta la codifica,... E' semplicissimo organizzare il piano di progetto (non che sia facile pianificare le date di conclusione delle fasi, ma non ci sono dubbi sulla sequenza delle fasi stesse). Si adatta perfettamente a logiche organizzative e politiche del personale basate su una divisione del lavoro accentuata. 15

16 Modelli di processo Il Modello Sequenziale Lineare Svantaggi E' altamente rischioso. Le prime verifiche concrete, in termini di risultati visibili e comprensibili da committenti e utenti, arrivano verso la fine del progetto, nel periodo finale della fase di test. E se ci si accorge che qualcosa non funziona (accade...), ossia che il sistema realizzato non corrisponde ai requisiti, impliciti ed espliciti, i tempi ed i costi del progetto possono crescere in misura notevole. Si basa su alcune assunzioni, il più delle volte sbagliate: 1. Che sia possibile, nella fase iniziale del progetto, chiarire tutti i requisiti del sistema. E che sia possibile farlo senza discutere con il committente e le parti interessate nel merito delle soluzioni concrete, senza verificare l'accordo con la presentazione di prototipi utilizzabili. Questa assunzione sbagliata può provocare due effetti: - che si raggiunga un accordo sulla carta, ma che non ci sia un accordo effettivo sul merito di problemi (e che non ci si renda conto della cosa fino alla verifica finale) 16

17 Modelli di processo Il Modello Sequenziale Lineare - che si raggiunga la "paralisi dell'analisi", con il progetto che non riesce a chiarire alcune aree di ambiguità e l'impossibilità per il committente e le parti interessate di fornire i chiarimenti richiesti. 2. Che una volta ottenuto l'accordo sui requisiti (tipicamente, con la produzione di alcuni documenti testuali che specificano, in termini astratti, le funzionalità del sistema), i requisiti stessi non cambino più fino alla fine del progetto. Può essere vero, per progetti molto, molto brevi. Ma non è certamente vero per progetti di complessità media o elevata. 3. Che sia possibile definire i requisiti, e stimare tempi e costi del progetto, senza possedere la competenza necessaria sugli aspetti tecnici ed implementativi. Questo non è in sé un limite del processo di sviluppo a cascata, ma della sua attuazione concreta in organizzazioni nelle quali esiste una forte divisione del lavoro. In molte realtà, la definizione dei requisiti viene effettuata da persone, nel ruolo di analisti, che non hanno le competenze tecniche necessarie allo sviluppo software. Oppure che avevano, anni addietro, competenze tecniche, ma basate sull'utilizzo di tecnologie diverse da quelle utilizzate nel progetto. E che non sono quindi in grado, da sole, di produrre stime attendibili. 17

18 Modelli di processo Il Modello Sequenziale Lineare Possiamo quindi concludere che raramente un progetto reale si adatta allo schema sequenziale. Nota: Royce era consapevole dei limiti del modello a cascata, e il suo articolo originale proponeva dei correttivi, che purtroppo hanno avuto una diffusione assai limitata. 18

19 Modelli di processo Il Modello Incrementale Il Modello Incrementale è una derivazione del processo di sviluppo a cascata. 19

20 Modelli di processo Il Modello Incrementale (B. Boehm, Software Engineering Economics, Prentice-Hall 1981) Il modello incrementale prevede che, una volta completata la fase di analisi, venga effettuata una attività di design dell'architettura del sistema. Vengono, cioè, effettuate le scelte "di alto livello" relative a: strutturazione del sistema in macroparti distinte (sottosistemi) responsabilità di ciascun sottosistema modalità di dialogo tra i diversi sottosistemi (interfacce). A questo punto vengono definite delle priorità di realizzazione, sulla base di due aspetti: priorità di natura funzionale (relativa alle esigenze dei committenti e delle parti interessate) priorità di natura architetturale (se un sottosistema A necessita del sottosistema B per funzionare, B ha una priorità superiore) Sulla base delle priorità definite, il progetto viene articolato in una serie di sottoprogetti realizzativi, ciascuno dei quali produrrà uno o più sottosistemi (parti del sistema complessivo). 20

21 Modelli di processo Il Modello Incrementale I sottoprogetti realizzativi potranno essere condotti in sequenza rigida (uno dopo l'altro), oppure essere condotti parzialmente in parallelo (con sovrapposizioni temporali). Diffusione del processo incrementale Viene spesso utilizzato, in progetti di complessità medio-grande, come variante di un processo a cascata, in quanto costituisce un modo di ridurne i rischi. Vantaggi Rispetto al processo a cascata, permette di arrivare a consegnare qualcosa di concreto prima di aver completato l'intero sistema. In questo modo si ottengono feedback (riscontri) concreti, con indicazioni utilizzabili anche nei sottoprogetti realizzativi ancora in corso o successivi. E si riducono i rischi di insuccesso. L'articolazione del piano di progetto è più complessa (rispetto al processo di sviluppo a cascata), ma permette una maggiore flessibilità nell'assegnazione delle persone ai compiti progettuali, quando i sottoprogetti vengono pianificati con una parziale sovrapposizione temporale. 21

22 Modelli di processo Il Modello Incrementale Svantaggi Condivide con il processo a cascata le due assunzioni - erronee - che: sia possibile definire tutti i requisiti alla partenza del progetto, senza entrare con i committenti e le altre parti interessate nel merito delle soluzioni concrete i requisiti non cambino dopo che sono stati concordati 22

23 Modelli di processo Il Modello Prototipale Il principale limite del modello a cascata è che l utente deve attendere fino al termine della fase di sviluppo prima di poter valutare il prodotto. Se il committente non è in grado di definire con sufficiente chiarezza i propri requisiti, il modello a cascata si rivela inadeguato. Il Modello Prototipale pone l accento sul ruolo centrale del committente nella definizione dell applicazione, e pertanto agevola la definizione dei requisiti. listen to customer build/revise mock-up customer test-drives mock-up 23

24 Modelli di processo Il Modello Prototipale Il modello prototipale prevede: Una prima fase di raccolta dei requisiti analoga a quella del modello a cascata, ma più rapida ed informale, volta a definire dei requisiti di massima. Una fase di progettazione del prototipo, sulla base dei requisiti (incompleti) raccolti nella fase precedente. La progettazione è in genere incentrata sull interfaccia utente. Una fase di realizzazione di un prototipo. Il prototipo deve soddisfare i requisiti noti al momento dello sviluppo, ma per la sua realizzazione non si è tenuti a rispettare alcune caratteristiche fondamentali del software di qualità: es. prestazioni, qualità del codice, riusabilità, manutenibilità. Lo scopo del prototipo è solo quello permettere al committente di valutare l aderenza dell applicazione alle proprie necessità. Il feedback dell utente relativamente al funzionamento del prototipo genera un successivo ciclo durante il quale il prototipo viene raffinato. 24

25 Modelli di processo Il Modello Prototipale Una volta raggiunto l accordo con il committente riguardo alla definizione delle specifiche, è necessario passare ad una fase di ingegnerizzazione del prodotto, al fine di poter consegnare un prodotto di qualità. Dal momento che il prototipo è stato realizzato per approssimazioni successive senza particolare attenzione alla sua architettura, la fase di ingegnerizzazione prevede di gettare via il prototipo! Vantaggi Il committente vede crescere il prodotto, quindi è molto improbabile consegnare un prodotto finale che non soddisfi il committente. Lo sviluppatore è molto agevolato nella fase di negoziazione dei requisiti I tempi di sviluppo sono molto rapidi (in apparenza!) Svantaggi La tentazione di considerare il prototipo come un prodotto è molto forte sia l utente che lo sviluppatore tendono a farlo. Il risultato è che spesso si rinuncia all ingegnerizzazione del prodotto, e si consegna un applicazione funzionante, ma di scarsa qualità. 25

26 Modelli di processo Il Modello Prototipale Il committente ha per le mani in tempi rapidi un oggetto funzionante, che soddisfa le sue esigenze, ed è portato a pensare che con pochi ritocchi sia possibile trasformarlo in un prodotto realmente operativo. Le difficoltà (ed i conseguenti costi) della fase di ingegnerizzazione sono percepiti con difficoltà dal committente si generano inevitabilmente dei contrasti. 26

27 Modelli di processo Il Modello a Spirale Il Modello a Spirale prevede uno sviluppo del software in versioni crescenti. Pla nning Risk Analysis Customer Communication Eng ine e ring Customer Eva lua tio n Construction & Release 27

28 Modelli di processo Il Modello a Spirale (Barry Boehm, "A Spiral Model of Software Development and Enhancement", in Computer, vol.21 n.5, 1988) Il modello a spirale è il più diffuso modello di sviluppo di tipo Iterativo. La spirale parte dal centro, con un insieme di obiettivi e requisiti iniziali per il progetto. Ogni ciclo (o iterazione) comporta l'effettuazione di una serie di attività, dette task regions: Comunicazione con il cliente Pianificazione Analisi dei rischi Progettazione Costruzione e rilascio Valutazione da parte del cliente Le task regions, nel loro insieme, comprendono le fasi tradizionali del modello sequenziale lineare: analisi dei requisiti progettazione 28

29 Modelli di processo Il Modello a Spirale codifica test Cioè le stesse attività che, in un processo di sviluppo a cascata, sono considerate come delle fasi da svolgersi in sequenza rigida, una dopo l'altra. Nel processo iterativo, in ogni iterazione (in ogni ciclo della spirale) vengono svolte le medesime tipologie di attività. L'articolazione di un progetto iterativo è guidata non da una rigida sequenza di fasi predefinite, ma da una gestione sistematica dei rischi di progetto, per arrivare alla loro progressiva diminuzione. All'inizio di un progetto di sviluppo software, i rischi sono tipicamente molto elevati. Manca la chiarezza sui requisiti, le scelte sulle tecnologie e sulla strutturazione del sistema (le scelte architetturali) sono ipotesi non ancora consolidate. In alcuni casi, sono state scelte tecnologie innovative, per le quali manca però una sufficiente esperienza nel gruppo di progetto. In altri, anche a fronte di tecnologie conosciute, esistono incertezze legate alla necessità di fare fronte a un numero di utilizzatori contemporanei molto elevato, o a volumi di dati mai gestiti in precedenza. 29

30 Modelli di processo Il Modello a Spirale Ogni iterazione, in un progetto iterativo, ha lo scopo di ridurre i rischi di progetto. Inizialmente, tramite la costruzione di prototipi. Prototipi di interazione (interfacce utente), per affrontare i rischi legati all'incertezza sui requisiti. Prototipi architetturali (realizzazione e test di aspetti infrastrutturali), per affrontare i rischi legati alla scelta delle tecnologie ed i dubbi sulla strutturazione del sistema. Successivamente, quando i rischi principali sono stati messi sotto controllo, ogni iterazione ha lo scopo di costruire, in modo progressivo, nuove porzioni del sistema, via via integrate con le precedenti, e di verificarle con il committente e le altre parti interessate. Sotto questo profilo, esiste più di un'affinità con il processo di sviluppo incrementale; ma anche una differenza significativa. Un processo iterativo, infatti, prevede il cambiamento di requisiti in corso d'opera. Prevede, in particolare, la "nascita" di nuovi requisiti espressi dal committente e dalle altre parti interessate al sistema come effetto dell'utilizzo del sistema stesso (delle sue parti già rese disponibili agli utilizzatori). 30

31 Modelli di processo Il Modello a Spirale Vantaggi Gestione sistematica dei rischi di progetto, attraverso iterazioni volte alla loro progressiva riduzione. Rispetto al processo di sviluppo a cascata, salvo eccezioni, maggiore qualità dei prodotti, e maggiore produttività dei progetti (costi e tempi inferiori). Svantaggi La pianificazione dei progetti condotti in modo iterativo è più complessa, e meno "banale". All'inizio del progetto è impossibile prevedere esattamente il numero delle iterazioni, la durata di ogni singola iterazione, i suoi obiettivi specifici. Il piano di un processo iterativo evolve durante tutta la durata del progetto stesso, e richiede un controllo sistematico degli avanzamenti. Un punto cruciale per il successo di un progetto iterativo è la collaborazione sistematica tra committenti (e altre parti interessate) e gruppo di progetto. Da un lato, il gruppo di progetto deve fornire in modo sistematico visibilità sugli avanzamenti, in termini di prodotti concreti da valutare. Dall'altro, se i committenti (e le altre parti interessate) non forniscono periodicamente 31

32 Modelli di processo Il Modello a Spirale riscontri concreti ai prototipi ed alle porzioni di sistema realizzate dal gruppo di progetto, la progressiva riduzione dei rischi non ha luogo. Il modello a spirale è una strategia realistica per lo sviluppo di sistemi software di grandi dimensioni. Quanto più il successo dei progetti software è critico per gli obiettivi di un'organizzazione, tanto più è probabile che il processo di sviluppo adottato abbia caratteristiche di natura iterativa. I modelli iterativi sono particolarmente adatti allo svilupo di sistemi objectoriented. 32

33 Modelli di processo Extreme Programming I Processi Agili sono stati sviluppati a partire dalla seconda metà degli anni 90. Traggono origine dal Manifesto for Agile Software Development, che recita: "Stiamo scoprendo approcci migliori per sviluppare il software, praticandoli ed aiutando altri a praticarli. Grazie a questo lavoro siamo arrivati a ritenere importanti: Gli individui e le loro interazioni, più che i processi e gli strumenti Il software funzionante, più che una documentazione onnicomprensiva La collaborazione con il cliente, più che la negoziazione dei contratti Il rispondere ai cambiamenti, più che seguire un piano Cioè, mentre i concetti riportati a destra sono importanti, riteniamo che quelli riportati a sinistra siano più importanti. Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas. 2001, the above authors. This declaration may be freely copied in any form, but only in its entirety through this notice.". 33

34 Modelli di processo Extreme Programming Nella loro maggioranza, i proponenti dei processi agili rigettano come burocratici ed inefficaci gli approcci tradizionali dell'ingegneria del software. Più interessante, però, è il fatto che molti degli autori più rilevanti del software engineering "tradizionale" (ad esempio Barry Boehm, Tom De Marco, Grady Booch) guardano ai processi agili come un fenomeno positivo. Tra i processi agili, il più diffuso è Extreme Programming (XP). (Kent Beck, Extreme Programming Explained, Addison-Wesley 2000) XP è una disciplina di sviluppo software basata su valori di semplicità, comunicazione e feedback continuo. XP si basa su una serie di pratiche (Practices). Le pratiche si integrano tra loro nel contesto di XP, ma è opportuno osservare che ciascuna di esse ha senso anche se applicata in modo autonomo, eventualmente nel contesto di un diverso processo di sviluppo. 34

35 Modelli di processo Extreme Programming 35

36 Modelli di processo Extreme Programming Whole Team XP rifiuta la suddivisione dei compiti in ruoli rigidi, e vede ogni persona coinvolta nel processo di sviluppo come parte integrante di una entità denominata Whole Team. Il committente fa parte del team e lavora fianco a fianco con gli sviluppatori per l intera durata del progetto. Il committente fornisce i requisiti e stabilisce le priorità; definisce inoltre i test di accettazione del prodotto, coadiuvato dagli analisti del team. Normalmente il team prevede anche un coach che ha l incarico di mantenere il team focalizzato sull obiettivo. Planning Game XP pone l accento su come indirizzare il progetto verso l obiettivo finale, man mano che ci si avvicina ad esso, piuttosto che sulla definizione esatta dell obiettivo finale in fase di analisi del progetto. XP prevede due diversi tipi di pianificazione: Release Planning fase nella quale il committente presenta al team i propri requisiti, che vangono valutati in termini di costi e difficoltà di realizzazione; la 36

37 Modelli di processo Extreme Programming stima è necessariamente imprecisa. In questa fase il team realizza un canovaccio di project plan, che sarà rivisto nelle fasi successive. Iteration Planning XP costruisce il codice mediante iterazioni di durata prefissata: due settimane. L obiettivo è produrre software funzionante (anche se non completo) al termine di ogni iterazione. Durante Iteration Planning, il committente presenta al team le features richieste per le due settimane successive; il team le valuta in termini di costi e fattibilità e definisce un piano per l iterazione. Gli obiettivi non pienamente soddisfatti al termine dell iterazione non sono presi in considerazione. In questo modo il committente vede crescere il prodotto ed è in grado di controllare il progetto attraverso le varie iterazioni. Customer Tests Il committente, insieme ad ogni feature richiesta, deve obbligatoriamente definire i test di accettazione. Il team costruisce delle procedure di test automatici che devono essere eseguiti ad ogni iterazione. 37

38 Modelli di processo Extreme Programming Small Releases Attraverso il meccanismo delle iterazioni, il team si pone l obiettivo di realizzare quanto più frequentemente possibile delle release parziali del prodotto da consegnare agli utenti finali. Simple Design Attitudine a scegliere costantemente la soluzione "più semplice" ad un dato problema, senza porsi il problema di anticipare i futuri cambiamenti. XP propone di mantenere il design della soluzione sempre adatto alle funzionalità correnti del sistema. Questo è possibile perché anche l architettura del sistema è considerata in costante evoluzione, attraverso degli incontri mirati previsti per l intera durata del progetto (in ogni iterazione e nelle fasi di realizzazione delle Small Releases). Questa attività di costante revisione dell architettura è denominata Refactoring. Pair Programming In XP, tutta l attività di stesura di codice è svolta da coppie di programmatori che lavorano fianco a fianco sulla stessa macchina. Questa pratica fa sì che 38

39 Modelli di processo Extreme Programming tutto il codice sorgente sia costantemente monitorato e validato da almeno un programmatore, con il risultato di produrre codice meglio progettato, più efficiente, meno incline agli errori. Può sembrare inefficiente avere due programmatori che fanno il lavoro di unosolo, ma alcune ricerche specifiche provano che due programmatori che lavorano in coppia producono gli stessi risultati (in termini di tempo e feature soddisfatte) che produrrebbero lavorando singolarmente, ma realizzano codice intrinsecamente migliore. Il Pair Programming ha anche l effetto di diffondere la conoscenza attraverso il team, se le coppie cambiano durante lo sviluppo del progetto. Test-driven Development In XP il processo di sviluppo deve essere ossessivamente guidato dai test: i test di feature devono essere realizzati (o quanto meno definiti) prima di sviluppare il relativo codice, e devono essere eseguiti con esito positivo al 100% ogni volta che un programmatore modifica una singola riga di codice sorgente. XP incoraggia anche i programmatori stessi a definire dei test per il modulo software da loro realizzato. 39

40 Modelli di processo Extreme Programming Continuous Integration In un progetto XP l integrazione dei vari moduli software che compongono la soluzione è garantita dalla generazione continua di build (8-10 volte al giorno, contro il ciclo di build settimanale adottato dalla maggior parte delle software house). Inoltre, la costruzione del build è a carico del team, non di terze persone meno coinvolte nel processo di sviluppo. In questo modo, a fronte di un carico di lavoro notevole per gli sviluppatori del team, si ha la garanzia che il prodotto sia costantemente funzionante e si evitano gli errori (spesso molto subdoli) dovuti all integrazione fra moduli. Collective Code Ownership Nei progetti XP, ogni coppia di programmatori può liberamente modificare porzioni di codice scritte da altri: la proprietà del codice è dell intero team, e non esistono moduli di esclusiva pertinenza di alcune persone. In questo modo l intero codice riceve le attenzioni di più programmatori, e risulta migliore e meno incline agli errori. La Collective Code Ownership potrebbe rappresentare un problema se le persone fossero costrette a lavorare alla cieca su codice che non conoscono. 40

Il Processo Software

Il Processo Software Il Processo Software 29-03-2012 Prodotto Software Prodotto di qualità Tempi e costi determinati Processo Software Attività portanti Famiglia di compiti Attività ausiliari Quadro di riferimento Processo

Dettagli

RUP (Rational Unified Process)

RUP (Rational Unified Process) RUP (Rational Unified Process) Caratteristiche, Punti di forza, Limiti versione del tutorial: 3.3 (febbraio 2007) Pag. 1 Unified Process Booch, Rumbaugh, Jacobson UML (Unified Modeling Language) notazione

Dettagli

Sviluppo Agile. Prof. Filippo Lanubile. Processo software

Sviluppo Agile. Prof. Filippo Lanubile. Processo software Sviluppo Agile I processi (di sviluppo) del software bisogni nuovi o modificati Processo software Prodotto software nuovo o modificato Un processo software descrive quali sono le attività che concorrono

Dettagli

metodologie metodologia una serie di linee guida per raggiungere certi obiettivi

metodologie metodologia una serie di linee guida per raggiungere certi obiettivi metodologie a.a. 2003-2004 1 metodologia una serie di linee guida per raggiungere certi obiettivi più formalmente: un processo da seguire documenti o altri elaborati da produrre usando linguaggi più o

Dettagli

Il Processo Software

Il Processo Software Il Processo Software 03/04/13 Prodotto Software Prodotto di qualità Tempi e costi determinati Processo Software Attività portanti Famiglia di compiti Attività ausiliari Quadro di riferimento Processo Software

Dettagli

Gestione dello sviluppo software Modelli Agili

Gestione dello sviluppo software Modelli Agili Università di Bergamo Facoltà di Ingegneria GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_3 V1.1 Gestione dello sviluppo software Modelli Agili Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

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

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione 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

Dettagli

Agile. mercoledì, 1 luglio 2015, 3:05 p. Prof. Tramontano docente Federico II ingegneria del software. Sviluppo Agile: metaprocesso

Agile. mercoledì, 1 luglio 2015, 3:05 p. Prof. Tramontano docente Federico II ingegneria del software. Sviluppo Agile: metaprocesso Agile mercoledì, 1 luglio 2015, 3:05 p. Prof. Tramontano docente Federico II ingegneria del software Sviluppo Agile: metaprocesso Molti progetti software falliscono Sì parte dagli anni 2000 Millennium

Dettagli

Il metodo extreme Programming in sintesi

Il metodo extreme Programming in sintesi extreme Programming Approach Il metodo extreme Programming in sintesi Piergiuliano Bossi Coach Marina Morgagni Engagement Manager Quinary SpA Copyright 2001-2004 Quinary SpA Tutti i diritti sono riservati.

Dettagli

Introduzione all Ingegneria del Software

Introduzione all Ingegneria del Software Introduzione all Ingegneria del Software Alessandro Martinelli alessandro.martinelli@unipv.it 10 Dicembre 2013 Introduzione all Ingegneria del Software Ingegneria del Software Modelli di Sviluppo del Software

Dettagli

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9 Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9 Lezione 15: P.M.: metodologie di progetto Prof.ssa R. Folgieri email: folgieri@dico.unimi.it folgieri@mtcube.com 1 Modelli di conduzione

Dettagli

Ciclo di vita del software

Ciclo di vita del software Ciclo di vita del software Nel corso degli anni, nel passaggio dalla visione artigianale alla visione industriale del software, si è compreso che il processo andava formalizzato attraverso: un insieme

Dettagli

extreme Programming in un curriculum universitario

extreme Programming in un curriculum universitario extreme Programming in un curriculum universitario Lars Bendix Department of Computer Science Lund Institute of Technology Sweden Università di Bologna, 18 giugno, 2002 Extreme Programming On-site customer

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Processi di Sviluppo Agile Origini dello Sviluppo Agile Proposta di un gruppo di sviluppatori che rilevava una serie di criticità degli approcci convenzionali: Troppa rigidità dei

Dettagli

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

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard Quality gate Nei punti chiave del processo di sviluppo del software, viene integrato un insieme di quality gate per monitorare la qualità del prodotto intermedio prima che quest ultimo possa passare al

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

UML e (R)UP (an overview)

UML e (R)UP (an overview) Lo sviluppo di sistemi OO UML e (R)UP (an overview) http://www.rational.com http://www.omg.org 1 Riassumento UML E un insieme di notazioni diagrammatiche che, utilizzate congiuntamente, consentono di descrivere/modellare

Dettagli

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

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo Luca Cabibbo Analisi e Progettazione del Software Sviluppo iterativo, evolutivo e agile Capitolo 2 marzo 2015 Lo sviluppo iterativo dovrebbe essere utilizzato solo per i progetti che si desidera che vadano

Dettagli

La disciplina che cura un approccio sistematico, disciplinato e quantificabile allo sviluppo, all operatività ed alla manutenzione del software

La disciplina che cura un approccio sistematico, disciplinato e quantificabile allo sviluppo, all operatività ed alla manutenzione del software Ingegneria del software (software engineering) La branca dell'ingegneria che si occupa della realizzazione di sistemi software. La disciplina che cura un approccio sistematico, disciplinato e quantificabile

Dettagli

Extreme programming e metodologie agili

Extreme programming e metodologie agili Extreme programming e metodologie agili Università degli Studi di Brescia, 8 Giugno 2007 Ing. Daniele Armanasco daniele@armanasco.it Ing. Emanuele DelBono emanuele@codiceplastico.com Enti organizzatori

Dettagli

Il modello RAD 1. Rapid Application Development punta a un ciclo di sviluppo molto breve

Il modello RAD 1. Rapid Application Development punta a un ciclo di sviluppo molto breve Il modello RAD 1 Rapid Application Development punta a un ciclo di sviluppo molto breve adattamento del modello a cascata in cui l obiettivo di uno sviluppo rapido è raggiunto grazie a strategie costruttive

Dettagli

Modelli di Processo. www.vincenzocalabro.it

Modelli di Processo. www.vincenzocalabro.it Modelli di Processo Il Modello del Processo Il modello del processo stabilisce i principi di base su cui si fonda lo sviluppo del software (e a cui è dovuto il successo o l insuccesso) Non esiste un unico

Dettagli

Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al.

Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al. Modello Code and fix Processo parte III Leggere Sez. 7.4 Ghezzi et al. Modello iniziale Iterazione di due passi scrittura del codice correzione degli errori Problemi: dopo una serie di cambiamenti, la

Dettagli

Una fugace occhiata al Test Driven Development

Una fugace occhiata al Test Driven Development Una fugace occhiata al Test Driven Development Roberto Bettazzoni roberto@bettazzoni.it http://creativecommons.org/licenses/by-sa/3.0/ 1 Cosa è il TDD? 2 Cosa è il TDD? Una pratica agile. 3 Pratiche agili...

Dettagli

Ciclo di vita del progetto

Ciclo di vita del progetto IT Project Management Lezione 2 Ciclo di vita del progetto Federica Spiga A.A. 2009-2010 1 Ciclo di vita del progetto Il ciclo di vita del progetto definisce le fasi che collegano l inizio e la fine del

Dettagli

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

Processi di Sviluppo Software Introduzione. Giuseppe Calavaro

Processi di Sviluppo Software Introduzione. Giuseppe Calavaro Processi di Sviluppo Software Introduzione Giuseppe Calavaro Processi di sviluppo software - Agenda Differenza tra Programmazione e Progettazione SW I Processi di Sviluppo Software Waterfall Spirale RUP

Dettagli

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

Poca documentazione: uso di Story Card e CRC (Class Responsibility Collabor) Collaborazione con il cliente rispetto alla negoziazione dei contratti Sviluppo Agile [Cockburn 2002] Extreme Programming (XP) [Beck 2000] Sono più importanti auto-organizzazione, collaborazione, comunicazione tra membri del team e adattabilità del prodotto rispetto ad ordine

Dettagli

02: Project Management

02: Project Management 02: Project Management Le tre P del project management Persone motivate / esperte SEI PM-CMM (People Management Capability Maturity Model) assunzione / selezione addestramento / cultura di gruppo stipendio

Dettagli

2. Ciclo di Vita e Processi di Sviluppo

2. Ciclo di Vita e Processi di Sviluppo 2. 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) 2. Ciclo di Vita e Processi di

Dettagli

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. Modelli di produzione del software Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. Concetti di base Sommario 2. Modelli del ciclo vita del software 2.1 Modello a cascata 2.2 Modelli incrementali

Dettagli

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9 Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9 Lezione 12: Metodologie: controllo qualità P.M. Fase 3-4: tracking di progetto, introduzione Prof.ssa R. Folgieri email: folgieri@dico.unimi.it

Dettagli

Organizzazione della lezione. Extreme Programming (XP) Lezione 19 Extreme Programming e JUnit. JUnit. JUnit. Test-Driven Development

Organizzazione della lezione. Extreme Programming (XP) Lezione 19 Extreme Programming e JUnit. JUnit. JUnit. Test-Driven Development Organizzazione della lezione Lezione 19 Extreme Programming e JUnit Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

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

SCD IS. Processi software. Processi Software. UniPD - 2009 - Ingegneria del Software mod. A 1. Definizioni. Modelli di ciclo di vita Processi software Anno accademico 2009/10 Ingegneria del mod. A Tullio Vardanega, tullio.vardanega@math.unipd.it SCD IS Definizioni Ciclo di vita Copre l evoluzione di un prodotto dal concepimento al ritiro

Dettagli

Progetto software 2008/2009. Docente Marianna Nicolosi Asmundo

Progetto software 2008/2009. Docente Marianna Nicolosi Asmundo Progetto software 2008/2009 Docente Marianna Nicolosi Asmundo Obiettivi del corso Coinvolgervi nello sviluppo di un progetto software in cui mettere a frutto le conoscenze che avete acquisito durante i

Dettagli

Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: 1.0. www.analisi-disegno.com. Pag. 1

Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: 1.0. www.analisi-disegno.com. Pag. 1 Scrum Caratteristiche, Punti di forza, Limiti versione del tutorial: 1.0 Pag. 1 Scrum è uno dei processi agili (www.agilealliance.com) il termine è derivato dal Rugby, dove viene chiamato Scrum il pacchetto

Dettagli

Linee guida per la gestione del rischio nei progetti di sviluppo e manutenzione dei sistemi

Linee guida per la gestione del rischio nei progetti di sviluppo e manutenzione dei sistemi Linee guida per la gestione del rischio nei progetti di sviluppo e manutenzione dei sistemi Quaderno N. 25 Ercole Colonese ercole@colonese.it Roma, 17 dicembre 2007 Argomenti trattati Valutazione del rischio

Dettagli

Indice. Prefazione all edizione italiana

Indice. Prefazione all edizione italiana Indice Prefazione all edizione italiana XV Capitolo 1 Il software e l ingegneria del software 1 1.1 L evoluzione del ruolo del software 3 1.2 Il software 5 1.3 La natura mutevole del software 8 1.4 Il

Dettagli

La nuova ISO 9001 e le aziende di sviluppo software

La nuova ISO 9001 e le aziende di sviluppo software La nuova ISO 9001 e le aziende di sviluppo software Giovanni A. Cignoni, Dip. di Informatica, Univ. di Pisa Davide Morano, SIAS - Gruppo KataWeb Ottobre 2000 Sommario L impostazione della nuova ISO 9001,

Dettagli

Ingegneria del Software 2

Ingegneria del Software 2 Politecnico di Milano Anno Accademico 2010/2011 Ingegneria del Software 2 Corso della Prof.ssa Elisabetta Di Nitto Stefano Invernizzi Facoltà di Ingegneria dell Informazione Corso di Laurea Magistrale

Dettagli

* Che cos è un processo software

* Che cos è un processo software Luca Cabibbo Analisi e Progettazione del Software Sviluppo iterativo, evolutivo e agile Capitolo 2 marzo 2013 Lo sviluppo iterativo dovrebbe essere utilizzato solo per i progetti che si desidera che vadano

Dettagli

Ciclo di Vita Evolutivo

Ciclo di Vita Evolutivo Ciclo di Vita Evolutivo Prof.ssa Enrica Gentile a.a. 2011-2012 Modello del ciclo di vita Stabiliti gli obiettivi ed i requisiti Si procede: All analisi del sistema nella sua interezza Alla progettazione

Dettagli

3. SOFTWARE MANAGEMENT

3. SOFTWARE MANAGEMENT 3. SOFTWARE MANAGEMENT Introdurre caratteristiche e problematiche della direzione di progetto software (software management) Discutere la pianificazione di un progetto e la temporizzazione (scheduling)

Dettagli

Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa. La mia scuola ha un sito Web

Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa. La mia scuola ha un sito Web Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web Presentazione del corso Contenuti e obiettivi del corso Imparare a lavorare con le metodologie dell ingegneria del

Dettagli

Ingegneria del Software Requisiti e Specifiche

Ingegneria del Software Requisiti e Specifiche Ingegneria del Software Requisiti e Specifiche Obiettivi. Affrontare i primi passi della produzione del software: la definizione dei requisiti ed il progetto architetturale che porta alla definizione delle

Dettagli

Processi per lo sviluppo rapido del software

Processi per lo sviluppo rapido del software Lezione 3 Processi per lo sviluppo rapido del software Sviluppo Rapido del Software Slide 1 Riferimenti bibliografici I. Sommerville Ingegneria del Software 8a edizione Cap.17 R. Pressman- Principi di

Dettagli

Il Capability Maturity Model CMM. Il Capability Maturity Model. Il concetto di maturità (2) Il concetto di capability. Rapporti tra i livelli

Il Capability Maturity Model CMM. Il Capability Maturity Model. Il concetto di maturità (2) Il concetto di capability. Rapporti tra i livelli Il Capability Maturity Model Il Capability Maturity Model CMM Il SW-CMM (SW - Capability Maturity Model) definisce un modello dei processi di sviluppo del software e un insieme di regole per il loro miglioramento.

Dettagli

Il sistema di automazione nelle Raffinerie di olio alimentare

Il sistema di automazione nelle Raffinerie di olio alimentare Il sistema di automazione nelle Raffinerie di olio alimentare Bellini Marco Responsabile Tecnico Software B&B Automation srl CHI SIAMO Soluzioni di Automazione a 360 18 Anni di esperienza 25 persone competenti

Dettagli

Ingegneria del Software. Processi di Sviluppo

Ingegneria del Software. Processi di Sviluppo Ingegneria del Software Processi di Sviluppo Ingegneria del Software: Tecnologia Stratificata tools metodi processi Focus sulla qualità Ingegneria del Software: Tecnologia Stratificata (2) Qualità Elemento

Dettagli

Project Portfolio Management e Program Management in ambito ICT: la verifica di fattibilità del Piano.

Project Portfolio Management e Program Management in ambito ICT: la verifica di fattibilità del Piano. Project Portfolio Management e Program Management in ambito ICT: la verifica di fattibilità del Piano. di: Enrico MASTROFINI Ottobre 2004 Nella formulazione iniziale del Piano Ict sono di solito inseriti

Dettagli

Business white paper. Sette best practice per creare applicazioni che rispondano alle esigenze aziendali

Business white paper. Sette best practice per creare applicazioni che rispondano alle esigenze aziendali Business white paper Sette best practice per creare applicazioni che rispondano alle esigenze aziendali Indice 3 Sommario esecutivo 3 Introduzione 3 Best practice a livello aziendale 5 Best practice a

Dettagli

13. Ciclo di Vita e Processi di Sviluppo

13. Ciclo di Vita e Processi di Sviluppo 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

Dettagli

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto) CORSO DI Gestione aziendale Facoltà di Ingegneria IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto) Carlo Noè Università Carlo Cattaneo Istituto di Tecnologie e-mail: cnoe@liuc.it 1 Il processo di

Dettagli

Lo Studio di Fattibilità

Lo Studio di Fattibilità Lo Studio di Fattibilità Massimo Mecella Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza Definizione Insieme di informazioni considerate necessarie alla decisione sull investimento

Dettagli

Sviluppo di applicazioni internet:

Sviluppo di applicazioni internet: Sviluppo di applicazioni internet: Rad versus approccio formale Mario Quirico 2 Come si fa a introdurre l'uso di tecniche formali nello sviluppo delle applicazioni internet senza incappare nelle spire

Dettagli

Software project management. www.vincenzocalabro.it

Software project management. www.vincenzocalabro.it Software project management Software project management Sono le attività necessarie per assicurare che un prodotto software sia sviluppato rispettando le scadenze fissate rispondendo a determinati standard

Dettagli

ESI International. Project Management & Business Analysis Solutions. www.esi-italy.it

ESI International. Project Management & Business Analysis Solutions. www.esi-italy.it ESI International Project Management & Business Analysis Solutions www.esi-italy.it Chi siamo Leader globali nei servizi di PERFORMANCE IMPROVEMENT in: Project Management Business Analysis Agile Project

Dettagli

IT Quality e Circolare 263

IT Quality e Circolare 263 IT Quality e Circolare 263 Trasformarsi per tempo puntando su Controllo dei Processi e Test Strutturato «Voi Siete Qui»: continuità ed elementi di novità Crisi 2008-09: nuovi modelli regolatori e normative

Dettagli

La progettazione del software nelle piccole o micro imprese

La progettazione del software nelle piccole o micro imprese La progettazione del software nelle piccole o micro imprese Il contenuto di questo documento è strettamente confidenziale, la visione dello stesso è consentita solo al personale di FadeOut Snc e della

Dettagli

ARIES. Architettura per l'implementazione rapida dei Sistemi Aziendali. Presentazione della metodologia ARIES

ARIES. Architettura per l'implementazione rapida dei Sistemi Aziendali. Presentazione della metodologia ARIES ARIES Architettura per l'implementazione rapida dei Sistemi Aziendali. Presentazione della metodologia ARIES ARIES è una metodologia per implementare rapidamente sistemi informativi aziendali complessi,

Dettagli

LARISSA MOSS. Agile Project Management per progetti di Business Intelligence e Data Warehouse

LARISSA MOSS. Agile Project Management per progetti di Business Intelligence e Data Warehouse LA TECHNOLOGY TRANSFER PRESENTA LARISSA MOSS Agile Project Management per progetti di Business Intelligence e Data Warehouse ROMA 15-16 MAGGIO 2008 RESIDENZA DI RIPETTA - VIA DI RIPETTA, 231 info@technologytransfer.it

Dettagli

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

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari www.agile.diee.unica. Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite Agile Group DIEE, Università di Cagliari www.agile.diee.unica.it Agile Group Agile Group, gruppo di ricerca su Ingegneria del SW,

Dettagli

Ciclo di vita del software

Ciclo di vita del software Ciclo di vita del software Da Wikipedia, l'enciclopedia libera. L'espressione ciclo di vita del software si riferisce al modo in cui una metodologia di sviluppo o un modello di processo scompongono l'attività

Dettagli

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

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello Corso di Laurea Triennale in Ingegneria Informatica Corso di Ingegneria del A. A. 2004-2005 1 La progettazione È applicata indipendentemente dal modello di processo utilizzato. Parte dal punto in cui sono

Dettagli

LA TECHNOLOGY TRANSFER PRESENTA LARISSA. al Data Warehousing e alla Business Intelligence

LA TECHNOLOGY TRANSFER PRESENTA LARISSA. al Data Warehousing e alla Business Intelligence LA TECHNOLOGY TRANSFER PRESENTA LARISSA MOSS EXTREME SCOPING TM Approcci Agili al Data Warehousing e alla Business Intelligence ROMA 26-27 APRILE 2010 RESIDENZA DI RIPETTA - VIA DI RIPETTA, 231 info@technologytransfer.it

Dettagli

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

Dettagli

1. L Ingegneria del Software

1. L Ingegneria del Software 1. L Ingegneria del Software Obiettivi della lezione: Definire cosa si intende per Ingegneria del Software Discutere i concetti di prodotto software e di processo software Spiegare il concetto di visibilità

Dettagli

Sistemi di Elaborazione dell Informazione

Sistemi di Elaborazione dell Informazione Sistemi di Elaborazione dell Informazione Parte Terza L Informazione Il Ciclo di Vita del Software Studio di fattibilità Disegno Dati Analisi dei requisiti Sviluppo Installazione e Collaudo Disegno Software

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Processi principali per il completamento del progetto

Processi principali per il completamento del progetto Piano di progetto È un documento versionato, redatto dal project manager per poter stimare realisticamente le risorse, i costi e i tempi necessari alla realizzazione del progetto. Il piano di progetto

Dettagli

Gestione di progetto. Gestione di progetto. Criticità. Fattori di rischio. Fondamenti. Istanziare processi nel progetto

Gestione di progetto. Gestione di progetto. Criticità. Fattori di rischio. Fondamenti. Istanziare processi nel progetto Criticità Gestione di progetto Ingegneria del Software V. Ambriola, G.A. Cignoni, C. Montangero, L. Semini Aggiornamenti: T. Vardanega (UniPD) Il prodotto SW è intangibile e (troppo) flessibile Al software

Dettagli

Obiettivi della Lezione. Project Management. Software Project Management. Che cos è un progetto

Obiettivi della Lezione. Project Management. Software Project Management. Che cos è un progetto Project Management Dott. Andrea F. Abate e-mail: abate@unisa.it Web: http://www.dmi.unisa.it/people/abate Gestione di Progetti Software: Pianificazione delle attività e rappresentazioni grafiche Obiettivi

Dettagli

LAVORO DI GRUPPO. Caratteristiche dei gruppi di lavoro transnazionali

LAVORO DI GRUPPO. Caratteristiche dei gruppi di lavoro transnazionali LAVORO DI GRUPPO Caratteristiche dei gruppi di lavoro transnazionali Esistono molti manuali e teorie sulla costituzione di gruppi e sull efficacia del lavoro di gruppo. Un coordinatore dovrebbe tenere

Dettagli

5 Gestione dei progetti software. 5.1 Attività gestionale. Sistemi Informativi I Lezioni di Ingegneria del Software

5 Gestione dei progetti software. 5.1 Attività gestionale. Sistemi Informativi I Lezioni di Ingegneria del Software 5 Gestione dei progetti software. Dopo aver completato lo studio del ciclo di vita del software, in questa parte vengono discussi gli aspetti gestionali della produzione del software. Vengono esaminate

Dettagli

Progetto di Informatica III

Progetto di Informatica III Progetto di Informatica III Sviluppo Agile (Agile Software Development) Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Metodologia agile Agile Manifesto Che cos è l agilità

Dettagli

CONCETTI DI BASE PER LA QUALITA

CONCETTI DI BASE PER LA QUALITA CONCETTI DI BASE PER LA QUALITA Misura: è una funzione m: A -> B che associa ad ogni attributo A di un osservabile nel mondo reale o empirico (dominio) un oggetto formale B nel mondo matematico (range);

Dettagli

ORGANIZZAZIONE E PROJECT MANAGEMENT

ORGANIZZAZIONE E PROJECT MANAGEMENT MUSEOLOGIA E CONSERVAZIONE DEI BENI MUSEALI ORGANIZZAZIONE E PROJECT BARBARA SORESINA Project Manager 16 DICEMBRE 2013 01.1 GESTIONE STRATEGICA PREMESSA PIANIFICAZIONE DI PROGRAMMI E PROGETTI scelta delle

Dettagli

Verona 18 novembre 2010 Ing. Ezio MIOZZO www.ingmiozzo.it. Ing.Ezio MIOZZO

Verona 18 novembre 2010 Ing. Ezio MIOZZO www.ingmiozzo.it. Ing.Ezio MIOZZO Verona 18 novembre 2010 Ing. Ezio MIOZZO www.ingmiozzo.it 1 Indice Il contesto Metodologie Agili L extreme Project Management Lean Thinking o pensiero Snello Convergenza dei vari approcci 2 Contesto Da

Dettagli

Diffusione delle metodologie di Agile Software Development

Diffusione delle metodologie di Agile Software Development Università degli Studi di Padova FACOLTÀ DI INGEGNERIA Corso di Laurea Magistrale in Ingegneria Informatica Tesi di Laurea Magistrale Diffusione delle metodologie di Agile Software Development Risultati

Dettagli

Cos è l Ingegneria del Software?

Cos è l Ingegneria del Software? Cos è l Ingegneria del Software? Corpus di metodologie e tecniche per la produzione di sistemi software. L ingegneria del software è la disciplina tecnologica e gestionale che riguarda la produzione sistematica

Dettagli

Piano di gestione della qualità

Piano di gestione della qualità Piano di gestione della qualità Pianificazione della qualità Politica ed obiettivi della qualità Riferimento ad un eventuale modello di qualità adottato Controllo della qualità Procedure di controllo.

Dettagli

Introduzione. Capitolo 1

Introduzione. Capitolo 1 Capitolo 1 Introduzione Architecture is the set of design decisions that you wish you could get right early in a project, but that you are not necessarily more likely to get them right than any other.

Dettagli

Ciclo e Processo di Sviluppo: approcci tradizionali, evolutivi, agili, free open source software

Ciclo e Processo di Sviluppo: approcci tradizionali, evolutivi, agili, free open source software Ciclo e Processo di Sviluppo: approcci tradizionali, evolutivi, agili, free open source software 1 Ingegneria del software L istituzione e l impiego di principi ingegneristici fondati, allo scopo di ottenere

Dettagli

Il software: natura e qualità

Il software: natura e qualità Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne

Dettagli

Corso di Progettazione di sistemi multimediali

Corso di Progettazione di sistemi multimediali Corso di Progettazione di sistemi multimediali prof. Pierluigi Feliciati a.a.2012/13 Modulo 0 Progettare, sistemi, multimedialità: Definizioni, strumenti, ciclo di vita dei progetti, figure professionali

Dettagli

Gestione. di progetto. Gestione di progetto. IS 2011 - Ingegneria del Software 1. Contenuti. Fondamenti. Criticità. Gestione dei rischi 1

Gestione. di progetto. Gestione di progetto. IS 2011 - Ingegneria del Software 1. Contenuti. Fondamenti. Criticità. Gestione dei rischi 1 Contenuti Gestione di progetto Ruoli professionali Pianificazione di progetto Ingegneria del Software Stima dei costi di progetto V. Ambriola, G.A. Cignoni, C. Montangero, L. Semini Seminario: rischi di

Dettagli

Software Testing. Lezione 1 Introduzione al processo di testing. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: A. Bei/F.

Software Testing. Lezione 1 Introduzione al processo di testing. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: A. Bei/F. Software Testing Lezione 1 Introduzione al processo di testing Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: A. Bei/F.Spiga 1 2 Definizione di Software Testing Glen Myers -The Art of Software

Dettagli

SACE BT realizza su tecnologia Microsoft la piattaforma di gestione delle polizze

SACE BT realizza su tecnologia Microsoft la piattaforma di gestione delle polizze Caso di successo Microsoft Integration SACE BT SACE BT realizza su tecnologia Microsoft la piattaforma di gestione delle polizze Informazioni generali Settore Istituzioni finanziarie Il Cliente Il Gruppo

Dettagli

ANALISI E VALUTAZIONE DI TECNICHE DI PROGRAMMAZIONE AGILE PER LO SVILUPPO DI APPLICAZIONI JAVA

ANALISI E VALUTAZIONE DI TECNICHE DI PROGRAMMAZIONE AGILE PER LO SVILUPPO DI APPLICAZIONI JAVA Seconda Università degli Studi di Napoli Tesi di Laurea in Ingegneria Informatica ANALISI E VALUTAZIONE DI TECNICHE DI PROGRAMMAZIONE AGILE PER LO SVILUPPO DI APPLICAZIONI JAVA Relatore Prof. Massimo Ficco

Dettagli

Rischi 1. Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi

Rischi 1. Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi Rischi 1 Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi Un ingegnere del software viene coinvolto direttamente nel processo di identificazione delle aree potenziali

Dettagli

IL PROGETTO E IL PROJECT MANAGEMENT

IL PROGETTO E IL PROJECT MANAGEMENT Master executive in Gestione della Manutenzione Industriale 1 Tecniche e Metodologie di Project Management IL PROGETTO E IL PROJECT MANAGEMENT Ing. A. Massaro, Ing. P. Gaiardelli Definizione univoca 2

Dettagli

Coordinamento e comunicazione

Coordinamento e comunicazione Team Agili I membri del team devono fidarsi gli uni degli altri. Le competenze dei membri del team deve essere appropriata al problema. Evitare tutte le tossine che creano problemi Il team si organizza

Dettagli

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE INGEGNERIA DEL SOFTWARE INTRODUZIONE Avvertenza: gli appunti si basano sul corso di Ingegneria del Software tenuto dal prof. Picco della facoltà di Ingegneria del Politecnico di Milano (che ringrazio per

Dettagli

Il ciclo di vita del software. La necessita` di un modello. La mancanza di un modello. La prima proposta di soluzione

Il ciclo di vita del software. La necessita` di un modello. La mancanza di un modello. La prima proposta di soluzione Il ciclo di vita del software Progettazione e implementazione è solo una fase, per quanto importante, della produzione industriale del software Altre fasi sono importanti. Ad esempio: h Analisi dei requisiti

Dettagli

7. La Qualità del Software

7. La Qualità del Software Cosa è la qualità 7. La del Software Diversi enti di standardizzazione (es. ISO) hanno cercato di integrare vari approcci alla definizione della qualita, partendo dalla consapevolezza che la qualità è

Dettagli

Gestione e Miglioramento dei Processi di Produzione del Software

Gestione e Miglioramento dei Processi di Produzione del Software Gestione e Miglioramento dei Processi di Produzione del Software Ingegneria del Software 2 Processo Software 1 Riferimenti Sommerville, Capitolo 28 Dennis M. Ahern, Aaron Clouse, and Richard Turner, CMMI

Dettagli

Dall analisi dei requisiti alla specifica della soluzione

Dall analisi dei requisiti alla specifica della soluzione Dall analisi dei requisiti alla specifica della soluzione G.Raiss - 4 maggio 2001 1 IL processo di produzione del sw Passando da un approccio artigianale ad uno industriale nello sviluppo del software,

Dettagli

Gestire un progetto di introduzione di sistemi informativi di SCM. 1 Marco Bettucci Gestione della produzione II - LIUC

Gestire un progetto di introduzione di sistemi informativi di SCM. 1 Marco Bettucci Gestione della produzione II - LIUC Gestire un progetto di introduzione di sistemi informativi di SCM 1 Che cos è un progetto? Una serie complessa di attività in un intervallo temporale definito... finalizzate al raggiungimento di obiettivi

Dettagli

Metodologia Classica di Progettazione delle Basi di Dati

Metodologia Classica di Progettazione delle Basi di Dati Metodologia Classica di Progettazione delle Basi di Dati Metodologia DB 1 Due Situazioni Estreme Realtà Descritta da un documento testuale che rappresenta un insieme di requisiti del software La maggiore

Dettagli

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

Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Gestione di progetto. Marina Mongiello Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del Gestione di progetto Contenuti Gestione di progetto Ruoli professionali Pianificazione di progetto Stima dei costi di progetto Rischi

Dettagli