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

Use Quizgecko on...
Browser
Browser