Metodi e Modelli per la Qualità del Software PDF

Summary

Questo documento, proveniente dall'Università degli Studi di Bari, esplora i metodi e i modelli per la qualità del software, con un focus sulla gestione dei rischi. Affronta argomenti specifici e metodologie nel campo dell'ingegneria del software per migliorare i processi.

Full Transcript

Metodi e Modelli per la Qualità del Software GESTIONE DEL RISCHIO A.A. 2024/2025 Cos’è un Rischio Software Engineering Research LABoratory Il rischio in un progetto è un evento o condizione incert...

Metodi e Modelli per la Qualità del Software GESTIONE DEL RISCHIO A.A. 2024/2025 Cos’è un Rischio Software Engineering Research LABoratory Il rischio in un progetto è un evento o condizione incerta che se si dovesse verificare, avrebbe un effetto positivo o negativo su uno o più obiettivi di progetto quali ambito, schedulazione, costi e qualità Vi sono principalmente due categorie di rischi: ○ Rischi noti: sono quelli che sono stati identificati ed analizzati, rendendo possibile la pianificazione delle risposte ○ Rischi ignoti: sono quelli non identificabili a priori e che, come tali, non possono essere gestiti in modo proattivo (gestione della crisi) 2 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Cos’è un Rischio Software Engineering Research LABoratory Rischio è in qualche misura legato al concetto di incertezza e, quindi, alla probabilità P che esso si verifichi che non può mai essere 0 o 1 ma deve essere contenuta nell’intervallo (0,1) Se l’evento si verifica produrrà un effetto o conseguenza che determina un impatto I sul raggiungimento di uno o più obiettivi L’impatto I può essere positivo o negativo per lo svolgimento del progetto. Si parla quindi di: ○ Opportunità e benefici ○ Minacce e costi/danni Uno specifico rischio viene determinato da particolari cause e può essere anche classificato in base a tali tipologie di cause I fattori di rischio sono caratteristici del dominio del progetto e del suo contesto 3 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Cosa non è un Rischio Software Engineering Research LABoratory Non bisogna confondere ○ Rischi e Cause: Uscire di strada – gomme lisce Uscire di strada – alta velocità Uscire di strada – fondo sdrucciolevole … ○ Rischi e Conseguenze: Uscire di strada – morire Uscire di strada – danneggiare l’auto Uscire di strada – fratturarsi un braccio … 4 4 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Ciclo di Vita del Rischio Software Engineering Research LABoratory Un rischio può quindi avere una o più cause e, se si presenta, può avere uno o più impatti L’obiettivo della gestione dei rischi è ○ Aumentare la probabilità e/o l’impatto di un evento positivo, ○ Diminuire la probabilità e /o l’impatto di un evento negativo. La gestione dei rischi include le attività di: ○ Identificazione: conoscere i rischi a cui si va incontro; ○ Analisi: per ciascun rischio, determinarne natura e livello di esposizione; ○ Pianificazione delle risposte: definire le strategie e le azioni per affrontare un rischio ○ Controllo: monitorare e tracciare i rischi noti 5 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Identificare un Rischio Software Engineering Research LABoratory Il processo di identificazione delle fonti di rischio, delle possibili cause e degli effetti che ne conseguono. Le risorse coinvolte nel processo sono: ○ Project manager ○ Project team members ○ Risk management team (if exists) ○ Risk management experts ○ Customers, end users and other stakeholders L’identificazione dei rischi è un processo che viene eseguito ciclicamente per tutta la durata del progetto. Vanno prioritariamente passate in rassegna tutte le aree di conoscenza per capire se ci sono potenziali rischi 6 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Strumenti e Tecniche Utili Software Engineering Research LABoratory Brainstorming: un Gruppo multidisciplinare di esperti discute liberamente, sotto la leadership di un facilitatore con l’obiettivo finale di definire e categorizzare i rischi Delphi Technique: un facilitatore utilizza un questionario per raggiungere un consenso sui rischi di progetto; gli esperti partecipano in forma anonima; il consenso può essere raggiunto in più iterazioni Interviste: vengono condotte interviste con tutte le persone coinvolte nel progetto e che sono in grado di identificare rischi Root Cause Analysis: Ishikawa Diagram o Fishbone Diagram Risk Breakdown Structure e Checklist 7 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Risk Breakdown Structure Software Engineering Research LABoratory Elenca le categorie e sottocategorie all’interno delle quali possono insorgere i rischi di un progetto 8 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Checklist opportunità e minacce Software Engineering Research LABoratory 9 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Analisi del Rischio Software Engineering Research LABoratory È il processo di valutazione prima qualitativa e successivamente quantitativa della probabilità di accadimento di un rischio e del suo impatto La valutazione qualitativa consente di attribuire una priorità ai rischi e permette di concentrarsi su quelli che hanno la probabilità e l’impatto più alti La valutazione quantitativa consente di operare stime esatte circa gli effetti del rischio Strumento essenziale nella gestione del rischio è il Registro dei Rischi 10 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Analisi Qualitativa vs Quantitativa Software Engineering Research LABoratory 11 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Pianificazione delle risposte Software Engineering Research LABoratory Prevede la identificazione e sviluppo di azioni, comportamenti, iniziative da porre in essere per favorire le opportunità e ridurre le minacce I rischi vanno gestiti in base alla loro priorità prevedendo attività e risorse dedicate nel piano di progetto Nella gestione del rischio sono possibili molteplici strategie: ○ Serve a stabilire le modalità con cui si vuole affrontare ciascun rischio (azioni di risposta) in base alle caratteristiche e priorità di tali rischi ○ Fornisce una stima delle risorse necessarie per la implementazione delle azioni di risposta ○ Per ciascuna risposta al rischio viene individuato il “Risk Response Owner” (spesso coincide con il Risk Owner), la strategia e le azioni di risposta ○ Permette il consolidamento del piano di progetto (durata, costi, qualità,…) mediante l’aggiunta delle azioni di risposta al rischio ○ Viene realizzata prendendo in considerazione i criteri stabiliti dal Piano di gestione del rischio 12 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Strategie per la gestione del rischio Software Engineering Research LABoratory Strategie gestione minacce ○ Evitare la minaccia: se una attività è particolarmente complessa e pericolosa e al contempo non indispensabile, provo ad eliminarla dal piano di progetto ○ Trasferire la minaccia: per es. se un workpage del progetto è molto rischioso lo subappalto con clausole di penalità sufficienti a coprire l’eventuale perdita ○ Mitigare la minaccia: cerco di portare probabilità ed impatto del rischio all’interno di una soglia accettabile ○ Accettare la minaccia: accettare il rischio e stanziare risorse sufficienti a mitigarne gli eventuali impatti (piano di contingenza) 13 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Strategie per la gestione del rischio Software Engineering Research LABoratory Strategie gestione opportunità ○ Sfruttare l’opportunità: faccio in modo di massimizzare la probabilità che il rischio si concretizzi ○ Condividere l’opportunità: si coinvolge una terza parte maggiormente pronto o preparato a cogliere l’opportunità ○ Potenziare il rischio: si tenta di aumentare per quanto possibile gli impatti connessi alle opportunità ○ Accettare il rischio: attendere il verificarsi del rischio senza intraprendere particolari azioni 14 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Registro dei Rischi Software Engineering Research LABoratory Il Registro dei Rischi è il documento in cui vengono raccolti tutte le informazioni sui rischi durante tutte le fasi della gestione dei rischi. Esso contiene: ○ L’elenco dei rischi identificati ○ La lista delle potenziali strategie ○ Le cause principali che possono dare luogo all’evento associate al rischio ○ Eventuali aggiornamenti alle categorie di rischio definite nel piano 15 15 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Piano di contingenza Software Engineering Research LABoratory Quando si “accetta” il rischio (minaccia o opportunità) è necessario prepararsi all’evento in cui la minaccia si dovesse concretizzare o l’opportunità dovesse svanire, mettendo a punto e concordando: ○ Un piano di emergenza (contingenza) ○ Una riserva di contingenza (del costo e della durata) ○ Gli indicatori (trigger) che fanno scattare il piano e/o l’utilizzo della riserva di contingenza Sulla base dell’analisi quantitativa dei rischi viene normalmente pianificata la riserva di contingenza (almeno del costo) per l’intero progetto La riserva di contingenza per la durata (schedulazione), di norma viene inserita come buffer di schedulazione Le attività di monitoraggio dovrebbero anche verificare l’adeguatezza della riserva residua 16 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Fattori di criticità nei piani di risposta Software Engineering Research LABoratory Incertezza descrittiva ○ Quantità e qualità delle informazioni sul rischio e sulle sue cause Incertezza delle misure ○ Quantità e qualità delle informazioni sulla dimensione del danno o del beneficio Attitudine al rischio ○ Propensione del risk owner o del project manager o di altri stakeholder a rischiare Beneficio personale (Rischio Volontario) ○ Ritorno personale atteso dal project manager o dal risk owner relativamente alla gestione del rischio o opportunità Rischio non evitabile ○ Rischio che il project manager o il project owner non possono evitare di prendere in considerazione Esistenza di alternative poco costose o meno ○ Quante alternative esistono e qual è il loro costo Durata del periodo di esposizione al rischio ○ Lunghezza e collocazione del periodo di esposizione alla minaccia o di opportunità 17 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Monitoraggio e Controllo Software Engineering Research LABoratory Durante l'esecuzione del progetto occorre: ○ Tenere traccia di tutti i rischi identificati ○ Monitorare lo stato dei rischi a valle di ciascuna risposta ○ Ricercare ed identificare nuovi rischi ○ Vigilare sulla corretta attuazione delle risposte pianificate Occorre raccogliere esperienza e pacchettizzarla al fine di poterla usare nei progetti futuri: ○ Checklist per la identificazione e classificazione dei rischi ○ Valutazione del grado di successo dei piani di risposta approntati ○ Best practices e lezioni apprese ○ Analisi della frequenza con cui un rischio si manifesta ○ … 18 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Software Engineering Research LABoratory 19 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Software Engineering Research LABoratory Risk Management 20 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Risk Management Software Engineering Research LABoratory 21 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Software Engineering Research LABoratory Risk Management Framework 22 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Risk Management Framework Software Engineering Research LABoratory 23 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Risk Management Framework Software Engineering Research LABoratory 24 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Risk Management Framework: esempio Software Engineering Research LABoratory 25 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Risk Management Framework: esempio Software Engineering Research LABoratory 26 Metodi e Modelli per la Qualità del Software | Gestione del Rischio 27 Risk Management Framework: esempio Metodi e Modelli per la Qualità del Software | Gestione del Rischio Software Engineering Research LABoratory 28 Risk Management Framework: esempio Metodi e Modelli per la Qualità del Software | Gestione del Rischio Software Engineering Research LABoratory Cyber Vulnerabilities Overview Software Engineering Research LABoratory Connected and autonomous vehicles: A cyber-risk classification framework Reference: https://www.sciencedirect.com/science/article/pii/S096585641830555X 29 Metodi e Modelli per la Qualità del Software | Gestione del Rischio w ? o Software Engineering Research LABoratory H 30 Metodi e Modelli per la Qualità del Software | Gestione del Rischio 31 Upstream H1’2023. AUTOMOTIVE CYBER TREND REPORT Metodi e Modelli per la Qualità del Software | Gestione del Rischio Software Engineering Research LABoratory Software Engineering Research LABoratory 32 Metodi e Modelli per la Qualità del Software | Gestione del Rischio TARA Software Engineering Research LABoratory THREAT ASSESSMENT AND REMEDIATION ANALYSIS Threat Assessment and Remediation Analysis (TARA) is an engineering methodology used to identify and assess cyber vulnerabilities and select countermeasures effective at mitigating those vulnerabilities TARA is part of a MITRE portfolio of systems security engineering (SSE) practices that focus on improving the cyber security hygiene and resilience of systems early in the acquisition process TARA uses a catalog of stored attack vector and countermeasure data to inform the process of identifying attack vectors for exploiting system vulnerabilities and potential countermeasures to prevent their exploitation or mitigate its effects Reference: https://www.mitre.org/news-insights/publication/threat-assessment-and-remediation-analysis-tara 33 Metodi e Modelli per la Qualità del Software | Gestione del Rischio TARA Software Engineering Research LABoratory THE OVERALL PROCESS OF TARA METHOD Reference: https://www.security-analyst.org/threat-analysis-and-risk-assessment 34 Metodi e Modelli per la Qualità del Software | Gestione del Rischio ISO/SAE 21434 Software Engineering Research LABoratory ROAD VEHICLES – CYBERSECURITY ENGINEERING TARA are key activities defined by ISO/SAE 21434 ISO/SAE 21434 describes the security engineering process in the automotive environment (SECURITY by DESIGN) The planned standard is therefore aimed at securing the systematic development of safe vehicles and maintaining this security throughout the entire Vehicle Life Cycle Reference: ISO/IEC JTC 1/SC 27/WG 1 "Information security management systems" 35 Metodi e Modelli per la Qualità del Software | Gestione del Rischio 36 ISO/SAE 21434 ROAD VEHICLES – CYBERSECURITY ENGINEERING Metodi e Modelli per la Qualità del Software | Gestione del Rischio Software Engineering Research LABoratory ISO/SAE 21434 Software Engineering Research LABoratory REQUIREMENT GENERATION FOR CYBERSECURITY RELEVANT ITEMS OR COMPONENTS The defense-in-depth approach utilizes layers of cybersecurity measures to improve the cybersecurity of the item or vehicle If an attack is able to penetrate or bypass one layer, another cybersecurity layer can help contain the attack and continue to maintain a sufficient degree of cybersecurity 37 Metodi e Modelli per la Qualità del Software | Gestione del Rischio ISO/SAE 21434 Software Engineering Research LABoratory REQUIREMENT GENERATION FOR CYBERSECURITY RELEVANT ITEMS OR COMPONENTS 38 Metodi e Modelli per la Qualità del Software | Gestione del Rischio ISO/SAE 21434 Software Engineering Research LABoratory FOLLOWS the V-MODEL 39 Metodi e Modelli per la Qualità del Software | Gestione del Rischio at ? Software Engineering Research LABoratory Wh 40 Metodi e Modelli per la Qualità del Software | Gestione del Rischio 1. Software Engineering Research LABoratory AUTOMOTIVE ATTACKS 41 Metodi e Modelli per la Qualità del Software | Gestione del Rischio AUTOMOTIVE CYBER KILL CHAIN Software Engineering Research LABoratory Reconnaisance Weaponization BLUE TEAM RED TEAM Delivery Exploitation Installation Command&Control Actions 42 Metodi e Modelli per la Qualità del Software | Gestione del Rischio GOAL Software Engineering Research LABoratory New models to improve cybersecurity in Automotive starting to the Cyber Kill Chain 43 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Spoofing Class Attack Software Engineering Research LABoratory F. Sommer, J. Dürrwang, and R. Kriesten, “Survey and classification of automotive security attacks,” Inf., vol. 10, no. 4, 2019, doi: 10.3390/info10040148. 44 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Carla Simulator Software Engineering Research LABoratory 45 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Replay Attack Software Engineering Research LABoratory 46 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Openpilot Software Engineering Research LABoratory 47 Metodi e Modelli per la Qualità del Software | Gestione del Rischio ATTACK Execution Software Engineering Research LABoratory 48 Metodi e Modelli per la Qualità del Software | Gestione del Rischio 2. Software Engineering Research LABoratory AUTOMOTIVE TRANSFER TECHNOLOGY 49 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Cyber Attacks in Automotive Software Engineering Research LABoratory 50 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Cyber Attacks in Automotive Software Engineering Research LABoratory 51 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Cyber Attacks in Automotive Software Engineering Research LABoratory Normal Attack Binary Classification Controller Area Network (CAN) Protocol 52 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Software Engineering Research LABoratory Multi-class IDS Flooding Fuzzy Spoofing Malfunction CAN bus ECU ECU IDS 53 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Automotive Security in Technology Transfer Software Engineering Research LABoratory 1 2 3 54 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Methodology - Technology Transfer Software Engineering Research LABoratory University Technology Stakeholder Research Transfer Driver Security Automotive Research Projects Automotive Company using AI Consultancy Technology, electronics o Multi-class IDS and o Tested with injected data Doctoral Research o Identify different attacks telecommunications Publications Automotive workshop Meetings Insurance 55 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Experimental Dataset Software Engineering Research LABoratory 56 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Experimental Dataset Software Engineering Research LABoratory Flooding Fuzzy (Sonata, Soul, Spark) (Sonata, Soul, Spark) 363.863 387.583 88.150 63.742 Dataset Mulfunction (Sonata, Soul, Spark) 354.452 31.422 Timestamp, CAN ID, DLC, [D!-D"], Flag 57 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Methodology Software Engineering Research LABoratory 58 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Laboratory setup Software Engineering Research LABoratory IDS: Raspberry Pi 4 Model B CAN receiver and sender: MKR CAN Shield Malicious ECU: Arduino Elegoo Uno R3 59 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Results Software Engineering Research LABoratory 60 Metodi e Modelli per la Qualità del Software | Gestione del Rischio 3. Software Engineering Research LABoratory AUTOMOTIVE KNOWLEDGE BASE 61 Metodi e Modelli per la Qualità del Software | Gestione del Rischio THREAT INTELLIGENCE Software Engineering Research LABoratory Knowledge Base F. Sommer, J. Du ̈rrwang, and R. Kriesten, “Survey and classification of automotive security attacks, ” Information, vol. 10, no. 4, p. 148, 2019. 62 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Contesto Software Engineering Research LABoratory Knowledge Base F. Sommer, J. Du ̈rrwang, and R. Kriesten, “Survey and classification of automotive security attacks, ” Information, vol. 10, no. 4, p. 148, 2019. 63 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Knowledge Base Software Engineering Research LABoratory F. Sommer, J. Du ̈rrwang, and R. Kriesten, “Survey and classification of automotive security attacks, ” Information, vol. 10, no. 4, p. 148, 2019. 64 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Knowledge Base Software Engineering Research LABoratory 65 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Knowledge Base Software Engineering Research LABoratory 66 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Knowledge Base Software Engineering Research LABoratory 67 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Knowledge Base Software Engineering Research LABoratory 68 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Knowledge Base Software Engineering Research LABoratory 69 Metodi e Modelli per la Qualità del Software | Gestione del Rischio Riferimenti Software Engineering Research LABoratory A Guide to the Project Management Body of Knowledge: (Pmbok Guide), 6° ed, by Project Management Institute, ISBN: 978-1628251845 - Capitolo 11: Gestione dei Rischi Project Management: A Systems Approach to Planning, Scheduling, and Controlling, 11th Edition, Harold Kerzner, ISBN: 978-1-118-02227-6 - Capitolo 17: Risk Management 70 Metodi e Modelli per la Qualità del Software | Gestione del Rischio