Slide 1 Lezione 17. Pianificazione e stima dei costi [S2001, Cap. 23] [GJM91, Sez. 8.2] u Composizione dei costi u Misure di produttività (LOC, FP, OP)

Slides:



Advertisements
Presentazioni simili
Trieste, 26 novembre © 2005 – Renato Lukač Using OSS in Slovenian High Schools doc. dr. Renato Lukač LinuxDay Trieste.
Advertisements

“FIBROSI NEFROGENICA SISTEMICA”
Preposizioni semplici e articolate
Centro Internazionale per gli Antiparassitari e la Prevenzione Sanitaria Azienda Ospedaliera Luigi Sacco - Milano WP4: Cumulative Assessment Group refinement.
I numeri, l’ora, I giorni della settimana
L’esperienza di un valutatore nell’ambito del VII FP Valter Sergo
Cache Memory Prof. G. Nicosia University of Catania
Teoria e Tecniche del Riconoscimento
Parametri Acustici (ISO 3382)
1 Teaching Cloud Computing and Windows Azure in Academia Domenico Talia UNIVERSITA DELLA CALABRIA & ICAR-CNR Italy Faculty Days 2010.
MODULISTICA E MODELLI PER LE ISTANZE DI AUTORIZZAZIONE UNICA Proposte di semplificazione delle procedure amministrative nelle 12 Province aderenti al Progetto.
A. Oppio, S. Mattia, A. Pandolfi, M. Ghellere ERES Conference 2010 Università Commerciale Luigi Bocconi Milan, june 2010 A Multidimensional and Participatory.
EBRCN General Meeting, Paris, 28-29/11/20021 WP4 Analysis of non-EBRCN databases and network services of interest to BRCs Current status Paolo Romano Questa.
DG Ricerca Ambientale e Sviluppo FIRMS' FUNDING SCHEMES AND ENVIRONMENTAL PURPOSES IN THE EU STRUCTURAL FUNDS (Monitoring of environmental firms funding.
1.E un algoritmo ricorsivo: Tutti le istanze di oggetti raggiungibili da un oggetto persistente diventano anchessi persistenti.
Cancer Pain Management Guidelines
Che ore è? Che ore Sono?.
Un DataBase Management System (DBMS) relazionale client/server.
Biometry to enhance smart card security (MOC using TOC protocol)
TIPOLOGIA DELLE VARIABILI SPERIMENTALI: Variabili nominali Variabili quantali Variabili semi-quantitative Variabili quantitative.
LInnovazione di Prodotto. Lo sviluppo di nuovi prodotti e nuovi servizi: una vecchia sfida per le imprese innovative. [emilio bellini]
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
Avis Contact Centres Review
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions.
1 Astroparticle Physics in Space Claudia Cecchi Dipartimento di Fisica e Sezione INFN, Perugia Workshop Nazionale La Scienza e la Tecnologia sulla Stazione.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Introduzione Grid1 Introduzione ai Sistemi Grid. Introduzione Grid2 Generalità Un sistema Grid permette allutente di richiedere lesecuzione di un servizio.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
ATE / 31 Lezione 3 i sistemi automatici di misurazione - gli ATE.
National Project – on going results Potenza 7/10 November 06 IT-G2-SIC-066 – Social Enterprise and Local Development.
Compito desame del Svolgimento della Sezione 5: CONTROLLORI Esempio preparato da Michele MICCIO.
LHCf Status Report Measurement of Photons and Neutral Pions in the Very Forward Region of LHC Oscar Adriani INFN Sezione di Firenze - Dipartimento di Fisica.
SOURCE TERM ON NPP SAFETY ANALYSES Marino Mazzini Professore Ordinario nel s.s.d. Impianti Nucleari Università di Pisa Facoltà di Ingegneria Dipartimento.
Scuola di Dottorato della Facoltà di Scienze MM. FF. NN., Università di Milano Bicocca ELEMENTI DI ORGANIZZAZIONE AZIENDALE Funzione finanza e controllo:
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
PASTIS CNRSM, Brindisi – Italy Area Materiali e Processi per lAgroindustria Università degli Studi di Foggia, Italy Istituto di Produzioni e Preparazioni.
Project Review byNight byNight December 6th, 2011.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI ECONOMIA, GIURISPRUDENZA, INGEGNERIA, LETTERE E FILOSOFIA, SCIENZE POLITICHE. Corso di Laurea Interfacoltà in.
Motor Sizing.
ROBINSON CRUSOE ROBINSON CRUSOE’S ISLAND L’ ISOLA DI
Robotica e Futuro Competenze per la Vita Personale, Professionale e Imprenditoriale Alfonso Molina Professor of Technology Strategy, University of Edinburgh.
Micro-Robot di dispensazione a 3 assi EzROBO 3
Prospettive delle attivita' di Astrofisica Nucleare con Recoil Mass Separators Prospettive delle attivita' di Astrofisica Nucleare con Recoil Mass Separators.
embryo GPS dish (Rieger et al., 2007) Avvicinamento degli embrioni rispetto a micro gocce tradizionali e minore superficie.
Enzo Anselmo Ferrari By Giovanni Amicucci. Di Enzo Questo è Enzo Anselmo Ferrari. Enzo compleanno è diciotto febbraio Enzo muore è quattordici agosto.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
LA RETE EUROPEA E LE FREEWAYS 31 Agosto 1998 Ing. Antonio Laganà - Ferrovie dello Stato.
Federazione Nazionale Commercio Macchine Cantiermacchine Cogena Intemac Unicea Unimot ASSOCIAZIONE ITALIANA PER LA PROMOZIONE DELLA COGENERAZIONE.
Quale Europa? Riscopriamo le radici europee per costruire unEuropa PIÙ vicina a noi ISTITUTO COMPRENSIVO MAZZINI CASTELFIDARDO PROGETTO COMENIUS 2010/2012.
20 maggio 2002 NETCODE Set up a thematic network for development of competence within the Information Society.
UG40 Energy Saving & Twin Cool units Functioning and Adjustment
Software Cost, Effort,Time and H-resource Estimation: Introduction and COCOMO Model.
Estimating Methods Price-to-win Analogy Expert judgement
Negli ultimi anni, la richiesta di poter controllare in remoto la strumentazione e cresciuta rapidamente I miglioramenti nell’hardware e nel software insieme.
Collection & Generics in Java
EMPOWERMENT OF VULNERABLE PEOPLE An integrated project.
"We firmly believe that the on-the-run issues should command a high liquidity premium in the current environment. But with very high probability, the.
LA WEB RADIO: UN NUOVO MODO DI ESSERE IN ONDA.
A PEACEFUL BRIDGE BETWEEN THE CULTURES TROUGH OLYMPICS OLYMPIC CREED: the most significant thing in the olympic games is not to win but to take part OLYMPIC.
Moles and Formula Mass.
Guida alla compilazione del Piano di Studi Curricula Sistemi per l’Automazione Automation Engineering.
Lezione n°27 Università degli Studi Roma Tre – Dipartimento di Ingegneria Corso di Teoria e Progetto di Ponti – A/A Dott. Ing. Fabrizio Paolacci.
Italian 1 -- Capitolo 2 -- Strutture
Final Review Meeting Livorno, Italy January 30-31, 2012
1 Acceleratori e Reattori Nucleari Saverio Altieri Dipartimento di Fisica Università degli Studi - Pavia
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
The effects of leverage in financial markets Zhu Chenge, An Kenan, Yang Guang, Huang Jiping. Department of Physics, Fudan University, Shanghai, ,
Transcript della presentazione:

