Modelli e metodi - Qualità (PDF)
Document Details
![RaptBlueTourmaline9774](https://quizgecko.com/images/avatars/avatar-1.webp)
Uploaded by RaptBlueTourmaline9774
Uniba
Tags
Related
- Qualità della vita nello studio Wound Care - Rapporto conclusivo.pdf
- Merceologia e Teoria della Qualità Riassunto PDF
- Qualità Latte e Formaggi - Appunti 2024/2025
- Monitoraggio e Valutazione Qualità Servizi Educativi PDF
- Modelli e Metodi per la Qualità del Software PDF
- Valutazione Qualità Post-Raccolta PDF
Summary
Questo documento descrive il concetto di qualità, i suoi aspetti multidimensionali e le diverse tipologie, come la qualità funzionale e strutturale. Inoltre, vengono menzionati i costi di qualità, la fase di verifica e validazione, la misurazione e il miglioramento continuo dei processi.
Full Transcript
Modelli e metodi. Qualità. Cos’è la qualità? La qualità è un concetto di natura Multidimensionale, basato sull’esistenza di Entità ed Attributi ad essa associati. Un’entità rappresenta un elemento del mondo reale portatore di attributi. Un attributo è un elemento che caratterizza un entità e la di e...
Modelli e metodi. Qualità. Cos’è la qualità? La qualità è un concetto di natura Multidimensionale, basato sull’esistenza di Entità ed Attributi ad essa associati. Un’entità rappresenta un elemento del mondo reale portatore di attributi. Un attributo è un elemento che caratterizza un entità e la di erenzia da altre (es Entità: persona, Attributi: altezza, peso, sesso ecc). Importante nella definizione di un attributo è il punto di vista che permette di associare l’attributo nel migliore dei modi all’entità. La multidimensionalità della qualità è ritrovabile anche nel rigore con cui viene misurata, al contesto in cui la collochiamo e al livello di astrazione. Troviamo 2 dimensioni principali relative a questo concetto: Popolare o Concetto immateriale e non tangibile o Indicato solitamente con buona o cattiva qualità o Non quantificato o Solitamente associato al costo (prodotto costoso = di qualità) Professionale o Indicata da una conformità ai requisiti o Esprime il grado di adeguatezza del prodotto a questi ultimi. È possibile astrarre il concetto di qualità a vari livelli, permettendo quindi di valutare un prodotto sotto tutti i punti di vista. I tipi di qualità sono 2: Funzionale o Il prodotto soddisfa i requisiti funzionali o Es. smartphone che chiama, naviga, ha prestazioni ottime e non presenta bug relativi alle funzioni principali Strutturale o Il prodotto soddisfa i requisiti non funzionali o Es. smartphone prodotto con materiali di ottima fattura, il sistema operativo è scalabile, manutenuto ecc Costi qualità Per poter realizzare e manutenere un prodotto di qualità è necessario prevedere dei costi. Durante la realizzazione sono previste fasi di prevenzione, dove vengono realizzate procedure per poter limitare i difetti e aumentare la qualità, e costi di accertamento, che consistono nel cercare all’interno di un prodotto realizzato tutti i punti critici che potrebbero ridurre la sua qualità. Durante invece la fase di rilascio sono presenti i costi di riparazione relativi a insuccessi interni o esterni. L’insuccesso interno si ha nel momento in cui il prodotto non risulta conforme ai requisiti specificati in analisi, mentre gli insuccessi esterni sono relativi a insoddisfazione dei requisiti post consegna al cliente. La qualità di un prodotto si lega inevitabilmente alla produttività, infatti aggiungere processi che aumentano la qualità ai processi produttivi è un qualcosa di esoso che necessità di adeguati modelli (solitamente ad albero) che man mano che si scende di livello scendono anche di astrazione. Introdurre qualità in un prodotto Gli obiettivi dell’introdurre qualità per un prodotto sono principalmente verifica e validazione. La fase di verifica è interna al processo e viene e ettuata da persone diverse dagli sviluppatori per assicurare oggettività. La documentazione prodotta in questa fase deve essere controllata ancora da persone diverse. La sua attuazione si compone di due diverse pratiche: Code review/Ispezione Testing Ed è legata ad altre attività come Misurazione dei dati, validazione dei dati e certificazione. La fase di validazione invece consiste nell’accettazione da parte del committente del prodotto che rispetta i requisiti concordati. Per ottimizzare questa fase è necessario pianificare dei modelli dove: Vengono specificati i goal Vengono generate domande relative alla qualità del prodotto Vengono specificate misure Vengono definiti meccanismi operativi Vengono e ettuate analisi post-mortem per evoluzioni future Le figure incaricate della valutazione del prodotto si occupano di definire gli obiettivi, pongono domande specifiche sulle entità e definiscono le metriche migliori per poter valutare la qualità del prodotto. Misurazione della qualità. Migliorare la qualità all’interno di un prodotto è un lusso perché questo prevede numerosi costi relativi a processi e modelli. Normalmente in un prodotto sono presenti difetti e problematiche di qualità perché: Falliamo a impostare obiettivi Falliamo a comprendere e quantificare i costi Non quantifichiamo la qualità del prodotto che produciamo Per arginare queste problematiche subentra la misurazione della qualità di un prodotto, che consiste nella valutazione dello stato dei progetti, prodotti, processi e risorse. La misurazione viene suddivisa in: Comprendere o Cosa accade durante la produzione e i processi? o Si cerca di rendere più visibili e comprensibili i processi che portano a un prodotto Controllare o Cosa accade al prodotto? Soddisfa le specifiche? o Vengono pianificati miglioramenti e cambiamenti Migliorare o Vengono studiati trend e dati per migliorare il prodotto o Vengono introdotti nuovi tool con lo scopo di aumentare la qualità. Tutto ciò è possibile tramite i seguenti processi: Interpretare i risultati Individuare i problemi Applicare le azioni correttive Interpretare nuovamente gli obiettivi fissati con gli stakeholder La misurazione ci permette di stimare quelli che sono i costi e l’e ort da applicare nei processi, di sviluppare modelli di misura della produttività e di raccogliere dati in grado di mostrare i processi e condurre indagini specifiche tramite misure definite in modo inequivocabile. Nel software la misurazione è fondamentale per i seguenti motivi: Caratterizzare o Comprendere i processi, prodotti, risorse ecc.. Valutare o Determinare avanzamento e qualità dello sviluppo Prevedere o Vengono identificate tendenze, fatta un’analisi dei costi dal passato, viene stimata la qualità e analizzati i dati storici Migliorare o Si cerca di limitare le ine icienze e di migliorare prodotti e prestazioni Un software per essere di qualità deve essere classificato BUGFREE, cioè privo di difetti. All’interno di un software gli attributi, che abbiamo già detto di erenziare le entità, svolgono un ruolo fondamentale e fondamentale è la loro misurazione per poter prendere le giuste decisioni. Questi vengono misurati tramite indicatori e metriche che valutano: A idabilità Usabilità Manutenibilità Questi indicatori possono essere di due tipi, calcolati o misurati, nel primo caso ci sono formule in grado di dare i valori, mentre nel secondo i valori sono dati dalla sola rilevabilità dei dati. Fondamentali nelle misurazioni sono i concetti di Intervallo di successo e di soglia di insuccesso. La prima indica un range di valori nel quale un prodotto soddisfa i requisiti ed una volta raggiunto si può scegliere di restringerlo per migliorare ulteriormente il prodotto o accettare lo stato attuale del prodotto. La soglia di insuccesso invece rappresenta un valore sotto il quale il prodotto non rispetta i requisiti ed è richiesto un intervento da parte del management per mitigare e migliorare prodotti/processi. Le misurazioni si dividono in diversi tipi: Dirette o Osservazioni che non necessitano di altri attributi, soggetive e dipendenti dal rilevatore o Necessario creare modelli per ridurre al minimo la soggettività o Vengono definite delle scale con spiegazione testuale per permettere ai rilevatori di avere delle linee guida su cui poggiarsi Indirette o Necessitano di calcoli tramite formule o equazioni, oggettive e dipendenti solo dai valori o Esempi sono Development time, number of LOC (line of code), number of defect, productivity Introduciamo adesso quelle che sono le tipologie di scale di misurazione: Nominale Identifica una classe o categoria di appartenenza di una entita, non prevede ordinamento e non ha ordini di grandezza. Ordinale Nominale ma con l’introduzione di un ordine di grandezza.La distanza tra gli elementi non è significativa e i valori esprimono un punteggio Intervallo Scala ordina dove la distanza tra 2 valori ha rilevanza, possibile su di essa somma e sottrazione e non esiste un origine della scala. Ratio Intervallo ma con un origine, l’elemento 0. Preserva tutto cio che è stato già introdotto e l’elemento 0 di partenza rappresenta l’assenza di valore. Su di esso è possibile fare ogni operazione aritmetica e è paragonabile ad altre scale tramite una moltiplicazione per costante. Assoluta Tipo particolare di ratio dove l’intervallo è sempre 1. Introduciamo anche le funzioni statistiche: Moda Valori più ripetuti. Media Somma dei valori diviso il numero di valori -> ordinali e nominali Mediana Valore intermedia tra tutti i valori -> ordinali ma non nominali Qualità nei software e Ingegneria del software Nell’ambito dello sviluppo software il concetto di qualità rappresenta la mancanza di difetti in un sistema SW. Questo è possibile verificarlo misurando: Tasso di difetti: / , A idabilità: Soddisfazione: % utenti soddisfatti. Per standardizzare il concetto di qualità viene introdotto l’ISO, un insieme di proprietà e caratteristiche desiderate per soddisfare i requisiti del committente, avere un ritorno economico e equilibrare sforzo tecnico, costi e tempo di esecuzione. Questi vengono standardizzati da enti di qualità e nello sviluppo software possiamo ricordare: ISO/IEC 9126 -> prodotti SW ISO 9000/12207 -> processi di produzione o ISO 9000: Qualità intorno alla soddisfazione del cliente caratterizzata da Alte prestazioni, sviluppo rapido, livelli tecnologici alti, Materiali e processi spinti al limite e ridotto numero di difetti. Come già accennato un prodotto software per essere qualitativamente soddisfacente deve essere privo di difetti, che possiamo dividere in 3 categorie: Failure -> mancata soddisfazione dei requisiti Fault -> errore nel codice che causa un failure Error -> errata interpretazione di un requisito o una richiesta Proprio in funzione di ciò assicurare la qualità è di icile, serve metodo e conoscenza per processi che riguardano testing, metodi per la qualità del processo e metodi per la qualità del prodotto. Qui subentra l’ingegneria del software, disciplina uomocentrica che applica un approccio ingegneristico allo sviluppo software monitorando ed eseguendo attività controllate per evitare eventi inaspettati. I punti cardine sono: Gestione Costi Pianificazione Modellazione Analisi Specifica Progettazione Implementazione Verifica Manutenzione Il concetto di qualità del SW è qualcosa di astratto, non tangibile, che ha ripercussioni su tutta la fase di sviluppo di un’applicazione. Produrre software di qualità è un processo costoso che impatta su design e progettazione e complica la manutenzione. Abbiamo principalmente 2 punti di vista: Fornitore Verifica la conformità dei requisiti Garantisce coerenza tra SW e funzionalità Produce software funzionante alla prima esecuzione Rispetta costi e tempi previsti Cliente Deve ricevere software adeguato agli scopi Deve essere soddisfatto Il prodotto deve soddisfare le sue aspettative Deve sentirsi considerato e rispettato Nel mondo SW la qualità consiste in un miglioramento continuo del prodotto e del processo al fine di ottenere un risultato migliore. L’evoluzione storica inizia nel dopoguerra della prima guerra mondiale, dove la qualità faceva parte di processi di controllo, negli anni 50 poi fino agli anni 60 si parlava di assicurazione della qualità mentre allo stato attuale vige la politica di qualità totale e miglioramento continuo fondata su qualità definita dal cliente, legata al mercato e parte integrante dei processi strategici. Solitamente nel settore IT viene gestita dal Project manager che rispetta i concetti di supporto al progetto come: Politica di qualità o Consiste in un documento redatto da esperti di qualità che stabilisce Obiettivi, livelli di qualità accettati e responsabilità dei membri. Obiettivi di qualità o Obiettivi di qualità da soddisfare in un predeterminato lasso di tempo o Devono essere perseguibili, fattibili, specifici, comprensibili e con scadenze Assicurazione qualità o Si occupa di garantire al cliente il piu alto valore di qualità possibile identificando obiettivi standard, prevenendo, collezionando i dati per migliorare e pianificare migliorie, includendo verifiche di qualità Controllo qualità o Attività e tecniche che creano specifiche caratteristiche di qualità o Certifica che gli obiettivi sono stati raggiunti o Si occupa di selezionare cosa controllare, stabilire gli standard, stabilire le tecniche adottate, confrontare i risultati, monitorare e calibrare i dispositivi, includere la documentazione. o Migliorano il prodotto apportando modifiche per tempi e prendendo decisioni in seguito Verifica qualità o Conformità del prodotto con i requisiti o Assicura il raggiungimento della qualità pianificata, che i prodotti siano adeguati all’uso, che siano rispettate leggi e normative, che raccolta e distribuzione dati siano adeguati e si definiscono iniziative di miglioramento Piano di qualità o Specifica e coordina il team di management per svolgere la politica di qualità o Formale o informale o Revisionato all’inizio del progetto Strumenti per il controllo qualità. Per il controllo qualità esistono numerosi strumenti di supporto. I più importanti sono: Diagramma causa e etto (spina di pesce) o Si pone come testa del pesce il problema o Ogni Spina rappresenta una macroarea che potrebbe aver generato problemi o Tramite brainstorming si cercano le cause o Si crea un nuovo diagramma con cause e soluzione o Control chart o Viene monitorato un processo nel tempo o Si definisce una linea con la media dei valori rappresentati o Viene calcolata la deviazione standard dove x è la media o Vengono calcolati il valore superiore e inferiore pari a +/- 3 volte il valore di derivazione standard o Qualsiasi punto fuori dai limiti viene analizzato Diagramma dispersione o Vengono riportati i dati su un grafico cartesiano ricercando una correlazione che può essere Curvilinea => parabola C. negativa => tende a scendere \ C. positiva => tende a salire / Nessuna correlazione o Utile per analizzare se ci sono fattori dipendenti con difetti o problemi o Istogramma o Mostra graficamente la frequenza in un grafico o Non mostra trend o distribuzione o Pareto chart o Chiamato anche 80/20 o Variabili ordinate per frequenza di occorrenza cercando una correlazione cause- problemi qualità o Si cercano le cause che causano l’80% dei problemi in modo da poterle risolverle per prime o Diagramma di flusso o Analisi grafica del codice per identificare i punti deboli e di rottura di un codice o Trend analysis o Metodo statico per ricavare l’equazione che interpola i punti o Descrive relazioni tra output e input o Si cerca di prevedere gli e etti dei cambiamenti e disegna il trend storico con il modello di variazione o Data table o Tabelle utili per rappresentare graficamente i dati collezionati per successive analisi o Gestione del rischio. Per rischio si intende un evento di natura incerta che, in caso si verificasse, avrebbe un e etto positivo o negativo sugli obiettivi. Possiamo suddividerli in rischi noti e ignori. Per rischi noti si intende tutte quelle possibilità che vengono analizzate e identificate, pianificando azioni correttive o che aumentino la probabilità, mentre i rischi ignoti non vengono identificati a priori e vengono gestiti tramite gestione della crisi. La possibilità che si verifica un rischio viene indicata con valori compresi tra 0(impossibile) e 1 (certo che si verifichi) ma non prende mai i due valori pieni. Il suo verificarsi può portare e etti positivi(opportunità) o negativi(minaccia). Obiettivo del Risk management è quello di ridurre le probabilità che si verifichi un evento negativo limitandone eventualmente l’impatto o aumentare le probabilità che si verifichi un evento positivo. Per questo vengono svolte delle attività relative alla gestione.Nello specifico parliamo di: Identificazione o Si cerca di identificare fonti di rischio, le cause e gli e etti o Vengono coinvolte figure come Project manager, Project team member, Risk management team, Risk management expert, customer e utenti finali. o Strumenti di supporto: Brainstorming Delphi Technique: Questionario per raggiungere consenso sui rischi Root cause diagram: Ishikawa diagram o fishbone diagram Risk breakdown structure e checklist RBS -> Elenco di categorie e sottocategorie all’interno delle quali possono Checklist: lista di categorie e sottocategorie da analizzare e in cui cercare minacce e rischi segnando i punti più fragili o interessanti Analisi di ciascun rischio o Vengono valutati i rischi sotto un profilo qualitativo e quantitativo cercando di chiarire anche i relativi impatti. L’analisi quantitativa attribuisce una priorità al rischio mentre un analisi qualitativa cerca di stimare gli e etti e gli impatti di un determinato rischio. o Processo supportato dal registro dei rischi, un documento che contiene tutte le informazioni e i dati relativi ai rischi e contiene: Elenco dei rischi Strategie potenziali Cause principali Aggiornamenti alle categorie di rischio Pianificazione risposte o Identifica e sviluppa azioni per favorire opportunità e ridurre minacce. Vengono sviluppate in base alla priorità del rischio e vengono applicate molteplici strategie: Definire azioni di risposta in base alla priorità e alle caratteristiche del rischio Fornire una stima delle risorse Identificazione di un Risk Response Owner, con relative strategie e azioni Consolidamento del piano di progetto Realizzazione in base ai criteri del piano per gestione dei rischi o In caso di opportunita: si cerca di sfruttare l’opportunità massimizzando le sue probabilità, si condivide l’opportunità con terze parti pronte a coglierle, viene potenziato il suo impatto e si aspetta che si verifichi o In caso di minacce: Si cerca di ridurre al minimo l’impatto rimuovendo l’attività dal progetto, trasferendo la gestione della minaccia a terze parti con clausole di penalità, mitigando le probabilità di impatto e stanziando risorse utili a limitare l’impatto o Le criticità di questo processo sono: Incertezza descrittiva, Incertezza misure, Attitudine al rischio, Beneficio personale, rischio non evitabile, esistenza alternative più accessibili e durata del periodo di esposizione al rischio o Viene redatto come output di questo processo un piano di contingenza, cioè un piano di emergenza che ha come scopo mitigare il rischio in caso di realizzazione. È necessario fissare una riserva di contingenza in tempo e risorse e degli indicatori che indicato il momento in cui attivarlo. Viene pianificato come prodotto dell’analisi quantitativa e richiedere un monitoraggio costante per verificarne l’adeguatezza Controllo o Attività da svolgere durante il progetto e consiste nel tener traccia dei rischi, monitorare lo stato dei rischi, ricercare nuovi rischi e vigilare sulla corretta attuazione delle risposte. Permette inoltre di raccogliere esperienza per i progetti futuri. Ai Risk management framework Framework rilasciato da NIST (national institute of standard and technology) nato con l’obiettivo di supportare la gestione del rischio con l’AI, promuovere il loro sviluppo, rendere i sistemi AI a idabili e dare flessibilità. Struttura: Core function: o Governance -> assicurarsi che il sistema AI sia sviluppato e implementato in modo responsabile. o Map -> Comprendere il contesto in cui il sistema AI verrà utilizzato identificando possibili rischi o Measure -> Misurazione e valutazione rischi associati ad AI o Manage -> implementare strategia per mitigare rischi Profili -> casi d’uso specifici utili a implementare il framework Cyber Vulnerabilities Overview Analisi delle principali vulnerabilità informatiche che possono essere sfruttate per compromettere sistemi. Si divide nelle seguenti tipologie: Vulnerabilità SW o Bu er overflow o Sql injection o Cross-site Scripting o Zero-day exploits Vulnerabilità di configurazione o Firmware non aggiornati o Attacchi side channel Vulnerabilità umane o Pishing o Social engineering o Uso dispositivi non sicuri Miglioramento continuo processi Nasce dall’esigenza di uniformare il più possibile lo sviluppo del software che è un processo uomo- centrico, per farlo è necessario monitorare costantemente tutti i processi che, data la loro diversità insieme al pregresso diverso di ogni attore, hanno necessità di un miglioramento graduale. Un business è influenzato dalla qualità del prodotto o del servizio o erto. La qualità è determinata dai processi utilizzati e dalla loro manutenzione, quindi migliorando i processi si migliora il business. Utile conoscere il concetto di NORMA, cioè un documento prodotto attraverso il consenso e approvato da un organismo riconosciuto che fornisce caratteristiche e linee guida per determinate attività e prodotti. Grazie a queste è possibile Assicurare ordine ed uniformità. Gli obiettivi delle norme sono: Salvaguardare gli interessi di consumatori e collettività, Migliorare i processi produttivi, Migliorare lo scambio di informazioni applicando gli standard, promuovere sicurezza durante i processi. Per migliorare la qualità si utilizzano schemi standard che definiscono i livelli di qualità dei processi e come questi vengono caratterizzati. Modelli di qualità comuni sono: ISO 9000 Insieme di standard per il controllo e la guida della qualità in ogni settore. Necessario dotarsi di un sistema qualità che si occupa di valutare, guidare e controllare la qualità nei processi e si completa con un Manuale di qualità. Le sue norme: ISO 9000 Descrive i fondamenti e la terminologie dei sistemi di gestione ISO 9001 Specifica i requisiti dei sistemi per la gestione della qualità che vengono sfruttati da un’organizzazione per dimostrare la sua capacità nel fornire prodotti che soddisfino i requisiti. Obiettivo finale: soddisfazione cliente ISO 9004 Linee guida su e icacia ed e icienza dei sistemi di gestione per la qualità. Si pone come obiettivo il miglioramento continuo delle prestazioni dell’organizzazione per soddisfare clienti e stakeholder ISO 19011 Verifiche ispettive dei sistemi di gestione per la qualità e per l’ambiente ISO/IEC 12207 Processi del ciclo di vita del software. Composto da processi primari, processi di supporto e processi organizzativi: Processi primari -> realizzano la missione dell’organizzazione determinando creazione, realizzazione, manutenzione ecc. I processi di questa categoria sono 5 Acquisizione -> Cosa deve fare un cliente per entrare in possesso di un sistema SW Fornitura -> Attività del fornitore per rendere disponibile il prodotto SW Sviluppo -> Attività che devono essere seguite da un organizzazione per definire lo sviluppo di un SW o Esempi di attività da svolgere Analisi requisiti sistema Progettazione architetturale sistema Analisi requisiti SW Progettazione architetturale SW Codifica e test Integrazione SW Test qualitativi Integrazione sistema Test qualitativi sistema Gestione operativa -> definisce le attività dell’operatore (su un calcolatore) all’interno dell’organizzazione Manutenzione -> attività che un’organizzazione deve mettere in pratica per manutenere il sistema SW Processi di supporto -> supportano i processi primari Documentazione o Fondamentale per dare valore ai processi, immagazzinare i risultati e i processi, migliorare la qualità durante i processi Gestione configurazione o Catalogazione, identificazione e recupero manufatti prodotti nell’organizzazione. Necessaria per controllare l’integrità di tutti gli artefatti ottenuti dall’esecuzione del processo. o Vengono identificati tutti i manufatti prodotti o Si controllano modifiche e release del SW o Si registra lo stato degli artefatti o Si controlla la completezza Assicurazione qualità o Definizione delle attività necessarie a certificare la qualità di un prodotto e che questa sia conforme agli standard prefissati o Si realizza quando: Si identificano, pianificano e schedulano attività per la qualità Si definiscono standard, metodi e tool Si identificano risorse necessarie Si eseguono attività pianificate e schedulate Verifica o Attività da seguire per la verifica del processo, e ettuata alla fine di ogni fase, determina se l’esecuzione procede in modo conforme al modello di processo per costi, risorse,requisiti, vincoli ecc. A carico di chi produce. Validazione o Attività da seguire per la validazione di un prodotto software Revisione o Informazione del cliente sul progresso del progetto Audit o Conformità prodotto con contratto, requisiti e processo Gestione problemi o Fondamentale per gestire le problematiche durante qualsiasi fase della produzione Realizzazione report Definizione priorità Determinazione risoluzione Correzione difetti Distribuzione prodotto Processi organizzativi -> Struttura logica di fondo da seguire al fine di migliorare struttura e processi, con struttura = ripartizione compiti, competenze, responsabilità e potere decisionale. Gestione processo -> attività gestionali di base Gestione infrastrutture -> Attività da seguire per le infrastrutture per mantenerle e icienti(HW, SW, Tools ecc…) Miglioramento -> attività per determinare, consolidare, misurare, controllare, migliorare i processi del ciclo di vita SW Addestramento e formazione -> attività che hanno lo scopo di formare e aggiornare le risorse umane dell’organizzazione ISO/IEC 9126 Qualità in un prodotto software (Trattata QUI) ISO/IEC 14598 Processo per la valutazione di un prodotto ISO/IEC 25000 Racchiude ISO 9126 e ISO 14598 CMM-I (Capability Maturity Model) Il primo passo per migliorare processo è la valutazione, dove sono previsti tre classi di valutazione: Software Process Capability -> metodo per predire il probabile risultato atteso da progetti futuri Software Process Performance -> risultato raggiunto eseguendo un processo SW Software Process Maturity -> quanto un processo sia esplicitamente definito, gestito, misurato, controllato ed e icace Il suo utilizzo consiste in Riesame organizzazione per identificare i punti di forza e debolezza, Valutazione di organizzazioni esterne per stimare rischi nel selezionare un fornitore di servizi e prodotti, Guida per il miglioramento del processo attraverso le analisi delle misure e l’individuazione dei processi da migliorare. Il framework si struttura come segue: Livelli di maturità -> indicano le capacità dei processi o Stadio evolutivo ben definito in un cammino di maturazione di un organizzazione, ogni livello è fondamentale per il miglioramento continuo e sono composti dalle capacità di processo che indicano i potenziali risultati attesi. o I livelli sono Iniziale -> processo non ben definito Ripetibile -> sono presenti attività di base, abbastanza maturo da essere ripetuto Definito -> processo conforme agli standard Gestito -> processo con misure dettagliate. I prodotti hanno anche misure dettagliate. Ottimizzato -> migliorato continuamente con analisi post mortem dei progetti e delle tecnologie innovative Aree chiavi del processo -> raggiungono i goal e sono contenute nei livelli per poter salire di livello. Fattori comuni -> indicato implementazione e istituzionalizzazione e organizzano le aree chiave. Attributi che permetto l’esecuzione di un processo chiave in modo definito e ripetibile Pratiche chiave -> Descrivono infrastrutture o attività e sono contenute nei fattori comuni CONSIGLIATO APPROFONDIRE SU SLIDE DATA LA GRANDE MOLE DI DATI SPECIFICI CHE POTREBBERO ANCHE ESSERE SOLO INUTILI CMM-I non può certificare ma solo valutare un organizzazione, ottenendo un livello di maturità con lo scopo di migliorare i processi di una determinata organizzazione, informare i clienti sui processi e soddisfare i requisiti contrattuali. Il metodo per condurre valutazione si chiama “Standard CMMI Appraisal Method for Process Improvement (SCAMPI)” che vengono pubblicati sul sito web CMMI di SEI. Rappresentazioni: Staged -> usa i livelli di maturità per misurare il miglioramento o Relativo all’organizzazione Continuous -> Usa i livelli di capacità per misurare il miglioramento dei processi o Relativo ai singoli processi SPICE (Software Process Improvement And Capability Determination) ISO 15504(oggi 33000) Il suo uso consiste nella comprensione dei processi software operanti, determinazione delle capacità dei processi e guide al miglioramento del processo. I processi vengono valutati per poterne capire capacità e miglioramenti possibili che portano a nuovi processi e ricomincia il giro fino a raggiungere l’adeguatezza. Viene utilizzato dai valutatori per determinare le capacità di un organizzazione di fornire prodotti IT. Struttura: Processo o Livello di capacità o Scopo o Attributi o Categoria di processo Ogni processo di organizzazione ha una categoria, che sono: Fornitore/committente -> regolano la comunicazione tra organizzazione e committenti e impattano sulla loro soddisfazione Ingegneristici -> specifica, progettazione, manutenzione e implementazione dei SW Progetti -> definiscono i processi di produzione, controllo e guida degli stessi Supporto -> supporto ai processi di produzione per assicurare la loro e icacia Organizzazione -> definizione di obiettivi di business e processi relativi a sviluppo, prodotti, risorse per raggiungere gli obiettivi Livello di capacità -> indicatore qualità raggiunta, determinata tramite una serie di attributi di processo, associati a ciascun livello e si riferiscono al singolo processo. I valori sono: 0: non eseguito 1: Eseguito informalmente 2: pianificato e monitorato -> pianificata e monitorata, prodotti e risultati conformi agli standard 3:ben definito -> uguale a 2 ma con aggiunto un processo standard come padre del processo attuale 4: quantitativamente controllato: misure raccolte e organizzate, permette di stimare le prestazioni del progetto. Qualità prodotti quantitativamente rilevabile. Di erenza da 3: uso di misure quantitative 5:migliorato continuamente: obiettivi di e icacia ed e icienza sempre definiti e continuamente migliorati in base ai dati delle analisi Attributi -> caratteristica misurabile del processo che può assumere i seguenti valori: N -> non conseguito; P -> parzialmente; L -> largamente; F -> pienamente. Gli attributi sono: 0: non eseguito o nessuno 1: Eseguito informalmente o Esecuzione del processo 2: pianificato e monitorato o Gestione esecuzione o Gestione risultati 3:ben definito o Definizione processo o Utilizzo processo 4: quantitativamente controllato o Misurazione del processo o Controllo del processo 5:migliorato continuamente o Innovazione del processo o Miglioramento continuo Assessment: valutazione eseguita seguendo i seguenti passi: 1. Avviare valutazione 2. Selezionare valutatori 3. Pianificare valutazione 4. Briefing pre valutazione 5. Raccolta dati 6. Convalida dati 7. Valutazione processo 8. Reporting risultato La raccolta dati avviene tramite interviste, documenti e dati che vengono convalidati dal valutatore per poi essere valutati. Il valutatore deve essere in possesso delle giuste qualifiche e competenze che dovranno essere valutate. Di erenze CMMI VS SPICE Livelli di maturità 5 livelli di maturità (0-5). Ha 6 livelli di capacità e Ha un livello di maturità usa gli stessi per definire vuoto la maturità Livelli di capacità 3 livelli 6 livelli di capacità (da 0 a 5) Standardizzazione Modello chiuso e più Standard internazionale dettagliato ISO, quindi più aperto e riconosciuto globalmente Strategie (non approfondite dalle slide) Vengono introdotte inoltre strategie che permettono di raggiungere un prefissato livello di qualità e migliorarlo: Plan Do Check Act (PDCA) Quality Improvement Process (QIP) Experience Factory (EF) ISO 25000 Software -> serie di istruzioni fornite ad un computer per realizzare funzionalità rispettando requisiti concordati con il cliente Standard di qualità: ISO 9126 Software = Insieme di programmi, procedure, regole e documenti relative all’utilizzo di un sistema informatico ISO 25000 (SQUARE) integra ISO 9126 (modello di riferimento caratteristiche software) e ISO 14598 (guida alla valutazione di un software) ISO 9126 può essere utilizzata per definire i requisiti di qualità, Validare la completezza della documentazione, identificare obiettivi, criteri di qualità e criteri di accettazione, test e collaudo. Si suddivide in: o 9126-1: caratteristiche di qualità Tre punti di vista: esterno, interno, in uso In uso: come il SW serve le esigenze dell’utente Interna: attributi statici del SW, indipendentemente dall’ambiente di utilizzo (Valutabile con sonarQube) Esterna: esprime il comportamento dinamico del SW nell’ambiente d’uso Principali attributi con sottocategorie Funzionalità -> soddisfazione dei requisiti funzionali impliciti ed espliciti o Appropriatezza -> presenza funzioni adeguate a compiti specifici o Accuratezza -> risultati corretti secondo i requisiti o Interoperabilità -> interazione con altri sistemi o Sicurezza -> proteggere programmi e dati A idabilità -> mantiene le prestazioni stabilite indipendentemente dalle variabili esterne o Maturità -> evitare fermi di applicazione (failure) in seguito a fault o Tolleranza ai difetti -> in caso di malfunzionamenti rimane operativo o Recuperabilità -> capacità di ripristino delle funzionalità Usabilità -> comprensibilità da parte dell’utente in determinate condizioni d’uso o Comprensibilità -> capacità di ridurre l’impegno richiesto per capirne il funzionamento o Apprendibilità -> ridurre l’impegno per imparare a usarlo o Operatività ->capacità di farsi usare dagli utenti o Attrattività -> piacevolezza all’utente durante l’uso E icienza -> rapporto prestazioni/risorse o Consumo di tempo -> rispetta tempi di risposta, elaborazione e uso accettabili o Consumo di risorse -> consumo di risorse adeguato alle funzionalità che svolte Manutenibilità -> risorse necessarie a manutenere od evolvere il sistema o Modificabilità -> minore impegno per le modifiche o Stabilità -> ridotto rischio di regressioni in seguito a modifiche o Testabilità -> capacità di essere testato facilmente o Adattabilità (PRIMA C’ERA, DOPO NO, BOH PROF DECIDITI) o Analizzabilità -> facilità di rilevamento dei problemi e risorse necessarie per il fix Portabilità -> adattabilità a diversi ambienti o Installabilità -> impegno necessario a installarlo in un particolare ambiente o Adattabilità (QUI QUALCUNO MENTE, NELLO SCHEMA ERA NELLA MANUTENIBILITA, ORA NELLA PORTABILITA) ->capacità di adattamento ai nuovi ambienti o Conformità (DI NUOVO PRIMA STA DOPO NO) o Coesistenza -> coesistenza con altri SW nel medesimo ambiente o Sostituibilità -> riesce a sostituire altri software presenti nello stesso ambiente? Metriche per misurare o 9126-2 metriche qualità esterna Prestazioni del prodotto Valutazione delle caratteristiche esterne (black box) In relazione all’ambiente o 9126-3 metriche qualità interna Proprietà intrinseche del prodotto Misurabili sul codice sorgente Requisiti utente = specifiche di qualità Specifiche tecniche = qualità richiesta dall’utente o 9126-4 metriche qualità in uso Utilità del prodotto all’utente E icacia ed e icienza del prodotto Sicurezza ed a idabilità Caratteristiche E icacia: raggiungimento degli obiettivi dell’utente Produttività: aiutare l’utente a spendere meno risorse per lo stesso scopo Soddisfazione: soddisfazione utente Sicurezza: conservazione dei dati di un utente in modo sicuro e capacità di soddisfare l’utente nelle varie situazioni Le caratteristiche sono interdipendenti e le metriche sono in relazione tra di loro , misurando le stesse caratteristiche in tutti e tre i livelli. Nel ciclo di vita del software: Committente: può scegliere metriche e grado di valutazione a convenienza Sviluppatore: può disporre metriche per migliorare il suo codice Manutentore: può valutare la manutenibilità di un SW Utenti: possono valutare usabilità e e icacia Qualità nel ciclo di vita di un software Inizio -> qualità specificata da requisiti utente Progettazione -> qualità tradotta in un disegno tecnico con requisiti impliciti di qualità Finale -> rispetto dei requisiti definiti sull’uso e gli utenti, non è assoluta ma può essere NECESSARIA E SUFFICIENTE ISO 25000 La norma ISO 9126 è attualmente in revisione ed è entrata a far parte della ISO 25000 nella norma 25010 senza modifiche. La ISO 25000 racchiude le norme relative alla qualità del software e definisce le metriche nella sezione 2502n, composta da più documenti. Nasce come evoluzione della sopracitata 9126 e della 14598 che definisce un processo di valutazione del SW. Formata dai 5 seguenti raggruppamenti: 2500n -> modelli comuni, termini e definizioni 2501n -> modelli di qualità dettagliati o 25010 -> definisce 8 caratteristiche del software che devono essere prese in considerazione per la valutazione o È la ISO 9126 2102n (sospetto sia 2502n) -> modelli di riferimento per le misurazioni 2503n -> specifica dei requisiti di qualità 2504n -> requisiti, raccomandazioni e linee guida o Descrizione del processo da adottare o Composta da 5 attività Stabilire i requisiti Specificare la valutazione Progettare la valutazione Eseguire la valutazione Concludere la valutazione Project management Le attività principali del project management sono Pianificare, Integrare ed eseguire i piani. La pianificazione consiste nell’identificare gli obiettivi del progetti e dell’impresa, l’integrazione si occupa di unire vari prodotto realizzati da più sezioni o unita per realizzare l’output e eseguire i piani permette di gestire le risorse al fine di rispettare la pianificazione. La pianificazione permette di: Ridurre incertezza Accrescere e icienza Comprendere gli obiettivi Monitorare e controllare Da qui viene prodotto il Project management plan, che definisce i dettagli su tutta la gestione del progetto. Tra le assunzioni da tenere in considerazione abbiamo i fattori ambientali (mercato, interesse, tecnologie ecc) e i fattori organizzativi (metodologie, sistemi di supporto ecc). Pianificazione Determinare cosa fare, quando, come e chi lo fa. Le 9 componenti principali sono: Obiettivi Programma (strategia) Schedulazione(tempi) Budget Previsioni Organizzazione Politiche aziendali Procedure Standard Inoltre è composta da più livelli: Strategici -> (piu di 5 anni) Tattici -> (da 1 a 5 anni) Operativi -> immediato (6 mesi-1 anno) Project management Composta da 5 macrocategorie di processi Avvio o Processi per la creazione di un nuovo progetto o Necessario per autorizzazione avvio o Definizione scope progetto o Allocamento di risorse o Individuazione stakeholder e risorse o Individuazione PM o Identificazione prodotti o Definizione durata o Studio fattibilità Pianificazione o Vengono stabiliti gli scope o Ra inati gli obiettivi o Definito il flusso di azioni o Produzione PMM(project management plan) Esecuzione o Messa in opera della pianificazione o Coordinamento delle risorse o Processi flessibili rispetto alle variazioni o Eventi che generano richieste di cambianto o Processi che consumano risorse Monitoraggio o Tracciare e revisionare lavoro o Gestire progresso e performance o Controllare i cambiamenti o Verificare aspetti progetti o Identificare stato salute progetto Chiusura o Processi di chiusura progetto o Formale chiusura da parte cliente o Raccolta spunti miglioramento o Documentazione o Aggiornamento assets o Raccolta sistematica dei dati utili o Chiusura delle relazioni di fornitura Ed include processi di identificazione di requisiti, considerazione delle esigenze degli stakeholder, bilanciamento dei vincoli di progetto direttamente collegati tra di loro. Un progetto ha natura temporanea, ha un inizio e una fine, il risultato è unico e durevole. Non è un processo predefinito e ripetitivo, non è solo reiterata ma cambia e si evolve. Tempo = risorsa preziosa. Tipi di comunicazione Sincrona: -> possibile se non sono presenti gap di fusi orari importanti (solitamente meno di 4h) Face to face: implicito Video conferenza: implicito Conferenza telefonica: implicito al limite Sociali network/chat:esplicito Lavagne condivise: esplicito Asincrona: -> ritarda o rallenta risoluzione del problema Posta elettronica: esplicito Posta tradizionale: esplicito Forum: esplicito Diciamo che un progetto ha successo quando: Rispetta i tempi definiti Rispetta il budget Rispetta le specifiche Viene accettato dal committente Quando non ci sono grossi cambiamenti rispetto all’inizio Non ha causato impatti sulla produzione Non ha causato cambi nella cultura di impresa Project Charter In un progetto è fondamentale suddividere la azioni in Ex-Ante (prima dello sviluppo) e In- itinere(durante lo sviluppo). Nella fase Ex-Ante troviamo strumenti come: Work breakdown structure Gantt Milestone chart Program Evaluation e review Technique Critical path method Precedence Diagram method Grafical Evaluation and review technique Permettono di fare valutazioni per pianificazioni e previsioni, permettendo di scegliere come impiegare le risorse. Forniscono inoltre visibilità e controllo sui progetti, permettendo di scegliere eventuali alternative. Risponde alle domande Come, Quando, Cosa, Come, Costo e qualità e si concretizza attraverso i seguenti strumenti: What: Work Breakdown Structure o Basato sul divide et impera: risoluzione di un problema attraverso risoluzione di sottoproblemi o Definisce attività da seguire e rapporti tra attività semplificando la pianificazione o Se un attività suddivisa risulta complessa si suddivide ancor di più o Deliverable Breakdown Structure Risk management Communication management When: GANTT o Aggiungono coordinate temporali al WBS, vincoli di precedenza, stato di avanzamento e punti di controllo di un progetto o Utili sia in pianificazione sia in monitoraggio o Asse x = coordinata temporale(giorni, settimana, mesi) o Asse y = attività di progetto presenti sul WBS o Viene rappresentata pianificazione, avanzamento, vincoli di precedenza, punto di controllo e attività composta o PERT o Stesso contenuto informativo del GANTT o Nessuna informazione sulla collocazione temporale o o Critical path: Cammino più lungo che determina la durata del progetto o Slack: ritardo di cui può beneficiare un attività senza subire ritardi sul progetto o Calcolo valori Early -> dalla prima all’ultima o Calcolo valori Late -> dall’ultima alla prima Early Start -> iniziale 0, successivamente early finish attività precedente Early Finish -> Early start + Durata Late Start -> Late Finish precedente, cioè Late finish - Durata Late Finish -> Early Finish maggiore Slack -> Late finish – Early Finish oppure Late start – Early Start o Può essere modificato durante il progetto CPM Who: RACI o Matrice Responsabile, Account (responsabile) , Consulente, Informato o Prima colonna attività o Successive 4 colonne: attori o Viene associato ad ogni attore un ruolo per ogni attività o Stakeholder management How: Much o Budget estimation Calcolato in base alle attività precedenti decidendo dove allocare risorse Strumenti Ex-Ante Attività vs Sforzo nel tempo o Prima colonna attività o Ultima colonna: somma giorni/persone o Altre colonne: giorni o Valori interni: persone sull’attività quel giorno Impiego unità di personale e tempo o Istogramma con X = tempo, Y = unità persone necessarie Costo vs tempo o Si stimano i costi giornalieri a persona e si moltiplicano per il valore ottenuto dal primo diagramma o Earned value management Tecnica introdotta nel PMBOK Fissata una data valuta lo stato di avanzamento, valuta i costi di progetto, valuta ritardi o anticipi, determina nuove date di completamento e costi Mostra l’utilizzo nel tempo del budget e dei costi BAC -> budget al completamento TAC -> tempo al completamento BCWS -> Piano di spesa (verde) BCWP -> Costo preventivato (viola) ACWP -> costi sostenuti (arancio) SV -> di erenza tra piano di spesa e costi sostenuti CV -> di erenza tra costo preventivato e costi sostenuti CPI = BCWP / ACWP -> indice dei costi SPI = BCWP / BCWS -> indice costi programmati EACC = BAC/CPI -> costi stimati al completamento EACT = TAC/SPI -> tempo stimato al completamento Well o Processo = insieme di attività composto da attività, input e output o Piano di progetto = sequenza temporale di esecuzione potenziale Pianificazione ottimale del progetto in base a vincoli di precedenza e ignorando costi e tempi Costruito creando un PERT per le attività dove Per ogni Attività non inclusa nel PERT si controlla se gli input fatto parte dei manufatti disponibili all’inizio (MD) o Se si si aggiunge il nodo N corrispondente ad A o Per ogni nodo già inserito se il suo output è contenuto negli input Si collega il nodo al nodo attuale o MD = MD unito agli output di N Tutti i nodi che non hanno una freccia uscente di collegano a stop o Piano esecutivo = sequenza temporale di esecuzione reale Si aggiungono al piano di progetto tutte le variabili non considerate Si prende il piano del punto precedente Si lasciano invariate le attività in sequenza Si valutano le risorse per le attività in parallelo Se risorse non disponibili -> si eseguono in sequenza Occorre valutare la priorità delle attività Possibile trasferire risorse ferme nei tempi morti (slack) Possibile ridurre il cammino critico in caso di necessità (operazione costosa) o Quality management SonarQube Piattaforma opensource per la valutazione statica di un progetto, incentrata su regole come OWASP, SANS, CWE, CERT ecc. che ha lo scopo di segnalare agli sviluppatori probabili errori del codice (Issue), problemi che potrebbero generare difetti minori (code smell) e valutano la modularità del codice analizzando il codice ripetuto. Altre valutazioni sono relative a problemi di consistenza, adattabilità, intenzionalità e responsabilità. Inoltre suddivide le Issue per Sicurezza, Manutenibilità o A idabilità. Un altro parametro è il code coverage, cioè la percentuale di codice coperta da test(unità, integrazione ecc) L’analisi può dividersi in New Code e Overall code, la prima è la sezione dedicata a tutto il codice nuovo inserito nel progetto, per esempio dopo un Commit su Git. Overall code invece contiene tutte le problematiche già segnalate nel codice rimasto invariato. Ogni problematica del progetto poi ha una sua priorità e gravità: Issue: Bloccante Alta Media Bassa Informativa È possibile inoltre configurare sonarqube per eseguire l’analisi in momenti catartici come un nuovo commit, lancio dei test (tramite Maven o altro) o lanciarlo manualmente. Sonarqube permette di personalizzare le regole per l’analisi del codice, riducendo le regole standard preimpostate o aggiungendo nuove regole per fare analisi più approfondite in base agli standard di qualità. Quantum computing Nuovo paradigma che applica la meccanica quantistica all’informatica velocizzando i processi informatici. Il concetto principale è il Qubit, che va a sostituire il bit informatico e consiste in un valore che può essere 0, 1 o sovrapposizione di entrambi tramite il principio di sovrapposizione. Questo permette una maggiore velocità di computazione dato che possono essere eseguiti più processi in parallelo. 2 qubit possono essere correlati tra di loro anche se distanti, permettendo così una comunicazione più rapida. DA APPROFONDIRE