Modelli e Metodi per la Qualità del Software (ITPS) PDF
Document Details
![ConsummateDwarf5356](https://quizgecko.com/images/avatars/avatar-19.webp)
Uploaded by ConsummateDwarf5356
Università degli Studi di Bari
2023
Prof.ssa Baldassarre
Tags
Related
- Métricas y Estimación de Software PDF
- CS605 Solved MCQs - Software Engineering II AQA 2011 PDF
- Ethics & Professionalism PDF
- Projet de fin d’études (PFE) - Construction des outils autonomes pour le contrôle qualité - PDF
- Deciding the Work to be Performed (Work Breakdown Structure) PDF
- Detailed Notes Software Engineering PDF
Summary
Questo documento è una presentazione del corso "Modelli e Metodi per la Qualità del Software (ITPS)" tenuto presso l\'Università degli Studi di Bari nell\'anno accademico 2023-2024, dalla Prof.ssa Baldassarre. Il corso copre i modelli, i metodi, e le applicazioni delle misure sulla qualità del software. Vengono discussi gli obiettivi, gli argomenti e gli esami del corso.
Full Transcript
Modelli e Metodi per la Qualità del Software (ITPS) A.A. 2023 - 2024 Prof.ssa Baldassarre mariateresa.baldassarre@uniba,it Presentazione Introduzione Introduzione Introduzione...
Modelli e Metodi per la Qualità del Software (ITPS) A.A. 2023 - 2024 Prof.ssa Baldassarre mariateresa.baldassarre@uniba,it Presentazione Introduzione Introduzione Introduzione Obiettivo Formativo ð Costituire conoscenze ed abilità per il Management della Ingegneria del Software. ð Dove: q Conoscenze sono le tecniche i metodi ed i principi alla base della Cultura della Qualità nel Software q Abilità sono le pratiche per usare adeguatamente le conoscenze onde trasformare in tecnologia i loro contenuti. q Management della Ingegneria del Software è il governo della qualità dei processi e dei prodotti per raggiungere l’obiettivo strategico della Ingegneria del Software: Sviluppare software senza sorprese ottimizzando i costi DIB 4 Il Corso Introduzione Obiettivi ð Conoscenze: q Modelli di Processo di sviluppo del software q Qualità dei processi , Qualità dei prodotti e loro relazione q Controllo della qualità q La qualità come strumento d’impresa, dalla certificazione al rafforzamento competitivo: ISO, CMMI q Gestione di un progetto e delle risorse ð Abilità: q Modellare, Verificare e Validare processi q Costruire modelli di qualità e piani metrici q Monitorare progetti sulla base di un modello di qualità per individuare le iniziative di miglioramento continuo. DIB 6 Introduzione Motivazioni ðIl corso è mirato a q La qualità del software q Il miglioramento continuo della qualità del software q Elementi di Project Management ðLa qualità del software ha due componenti: q La qualità dei processi software q La qualità dei prodotti software ðLe due componenti della qualità hanno una forte interrelazione tra loro DIB 7 Introduzione Prerequisiti del Corso ð Principi di produzione e manutenzione del software. ð Tecnologie di base per la produzione e la manutenzione del software ðINGEGNERIA DEL SOFTWARE DIB 8 Introduzione Argomenti ð Processi: rappresentazione di un processo, Verifica e validazione dei processi, diversità dei processi, dal modello di processo al piano esecutivo. ð Qualità: qualità di processo e qualità del prodotto, Metriche e misure, schemi per la qualità (ISO 9000, CMMI, GQM), technical debt, code review. ð Produttività: team buliding, team work, personality traits. ð Strumenti per gestire la qualità: Sonarcloud, Fortify, Git, SVN, Redmine ð Miglioramento dei processi e dei prodotti: scopo e schemi per il miglioramento dei processi (ISO 9000, TQM, PDCA,QIP). ð Pratiche per la qualità ed il miglioramento: strumenti per la valutazione della qualità di processi/prodotti; strumenti per la interpretazione corretta e completa delle misure; ð Concetti di Project Management: elementi di base di project managment, scheduling, quality control, Pert, GANTT, CPM ð PROGETTO: valutazione di qualità di un software – miglioramento del software – assesment di miglioramenti DIB 9 Introduzione LIBRI DI TESTO ð PRINCIPALE: Fenton, Bieman, “Software Metrics: a rigorous and practical approach”, third edition, 2015, ISBN: 978-1-4398-3823- 5 ð Project Management: A Systems Approach to Planning, Scheduling, and Controlling, 10th Edition, Harold Kerzner, ISBN: 978-0-470-27870-3, 2009 ð Ulteriori Letture: Durante le lezioni saranno citati articoli e capitoli di libri, distribuiti lucidi e dispense utili per gli approfondimenti. Tutto il materiale sarà messo a disposizione sulla piattaforma ADA del corso. ð Codice Iscrizione (Piattaforma e-Learning): MMQS_k3y2324 DIB 10 Introduzione Esami … ð l’esame consisterà di una unica PROVA FINALE che verifica il livello di acquisizione dei concetti illustrati durante il corso. ð La PROVA FINALE consiste in domande (orali o scritte) che vertono su TUTTO il programma e i contenuti del corso (teoria, esercitazioni, esercizi, esempi di applicazione, uso di strumenti, etc.) ð Lo studente dovrà mostrare di aver acquisito i concetti e di saperli applicare utilizzando i metodi, le tecniche, gli strumenti presentati a lezione DIB 11 Introduzione … Esami ð La PROVA FINALE si svolge nella data corrispondente all’ORALE di ogni appello. ð È OBBLIGATORIO prenotarsi alla prova finale attraverso il sistema ESSE3 ð NON SONO AMMESSE ALTRE FORME DI PRENOTAZIONE (email a docenti, prenotazioni per telefono etc). Non ci saranno eccezioni di alcun tipo. ð Gli studenti dovranno risolvere per tempo eventuali problemi (mancanza di account, dimenticanza login, password etc etc etc) rivolgendosi a chi di competenza (webmaster del sistema …). DIB 12 Introduzione Orario delle Lezioni ðOrario lezioni ITPS: q Lunedì: 13.30 - 15.10; Aula A – Piano Terra q Martedì: 12.40 –14.20; Aula A – Piano Terra q Giovedì: 9.00 – 11.30; Aula B – Piano Terra DIB 13 Introduzione Organizzazione del Corso ð Lezione in Classe: Teoria ed esempi (dispense e approfondimenti) ð Durante il corso saranno assegnati dei compiti da svolgere in classe/a casa e discutere/presentare in aula. ð Alcune dispense e materiale di supporto potrebbero essere in inglese ð Seminari / Guest Lectures su argomenti inerenti il corso (i.e. Software Quality) da parte di docenti universitari (italiani e stranieri) e aziende del territorio (seminari on-line e, laddove possibile, in presenza). ** I seminari sono argomento d’esame e di approfondimento. ð Progetto: Il corso richiede lo svolgimento di un progetto (max 4 persone) da consegnare prima della prova di appello ð Il voto del progetto vale sino alla fine dell’anno accademico: appello marzo/aprile 2025 ð Durante il corso, alcune lezioni saranno destinate per il lavoro di progetto. DIB 14 Introduzione Voto Finale ðIl voto finale è determinato da: q Voto progetto (50%) q Voto scritto (50%) q + eventuali bonus acquisiti ð Non è possibile svolgere la prova scritta senza aver consegnato il progetto ð Se non si supera la prova scritta, il voto del progetto è mantenuto sino alla fine dell’a.a. (i.e. non è necessario rifare il progetto) 15 Introduzione Appelli 2023-2024 ð3 appelli tra Gennaio – Febbraio 2024 ð1 appello tra Giugno – Luglio 2024 ð2 appelli recupero a Settembre 2024 ð1 appello a Novembre 2024 ð1 appello ad Aprile 2025 DIB 16 Introduzione Materiale Didattico ðI lucidi delle lezioni si possono scaricare a partire dal sito di E-LEARNING del DIB sulla piattaforma ADA: q È necessario iscriversi al corso 2023-2024 ð Chiave di iscrizione: MMQS_k3y2324 ðLa frequenza non è obbligatoria, ma fortemente consigliata DIB 17 Introduzione Composizione Gruppi – Procedure Operative … Registrazione gruppi (una registrazione per gruppo. Compilare il modulo indicato nella piattaforma ADA nella sezione Progetto, con le informazioni richieste) ð compilare UN FORM per gruppo. Un gruppo deve essere composto di 2-4 persone (eccezionalmente può essere formato da 1). ð Se non si ha un gruppo, compilare comunque il form. ð Nel form del gruppo il primo componente avrà ruolo di Team Leader responsabile per l’assegnazione dei Task in Redmine. ð Per i frequentanti: Fortemente consigliato comporre il gruppo ENTRO IL 13 OTTOBRE q compilando il form (link sulla piattaforma ADA del corso) q I gruppi saranno funzionali per tutte le esercitazioni che saranno svolte durante il corso, e non solo per lo svolgimento del Progetto/Caso di studio 18 Introduzione Introduzione 20 Introduzione ðCome possiamo dire che un prodotto software è di buona qualità? 21 Introduzione 22 Introduzione Cosa si intende per Qualità? ðLa qualità è un termine ambiguo, con molte interpretazioni. ðCiò è dovuto alle seguenti ragioni q 1. è un concetto che non è semplice, ma multidimensionale. Le dimensioni sono: § L'entità di interesse. § Il punto di vista che abbiamo di tale entità. § Attributi di qualità in grado di misurare più di tale entità 23 Introduzione Cosa si intende per Qualità? q 2. Per questo concetto, ci sono diversi livelli di astrazione: § A volte si usa il concetto di qualità nel senso più ampio del termine. § In altri, viene usato per indicare un aspetto molto specifico di un prodotto q 3. Si tratta di un concetto che spesso usiamo nella nostra vita quotidiana. § Il significato di questo termine è diverso se usato in un ambito popolare (quotidiano) o un professionale. 24 Introduzione Cosa è la Qualità: prospettiva popolare ð Popolarmente, si intende che la qualità sia una caratteristica immateriale / non tangibile. Si possono esprimere opinioni, commenti, giudizi, ma non è possibile misurarla concretamente. ð Diciamo che qualcosa è di "buona qualità", ”cattiva qualità" o si parla di "qualità della vita” ð In questo senso, la qualità non può essere quantificata o gestita. ð A volte la qualità esprime anche un senso di "lusso", "classe" o "buon gusto" ed è riservata ai prodotti generalmente costosi, con funzionalità sofisticate. Prodotti semplici, che non sono costosi, raramente vengono definiti come prodotti di qualità 25 Introduzione ðQual è il prodotto di maggiore qualità? 26 Introduzione Cos’è la qualità: prospettiva Professionale ð Autori rilevanti nel campo della qualità professionale definiscono qualità rispetto a: q 1. conformità con i requisiti. Ciò implica che i requisiti del prodotto devono essere chiaramente definiti. Durante lo sviluppo, è necessario verificare che il prodotto soddisfa tali requisiti. Non conformità con i requisiti, è considerato un difetto. q 2. adeguatezza circa l’utilizzo. Ciò implica che le esigenze degli utenti e le aspettative sono note (riportate formalmente nei documenti di progetti) e che il prodotto li soddisfa (verificati attraverso test, collaudi etc). 27 Introduzione Cos’è la Qualità del Software ð Il significato più comune è che un software è di qualità quando non ha difetti (bug) di tipo generalmente funzionali ð Per esprimere questa definizione di qualità, generalmente si adottano misure/metriche [quantitative - qualitative]: q Tasso di difetti: No. difetti / PF, n difetti / KLOC q Affidabilità: No. Fallimenti (operazioni nn andate a buon fine) / Nr. ore di funzionamento, tempo medio tra i fallimenti. q Soddisfazione degli utenti:% di utenti soddisfatti (misurato attraverso indagini) 28 Introduzione Definizione di Qualità del software ð (ISO) Insieme di proprietà e di caratteristiche desiderate per un processo, un prodotto, un servizio software allo scopo di : q Soddisfare il committente, attraverso i requisiti impliciti od espliciti q Realizzare il ritorno economico degli investitori q Realizzare trade - off tra qualità tecnica, costo e tempo di esecuzione del processo. ð La misurazione cattura informazioni sugli attributi delle entità. Un’entità è un oggetto o un evento del mondo reale (processo, prodotto, risorsa). q L’entità è descritta attraverso caratteristiche specifiche q Un attributo è un aspetto o una proprietà specifica di un’entità ðNon solo … 29 Introduzione Qualità del software ðQualità funzionali: grado di soddisfazione dei requisiti funzionali, valutato mediante testing ðQualità strutturali: grado di soddisfazione dei requisiti non funzionali da parte dell’architettura, valutato mediante analisi architetturali 30 Introduzione se non ho strumenti di misurazione non posso controllare l'andamento del processo, della qualità del prodotto. Non capisco se spendo troppo ecc 31 Introduzione Quanto è importante misurare? Digita qui il testo 32 Introduzione Ragioni per cause legali sul software 33 Introduzione 34 Introduzione Misurare la qualità ðIn un qualsiasi ciclo di vita del software le entità visibili e misurabili sono i processi (le attività), le risorse impiegate e alcuni attributi dei prodotti q Qualità di un prodotto software: § la qualità di un prodotto software è la misura in cui il prodotto soddisfa la sua specifica q Attributi di qualità interni ed eterni § Attributi esterni: visibili all’utente § Attributi interni: visibili agli sviluppatori 35 Introduzione Esempi di misure usate in Sw Eng Entità Attributo Metrica 36 Introduzione Tipi di problemi nel software ðFailure: comportamento del software non previsto dalla sua specifica ðFault: difetto del sorgente (detto anche bug), causa di un failure ðError: causa di un difetto; esempio: un errore umano d’interpretazione della specifica o nell’uso di un metodo Da IEEE Standard Glossary of SE Terminology 37 Introduzione Perché il software è difettoso? ð Gli esseri umani commettono errori, specie quando eseguono compiti complessi; ciò è inevitabile ð I programmatori esperti commettono in media un errore ogni 10 righe ð Circa il 50% degli errori di codifica vengono catturati a tempo di compilazione ð Altri errori vengono catturati col testing ð Circa il 15% degli errori sono ancora nel sistema quando viene consegnato al cliente 38 Introduzione Da dove arrivano i difetti? 39 Introduzione 40 Introduzione Lo sforzo per correggere i difetti 41 Introduzione La qualità del SW nel SWEBOK 42 Introduzione Il problema della qualità del software ðAssicurare la qualità di un prodotto o servizio è difficile. Nel caso del software valutarla o garantirla è particolarmente complesso ðEsistono q Attività legate alla qualità del software (es.testing) q Metodi orientati alla qualità di prodotto (es. cleanroom) q Metodi orientati alla qualità di processo (es. ISO9000) 43 Introduzione Come introdurre la qualità … ðQualsiasi valutazione di qualità inizia dallo scopo (goal) che ha chi la vuole valutare ðChi valuta la qualità di una entità (processo, prodotto, servizio, risorsa …) dovrebbe: q Avere chiari i propri obiettivi q Legarli a domande specifiche sull’entità (prodotto o processo) oggetto di analisi q Definire metriche capaci di analizzare e quantificare le qualità richieste ai prodotti rispetto agli obiettivi 44 Introduzione … come introdurre la qualità ðLe metriche che vengono definite debbono correlarsi agli obiettivi (goals) dell’organizzazione q Le misurazioni dovrebbero essere utili e costruttive, perché l’organizzazione deve imparare analizzandoli q Le metriche e le loro definizioni dovrebbero riflettere il punto di vista di diverse parti interessate (es. sviluppatori, utenti, progettisti etc). 45 Introduzione Pianificazione di un Modello di Qualità: Passi da Seguire 1. Sviluppo dei goal e delle misure associate alla qualità 2. Generazione di domande che definiscono i goal quantificandoli 3. Specificare le misure da collezionare in conformità al goal 4. Sviluppare i meccanismi operativi di collezione delle misure 5. Raccogliere i dati e analizzarli onde sviluppare azioni correttive 6. Analizzare i dati post-mortem per raccomandazioni sul futuro. 46 Introduzione Attività di sviluppo del software: la qualità in ogni fase 47 Introduzione Obiettivi di Verifica e Validazione ðVerifica: confronto di un prodotto con la sua specifica (ovvero, confronto di un prodotto con i suoi requisiti) ðValidazione: accettazione del prodotto da parte del committente 48 Introduzione Verifica ð L’attività di verifica, così come quella di documentazione, non è una fase separata del processo ð Tuttavia è opportuno che sia effettuata da persone diverse da quelle coinvolte nel design o nella codifica ð Ogni documento prodotto dovrebbe essere controllato (possibilmente da persone diverse dagli autori del documento) e sistematicamente documentato esso stesso ð Esistono due tipi di verifica: q Ispezione/Code Review: basata sull’analisi statica q Testing: basata sull’analisi dinamica, esecuzione 49 Introduzione Attività legate alla qualità ð Testing: processo di investigazione sui rischi connessi all’esecuzione di un sistema software ð Misurazione: indicatori di qualità sia mediante ispezione che mediante esecuzione ð Verifica: analisi delle funzioni rispetto alla specifica ð Validazione: accettazione da parte degli stakeholder ð Certificazione: analisi delle funzioni rispetto ai requisiti di legge da certificare 50 Introduzione Costo della qualità (ISO) ð Due costi principali: q Costo per fare bene le cose (conformità) q Costo per rimettere a posto le cose sbagliate (non conformità) ð I costi della qualità nel processo produttivo sono i costi che si sostengono per adeguare la qualità del prodotto alla qualità richiesta 51 Introduzione Standardizzazione ðDiversi enti di standardizzazione (eg ISO) hanno cercato di integrare vari approcci alla definizione della qualità, partendo dalla consapevolezza che la qualità è un attributo che varia in funzione del: q Percettore q Del contesto di percezione q Dello scopo e costo del prodotto ðISO/IEC 9126 (prodotti software) ðISO 9000 – ISO 12207 – CMM (processi) 52 Introduzione ISO e altre Organizzazioni 53 Introduzione Sigle 54 Introduzione 55 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? … q 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) q 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à q Entità: oggetto (eg. Persona in una stanza) o un evento (un viaggio o fase di test di un progetto sw) del mondo reale q 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 q Price -> dollars, pounds, euro q Height -> inches, centimetres q Clothing size –> small, medium, large q 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 q 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: q Misurazione: quantificazione diretta § Height of a tree, weight of a person, dimension of a software program in LOC q 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. q Cosa sta succedendo nel progetto software? Durante lo sviluppo? Durante la manutenzione? q Il prodotto del software è buono? inaccettabile? q In che misura una società di software è in grado di produrre un buon software? q 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 q 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 q 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 q 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 q 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. q Abbiamo raggiunto i nostri obiettivi? Non lo sappiamo !! ðSpesso fallaimo a comprendere e quantificare i costi che compongono un progetto software q 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. q 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 q 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 q 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 q Come possiamo utilizzare i risultati se non sappiamo come sono stati ottenuti? q Come possiamo applicare le misure se non conosciamo i loro dettagli § quali entità sono state misurate? quali sono i valori baseline? q 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à q 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 q 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 :… q 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. q 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 q 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 q 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 q 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 … q 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 q 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: q Comprendere q Controllare q Migliorare 19 Intro Misurazione Misurazione per Comprendere (Understand) ðLe misure aiutano a comprendere cosa accade durante le attività di sviluppo e manutenzione q La situazione attuale viene valutata q 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 q 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 q Devono essere determinate le relazioni tra le variabili di processo q 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 q Incrementare la produttività dopo aver introdotto un nuovo tool nelle linee di produzione; q 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 q 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 q 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à q Sono state proposte misure e modelli per valutare la produttività del personale durante diversi processi software e in diversi ambienti q 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 q 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 q La raccolta dei dati di misura deve essere attentamente pianificata ed eseguita q I dati raccolti possono essere rappresentati in grafici per mostrare progressi e evidenziare i problemi nei processi produttivi e nei prodotti sviluppati/manutenuti q 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à q Produttività è strettamente legata alla qualità del prodotto -> la velocità di produzione non ha significatività se non è legato alla valutazione di qualità del prodotto q 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 q 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 q La misurazione sta diventando una parte fondamentale del project management q 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) q 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 La Misurazione nel Software Approfondimenti: Fenton, “Software Metrics a rigorous and practical approach” Capitolo 1,2,3. Concetti Generali Perchè misurare? … ð Quattro motivi principali per misurare processi, prodotti o risorse software: ð Caratterizzare. Comprendere i processi, i prodotti, le risorse, gli ambienti e stabilire baselines (valori soglia) di confronto per le valutazioni future. ð Valutare. Determinare lo stato di avanzamento rispetto ai piani di progetto; stabilire il raggiungimento degli obiettivi di qualità e valutare l’impatto dei miglioramenti di processo e delle tecnologie sui prodotti e sui processi stessi 2 Concetti Generali … Perchè misurare? q Fare previsioni. In modo da poter pianificare opportunamente. Comprendere le relazioni/interdipendenze tra processi e prodotti; e costruire modelli basate su tali relazioni in modo che i valori che osserviamo per alcuni attributi possano essere utilizzati per predire gli altri. È il punto di partenza per estrapolare e identificare tendenze, stime di costo, tempo e qualità; diagnosticare i trade-off basati su dati storici q Migliorare. raccogliere informazioni quantitative per identificare le inefficienze e altre opportunità per migliorare la qualità dei prodotti e le prestazioni di processo. Le misure aiutano a pianificare e monitorare gli sforzi di miglioramento 3 Concetti Generali Elementi della misurazione ð Misurazione: processo attraverso cui numeri e simboli sono assegnati agli attributi di entità del mondo reale in modo da caratterizzare gli attributi attraverso regole chiaramente specificate. ð Abbiamo bisogno di: q Entità (oggetto di interesse) q Attributi (caratteristiche delle entità) q Regole/Metriche (e scale) per assegnare i valori agli attributi ð Perchè si possa misurare è necessario: q Chiaramente identificare le entità e gli attributi che saranno presi in considerazione e le regole usate per assegnare valori a ciascun attributo 4 Concetti Generali Elementi della misurazione: Entità ð Elementi del mondo reale che desideriamo misurare q Products; processes, resources q Artifacts, activities, agents q Organizations, environments, constraints ð Entità possono anche essere gruppi o insiemi di altre entità q subprocesses, flowpaths, by-products 5 Concetti Generali Elementi della misurazione: Attributi ð Caratteristiche o proprietà delle entità q Person (entity) § Characteristics: height, color of eyes, IQ, age, years of experience … q Software (entity) § Characteristics: size, cost, elapsed time, effort, response time, transaction rates, number of defects … ð L’arte della misurazione consiste nel decidere quali attributi usare in modo da fornire una chiara idea delle entità considerate 6 Concetti Generali Ciascuna entità è legata agli attributi che caratterizzano l’entità e alle misure che possono esser usate per quantificare gli attributi stessi 7 Concetti Generali 8 Concetti Generali DIB 9 Scale di Misurazione Concetti Generali Scale di Misurazione… ð La scala di misurazione fornisce i valori e le unità per descrivere gli attributi q Person § height: 68 inches § weight: 163 pounds § Eyes: brown § Disposition: aggressive q Software Project: § Produce 30 000 LOC § Planned completion date: August 30 § Use: 11 345 staff hrs of effort § Application type: real time command and control ð Ovunque si effettui una misurazione e qualunque sia la sua forma, richiede sempre che vi siano delle scale ben definite per rilevare e registrare i valori misurati 11 Concetti Generali … Scale di Misurazione … ð Nominale: ogni valore della scala rappresenta una classe o una categoria di appartenenza q Non c’è ordinamento tra i valori q Non c’è significato di grandezza associato ad ogni classe ð Le scale nominali pongono gli elementi in uno schema di classificazione (categorie di appartenenza). Le classi non sono ordinate anche se sono numerate (solo per scopi di identificazione) da 1-n. Phase in which a fault is injected m1 m2 1 if specification fault A if specification fault 2 if design fault D if design fault 3 if code fault C if code fault 12 Concetti Generali … Scale di Misurazione … ð Ordinale: Oltre ad essere nominale esprime un ordine (ascendente o discendente) tra tutti i possibili valori dell’osservabile. La distanza tra un elemento e l’altro della scala non ha significato. q Le classi di appartenenza dei valori sono ordinate rispetto all’attributo q I valori esprimono solo un punteggio (rank), pertanto non ha senso applicare su essi gli operatori aritmetici Complexity of a Software Module m1 m2 M3 not a valid measure! 1 if simple 1 simple 1 simple 2 if moderate 100 moderate 3 moderate 3 if high 1000 high 2 high 4 if incomprehensible 11000 incomprehensible 4 incomprehensible 13 Concetti Generali … Scale di Misurazione … ð Intervallo: L’intervallo esprime sia l’ordinamento, sia la misura dell’intervallo che separa le classi della scala q Preserva l’ordine come per una scala ordinale q Preserva differenze ma non i rapporti (divisioni). Pertanto, Ai valori di questa scala sono applicabili somma e sottrazione; non hanno senso la moltiplicazioni e la divisione q Non c’è un origine nella scala (valore di zero assoluto) § If the temperature reaches 40°C today and 20°C yesterday, we cannot say that it was twice as warm today as it was yesterday. § The interval from moving from one degree to another is the same, and each degree is considered a class related to heat: Moving from 20-> 21 °C increases the heat the same way that moving from 40 ->41°C. § Since there is no true-zero value on the scale, however we cannot say that it is 50% hotter today than yesterday ð Eg.: clock times, calendar dates, temperature in °C or °F 14 Concetti Generali … Scale di Misurazione … ð Ratio: aggiunge un origine alla scala (un elemento zero - null) q Preserva l’ordinamento, la dimensione degli intervalli, il rapporto tra entità (come nelle scale precedenti) q (in piu) Esiste un elemento zero significativo, che indica l’assenza di quell’attributo q Il valore della misura, a partire da zero, deve aumentare di intervalli uguali, detti unità della misura q Tutte le operazioni aritmetiche sono significative q Due scale ratio M ed M’ sullo stesso attributo (es.dimensione) sono convertibili con la relazione M=a*M’ essendo “a” una costante § From Feet to Inches: I=12*F § From KLOC to LOC: KLOC=1000*LOC § M= LOC; M’=length as number of characters -> M’=a*M where a=average number of characters per LOC ð Eg. Productivity, defect density, integration cost, development cost, effort, etc. ð Esempio: la dimensione di un programma misurata in LOC è una scala Ratio (m1); la dimensione in KLOC è un’altra scala ratio (m2); m2=1000*m1 15 Concetti Generali … Scale di Misurazione … ð Assoluta: caso particolare della scala ratio dove l’unico moltiplicatore ammissibile è 1. q La misurazione nella scala assoluta è fatta semplicemente “conteggiando” gli elementi di una entità (es. Nr. Persone in un aula) q L’attributo ha sempre forma del tipo “numero di occorrenze di x in una entità” q Esiste solo un modo per mappare la misurazione: contando q Tutte le operazioni aritmetiche sono significative ð Eg. Number of failures observed during integration testing; number of people working on a software project; number of design defects; … 16 Concetti Generali … Scale di Misurazione 17 Scale delle Misure e Significatività delle Misurazioni DIB 18 Concetti Generali Significatività delle Funzioni Statistiche ð Ha significato applicare una funzione statistica ad un tipo di scala se le affermazioni dedotte dall’applicazioni delle funzioni sono invarianti rispetto alla scala utilizzata. Tipo scala Funzione statistica significativa Nominale Moda Ordinale Moda Mediana Intervallo Moda Mediana Media Ratio Tutte le funzioni DIB 19 Concetti Generali Funzioni Statistiche ðData una lista di valori: q Media : la somma dei valori diviso per il numero di valori nella lista q Mediana : il valore centrale nella lista ordinata q Moda : il valore che si presenta più frequentemente nella lista ðEsempio: 2,2,4,5,5,8,8,10,11,11,11,15,16 q Media : 9.1 q Mediana : 8 q Moda : 11 Concetti Generali Esempio : Classificazione dei problemi ð La moda è sempre valida; sia che le due scale fossero nominali sia che fossero ordinali Osservabile Classe (lettera) Classe (numeri) X1 A 1 X2 B 5 X3 B 5 X4 C 3 X5 B 5 Moda B(X2, X3, X5) 5(X2, X3, X5) DIB 21 Concetti Generali Esempio: Comprensibilità dei programmi ð La mediana sarebbe valida se le due scale fossero ordinali, non lo sarebbe se fossero nominali Osservazione Comprensibilità Comprensibilità X1 Banale 1 X2 Moderato 4 X3 Semplice 3 X4 Moderato 4 X5 Incomprensibile 10 Moda Moderato(X2,X4) 4(X2,X4) Mediana Semplice(X3)/Indeterm. 3(X3)/Indeterminata DIB 22 Concetti Generali Le scale di misurazione possono cambiare man mano che si matura esperienza ð Measurements can progress from lower to higher scales as societies, organizations and practices mature ð Look for opportunities that allow to evolve measurement practices toward scales that provide greater information 23 Concetti Generali Misure Soggettive e Oggettive … ð Quando si misurano gli attributi di entità ci sforziamo di manterere le misurazioni il piu possibile oggettive q Durante il processo di misurazione, assicuriamo che persone diverse producano le stesse misure, indipendentemente dal fatto che stanno misurando prodotti, processi o risorse. q Alcune misure sono più soggettive di altre ð Misure Soggettive: dipendono dal misuratore, sono strettamente legate al contesto in cui sono rilevate q Possono variare al variare del misuratore e dipendere dalla sua opinione § Programmer experience (high, medium, low) § Quality of requirements (1-5 scale) ð Misure Oggettive: q Sono indipendenti dal misuratore. Rilevate oggettivamente, indipendentement sulla entità, e dunque il valore non è influenzato § Development time § Number of LOC of a program / module § Number of defects § Productivity 24 Concetti Generali … Misure Soggettive e Oggettive … ð Al fine di “limitare e contenere” la soggettività delle misure soggettive si definisce e associa un Modello Descrittivo, alla metrica. q Ogni valore della scala è definito con una descrizione testuale per meglio chiarire e spiegare i range dei valori e ridurre la interpretazione soggettiva delle informazioni. q Criticality of requirements (1-5 point scale) § 1. not important (it does not impact on any user) § 2. low importance (impacts on few users) § 3. average importance (impacts on several users but does not determine consequences if it is not respected) § 4. important (impacts on several users and determines consequences if it is not respected) § 5. critical (if it is not respected, the system cannot be used) 25 Concetti Generali … Misure Soggettive e Oggettive ð In caso di misure Oggettive è necessario fornire un Modello Quantitativo (equazioni, modello di calcolo, formula) associato alla metrica q Non conformance = (nr of violations / nr of times the techniques have been applied) * 100 q Temperature Range § Low: in summer between 8-12 °C; in winter from -X to 11°C § High: in summer above 13°C; in winter from 12°C and above 26 Concetti Generali Misure Dirette (osservate) e Indirette (calcolate) ð Una volta ottenuto il modello delle entità e degli attributi implicati (i.e. come gli attributi sono mappati e usati per misurare una specifica entità) è possibile definire le misure sulla base del modello q Measure height in cm q Measure dimension of a room in square metres q Measure dimension of a program in LOC ð Misurazione diretta di un attributo di una entità non implica altri attributi o caratteristiche in quanto è rilevato/osservato direttamente q Length of source code (measured by lines of code) q Duration of testing phase (measured by elapsed time in hrs) q Number of defects discovered during the testing process (measured by counting the defects) q Time a programmer spends on a project (measured by months worked) ð Misurazione indiretta implica che un attributo sia misurato combinando misure in relazione tra loro. Necessità di un modello di calcolo (Modello Quantitativo) q Programmer productivity: LOC produced / person months of effort q Module defect density: number of defects / module size q System spoilage: effort spent for fixing defects / total project effort 27 Concetti Generali Riepilogando: Modelli Descrittivi ð Ogni valore del Range della misura è definito con una descrizione testuale. ð Esempi q Tipo di Test può assumere i seguenti valori: § Test strutturale, in caso di componente ad alta complessità procedurale, usa la struttura interna del codice § Test per valori limite, in caso di componenti che hanno bassa complessità procedurale, usa le specifiche della componente che tratta come una black - box q Criticità della Richiesta può assumere uno dei valori del seguente punteggio(soggettivo) 1. Non Importante, anche se non è rispettata non danneggia alcun utente 2. Scarsamente Importante,impatta su pochi utenti 3. Mediamente Importante, impatta su molti utenti, ma non è dannosa se non è rispettata. 4. Importante, impatta su molti utenti ed è dannosa se non è rispettata. 5. Critica, se non è rispettata il sistema non si può utilizzare DIB 28 Concetti Generali Modelli Quantitativi ð Il valore di una misura è calcolato da altre attraverso uno dei seguenti modelli quantitativi q Calcolo con equazione q Trasformazione con corrispondenze tabulari q Calcolo Statistico ð Esempi: q Non Conformità = (Numero di violazioni/numero di applicazioni delle tecniche)*100 q Media dei voti degli studenti di ITPS iscritti al terzo anno DIB 29 La Qualità è Relativa DIB 30 Concetti Generali Modello per la Valutazione secondo la ISO IEC 14598 Supera i requisiti Livello previsto Valore misurato Soddisfacente Area di accettazione Livello peggiore Area di rigetto Inaccettabile Scale della metrica DIB 31 Concetti Generali Soglie dei Valori ð Per soddisfare gli obiettivi di qualità richiesti le misure rilevate sui prodotti e sui processi devono raggiungere predefinite soglie ð Le soglie da raggiungere sono dipendenti dal contesto di esecuzione del processo e dal committente del prodotto ð Normalmente si definisce q un intervallo di successo entro i quali il processo od il prodotto si considera abbia raggiunto l’obiettivo: Smin; Smax q Una soglia di insuccesso al di sotto della quale il processo od il prodotto è rigettato: Srigetto DIB 32 Concetti Generali Miglioramento dei Processi e dei Prodotti ð Se si è raggiunti la soglia di insuccesso è indispensabile individuare ed eseguire iniziative di miglioramento ð Se si è nell’intervallo di successo il management può decidere: q di migliorare il processo per far salire le soglie verso Smax q di stringere l’intervallo di successo per aumentare la capacità del processo ð Se si sono raggiunte per tutte le misure le soglie massime ed i processi sono stabili il management può decidere di far salire il loro valore per indurre maggiore maturità del contesto di esecuzione DIB 33