Applicazione web per la mappatura e il monitoraggio dei rischi corruttivi cui sono esposti i processi organizzativi
Esplora i files »
Report Bug
·
Request Feature
L'applicazione web per la mappatura dei rischi corruttivi ROL-RMS
serve ad aiutare Enti, Pubbliche Amministrazioni, aziende partecipate – e chiunque sia interessato a monitorare e gestire il rischio corruttivo – a quantificare automaticamente i rischi corruttivi cui i loro processi organizzativi sono esposti e ad indirizzare questi soggetti a mettere in atto le contromisure adeguate.
Pagina di landing, versione 2.0
Fig.1 - Uno degli obiettivi del software è quantificare, in automatico, il valore di rischio per ogni processo organizzativo considerato (dati fittizî)
Il workflow generale è suddiviso in 4 distinti step, o filoni di lavoro:
- Step 1: caricamento di strutture e processi
- Step 2: calcolo del rischio corruttivo di ogni processo
- Step 3: individuazione delle misure di mitigazione da applicare ad ogni processo
- Step 4: monitoraggio al fine di verificare se le misure previste sono state applicate.
Questi 4 step sono pensati entro un flusso sincrono, ovvero per essere portati a compimento in sequenza, non in parallelo.
Ad esempio, non si può passare allo Step 2 se non è stato completato lo Step 1; analogamente, non si può passare allo Step 3 se non è stato completato lo Step 2; e cosí via.
Questa modalità "lineare" guida gli attori nel processo di mappatura e gestione e permette di gestire in modo semplificato la complessità del dominio informativo.
Alla fine del 4° Step, sarà stata realizzata una rilevazione completa del monitoraggio e del trattamento del rischio corruttivo in organizzazione.
A questo punto, si può iterare il processo, procedendo con una nuova rilevazione: il sistema è predisposto, infatti, per la storicizzazione.
Ogni rilevazione successiva potrà essere messa a confronto con la precedente attraverso specifici cruscotti multirilevazione, che permetteranno di analizzare i delta e i trend relativi ai processi e ai relativi rischi corruttivi, da una rilevazione all'altra.
Nel prossimo capitolo verranno esaminati piú in dettaglio i vari step.
Nel presente paragrafo viene data, invece, una descrizione a grandi linee del workflow generale dal punto di vista delle azioni messe in atto per realizzare l'obiettivo generale.
Anzitutto, è opportuno definire i soggetti coinvolti:
- L'esperto o l'ufficio anticorruzione
- I responsabili e gli operatori degli uffici
- Il software engineer
Fig.2 - Il software è un'applicazione ad accesso riservato (per accedere è necessario disporre di credenziali). Pertanto è possibile determinare il profilo utente all'accesso al sistema.
Rispetto ai ruoli svolti:
- L'esperto di anticorruzione, con l'aiuto del software:
- effettua il calcolo del rischio,
- stabilisce quali misure di mitigazione applicare ai processi piú a rischio e
- ne cura il monitoraggio.
- Il personale degli uffici che sovrintendono i processi risponde ai quesiti dell'intervista e fornisce i valori raccolti nel monitoraggio.
- Il software engineer cura la fase di mappatura dei processi e coadiuva gli altri soggetti attraverso tutto il workflow.
Consultando la mappatura dei processi, effettuata nello Step 1 (v. paragrafo precedente), si diviene in grado di stabilire l'elenco delle strutture organizzative coinvolte nell'erogazione dei relativi processi.
A quel punto, è possibile quindi rivolgere una serie di quesiti a responsabili ed operatori ubicati presso tali strutture, in merito ai processi prodotti dalle strutture stesse.
Attraverso l'analisi delle risposte a tali quesiti, l'applicazione permette di ottenere, automaticamente, una serie di indici relativi a specifici rischi corruttivi cui risultano esposti i processi organizzativi presidiati dalle strutture stesse.
Ogni quesito, infatti, è collegato ad uno o piú specifici rischi corruttivi; perciò, in funzione della risposta data dal personale intervistato, l'applicazione esprime specifici indici e punti di attenzione e, in sintesi, calcola il livello di rischio cui il processo esaminato risulta esposto.
Fig.4 - Esempio di quesiti che concorrono a fornire il quadro della vulnerabilità di un processo organizzativo
In particolare, per ogni processo sondato attraverso l'intervista, si ottengono i valori di 7 indicatori di probabilità (P) e di 4 indicatori di impatto (I).
Fig.5 - Le risposte ai quesiti considerati per il calcolo dell'indicatore potrebbero, occasionalmente, non permettere di ottenere il valore di rischio nella dimensione considerata (dati fittizî)
Fig.6 - In tali casi il software riporta il motivo del mancato calcolo; se i motivi sono molteplici, vengono mostrati uno per volta finché il problema non viene corretto (dati fittizî)
Incrociando i valori ottenuti negli indicatori di probabilità (P) con quelli ottenuti negli indicatori di impatto (I) si ottiene, per ogni processo organizzativo censito, un indice sintetico P x I
, che esprime il livello finale di rischio cui è esposto il processo stesso.
Collegando i rischi alle (contro)misure, è possibile ottenere anche una serie di suggerimenti circa le azioni organizzative da mettere in atto al fine di ridurre gli specifici rischi corruttivi individuati.
Ovviamente l'applicazione Rischi On Line: Risk Mapping Software (ROL-RMS) si appoggia su un database, specificamente un database relazionale di tipo PostgreSQL (versione 12 e successive), in cui sono popolati i quesiti che verranno sottoposti alle strutture nelle interviste (e tutte le altre informazioni persistenti).
Fig.7 - Rappresentazione grafica delle entità e relazioni dello schema, Layout: Circular (powered by yFiles)
In una prima fase viene effettuato il caricamento delle strutture organizzative (organigramma) e quello dei processi organizzativi che vengono prodotti dalle strutture stesse.
Questi caricamenti nel database possono essere effettuati tramite query di inserimento generate automaticamente o tramite ETL ma, allo studio, vi è una modalità di caricamento massivo tramite l'upload di file formattati opportunamente.
Le strutture sono organizzate in un albero con vari livelli mentre i processi sono strutturati in 3 livelli principali (macroprocesso, processo e sottoprocesso).
Fig.8 - Funzione di navigazione dell'organigramma
Fig.9 - Funzione di navigazione dell'albero dei macroprocessi
Ogni processo o sottoprocesso (ma non il macroprocesso) può essere a sua volta suddiviso in fasi (o attività). Ad ogni fase possono essere associate una o più strutture e uno o più soggetti terzi (che sono entità non strutturate in organigramma ma comunque agenti sulla fase del processo).
Il software prevede apposite funzionalità di navigazione nell'albero dei macroprocessi ed in quello dell'organigramma (cfr. Fig. 8 e 9), in modo da verificare rapidamente che la mappatura corrisponda a quanto effettivamente presente nell'organizzazione.
Inoltre, per ogni processo viene fornita una pagina di dettaglio, contenente, oltre ai rischi ed ai livelli di rischio cui il processo è esposto (informazione di grande interesse dato lo scopo del software), anche tutte le altre informazioni aggregate che riguardano il processo stesso, tra cui: gli input, le fasi, gli output, i rischi ed i fattori abilitanti.
Fig.10 - Esempio di pagina di dettaglio di un processo censito a fini anticorruttivi ma non ancora investigato tramite intervista – per il quale, quindi, non è stato ancora possibile determinare i livelli di rischio
Dopo aver popolato il database con le strutture, i macroprocessi e i loro sottolivelli, si può passare alla fase delle interviste, che consiste nel rivolgere una serie di quesiti ad una serie di specifiche strutture che presiedono uno specifico processo.
La batteria di quesiti è ampia (piú di 150) ma la decisione circa quali quesiti somministrare può essere stabilita di volta in volta dall'intervistatore, nel senso che tutti i quesiti sono facoltativi e vi sono quesiti piú generici, che probabilmente ha senso rivolgere in ogni intervista, e quesiti piú specifici, che ha senso somministrare soltanto se si sta prendendo in esame processi molto peculiari.
I quesiti sono raggruppati in ambiti di analisi e, nel caso di alcune strutture, potrebbe anche aver senso omettere i quesiti di interi ambiti di analisi.
Fig.11 - Esempio di raggruppamenti di quesiti in ambiti di analisi
Le risposte vengono poi utilizzate per ottenere il valore di una serie di indicatori di rischio, come accennato in precedenza.
Fig.12 - Il cruscotto degli indicatori permette di consultare non solo il valore del PxI di ogni processo ma anche i valori di tutte le dimensioni e gli indicatori in base ai quali questo indice sintetico è stato calcolato
Il calcolo dei valori di tutti gli indicatori e dello stesso indice PxI di ogni processo è automatizzato nel senso che, nel momento in cui l'intervista viene salvata, in automatico viene processato il calcolo del valore di tutti gli indicatori e del PxI.
Tutti gli indicatori – tranne uno – dipendono infatti dalle risposte ai quesiti, nel senso che il valore ottenuto nell'indicatore viene calcolato tramite un algoritmo che tiene conto delle risposte ottenute.
Vi è soltanto un indicatore di impatto che non dipende dai quesiti ma dal numero e dalla tipologia di strutture coinvolte nel processo misurato. Anche il valore di questo viene calcolato automaticamente.
Gli algoritmi di calcolo degli indicatori sono tutti diversi tra loro.
Fig.13 - Esempio (semplificato) del flowchart dell'algoritmo di calcolo di uno specifico indicatore di probabilità (P3: analisi/valutazione delle segnalazioni ricevute)
Come accennato nel paragrafo precedente, tramite ulteriori algoritmi vengono incrociati tutti i valori ottenuti negli indicatori di probabilità (indice globale di probabilità P) e tutti i valori ottenuti negli indicatori di impatto (indice globale di impatto I).
Infine, tramite una classica tabella della Quantitative Risk Analysis, viene calcolato l'indice P x I
, o giudizio sintetico, ottenuto per ogni processo censito ed investigato tramite le interviste.
Fig.14 - Tabella di decisione dell’algoritmo per il calcolo del PxI, con i 9 valori possibili derivanti dalle disposizioni con ripetizione D'(3,2) = 32 dei 3 valori possibili del P e dei 3 valori possibili di I.
È importante sottolineare che una feature del software consiste dunque nell'automazione del calcolo degli indicatori e del PxI: dopo aver censito processi e strutture, è sufficiente effettuare le interviste per far sí che il software faccia il resto.
Tramite le fasi 1 e 2 si ottiene dunque una visione complessiva sul livello di rischio cui ogni processo organizzativo censito risulta esposto.
Fig.15 - La tabella del PxI totalizzato da ogni processo fornisce una visione d'insieme sui livelli di rischio cui sono esposti i processi organizzativi
Aver realizzato questa mappatura costituisce un buon punto di partenza per poter stabilire quali misure di mitigazione/prevenzione del rischio corruttivo è opportuno applicare ai rischi stessi. Questa è la fase 3, ovvero la fase di individuazione delle misure di mitigazione atte a ridurre il valore del rischio.
Come si definisce una misura di mitigazione? Le misure di mitigazione del rischio corruttivo corrispondono ad azioni atte a:
- contenere
- calmierare
- mitigare
- prevenire
- trattare
- ridurre
(Notare che, generalmente, si può considerare la definizione data in implicazione doppia,
sse
).Senza entrare nei dettagli implementativi dell'entità misura, i cui attributi e riferimenti vengono approfonditi nell'analisi dei requisiti, basti tener conto che la misura di mitigazione è un oggetto complesso, avente uno o piú tipologie, parecchie relazioni con le strutture organizzative e una serie di proprietà specifiche (la sostenibilità economica, il carattere, il numero di fasi di attuazione, etc.)
Fig.16 - La maschera per inserire una nuova misura di mitigazione del rischio corruttivo
In un primo step, quindi, l'ufficio – o l'esperto – anticorruzione si occupa di censire tutte le varie misure che ritiene opportuno suggerire, andando a costituire un registro delle misure.
Fig.17 - Il registro delle misure di mitigazione del rischio corruttivo
Dopo aver costituito questa lista di misure applicabili, il problema di chi si occupa di anticorruzione è andare a individuare quale o quali misure applicare a quale specifico rischio in quale specifico processo.
La granularità delle associazioni tra processo e misura è infatti relativamente fine e per essere rappresentata ha bisogno di una relazione ternaria.
Fig.18 - Parte del diagramma ER per la rappresentazione delle misure
Quello che accade in pratica, quindi, è che, partendo dall'analisi dei livelli di rischio cui sono esposti i processi (fotografata dalla dashboard dei PxI: v. p.es. fig. 14) l'esperto decide che è opportuno che l'organizzazione metta in atto opportune misure.
Quali misure, però, scegliere, tra le varie misure possibili? Ovvero: come individuare le misure migliori per ogni rischio di ogni dato processo?
Anche qui viene in aiuto il sistema ROL-RMS:
uno dei vantaggi offerti dal software, su questo versante, è il fatto che il sistema stesso suggerisce quali misure applicare a ciascun rischio nel contesto di ciascun processo!
Fig.19 - La maschera per l'assegnazione di una misura a una coppia rischio-processo. Le misure piú appropriate vengono suggerite dal software ma l'operatore è libero di assegnarne altre.
Le misure di mitigazione, infatti, tramite la loro tipologia, hanno un'associazione con il fattore abilitante e questa relazione rende possibile individuare il contesto di applicazione delle misure stesse in funzione del rischio e del processo.
Una volta applicate le misure, è possibile verificare come variano i livelli di rischio attraverso la consultazione di appositi cruscotti, che mettono a confronto il PxI prima e dopo l'applicazione delle misure.
Fig.20 - Tabella che mostra quali sono le misure da applicare ad ogni processo e come varierebbero i livelli del PxI prima e dopo l'applicazione.
La fase di applicazione delle misure, appena vista, è però soltanto una stima della misura in cui il rischio può essere ridotto se le misure proposte vengono applicate. La fase di monitoraggio, che conclude il ciclo di gestione del rischio corruttivo, consiste nel verificare se le misure proposte sono poi state effettivamente applicate.
Fig.21 - Pagina iniziale monitoraggio.
Dal momento che dispone di una serie di cruscotti e report on-demand:
il software offre anche specifici strumenti analitici per verificare in che misura è cambiato il livello di rischio non solo in funzione dell'applicazione ipotetica, ma anche di quella effettiva delle misure di mitigazione.
Semplificando, alla fine della fase di monitoraggio verranno ottenuti alcuni report con 3 colonne:
- il livello del PxI iniziale: determinato in base alle risposte ai quesiti date dalle strutture intervistate;
- il livello del PxI intermedio: calcolato in base all'ipotetica applicazione delle misure di mitigazione (stima)
- il livello del PxI finale: ricalibrato dopo aver verificato quali delle misure richieste siano state effettivamente applicate (monitoraggio).
Questo tipo di report conclude il ciclo di gestione del rischio e costituisce la certificazione dei livelli di rischio prodotta dall'esperto/ufficio anticorruzione.
Vale la pena anche di approfondire brevemente alcuni aspetti coinvolti nel monitoraggio.
Quest'ultimo step del ciclo di gestione del rischio corruttivo consiste, come già detto, nel consultare le strutture che avevano in carico i processi per verificare se effettivamente le misure proposte sono state applicate.
Per poter procedere anche su questo versante in modo scientifico, evitando che la verifica si riduca a una banale telefonata alla struttura incaricata chiedendo se le misure sono state messe in atto (semplice flag SI/NO), è stata realizzata un'impalcatura di entità piú articolata, non per complicare inutilmente il modello, ma piuttosto per ottenere un riscontro puntuale in merito alle singole azioni effettuate.
Distinguiamo, quindi, tra misura assoluta (vale a dire la misura tout-court) e misura monitorata; quest'ultima è una is a
della prima, e contiene, al suo interno, i dettagli necessari al monitoraggio della misura stessa, ovvero necessari a stabilire se la misura sia o meno stata applicata.
Fig.22 - Parte del diagramma ER per la rappresentazione della misura monitorata ed entità relative
Questi dettagli includono:
- la descrizione e il numero delle fasi di attuazione della misura;
- l'obiettivo del piano integrato di programmazione e governance, o di altro documento analogo, che giustifica l'applicazione della misura.
Su ogni fase di attuazione (che non va confusa con la "fase" del processo organizzativo, che è un'attività, ovvero un sottolivello, un task attraverso cui passa la realizzazione del processo stesso, e che da alcuni autori viene etichettata come "sottoprocesso") può essere applicato un indicatore di monitoraggio.
Fig.23 - Esempio di una misura monitorata con 2 fasi di attuazione: su una è stato assegnato un indicatore di monitoraggio, sull'altra non ancora
Un indicatore di monitoraggio è un oggetto completamente distinto dall'indicatore di rischio, ovvero quello ottenuto in base alle risposte date all'intervista; mentre un indicatore di rischio (oggetto approfondito nello Step 2: Calcolo del rischio) può quantificare il livello di probabilità o di impatto che un certo rischio abbia rispetto ad un certo processo, l'indicatore di monitoraggio definisce una baseline ed un target e rappresenta il criterio cui si applica la misurazione (un oggetto a sua volta distinto).
Fig.24 - Maschera per l'inserimento di un nuovo indicatore di monitoraggio
Riepilogando:
- fase di attuazione ≠ fase di processo
- indicatore di monitoraggio ≠ indicatore di rischio
Su un indicatore di monitoraggio vengono applicate una o più misurazioni; quest'ultimo oggetto, a sua volta, non va confuso con la misura!
- La misura è una rappresentazione delle azioni correttive da realizzare per abbassare il livello di rischio.
- La misurazione è invece una verifica applicata a un indicatore di monitoraggio che consiste nel registrare se effettivamente le azioni correttive sono state messe in atto.
La misurazione è quindi, in certo qual modo, un epifenomeno della misura.
Tre delle funzioni attualmente implementate nel software ROL-RMS, ovvero:
- il calcolo del rischio esistente,
- il suggerimento circa le misure di mitigazione da applicare al rischio esistente,
- la produzione di tabelle comparative per consultare come varia il rischio in funzione delle misure ipotetiche e di quelle applicate,
costituiscono strumenti utili (tools), che possono costituire un valido aiuto per l'ufficio o l'esperto del rischio corruttivo che devono effettuare un assessment relativamente a questi aspetti nel contesto di un'organizzazione.
Allo stato attuale (versione di riferimento: 2.1
) il software è già pronto per essere adattato,
con un minimo adeguamento, a qualunque realtà organizzativa che voglia
effettuare un'analisi dettagliata dei rischi corruttivi cui i processi erogati
dall'organizzazione stessa sono esposti.
È anche possibile stimare, con relativa precisione, quanto tempo è necessario per customizzare il software in funzione di una specifica realtà organizzativa. Infatti, acquisite:
- le dimensioni dell'organizzazione (in particolare, il numero di livelli dell'organigramma ed il numero assoluto di strutture da mappare)
- il numero di livelli e la numerosità dei processi prodotti dall'organizzazione stessa,
diventa possibile effettuare una stima relativamente accurata del tempo necessario
affinché sia possibile iniziare la campagna di interviste e, conseguentemente, ottenere i risultati dei vari indicatori di rischio e del giudizio sintetico P x I.
Vi sono, inoltre, alcune possibili evoluzioni, che potrebbero essere implementate in versioni successive:
- Predisposizione di un cruscotto per i RAT (Referenti Anticorruzione e Trasparenza) per consentire loro di compilare autonomamente le risposte ai quesiti (certificando, automaticamente, i dati inseriti)
- Predisposizione di monitoraggi e reportistica, anche in forma grafica (istogrammi, grafici a torta, etc.), per consentire alla governance di effettuare controlli sugli stati di avanzamento e sui risultati raggiunti tramite il progetto di mappatura dei rischi
- Predisposizione di appositi strumenti di ricerca per consentire all'ufficio trasparenza di ottenere query analitiche sulle interviste effettuate.
Naturalmente, nessuno strumento informatico è in grado da solo di ottenere risultati come l'abbassamento dei rischi corruttivi; pertanto ogni approfondimento analitico permesso dal software dovrà essere esaminato ed interpretato dagli esperti dell'anticorruzione.
Ognuno può sentirsi libero di proporre miglioramenti ed evoluzioni.
- Implementare un motore di ricerca interno
- Implementare ricerca sui quesiti per chiave testuale
- Aggiungere suggerimenti asincroni sulla digitazione della chiave testuale
- Implementare ricerca per struttura
- Implementare ricerca per processo
- Implementare ricerca di quesiti e risposte per ambito di analisi
- Implementare estrazione risultati forniti dal motore di ricerca interno in open data
- Aggiungere pesatura dei quesiti in funzione del rischio (associazione quesito / rischio)
- Implementare reportistiche e grafici sul rischio in rapporto alla struttura
- Implementare pagina di dettaglio struttura
- Implementare pagina di dettaglio soggetto contingente/interessato
- Implementare estrazione di tutti i dati dell'organigramma (query organigramma e strutture - estrazione)
- Aggiungere pagina che mostra i processi erogati dalla struttura evocata in maniera asincrona al clic sul nodo di una struttura
Questa sezione illustra l'evoluzione del software ROL nel contesto delle varie release.
In corrispondenza di ogni numero di versione non vengono descritte tutte le modifiche
effettuate ma solo i rilasci delle funzionalità piú significative.
Ogni numero di versione è però corredato della data del commit
dei sorgenti, per cui consultando la History del repository sarà facile
entrare nel merito di tutte le modifiche effettuate in corrispondenza della
sottoversione: inoltre, ogni versione corrisponde ad un commit (a meno di errori), ma non ogni commit
genera una versione.
Inoltre, il significato delle subversioni è abbastanza differente da quello generale; infatti non identifica se la versione sia stabile o meno (aspetto solitamente identificato rispettivamente dalla cifra finale diversa da zero o uguale a zero) né presenta salti rilevanti in funzione di modifiche di elevato impatto (p.es. passaggio dalla versione 6.1.38 alla versione 7.0.1 di VirtualBox, che ha segnato una modifica abbastanza grossa); nel caso dell'applicazione corrente, infatti, i numeri di versione hanno solo il signficato di tenere traccia dei rilasci e dei deploy che sono stati effettuati (1.1.9 = XIX deploy; 1.2.0 = XX deploy; 1.9.9 = IC deploy; 2.0.0 = C deploy) e fornirvi il relativo significato e la relativa motivazione.
- [2.1.2] (13/01/2025) Revisione grafica pagine; miglioramenti nella presentazione pagina iniziale monitoraggio (conteggio fasi, indicatori, misurazioni e completezza di ogni misura)
- [2.1.1] (02/12/2024) Implementati controlli lato client in form di aggiunta misurazione di indicatore
- [2.1.0] (28/11/2024) Aggiunta funzionalità di download processi con PxI mitigati (stima) in formato CSV (estrae processi, PxI iniziale e valore del PxI calmierato che si otterrebbe se tutte le misure previste venissero effettivamente applicate)
- [2.0.9] (25/11/2024) Aggiunta pagina contenente form per inserire una nuova misurazione di indicatore; correzione di bug
- [2.0.8] (19/11/2024) Implementati controlli lato client in form di aggiunta indicatore di monitoraggio; aggiunta pagina dettagli indicatore di monitoraggio; correzione di bug
- [2.0.7] (11/11/2024) Implementata pagina elenco indicatori di una misura monitorata
- [2.0.6] (07/11/2024) Implementata funzionalità di inserimento indicatore di monitoraggio
- [2.0.5] (05/11/2024) Aggiunta pagina contenente form per inserire un nuovo indicatore di monitoraggio; correzione di bug
- [2.0.4] (31/10/2024) Revisione grafica pagine; miglioramenti nella presentazione (bottoni, etichette)
- [2.0.3] (28/10/2024) Implementata funzionalità di inserimento dettagli del monitoraggio di una misura
- [2.0.2] (23/10/2024) Correzione di bug
- [2.0.1] (21/10/2024) Delegato metodo di prevenzione attacchi tipo "Garden Gate" al manager che si occupa della sessione utente
- [2.0.0] (15/10/2024) Aggiunta pagina contenente form per inserire i dettagli relativi al monitoraggio ad una misura di mitigazione selezionata
- [1.9.9] (08/10/2024) Implementata gestione separata della connessione al database; correzione di bug
- [1.9.8] (07/10/2024) Implementata pagina iniziale monitoraggio
- [1.9.7] (30/09/2024) Prima bozza di implementazione codice per il monitoraggio; correzione di bug
- [1.9.6] (23/09/2024) Prima bozza di implementazione componente software per la gestione degli indicatori di monitoraggio
- [1.9.5] (16/09/2024) Miglioramenti nella presentazione (etichette); aggiunta evidenziazione testo filtrato tramite libreria DataTables
- [1.9.4] (12/09/2024) Miglioramenti nella presentazione (icone, etichette); aggiunta evidenziazione testo filtrato tramite libreria DataTables
- [1.9.3] (04/09/2024) Implementato report tabella dei PxI calmierati in base alle misure stimate
- [1.9.2] (rilascio 02/08/2024 - commit 04/09/2024) Implementato algoritmo di ricalcolo PxI del processo in base alle misure applicate ai suoi rischi
- [1.9.1] (29/07/2024) Miglioramenti nella presentazione (header, bottoni, messaggi); aggiunto attributo a oggetto misura per contenere un valore di popolarità della misura stessa
- [1.9.0] (22/07/2024) Implementato algoritmo di mitigazione a livello del PxI del singolo rischio in funzione delle misure applicate
- [1.8.9] (25/06/2024) Uniformazione versione, descrizioni e commenti
- [1.8.8] (20/06/2024) Ripristino del tema chiaro, mantenendo il tema scuro solo per l'header e le pagine di landing
- [1.8.7] (19/06/2024) Prova tema scuro; prima bozza di implementazione algoritmo di mitigazione
- [1.8.6] (05/06/2024) Revisione grafica pagina di landing; revisione di etichette
- [1.8.5] (28/05/2024) Implementazione parallela calcolo indicatori di impatto; implementazione parallela calcolo rischi di processi e interviste collegate
- [1.8.4] (27/05/2024) Prima bozza di implementazione report variazioni PxI dei rischi in funzione dell'applicazione (stimata) delle misure
- [1.8.3] (17/05/2024) Completamento implementazione pagina dei dettagli di una misura. Implementazione parallela calcolo output di processi
- [1.8.2] (16/05/2024) Implementazione parallela calcolo fasi di processo. Miglioramenti nella presentazione dei dettagli di una misura. Trasformazione di icone vettoriali in raster
- [1.8.1] (14/05/2024) Implementazione parallela calcolo elementi (indicatori di tipo P, input di processi). Miglioramenti nella presentazione delle misure suggerite (eliminati doppioni)
- [1.8.0] (13/05/2024) Prima bozza implementazione pagina dei dettagli di una misura di prevenzione/mitigazione del rischio. Miglioramenti nella presentazione delle misure suggerite (raggruppamento delle misure suggerite per tipologia di misura)
- [1.7.9] (07/05/2024) Miglioramenti nella presentazione delle misure applicate; correzione di bug
- [1.7.8] (06/05/2024) Implementazione funzione di assegnazione delle misure di mitigazione a specifico rischio nel contesto di un processo
- [1.7.7] (22/04/2024) Aggiunta pagina contenente form per applicare misure di mitigazione a un rischio, elencante anche le misure suggerite sulla base dei fattori abilitanti trovati associati al rischio entro il contesto del processo
- [1.7.6] (15/04/2024) Miglioramenti visualizzazione del registro delle misure di prevenzione: mostrata sostenibilità economica della misura e strutture coinvolte
- [1.7.5] (08/04/2024) Miglioramenti visualizzazione del registro delle misure di prevenzione: mostrata struttura capofila della misura
- [1.7.4] (27/03/2024) Completamento implementazione funzione di inserimento delle misure di prevenzione
- [1.7.3] (25/03/2024) Proseguimento implementazione inserimento e recupero delle misure di prevenzione
- [1.7.2] (18/03/2024) Prima bozza di implementazione misure di prevenzione del rischio corruttivo
- [1.7.1] (26/02/2024) Implementato blocco prima riga tabella del log delle variazioni; migliorie pagina report tabella dei rischi
- [1.7.0] (13/02/2024) Completata prima versione del log delle variazioni tra l'ultimo caching dei valori degli indicatori e gli stessi calcolati a runtime; revisione di etichette
- [1.6.9] (12/02/2024) Implementato nel ricalcolo indicatori il salvataggio delle motivazioni già inserite; correzione di bug
- [1.6.8] (06/02/2024) Prima bozza di implementazione del log delle variazioni tra l'ultimo caching dei valori degli indicatori e gli stessi calcolati a runtime
- [1.6.7] (29/01/2024) Implementata funzione di modifica/aggiunta nota al PxI; revisione di etichette; correzione di bug
- [1.6.6] (22/01/2024) Implementata visualizzazione delle note al PxI con confronto valore PxI in memoria (a runtime) e valore PxI su disco (in cache)
- [1.6.5] (16/01/2024) Aggiornamento annuale licenza
- [1.6.4] (15/01/2024) Modificato ordinamento strutture; cambiata presentazione valore di rischio altissimo; correzione di bug
- [1.6.3] (08/01/2024) Raffinata estrazione CSV relativa a intervista singola; aggiunto ordinamento per nome a nodi albero processi; migliorata presentazione report PxI dei processi
- [1.6.2] (15/12/2023) Revisionato algoritmo di calcolo della dimensione di probabilità P; aggiunto stile per evidenziare valore di rischio altissimo
- [1.6.1] (11/12/2023) Revisionato algoritmo di calcolo dell'indicatore di impatto I3; correzione di bug
- [1.6.0] (07/12/2023) Implementato output su file RTF del report tabellare riepilogante rischi e strutture; correzione di bug
- [1.5.9] (30/11/2023) Raffinato algoritmo di calcolo indicatore I3 tenendo conto dell'interessamento di categorie globali di strutture e considerando non determinabili i casi in cui non risultano né strutture né soggetti associati alle fasi del processo (un processo è sempre funzione dell'attività di almeno una struttura o un soggetto contingente)
- [1.5.8] (29/11/2023) Predisposizione alla generazione di output su file RTF; correzioni nelle transcodifiche dei fine riga
- [1.5.7] (28/11/2023) Riscritto codice per la produzione di output diversi da html sincrono; revisione di etichette
- [1.5.6] (27/11/2023) Implementato calcolo dimensione I (impatto del rischio) e della combinazione di P ed I (indice PxI)
- [1.5.5] (20/11/2023) Aggiunto calcolo dimensione P (probabilità del rischio)
- [1.5.4] (16/11/2023) Revisionato algoritmo di calcolo dell'indicatore di probabilità P4; revisioni screenshot
- [1.5.3] (13/11/2023) Aggiunta tabella riepilogativa del PxI di tutti i processi, elencante il valore ottenuto in ogni indicatore per ogni processo
- [1.5.2] (06/11/2023) Aggiunti in tabella riepilogativa del PxI di tutti i processi e strutture, i macroprocessi, le aree di rischio ed i soggetti interessati a ogni processo
- [1.5.1] (30/10/2023) Aggiunta tabella riepilogativa del PxI di tutti i processi, elencante rischi e strutture associate a ogni processo
- [1.5.0] (23/10/2023) Aggiunte sottopagine in sezione report; migliorata presentazione ricerche predefinite
- [1.4.9] (19/10/2023) Raffinato controllo formale sulla validita' della risposta: omessi alcuni controlli in caso la risposta sia relativa a un quesito figlio (quesiti di tipo "di cui")
- [1.4.8] (17/10/2023) Implementato caching su disco dei valori degli indicatori di rischio
- [1.4.7] (11/10/2023) Trasformata struttura contenente gli indicatori di rischio in mappa ordinata
- [1.4.6] (10/10/2023) Aggiunto attributo a oggetto processo anticorruttivo per contenere valori degli indicatori di rischio
- [1.4.5] (02/10/2023) Mostrate interviste nella pagina di dettaglio del processo, con valori degli indicatori calcolati; implementato algoritmo di scelta in caso di valori di rischio divergenti tra interviste multiple sullo stesso processo. Rimosso codice legacy.
- [1.4.4] (25/09/2023) Implementata la logica di calcolo degli indicatori P1, P2, P3, P4, P5 nel contesto della singola intervista; implementato metodo per effettuare i controlli lato server riguardo la validità della risposta
- [1.4.3] (18/09/2023) Prima bozza di implementazione degli indicatori P1, P2, P3 nel contesto della singola intervista
- [1.4.2] (12/09/2023) Corretta gestione charset nella form di modifica della risposta; mostrato id della fase come title nella pagina di dettaglio del processo
- [1.4.1] (11/09/2023) Aggiunta gestione in intervista del tipo di quesito che prevede come risposta una percentuale; aggiunta di immagini svg come marcatori di alberatura; revisione pagina di landing; spostamento di alcune ricerche predefinite dalla pagina di landing alla pagina della ricerca libera; ampliata larghezza visibile applicazione.
- [1.4.0] (04/09/2023) Correzione etichetta, tipografia; aggiunti screenshot.
- [1.3.9] (29/08/2023) Implementata pagina consultazione intervista per nascondere/mostrare le domande senza risposta. Migliorie grafiche di presentazione dei dettagli di un processo; revisione grafica pagina di login, link per scaricare csv, etichette e altri ornamenti.
- [1.3.8] (24/08/2023) Implementata facility in consultazione intervista per nascondere/mostrare le domande senza risposta.
- [1.3.7] (01/08/2023) Implementata funzione inserimento relazione ternaria tra rischio corruttivo e fattore abilitante, nel contesto di un processo. Correzione di bug.
- [1.3.6] (24/07/2023) Implementato registro dei fattori abilitanti i rischi; mostrati fattori abilitanti collegati a rischi nel contesto di un processo
- [1.3.5] (26/06/2023) Implementata funzione inserimento relazione tra rischio corruttivo e processo censito dall'anticorruzione
- [1.3.4] (27/03/2023) Delegata gestione interviste (visualizzazione, inserimento, aggiornamento risposte) a un nuovo componente sofware gemmato dalla Command dei rischi
- [1.3.3] (06/03/2023) Implementata funzione di aggiunta di un rischio corruttivo al registro dei rischi
- [1.3.2] (28/02/2023) Aggiunta pagina dettagli output, elencante i processi generati a partire dall'output corrente laddove esso abbia agito da input di processo. Implementata pagina di elenco output. Correzione di bug.
- [1.3.1] (15/02/2023) Aggiunta funzionalità di download registro dei rischi in formato CSV (estrae solo rischi con processi associati, come da regole di business)
- [1.3.0] (13/02/2023) Aggiunta pagina dettagli rischio corruttivo, elencante i processi esposti al rischio selezionato. Implementata pagina stand-alone dettagli processo. Riordinata pagina di landing.
- [1.2.9] (08/02/2023) Piccole migliorie di presentazione nei dettagli di un processo: evidenziata area di rischio, mostrato dettaglio soggetto contingente
- [1.2.8] (06/02/2023) Ampliato dettaglio processo anticorruttivo: mostrati i rischi cui il processo è esposto
- [1.2.7] (30/01/2023) Implementato registro dei rischi corruttivi; correzione di bug
-
[1.2.6] (21/12/2022) Aggiunta funzionalità di download dettagli specifico processo in formato CSV
-
[1.2.5] (13/12/2022) Aggiunti estremi input, fasi, output nel CSV di estrazione generale dei processi
-
[1.2.4] (01/12/2022) Mostrati dettagli di un processo in una finestra separata a fini di stampa in pdf
-
[1.2.3] (29/11/2022) Implementati primi esempi di generazione grafici
-
[1.2.2] (23/11/2022) Aggiunta funzionalità di download albero completo processi in formato CSV
-
[1.2.1] (22/11/2022) Mostrato in nodo albero processi numero di input e fasi
-
[1.2.0] (21/11/2022) Implementato questo file di documentazione
-
[1.1.9] (17/11/2022) Aggiunto dettaglio processo anticorruttivo: input, fasi, output
-
[≤ 1.1.9] Implementata intervista (scelta struttura e processo anticorruttivo, compilazione risposte ai quesiti), pagina di elenco interviste, estrazioni varie in CSV, organigramma ed elenco processi in albero navigabile
Questo progetto utilizza esclusivamente tecnologie STANDARD e framework consolidati. Ad esempio:
- POJO per Java (tutto lo strato CONTROLLER);
- Ajax per le richieste asincrone (XHR);
- Bootstrap, e i suoi plugin, per i fogli di stile e l'interfaccia responsive (VIEW);
- jQuery, e standard JavaScript, per la manipolazione lato client del DOM;
- SQL per l'accesso al MODEL;
- JSTL (Expression Language) per la costruzione della VIEW;
- JSON per la costruzione di alberi di navigazione; e così via.
Tecnicamente, l'applicazione è un'architettura monolitica. Non varrebbe neppure la pena di giustificare questa scelta, data la natura del progetto (uno sviluppo incrementale portato avanti negli anni da un singolo software engineer), ma val la pena di evidenziare i principali vantaggi di un'architettura monolitica rispetto ad una a microservizi, nel contesto dei task realizzati tramite il presente software:
- il codice è depositato tutto in un unico repository, cioè quello che viene documentato dal presente file README;
- l'applicazione è facile da deployare: eseguendo un singolo script, una nuova versione viene rilasciata ed il server viene aggiornato in pochi istanti;
- l'applicazione è più facile da debuggare; nonostante - laddove non vi fossero rischi di race condition - il calcolo sia stato parallelizzato, è sufficiente attivare un singolo punto di interruzione per entrare in debug, controllare tutti i valori assunti dalle variabili e sfruttare tutti i meccanismi di controllo;
- le performance di un'applicazione monolitica sono migliori rispetto a quella di una a microservizi perché i singoli componenti dialogano efficientemente (considerare che, nonostante questo, è stato necessario implementare meccanismi di caching a causa delle latenze indotte dal grande numero di calcoli che è necessario realizzare per ottenere i valori degli indicatori di rischio).
Di seguito sono elencate le principali librerie e tecnologie utilizzate per sviluppare ed eseguire il progetto.
Maggiori dettagli sui linguaggi utilizzati si trovano qui
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
For a list of contributors, please see the AUTHORS file.
Distribuito nei termini della licenza GNU GPL-2.0 License. Consulta LICENSE.txt
per ulteriori informazioni.
Per approfondire ed ottenere accesso al documento di analisi dei requisiti, contattare l'autore.
Software Engineer: Giovanroberto Torre - @GianroTorres - [email protected]
Project Link: https://github.com/gbetorre/rischi
Vedi anche open issues per una lista completa di funzionalità proposte (e problemi conosciuti).