corso di laurea triennale in ingegneria informatica ingegneria del software gestione di progetto

34
Corso di Laurea Triennale in Ingegneria Corso di Laurea Triennale in Ingegneria Informatica Informatica Ingegneria del software Ingegneria del software Gestione di progetto Gestione di progetto

Upload: romana-moro

Post on 01-May-2015

228 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Corso di Laurea Triennale in Ingegneria Corso di Laurea Triennale in Ingegneria InformaticaInformatica

Ingegneria del softwareIngegneria del software

Gestione di progettoGestione di progetto

Page 2: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Contenuti Contenuti

• Gestione di progetto• Ruoli professionali• Pianificazione di progetto• Stima dei costi di progetto• Rischi di progetto

Page 3: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Gestione del progettoGestione del progetto

• Dal processo al progetto – Da processo definito a standard aziendale– Processo istanziati secondo le esigenze del progetto

• Stimare i costi e le risorse necessarie• Pianificare le attività, assegnarle alle persone• Controllare le attività e verificare i risultati

Page 4: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware ProblematicheProblematiche

• Il prodotto software è intangibile e flessibile• All’ingegneria del software non viene riconosciuta

la dignità di altre discipline ingegneristiche• Il processo di sviluppo

Page 5: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Fattori di rischioFattori di rischio

• Variabilità del personale– Incluso il responsabile

• Disponibilità della piattaforme di sviluppo di esecuzione• Variabilità dei requisiti• Ritardo nelle specifiche

– Iniziali (del committente) e/o interne (del fornitore)– Variabilità delle tecnologie

• Prodotti nuovi vs obsoleti (non più manutenuti)• Competizione sul mercato

Page 6: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Gestione dei rischiGestione dei rischi

• Identificazione – Nel progetto, nel prodotto, nel business

• Analisi– Probabilità di occorrenza e conseguenze possibili

• Pianificazione– Come evitarne o minimizzare gli effetti

• Controllo– Attenzione continua nel corso del progetto

Page 7: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Ruoli Ruoli

• Funzioni aziendali assegnate al progetto• Sviluppo: aspetti tecnologici• Direzione: responsabilità decisionali• Amministrazione: gestione dei processi• Controllo: gestione del sistema qualità

• Profilo professionale• Requisiti per l’assunzione di un ruolo in un progetto• Competenze tecnologiche e metodologiche• Esperienze espresse in anni e partecipazione a progetti

Page 8: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Analisti e progettistiAnalisti e progettisti

• Analisti– Conoscono il dominio ed hanno una cospicua esperienza

professionale– Hanno grande impatto sul successo del progetto– Sono pochi. Raramente seguono il progetto fino alla conclusione

• Progettisti– Hanno competenze tecniche e tecnologiche aggiornate ed esperienza

professionale– Hanno grande impatto sugli aspetti tecnici e tecnologici del progetto.

Spesso ne assumono responsabilità di scelta e gestione – Sono pochi. Talvolta seguono il prodotto fino alla manutenzione

Page 9: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Programmatori e verificatoriProgrammatori e verificatori

• Programmatori• Partecipano alla realizzazione e manutenzione del prodotto• Hanno competenze tecniche, visione e responsabilità circoscritte• Formano la categoria storicamente più numerosa• Partecipano anche alla manutenzione

• Verificatori• Partecipano all’intero ciclo di vita• Hanno competenze tecniche, conoscenza delle norme, esperienza

di progetto• Hanno capacità di giudizio e di relazione

Page 10: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Responsabile di progettoResponsabile di progetto

• Rappresenta il progetto• Accentra le responsabilità di scelta e approvazione• Partecipa al progetto per tutta la sua durata• È difficilmente sostituibile

• Responsabilità • Pianificazione• Gestione delle risorse umane• Controllo e coordinamento

• Deve avere conoscenze e capacità tecniche• Per comprendere ed anticipare l’evoluzione del progetto

Page 11: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Amministrazione di progettoAmministrazione di progetto

• Controllo dell’ambiente di sviluppo• Amministrazione delle risorse e delle infrastrutture• Risoluzione di problemi legati all’ambiente e al processo• Gestione della documentazione di progetto• Controllo di versioni e configurazioni

• Funzione o ruolo?• Funzione in aziende molto strutturate, con progetti simili• Ruolo (spesso si più persone) in progetti diversificati

Page 12: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Controllo della qualitàControllo della qualità

• La funzione di più recente introduzione– Funzione e non ruolo

• Accertamento della qualità– Dei prodotti e dei processi– Sia verso il committente che verso la direzione aziendale

• Dare confidenza– Definendo e manutenendo i processi aziendali– Verificandone la corretta applicazione

Page 13: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Pianificazione di progettoPianificazione di progetto

• Definizione delle attività– Per pianificarne lo svolgimento e controllarne l’attuazione– Per avere una base su cui gestire l’allocazione delle risorse– Per stimare e controllare scadenze e costi

• Strumenti per la pianificazione– Work Breakdown structure– Diagrammi di Gantt “works, Wages and profit”, HenryL.

Gantt” the engineering magazine” 1910)

Page 14: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Work breakdown structureWork breakdown structure

• Struttura gerarchica delle attività• Ogni attività si compone di sottoattività• Non necessariamente sequenziali• Univocamente identificate

1. offerta

1.3 piano di progetto

1.2 analisi dei requisiti

1.1 studio di fattibilità

Page 15: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Diagrammi di GanttDiagrammi di Gantt

