Introduzione alla Misurazione e il suo legame con la Qualità PDF

Summary

This document introduces software measurement and its relationship to quality. It discusses how software metrics are used by developers and project managers. The document also covers different types of quantification and how they can be used to evaluate software projects and their characteristics.

Full Transcript

1 Introduzione alla Misurazione e il suo legame con la Qualità Approfondimenti: Fenton, “Software Metrics a rigorous and practical approach” Capitolo 1, 2, 3. Intro Misurazione Cosa si intende per Mis...

1 Introduzione alla Misurazione e il suo legame con la Qualità Approfondimenti: Fenton, “Software Metrics a rigorous and practical approach” Capitolo 1, 2, 3. Intro Misurazione Cosa si intende per Misurazione? …  La Misurazione ci aiuta a comprendere il mondo, ad interagire con l’ambiente circostante e migliorare la nostra vita  La misurazione dovrebbe essere una parte naturale delle attività di sviluppo e manutenzione del software  Sviluppatori software: misurano le caratteristiche del software per capire se i requisiti sono coerenti e completi, il design è di alta qualità, il codice può essere testato;  Project Manager: misurano il processo e gli attributi del prodotto per essere in grado di sapere quando il sw sarà pronto per la consegna; se il budget è stato superato; se il piano di progetto è rispettato; 2 Intro Misurazione … Cosa si intende per Misurazione? … ❑ Clienti: misurano gli aspetti del prodotto finale per vedere se è conforme alle aspettative di qualità (ad es. Usabilità) e se sono soddisfatti i requisiti (fa quello che si prevede faccia) ❑ Manutentori: valutano il prodotto finale per vedere cosa aggiornare e/o migliorare La Misurazione è il processo attraverso cui numeri vengono assegnati ad entità del mondo reale in modo tale da determinarne il valore secondo regole chiaramente definite. 3 Intro Misurazione … Cosa si intende per Misurazione? … La misurazione cattura informazione sugli attributi di entità ❑ Entità: oggetto (eg. Persona in una stanza) o un evento (un viaggio o fase di test di un progetto sw) del mondo reale ❑ Attributo: un aspetto o proprietà/caratteristica della entità (area o colore di una stanza; costo di un viaggio; elapsed time per la fase di test) Misurazione: descrive l’entità identificando le caratteristiche (attributi) che sono importanti per distinguere una entità da un’altra. 4 Intro Misurazione … Cosa si intende per Misurazione? …  Quando definiamo entità attraverso gli attributi, questi sono definiti usando numeri e simboli ❑ Price -> dollars, pounds, euro ❑ Height -> inches, centimetres ❑ Clothing size –> small, medium, large ❑ Fuel -> regular, premium, super  Numeri e simboli sono astrazioni che usiamo per rappresentare/riflettere le nostre percezioni del mondo reale  Potremo trarre conclusioni su una entità (oggetto) basandoci sui valori dei suoi attributi (caratteristiche di qualità) 5 Intro Misurazione Rendere le cose Misurabili … “What is not measurable make measurable” Galileo Galilei La misurazione rende i concetti più visibili e dunque più comprensibili e controllabili Nelle scienze fisiche, mediche, economiche, ingegnerie materiali, la misurazione è una procedura radicata in tutti i processi ❑ la misurazione di attributi quale la intelligenza umana, la qualità dell’aria, l’inflazione, influenzano le decisioni di tutti i giorni Attributi (caratteristiche di qualità) del software: affidabilità, usabilità, manutenibilità, vengono quantificati mediante specifici indicatori/metriche che consentono di misurarli 6 Intro Misurazione … Rendere le cose Misurabili …  Due tipi di quantificazioni: ❑ Misurazione: quantificazione diretta ▪ Height of a tree, weight of a person, dimension of a software program in LOC ❑ Calcolo: quantificazione indiretta. Si considerano le misure e le loro combinazioni in un elemento quantificato che riflette l’attributo il cui valore stiamo cercando di capire. La valutazione è una quantificazione, non una misurazione. ▪ Average grade of a third year graduate student (formula) ▪ Evaluation of a house from which to decide amount of tax owed (formula: nr of rooms, type of heating/cooling, floor space ….) 7 Intro Misurazione … Rendere le cose Misurabili …  Calcolo e misurazione in software engineering -> punteggio complessivo basato su una serie di misure ciascuna delle quali cattura un aspetto di ciò che vogliamo misurare. ❑ Cosa sta succedendo nel progetto software? Durante lo sviluppo? Durante la manutenzione? ❑ Il prodotto del software è buono? inaccettabile? ❑ In che misura una società di software è in grado di produrre un buon software? ❑ In che misura un manager/modello è in grado di fare buone previsioni sul processo di sviluppo del software? Costi? Sforzo?  Ingegneria del software è una disciplina uomocentrica, a differenza di altre discipline ingegneristiche che usano “sistematicamente” metodi basati su modelli e teorie ❑ Eg. Ohms law for designing an electrical circuit 8 Intro Misurazione Misurazione in software engineering …  Ingegneria del software descrive l’insieme delle tecniche che adottano un approccio ingegneristico per la costruzione e il supporto del software ❑ Approccio Ingegneristico -> ogni attività è compresa e controllata così da ridurre sorprese man mano che il software è specificato, progettato, sviluppato e manutenuto  Attività di Software Engineering includono ❑ gestione, costi, pianificazione, modellazione, analisi, specifica, progettazione, implementazione, verifica e manutenzione. 9 Intro Misurazione … Misurazione in software engineering … “Projects without clear goals will not achieve their goals clearly” Tom Gilb 1988 La misuraizone è spesso considerato un “lusso” nella software engineering. Non è applicato sistematicamente!!!  Spesso falliamo ad impostare obiettivi/traguardi misurabili per i nostri prodotti software ❑ Promettiamo che il prodotto avrà alcune caratteristiche come essere: facile da usare, affidabile, manutibile ma non specifichiamo chiaramente e oggettivamente COSA significano questi termini e COME vengono misurati. ❑ Abbiamo raggiunto i nostri obiettivi? Non lo sappiamo !! Spesso fallaimo a comprendere e quantificare i costi che compongono un progetto software ❑ Molti progetti non fanno distinzione tra tra costi di progettazione e costi di codifica o di test. Non possiamo controllare i costi se non conosciamo i costi relativi ai componenti del costo. ❑ Stiamo spendendo troppo per una fase? Non lo sappiamo !! 10 Intro Misurazione … Misurazione in software engineering …  Non quantifichiamo o prediciamo la qualità dei prodotti che produciamo ❑ Impossibile dire a un potenziale utente quanto un prodotto sarà affidabile in termini di “probabilità che si verifichi un failure” in un dato periodo di utilizzo. ▪ Quanto è buono il software in termini di caratteristica di qualità? Non lo sappiamo!  Ci affidiamo ad evidenze aneodottiche per convincerci a provare nuove rivoluzionarie tecnologie di sviluppo, senza fare uno studio preliminare, accuratamente controllato, per determinare se la tecnologia è efficiente ed efficace ❑ Materiali promozionali non supportati da EVIDENZE EMPIRICHE ▪ stiamo facendo un buon investimento? Non lo sappiamo!! 11 Intro Misurazione … Misurazione in software engineering  Nella maggior parte del casi, le misurazioni finiscono per essere: infrequenti, incoerenti, incomplete ❑ Come possiamo utilizzare i risultati se non sappiamo come sono stati ottenuti? ❑ Come possiamo applicare le misure se non conosciamo i loro dettagli ▪ quali entità sono state misurate? quali sono i valori baseline? ❑ Come possiamo fare uno studio oggettivo per ripetere le misurazioni in un altro ambiente?  La mancanza di misurazione nella ingegneria del software è aggravato dalla mancanza di un approccio rigoroso 12 Intro Misurazione Obiettivi della misurazione del software “you can neither predict nor control what you cannot measure” Tom DeMarco 1982  La misurazione serve per valutare lo stato dei progetti, dei prodotti, dei processi e delle risorse.  È importante misurare e registrare le caratteristiche di progetti buoni e cattivi al fine di interpretare i risultati, individuare i problemi, individuare e applicare azioni correttive e ottenere evidenze sui cambiamenti  Dobbiamo controllare i nostri progetti non solo li eseguirli! 13 Intro Misurazione … Obiettivi della misurazione del software …  Le iniziative di misurazione devono essere motivate da un determinato scopo o da una esigenza specifica  Un obiettivo (measurement goal) deve essere specifico, legato a quello che gli stakeholder (manager, sviluppatori, utenti) devono sapere.  Gli obiettivi possono differire in base agli stakeholders coinvolti, al livello di sviluppo e di utilizzo del software 14 Intro Misurazione Misurazione: prospettiva del Manager:  Managers -> interesse su aspetti di costo/produttivitià ❑ Quanto costa il processo di sviluppo? ▪ misurare il tempo e l’effort coinvolti nei processi che comprendono la produzione di software (costo di elicitazione dei requisiti, progettazione del sistema, test...) – Comprendere (visione complessiva) l'intero progetto E come ciascuna attività contribuisce al progetto complessivo ❑ Quanto è produttivo il personale? ▪ misurare il tempo impiegato dal personale per specificare il sistema, progettare, codificarlo e testarlo ▪ raccogliere misure di dimensioni delle specifiche, del progetto, del codice, dei piani di test – Quanto sia produttivo il personale per ogni attività? – Utilizzare i grafici (dati raccolti) sulla produttività per stimare il costo e la durata delle attività o delle modifiche da pianificare 15 Intro Misurazione … Misurazione: prospettiva del Manager :… ❑ Qual è la qualità del codice sviluppato? ▪ Registrare i dati di misura quali i faults, failures e modifiche nel momento in cui si verificano. ▪ Utilizzare i dati per confrontare i diversi prodotti, prevedere gli effetti della modifica, valutare gli effetti delle nuove pratiche, impostare gli obiettivi per il miglioramento di processo e dei prodotti. ❑ L'utente sarà soddisfatto del prodotto? ▪ Misurare la funzionalità determinando se tutti i requisiti richiesti sono stati implementati correttamente ▪ Misurare l'usabilità, l'affidabilità, il tempo di risposta – Utilizza i dati per valutare se i clienti sono soddisfatti delle funzionalità e delle prestazioni ❑ Come possono essere apportati miglioramenti? ▪ Effettuare misure, interpretare i dati, confrontare i valori target, individuare i miglioramenti, effettuare miglioramenti, valutare la qualità del processo o del prodotto risultante. – Utilizzare i dati come riferimento per valutazioni future 16 Intro Misurazione Misurazione: prospettiva dell’Ingegnere…  Ingegnere -> interesse su aspetti legati ai prodotti software sviluppati ❑ I requisiti sono verificabili? ▪ Analizzare i requisiti per determinare se la loro soddisfazione è espressa in modo misurabile – Le misure possono essere ripetute da altri in altri contesti ❑ Sono stati trovati tutti i difetti? ▪ Misurare il numero di difetti nei manufatti (specifica... test) e tracciarli rispetto alle loro cause – Utilizzare i modelli dei tassi di rilevazione previsti per decidere se l'ispezione e il test sono stati efficaci e se un prodotto può essere rilasciato alla prossima fase di sviluppo 17 Intro Misurazione Misurazione: prospettiva dell’Ingegnere … ❑ Sono stati raggiunti gli obiettivi di prodotto e di processo? ▪ Misurare le caratteristiche di processo e di prodotto per verificare se le aspettative sono state raggiunte – La qualità è monitorata e controllata continuamente ❑ Qual’è il prossimo passo? ▪ Misurare gli attributi dei prodotti esistenti o dei processi in atto per fare previsioni sui quelli futuri. – Utilizzare dati raccolti storicamente, memorizzati in database aziendali per tenere sotto controllo i processi e assicurare che il livello di qualità sia costantemente mantenuto 18 Intro Misurazione Scopi della Misurazione  La misurazione del software, e l’interpretazione dei dati raccolti vengono svolti essenzialmente per tre scopi: ❑ Comprendere ❑ Controllare ❑ Migliorare 19 Intro Misurazione Misurazione per Comprendere (Understand) Le misure aiutano a comprendere cosa accade durante le attività di sviluppo e manutenzione ❑ La situazione attuale viene valutata ❑ Le baselines (valori soglia) sono stabilite per aiutare a fissare obiettivi per strategie future Le misurazioni rendono più visibili gli aspetti del processo e del prodotto ❑ Fornire una migliore comprensione delle relazioni tra le attività e le entità che impattano 20 Intro Misurazione Misurazione per Controllare (Control) Le misure aiutano a controllare cosa accade nei progetti ❑ Devono essere determinate le relazioni tra le variabili di processo ❑ Sulla base delle baselines (valori soglia), degli obiettivi e della relazione tra valori rilevati e valori obiettivo, è possibile fare previsioni, e apportare cambiamenti ai processi e ai prodotti in modo da soddisfare gli obiettivi di qualità ▪ Es. monitorare la complessità dei moduli e focalizzare l’attenzione su quelli che non soddisfano i valori soglia 21 Intro Misurazione Misurazione per Migliorare (Improve)  La misurazione ci incoraggia a migliorare processi e prodotti basati sui risultati ottenuti e sui trend nel tempo ❑ Incrementare la produttività dopo aver introdotto un nuovo tool nelle linee di produzione; ❑ Incrementare le aspettative di qualità (thresholds) in base alle esigenze di mercato  In base alle analisi, le misure raccolte (dati) sono utilizzate non solo per valutare il processo ma anche quale indicatore delle aree problematiche da cui individuare eventuali azioni di miglioramento 22 Intro Misurazione Sfaccettature della misurazione: una panoramica  Stima di Costo ed Effort ❑ Modelli per la stima dei costi e dell’effort sono stati proposti nell’ambito del software (COCOMO, SLIM, Albrecht FP) come strumento utilizzato dai manager per prevedere i costi di progetto durante le fasi iniziali del ciclo di vita del software ❑ Nei modelli di stima: ▪ L’effort è espresso quale funzione di una o più variabili (es. Dimensione del prodotto, capacità degli sviluppatori) ▪ Dimensione definito come linee di codice o numero di function points 23 Intro Misurazione Sfaccettature della misurazione: una panoramica Modelli e misure di Produttività ❑ Sono state proposte misure e modelli per valutare la produttività del personale durante diversi processi software e in diversi ambienti ❑ Componenti possibili che contribuiscono alla produttività complessiva (funzione di valore e costo scomposto in termini MISURABLI) 24 Intro Misurazione Sfaccettature della misurazione: una panoramica  Raccolta dei Dati ❑ La raccolta dei dati implica che le misure siano definite in modo inequivocabile, la raccolta sia consistente e completa in modo che l'integrità dei dati non sia a rischio ❑ La raccolta dei dati di misura deve essere attentamente pianificata ed eseguita ❑ I dati raccolti possono essere rappresentati in grafici per mostrare progressi e evidenziare i problemi nei processi produttivi e nei prodotti sviluppati/manutenuti ❑ La raccolta dei dati è essenziale per l'indagine scientifica sui rapporti causali e sulle tendenze ▪ Esperimenti, survey, casi di studio 25 Intro Misurazione Sfaccettature della misurazione: una panoramica Modelli e misure di qualità ❑ Produttività è strettamente legata alla qualità del prodotto -> la velocità di produzione non ha significatività se non è legato alla valutazione di qualità del prodotto ❑ I modelli di qualità sono strutturati in maniera gerarchica (albero) ▪ rami superiori hanno fattori di qualità di alto livello dei prodotti software; ▪ ogni fattore è suddiviso in fattori di livello più basso ▪ Sono proposte metriche/indicatori per i criteri ❑ L'albero descrive le e le loro misure operative da cui dipendono 26 Intro Misurazione DIB 27 Intro Misurazione Sfaccettature della misurazione: una panoramica  Management attraverso metriche ❑ La misurazione sta diventando una parte fondamentale del project management ❑ Manager e sviluppatori si affidano a tabelle e graphici measurement-based per tracciare il progresso di un progetto e verificare se il progetto rispetta la tabella di marcia (on track) ❑ Le aziende e le organizzazioni definiscono standard di misura e metodi di reporting per controllare e confrontare i progetti ▪ Work Breakdown structure charts ▪ Gantt charts ▪ Pert diagrams ▪ Earned values 28 Intro Misurazione Riepilogando: Altre discipline (scienze fisiche, ingegnerie materiali) sottolineano che la misurazione deve avere un ruolo più significativo nell'ingegneria del software È necessario avere obiettivi chiaramente definiti per la misurazione che tengano conto delle diverse prospettive degli stakeholders 29 Intro Misurazione Aspetti di qualità: 1. Fondamenti di qualità del software 30 Intro Misurazione … Aspetti di qualità... 2. Qualità di Prodotto 31 Intro Misurazione … Aspetti di qualità... 3. Qualità di Processo 32 Intro Misurazione … Aspetti di qualità... 4. Qualità dei Servizi 33 Intro Misurazione … Aspetti di qualità... 5. Qualità delle Persone 34 Intro Misurazione … Aspetti di qualità... 6. Elementi di Project Management 35 Intro Misurazione 36

Use Quizgecko on...
Browser
Browser