Slide 1 Lezione 17. Pianificazione e stima dei costi [S2001, Cap. 23] [GJM91, Sez. 8.2] u Composizione dei costi u Misure di produttività (LOC, FP, OP) u Tecniche di stima dei costi di sviluppo software u Stima algoritmica dei costi il modello COCOMO81 il modello COCOMO 2

Slide 2 Pianificazione di progetto e stime di costi u Nella fase di planning di un progetto vengono descritte: le attività in cui il progetto si articola le loro interdipendenze logiche e temporali (sequenziali / parallele) lindividuazione e allocazione di man-power alle singole attività (staffing) u Ma un planning dettagliato deve anche quantificare, per ogni attività, il costo, suddiviso in costi di acquisizione/manutenzione di hardware/software costi di viaggio e training costi del personale coinvolto nel lavoro (dominante) u La stima del costo è essenziale per allocare un budget di progetto per definire il prezzo da proporre al Cliente nel contratto

Slide 3 u I costi del personale che sviluppa il sistema comprendono: salari di ingegneri del software e programmatori overheads (per una quota relativa allo staff coinvolto): »riscaldamento, illuminazione, affitto spazi ufficio... »servizi di segreteria, ufficio personale, assicurazioni, servizi legali, biblioteca, mensa, pulizie... »collegamenti rete e telefonici… »contributi casse pensioni... u Normalmente gli overheads sono una o due volte i salari un ing. che guadagna 100 ML./anno costa ML./anno alla sua organizzazione

