Identificazione e gestione dei rischi nell’adozione di software open source Angelo Susi Software Engineering Unit Fondazione Bruno Kessler – Trento In collaborazione con Mirko Morandini e Alberto Siena Fondazione Bruno Kessler Istituto di ricerca, con circa 380 ricercatori, attivo nell’ambito delle: – – – – – Scienze umane Information technology Microsistemi Materiali Matematica CONTENT • Predictive Models • Knowledge management • Language technologies I suoi obiettivi: – Ricerca teorica e applicata – Innovazione 2 hub di ricerca, – Umanistico – Scientifico Nell’Information Technology – 12 unita’ di ricerca – 2 unita’ applicative © RISCOSS Consortium ENGINEERING INTERACTION • Software Engineering • Formal Methods • Service oriented Application • Audio • Vision • Interfaces and interaction 2 Il gruppo di Software Engineering RIcercatori: Paolo Tonella (head) Anna Perini Angelo Susi Mariano Ceccato Roberto Tiella Studenti PhD: Postdocs: Andrea Avancini Mirko Morandini Alberto Siena Daniel Gross Fitsum Meshesha Kifetew Itzel Morales Ramirez Matthieu Dominique Vergne • Collaborazioni University College London, UK (Mark Harman); Queen’s University, Kingston, Canada (Jim Cordy, Tom Dean); Wayne State University, Detroit, USA (Andrian Marcus); University of Trento (John Mylopoulos); MIS, University of Haifa, Israel (Iris Reinhartz-Berger, Irit Hadar, Tsvika Kuflik); University of Namur, Belgium (Ivan Jureta), UPC Spain Franch); UZH, Switzerland (N. Seyff); UFES, Brazil (R. Souza Guizzardi); etc. © (X. RISCOSS Consortium 3 © RISCOSS Consortium 3 I nostri interessi Ingegneria dei Requisiti – Ingegneria dei requisiti “Goal-Oriented” – Approcci basati su apprendimento automatico nel campo dell’ingengeria dei requisiti Software Testing – Testing di sistemi software complessi – Testing per servizi © RISCOSS Consortium 4 Il progetto RISCOSS RISCOSS Inizio 01/11/2012 Durata 36 mesi Siamo al mese 23 Call FP7‐ICT‐2011‐8, Objective 1.2 Keywords Open‐Source Software, OSS, Decision‐making Techniques, Risk Management Website http://www.riscoss.eu Twitter @RiscossProject © RISCOSS Consortium 5 I partners Universitat Politecnica De Catalunya (UPC) Spagna ERICSSON Telecomunicazioni (TEI) Italia Fondazione Bruno Kessler (FBK) Italia Maastricht University (UMM) Olanda Fundacion Centro Nacional De Referencia De Las Tecnologias De La Informacion Y La Comunicacion Basadas Enfuentes Abiertas (CENATIC) Spagna XWIKI SAS (XWiki) Francia OW2 Consortium Association (OW2) Francia K.P.A. KENETT-PREMINGER Associates LTD (KPA) Israele © RISCOSS Consortium 6 L’OSS, la sua adozione e i rischi OSS (FLOSS) promuove un approccio libero alla creazione e scelta del software – questo apre importanti opportunita’ ma anche la possibilita’ di rischi legati ad esempio alla scelta dei compoenti da usare in un progetto Vari possibili rischi – – – – Qualita’ del software Licenze e loro integrazione Integrazione del software con il software esistente Mancato mantenimento ed evoluzione © RISCOSS Consortium 7 “Adozione” dell’Open Source Usare un programma Open Source – Linux, Open Office Includere un componente Open Source in un proprio progetto – Ad esempio un componente per calcoli statistici … Creare un nuovo progetto Open Source a partire da uno esistente Sviluppare, Produrre, Vendere software con licenza Open Source © RISCOSS Consortium 8 “Adozione” dell’Open Source (2) Piu in generale: adozione della filosofia Open source secondo diversi gradi di coinvolgimento Coinvolgimento limitato: uso il software ma non restituisco nulla alla comunita’ Coinvolgimento nella comunita’: partecipo alla comunita restituendo del feedback o contribuendo attivamente allo sviluppo © RISCOSS Consortium 9 Missione del Progetto “Specifica di metodi per la identificazione e gestione dei rischi di adozione dell’OSS tenendo conto della natura ‘open’ e ‘community-based’ tipica del contesto Open Source” Metodi adeguati alla rappresentazione delle relazioni sociali, analisi dei dati, ragionamento sui rischi Una piattaforma di supporto per il decision-making © RISCOSS Consortium 10 Ecosistema OSS ECOSISTEMA COMMUNITY ADOPTER © RISCOSS Consortium 11 Gli Adopters (?) in RISCOSS Grande azienda Pubblica Amministrazione Comunita’ OSS e PMI Consorzio di comunita’ © RISCOSS Consortium 12 Visione del progetto ECOSISTEMA COMMUNITY ADOPTER suggerimenti richieste Livello decisionale dell’organizzazione (rischi, costi, …) osservazioni produce componenti software richieste Livello Tecnico (software ecosystem) informazioni su componenti © RISCOSS Consortium 13 Visione del progetto ECOSISTEMA COMMUNITY ADOPTER suggerimenti richieste Livello decisionale dell’organizzazione (rischi, costi, …) osservazioni produce componenti software richieste Livello Tecnico (software ecosystem) informazioni su componenti © RISCOSS Consortium 14 Dati dall’ecosistema OSS Dati del dominio OSS, in particolare – Proprieta’ del software – Proprieta’ delle comunita’ – Proprieta’ dell’ecosistema composto da comunita’ e organizzazioni interessate all’OSS Conoscenza di esperti per: – Esplicitare proprieta’ non identificabili automaticamente – Valutare la relazione tra dati e rischio in determinati contesti © RISCOSS Consortium 15 Quale connessione ? Obiettivi dell’organizzazione “Adopter” ? Qualita’ del progetto software © RISCOSS Consortium Attivita’ della comunita OPPORTUNITA’ RISCHI Licenze 16 Tre livelli di azione Analisti Livello 3 Analisi strategica e di Business Livello 2 Indicatori di Rischio Livello 1 Acquisizione dei dati Modelli Strategici e di Business dell’ecosistema Indicatori di progetto OSS Indicatori di comunita’ OSS © RISCOSS Consortium Pareri Misure Progetti software Indicatori contestuali Community 17 Misure sul progetto Analisi statistiche su caratteristiche del progetto Open Source come l’analisi dei “problemi” del codice in un dato intervallo di tempo © RISCOSS Consortium 18 Misure sulla struttura comunita’ Analisi della struttura sociale delle comunita’, della sua attivita’ e della sua evoluzione (via Social Network Analysis) © RISCOSS Consortium 19 Collegamento tra misure e rischi Valutazione da parte degli esperti della correlazione tra le misure, gli indicatori di rischio e i rischi stessi attraverso Bayesian Networks Bug Fix time 1 day 10 days 100 days 75 % 20 % 5% correlazione Security Risk Critical Bug Fix time 1 day 3 days 10 days MISURE 65 % 35 % PREDIZIONI 60 % 30 % 10 % Active community A B C © RISCOSS Consortium Not sec. risk Sec. risk X% Y% Z% 20 Rappresentazione dell’ecosistema Rappresentazione ed analisi dell’ecosistema – Modellazione attraverso linguaggi “goal-oriented” – Definizione di ontologie dei rischi specifiche per l’ambito OSS (che si basano su ontologie esistenti come i concetti definiti nello standard ISO 31000) © RISCOSS Consortium 21 Modelli dell’ecosistema Le dipendenze dell’ecosistema (nel caso l’adopter sia “coinvolto” nella comunita’) OSSComponent OSS Community OSS Adopter Technical Documentaion Bugs to resolve Legenda Commit Resolved bugs © RISCOSS Consortium Actor Resource 22 Modelli dell’ecosistema La struttura degli attori dell’ecosistema OSS Adopter Release OSS Community Integrate OSS component OSSComponent Maintain Integration Develop Maintain Contribute to OSS community Technical Documentaion Report bug help acquisition of technical expertise Patch Report bug Patch Bugs to resolve Commit Resolved bugs Legenda Actor © RISCOSS Consortium Goal activity Resource 23 I tre livelli insieme La gerarchia completa con l’uso delle tecniche proposte OSS Adopter Strategic layer Risk Indicators (Layer II) software maintained impact Risk in code refinement evaluation of the risk Bayesian Network OSS Measures (Layer I) © RISCOSS Consortium measure / statistics from OSS communities 24 Analisi dell’ecosistema Identificazone dei rischi e propagazione dell’impatto tra gli attori dell’ecosistema Scelta tra diversi trattamenti alternativi per la mitigazione del rischio Entrambe attraverso tecniche di propagazione e di apprendimento automatico © RISCOSS Consortium 25 Ragionando sui modelli OSS Adopter Release OSS Community Integrate OSS component OSSComponent Maintain Integration Maintain Develop Contribute to OSS community Technical Documentaion Report bug help acquisition of technical expertise Patch IMPACT on COMMUNITY IMPACT on Adopter Report bug Patch Bugs to resolve measure from OSS community Commit Resolved bugs impact feed distribution of bug fixing time Bayesian Networks and expert opinions Legenda Actor activity © RISCOSS Consortium Resource 26 Un possibile risultato dell’analisi Example: scenario analysis Scenario1 Scenario2 Scenario3 Indicators’ Values (can make it possible) Scenarios properties Long time in bug fixing X X X Tutorial Available X High Activeness X X Maintenance need X X X Product Quality Need X X X Critical Probable, Critical Probable Low Update Frequency Probable Probable Probable, Critical Timeliness Probable Probable Probable, Critical Probable, Critical Needs from organisation ( canmake it critical) Risk Events Lack Of Support Risk events Error Proneness Critical List of affected Goals © RISCOSS Consortium 27 Risultati dell’analisi sulla piattaforma Quali sono i rischi attivi, gli obiettivi che subiscono l’impatto, il perche’ dell’impatto © RISCOSS Consortium 28 In sintesi … Metodi per la descrizione dell’ecosistema, quindi dell’aspetto sociale del dominio di interesse Metodi di ragionamento per individuare l’occorrenza di un evento e il suo impatto Metodi di analisi dei dati di tipo statistico © RISCOSS Consortium 29 In Futuro Miglioramento delle tecniche proposte – Anche attraverso il coinvolgimento di comunita’ Specifica di nuovi modelli di rischio – Anche attraverso la creazione di gruppi di interesse intorno al progetto (creazione di comunita’) Valutazione del framework anche in ambiti diversi dall’OSS © RISCOSS Consortium 30 GRAZIE ! www.riscoss.eu @RiscossProject © RISCOSS Consortium 32 Risk Modeling Language Risk characterized by – Event; => “the community disappear” (what) – Situation; => “the community is not active” (when) – Situation; => “(impossible to) maintain the final software product” (why) Event Situation Relationships between situations and events – “expose”, “protect” Tell when a situation makes it possible (or impossible) an event – “increase”, “mitigate” Tell when a situation makes it critical (or not influential) an event Risk drivers & Indicators Risk driver & indicator – Measure raw and derived evidences © RISCOSS Consortium 33 Meta-Model Actor Connected to the goal-models of the ecosystems to allow for the specification of risk impact on goals, activities and other assets Ecosystem performs depend desire provide Goal propagate impact Task means-end expose protect govern Event probability extent Situation satisfied evidence increase Indicator value mitigate Risk Meta-Model © RISCOSS Consortium Goal Meta-Model 34 Levels of representation: OSS ecosystems and risks together OSS component OSS Adopter OSS OSS component Commu nity Actor OSS Adopter OSS Commu nity Maintain software Maintain software impact Layer of the Business / Strategic goal of the Ecosystem Actor Goal impact Goal Resource Resource RIsk events Difficulty in code refinement expose Difficulty in code expose refinement expose Timeliness RIsk events situation situation Risk driver Risk driver © RISCOSS Consortium Timeliness measure of bug fixing time Layer of the risk indicators and risks expose people on project people on project Layer of the measures and risk drivers measure of bug fixing time 35 Risk and Goal model reasoning Support to different kind of analysis: “qualitative” reasoning when a scenario analysis has to be done or few data are available “quantitative” when data are available and more reach reasoning can be performed The objective is that of evaluate if a given set of situations makes an event both possible and critical © RISCOSS Consortium 36 Risk and Goal model reasoning 1. Risk assessment – If there is high/low evidence that a given scenario holds, how are risks levels? 2. Risk identification – If it is the case that a given scenario holds, which risks hold? Risk and Goal model analysis – starting from the knowledge about values of properties of some nodes of the graph (Risk events, Situations, Goals, Activities), it has the objective of inferring knowledge about values of properties of other nodes Specification of ecosystem models • Goal and risk models are specified © RISCOSS Consortium Analysis of the models • Disjunctive logic • Label prop. •… Analysis of the results • Analysis of the possibility and severity of a risk 37 Reasoning techniques: Disjunct. logic Model analysis via Disjunctive Datalog – Disjunctive Datalog: Answer Set Programming (ASP) declarative logic language – It offers primitives to represent: • facts and deduction rules • disjunctive facts (which introduce alternative truth values of predicates) • disjunctive rules (in which disjunctions may appear in the rule heads to allow multiple alternative consequences to be drawn from a rule) – Analysis of alternatives An example of rules facts and models: lives(community) v disappear(community) :- low_active(community). RULES low_active(community) v high_active(community). FACTS Model 1: disappear(community), low_active(community) Model 2: lives(community), low_active(community) Model 3: high_active(community) © RISCOSS Consortium 38 Reasoning techniques: based on evidence Some subjective knowledge is partially available from involved stakeholders Directed graph (in our case, goal and risk models) – To each node is associated an evidence – Each relation has a weight – Compound relations have a propagation function Label propagation algorithm *0.5 n1 n3 and(0.5) n6 *0.8 *0.5 n2 n4 Observable evidences © RISCOSS Consortium *0.1 Inferred evidences n5 Target evidences 39 Expert based risk assessment via workshops © RISCOSS Consortium 40 Workshops for risk assessment Determining the relationships between Risk Indicators and Risks via expert assessment Scripting of scenarios • Scenarios prepared by analysts © RISCOSS Consortium Expert Opinion elicitation • Scenarios evaluated by the experts Statistical models building • Building of Bayesian Networks 41 Scenario for expert assessment (Random) scenarios Risk drivers and value of the intervals of their distributions Scenario 1 Scenario 2 Scenario N 15 21 … 3 3 … 15 23 … mostly morning mostly night … mostly weekdays mostly weekdays … never sometimes … ? ? Expert assessment: Evaluate how much the values of the Risk drivers in the scenario impact the Timeliness of the community (e.g., in the interval [1,5]) © RISCOSS Consortium 42 ? Resulting Bayesian Network Bayesian network (BN) – BN is a Directed Acyclic Graph (DAG) – Enable an effective representation and computation of the joint probability distribution over a set of random variables © RISCOSS Consortium 43