• Dislocazione temporale delle attività» Per rappresentare la durata» Per rappresentare sequenzialità e parallelismo» Per confrontare le stime con i progressi

tempo

Studio di fattibilità

Analisi dei requisiti

Piano di progetto

Durata effettivaDurata pianificata

Page 16: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Diagrammi PERTDiagrammi PERT

• Dipendenze temporali tra attività– Per ragionare sulle scadenze di un progetto– Slack time, free slack, total slack…– Cammino critico

Studio di fattibilità

8/11 30/11

Analisi dei requisit

19/11 9/11

Piano di progetto

30/11 14/11

Slack=0

Slack=5

Page 17: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Allocazione delle risorseAllocazione delle risorse

• Assegnare attività e ruoli a persone• Problemi

– Non sottostimare– Non sovrastimare

• Risorse impegnate su progetti diversi• Per non correre il rischio di sottoallocare• Per far fronte alle richieste dei clienti ( mai rifiutare)• Cammini critici su più progetti

Page 18: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Stima dei costi di progettoStima dei costi di progetto

• Come pianificare– Gli strumenti permettono di:

• organizzare le attività• evidenziare le criticità• studiare scenari diversi

– Come definire durata e costo della attività?• Tempo/persona

– Unità di misura del tempo necessario a un progetto– Come stimare il tempo/persona?

Page 19: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Fattori di influenzaFattori di influenza

• Dimensione del progetto• Esperienza del dominio• Tecnologie adottate• Ambiente di sviluppo• Qualità richiesta dei processi

Page 20: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Tecniche di stimaTecniche di stima

• Legge di Parkinson• 1951, C. Northcote Parkinson. Parkinson’s law: the pursuit

progress: “work expands to fill the time available”.• Prezzo per vincere• Giudizio dell’esperto• Stima per analogia• Modello algoritmico dei costi

Page 21: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Constructive Cost ModelConstructive Cost Model

• Stima le risorse necessarie in mesi/persona– Software engineering economics, b. Boehm, Prentice Hall,

1981• M/P=CxDSxM

– C fattore di complessità del progetto– D misura della dimensione stimata del prodotto– S esponente di complesità– M fattore derivante dalla valutazione di altri attributi

• D=KDSI– Kilo Delivered Source Instructions

Page 22: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware CoCoMO in versione baseCoCoMO in versione base

• Bassa complessità del progetto: Simple– È possibile avere una visione globale del prodotto– C=2.4, S=1.04, M=1 [organic]

• Complessità media: Moderate– Il prodotto può essere compreso solo per componenti– C=3.0, S=1.12, M=1 [semi-detatched]– Complessità elevata: Embedded– Il prodotto interagisce con componenti ed ambiente esterne/o– C=3.6, S=1.20 , M=1

Page 23: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Stime CoCoMOStime CoCoMO

200

400

600

800

1000

M/P

20 40 60 80 1000 KSDI

E

M

S

Page 24: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Raffinamenti del modelloRaffinamenti del modello

• Intermediate CoCoMo– Effect adjustment Factors: fattori moltiplicativi

• Attibuti di prodotto: affidabilità, categorie,…• Attibuti tecnologici: piattaforma, strumenti• Attibuti del personale: esperienza competenze

– M/P=FxCxDSxM, con F=Πifi

• Detailed CoCOMO• Decomposizione del progetto• Stima intermediate per singole componenti• Composizione dei risultati

Page 25: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Rischi di progettoRischi di progetto

• Risultati dei progetti software– Costi eccessivi, scadenze non rispettate– Prodotti insoddisfacenti

• Cause

Page 26: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Categorie di prodotti (1994)Categorie di prodotti (1994)

• Progetti di successo – 16.2% dei progetti

• Progetti a rischio – 52.7% costi pari al 189% delle stime iniziali

• Fallimenti – 31.1%

Page 27: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Fattori di successoFattori di successo

• Coinvolgimento del cliente 15.9%• Supporto della direzione esecutiva 13.9%• Definizione chiara dei requisiti 9.6%• Pianificazione corrette 9.6%• Aspettative realistiche 8.2%• Personale competente 7.2%

Page 28: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Fattori di fallimentoFattori di fallimento

• Requisiti incompleti 13.1%• Mancato coinvolgimento del cliente 12.4%• Mancanza di risorse 10.6%• Aspettative non realistiche 9.9%• Mancanza di supporto esecutivo 9.3%• Fluttuazione dei requisiti 8.7%

Page 29: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Categorie di prodotti (2004)Categorie di prodotti (2004)

• Progetti di successo – 34% dei progetti – Grazie ad un miglioramento nelle tecnihce di gestione

• Fallimenti – 15%

Page 30: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Riferimenti Riferimenti

• B. Boehm,”Cost Models for future software life cycle processes: CoCoMoII,” http://sunset.usc.edu

Page 31: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Corso di Laurea Triennale in Ingegneria Corso di Laurea Triennale in Ingegneria InformaticaInformatica

Ingegneria del softwareIngegneria del software

Miglioramento del processoMiglioramento del processo

Page 32: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware Contenuti Contenuti

• Norme per la definizione delle attività• Strumenti per la definizione dei processi

Page 33: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware

Standard per la definizione del Standard per la definizione del processoprocesso

• IEEE/EIA 12207.0-1996//ISO/IEC12207:1995• IEEE/EIA 12207.1-1996• IEEE/EIA 12207.2-1997

Page 34: Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Gestione di progetto

Ingegneria del Ingegneria del softwaresoftware CMMCMM

• Capability maturity model