Slide 4 Fattori nel calcolo dei prezzi del software

Slide 5 / u Si misura il software secondo qualche parametro, e u si divide per il tempo-programmatore consumato u (-) Le metriche basate su quantità/tempo non tengono conto del fattore qualità u Parametri considerati: misure di dimensione »linee di codice sorgente »linee di codice oggetto misure di funzionalità »function points Produttività del programmatore e impatto sui costi di progetto Stima delle linee di codice del sistema (LOC) Produttività (LOC/mese-uomo) Man-power necessario (mesi-uomo) * Costo unitario (salari+overheads) (M.lire/mese-uomo) Costo progetto (M.lire) +% Prezzo al Cliente (M.lire) Un modello altamente grossolano: / Dimensione team programmazione (# persone) Durata progetto (mesi)

Slide 6 Linee di codice (LOC) u Misura classica: linee di codice sorgente per mese-uomo, includendo analisi, progetto, validazione, documentazione. Ma…: Da FORTRAN a C++ il concetto di linea di codice si complica Diversi criteri di conteggio (commenti?, dichiarazioni di dati?, comandi su piu linee? macro-expansion?) I programmatori verbosi sono più produttivi? I programmatori in linguaggi a più basso livello sono più produttivi? Il programmatore che riusa software già disponibile è meno produttivo? u Un programmatore meno produttivo puo produrre codice piu affidabile, piu facile da capire piu facile da mantenere e modificare

Slide 7 Tempi di sviluppo con linguaggi ad alto / basso livello

Slide 8 Esempio 4

Slide 9 Valori tipici di produttività in LOC u Real-time embedded systems: LOC/P-month (mese-programmatore) u Systems programs: LOC/P-month u Commercial applications: LOC/P-month u In Extreme Programming (continua evoluzione del codice) LOC è poco significativa [Beck2000]

Slide 10 Function points (Albrecht 79) u Metrica indipendente dal linguaggio (ma molto soggettiva…) e orientata a sistemi di data-processing. + Una prima stima è possibile appena definite le interazioni del sistema con lesterno, prima del progetto dettagliato u Si basa sul conteggio di alcuni elementi del programma external inputs and outputs user interactions external interfaces files used by the system u E definita come somma pesata del numero di occorrenze degli elementi i pesi proposti da Albrecht vanno da un valore 3 (per input dallesterno) a un valore 15 (per file interni gestiti dal programma) UFC (Unadjusted Function Count) = i (# elem. tipo i) * peso i u Per ottenere il valore FC finale, UFC viene poi modificato in base a parametri di complessità del progetto, quali: il grado di distributività, di riuso, di performance,...

Slide 11 u Produttività: function points / P-month u Per un dato linguaggio si può definire, basandosi su dati storici, il numero medio di LOC per Function Point (AVC). u Se si dispone di una stima dei Function Points di un nuovo sistema S, si puo stimare la dimensione del parametro LOC di S: LOC(S) = Function Points(S) * AVC u Valori tipici di AVC: Linguaggio assembler: LOC/FP Linguaggio di 4a generazione20-40 LOC/FP

Slide 12 Object points u Object points are an alternative function-related measure to function points, when 4GLs (->) are used u Object points do not count object classes, they are obtained by a weighted estimate of The number of separate screens displayed (weights 1, 2, 3) The number of reports produced by the system(weights 2, 5, 8) The number of 3GL modules (high level programming languages such as Java) needed to supplement the 4GL code (weight 10) u Easily estimated from system specification (i.e. early) u Used in COCOMO-2 estimation model (--->)

Slide 13 (4GL: fourth generation language) An "application specific" language. The term was invented by Jim Martin to refer to non-procedural high level languages built around database systems. The first three generationshigh level languagedatabase were developed fairly quickly, but it was still frustrating, slow, and error prone to program computers, leading to the first "programming crisis", in which the amount of work that might be assigned to programmers greatly exceeded the amount of programmer time available to do it. Meanwhile, a lot of experience was gathered in certain areas, and it became clear that certain applications could be generalised by adding limited programming languages to them. Thus were born report-generator languages, which were fed a description of the data format and the report to generate and turned that into a COBOL (or other language) program whichCOBOL actually contained the commands to read and process the data and place the results on the page. Some other successful 4th-generation languages are: database query languages, e.g.database query language SQLSQL; Focus, Metafont, PostScript, RPG-II, S, IDL-PV/WAVE, Gauss, Mathematica andFocusMetafontPostScriptRPG-IISIDL-PV/WAVEGaussMathematica data-stream languagedata-stream languages such as AVS, APE, Iris Explorer.AVSAPEIris Explorer

Slide 14 Valori tipici di produttività in Object Points u In object points, productivity has been measured between 4 and 50 object points/month depending on tool support and developer capability (Boehm 95)

Slide 15 Fattori che influenzano la produttività Ma, a parità di qualità del codice, un programmatore puo essere fino a 10 volte piu produttivo di un altro (Sackman 68)

Slide 16 Tecniche di stima di costi u Minate da molti elementi di incertezza: Requirements (in evoluzione, anche in dipendenza dal processo di sviluppo scelto) Personale (variabilità della produttività individuale) Tecnologie in parte ancora da definire, … u La scarsa affidabilità delle tecniche di stima dei costi scientifiche puo indurre a stime più politiche con la legge di Parkinson: Limpegno (effort) necessario è … quello possibile: »il cliente vuole il risultato dopo 12 mesi, »(e lo sviluppatore ha 5 persone disponibili) ==> »lo sforzo stimato è … 60 mesi-uomo… con il criterio pricing to win: »il costo stimato è … uguale alla disponibilità del Cliente... con il criterio del costo fisso: »anziché stimare i costi per un obiettivo prefissato »si fissano i costi, e si ridimensionano gli obiettivi (dinamicamente)

Slide 17 u Criteri empirici più seri: Valutazione iterativa da parte di un insieme di esperti (di dominio e tecnologia), fino a convergenza sulla previsione Valutazione per analogia con progetti nello stesso settore Modellazione algoritmica dei costi: »previsione dei costi secondo una formula/algoritmo che fa dipendere i costi da attributi del prodotto (tipicamente LOC), del progetto, del processo »la formula è indotta dalla osservazione di dati storici sperimentali (valori degli attributi, costi) relativi a un corpus di progetti precedenti. u Per progetti complessi, Boehm suggerisce di applicare piu tecniche di predizione dei costi, fino a quando i risultati convergono.

Slide 18 u Empirical method, based on the analysis of historical data (completed projects) and identification of best fit formula u Effort is estimated as a function of product, project and process attributes whose values are estimated by project managers Effort = A Size B M A is an organisation-dependent constant (local practices, type of developed SW), B reflects the disproportionate effort for large projects (between 1 and 1.5) M is a multiplier reflecting product, process and people attributes Size estimated in LOC, FP, OP. u Most models are similar but with different values for A, B and M Algorithmic cost modelling

Slide 19 The COCOMO model [Boehm 81] u COnstructive COst MOdel; developed at TRW, a US defense contractor - Versions in 81, 89, 95. u Provided with support tools, but independent from software vendors... u Based on a cost database of more than 60 different projects u Exists in three stages 1. Basic - Gives an order of magnitude estimate based on product attributes 2. Intermediate - modifies basic estimate using project and process attributes 3. Advanced - Estimates project phases and parts (subsystems) separately. Not discussed here

Slide Basic COCOMO formula for project classes u simple small teams, familiar environment, well-understood applications, simple non-functional requirements (EASY) PM = 2.4 (KDSI) 1.05 TDEV = 2.5 (PM) 0.38 u moderate Project team may have experience mixture, system may have more significant non-functional constraints, organization may have less familiarity with application (HARDER) PM = 3 (KDSI) 1.12 TDEV = 2.5 (PM) 0.35 u embedded Hardware/software systems tight constraints, including local regulations and operational procedures; unusual for team to have deep application experience (HARD) PM = 3.6 (KDSI) 1.2 TDEV = 2.5 (PM) 0.32 u KDSI = thousands of Delivered Source Instructions (= source lines, excl. comments) u PM = Programmer Months (Effort) u TDEV = Expected duration of project (Time) )

Slide 21 Effort estimates

Slide 22 u Simple project, 32 KDSI PM = 2.4 (32) 1.05 = 91 person*month TDEV = 2.5 (91) 0.38 = 14 month N = 91/14 = 6.5 person u Embedded project, 128 KDSI PM = 3.6 (128) 1.2 = 1216 person-months TDEV = 2.5 (1216) 0.32 = 24 months N = 1216/24 = 51 persons Esempi di stime in basic COCOMO Effort (PM)Durata (TDEV) Numero persone necessarie (N) Durata (TDEV) Effort (PM) Numero persone disponibili

Slide 23 u Implicit productivity estimate (but it still depends on size!) Simple mode = 16 LOC/day Embedded mode = 4 LOC/day u Time required is a function of total effort, NOT team size u Not clear how to adapt model to personnel availability COCOMO assumptions

Slide 24 u Takes basic COCOMO as starting point u Identifies personnel, product, computer and project attributes which affect cost u Multiplies basic COCOMO cost (required effort) by attribute multipliers which may increase or decrease costs u Multipliers are assigned values in the range [0.7, 1.66] multiplier < 1 implies reduced cost 2. Intermediate COCOMO

Slide 25 u Personnel attributes Analyst capability Programmer capability Programming language experience Application experience u Product attributes Reliability requirement Database size Product complexity Intermediate COCOMO attributes (--> multipliers) u Computer attributes (i.e. constraints imposed on SW by the adopted HW) Execution time constraints Memory space constraints u Project attributes Modern programming practices »structured programming, when COCOMO was defined; »O-O programming today Software tools Required development schedule »Mismatch between basic COCOMO and Client schedule gives attribute > 1 u Model tuning - Each organization must identify its own attributes and associated multiplier values u A statistically significant database of detailed cost information is necessary

Slide 26 u Embedded software system on microcomputer hardware. u Basic COCOMO predicts a 45 person-month effort requirement u Attributes: RELY = 1.15, STOR = 1.21, TIME = 1.10, TOOL = 1.10 u Intermediate COCOMO predicts 45 * 1.15* *1.10 = 76 person-months. u Total cost = 76 * $7000 = $532, 000 Example

Slide 27 Management options for previous example

Slide 28 Costs of alternatives based on varying COCOMO params.

Slide 29 Calibrazione dei parametri delle formule COCOMO Se il Predicted effort secondo i parametri COCOMO standard si scosta dai valori sperimentali misurati (i punti sul diagramma), i parametri vengono modificati secondo il criterio dei minimi quadrati, portando a una nuova curva di previsione ottimale

Slide 30 Staffing requirements u Staff required cant be computed by diving the effort (man months) by the required schedule u The number of people working on a project varies depending on the phase of the project u The more people work on the project, the more total effort is usually required u Very rapid build-up of people often correlates with schedule slippage

Slide 31 COCOMO 2 levels u COCOMO 2 is a 3 level model that allows increasingly detailed estimates to be prepared as development progresses u L1. Early prototyping level Estimates based on object points and a simple formula is used for effort estimation u L2. Early design level Estimates based on function points that are then translated to LOC u (L3. Post-architecture level Estimates based on lines of source code )

Slide 32 L1. Early prototyping level u Supports prototyping projects and projects where there is extensive reuse u Based on standard estimates of developer productivity in object points/month u Takes CASE tool use into account u Formula is simplified: PM = ( NOP (1 - %reuse/100 ) ) / PROD PM is the effort in person-months, NOP is the number of object points and PROD is the productivity (Ops/month)

Slide 33 L2. Early design level u Estimates can be made after the requirements have been agreed u Based on standard formula for algorithmic models PM = A Size B M + PM m where: M = PERS RCPX RUSE PDIF PREX FCIL SCED PM m = ( ASLOC (AT/100)) / ATPROD reflects the amount of automatically generated code A = 2.5 in initial calibration, Size in KSLOC, but derived from estimated Function Points, and FP to KSLOC conversion table (progr. language-dependent) B varies from 1.1 to 1.24 depending on novelty of the project, development flexibility, risk management approaches and the process maturity (overlap with M…)

Slide 34 Multipliers u Multipliers (values 1 to 6) reflect the capability of the developers, the non-functional requirements, the familiarity with the development platform, etc. PERS - personnel capability RCPX - product reliability and complexity RUSE - the reuse required PDIF - platform difficulty PREX - personnel experience FCIL - the team support facilities SCED - required schedule

Slide 35 The exponent term B u This depends on five scale factors (5 = low, 0 = high) u Their sum/100 is added to 1.01 u Example Precedenteness - new project - 4 Development flexibility - no client involvement - Very high - 1 Architecture/risk resolution - No risk analysis - Very Low - 5 Team cohesion - new team - nominal - 3 Process maturity - some control - nominal - 3 u Scale factor is therefore 1.17 Project duration: TDEV = 3 (PM) ( *(B-1.01)) PM is the effort computation and B is the exponent computed as discussed above (B is 1 for the early prototyping model). This computation predicts the nominal schedule for the project