Verifica di conformità di processi di business alle norme Laura Giordano Dipartimento di Informatica Università del Piemonte Orientale
Verifica di conformità di processi di business alle norme Quali linguaggi di specifica? Quali tecniche di verifica? Quali strumenti per la verifica?
Quale linguaggio di specifica? Molti linguaggi di business process modelling e di workflow: BPMN, XPDL, BPEL, EPCs, UML-AD, YAWL, ... Linguaggio YAWL [Van der Aalst&Hoefstede, 2002]: pochi costrutti e piena copertura dei workflow patterns mapping di gran parte dei linguaggi di workflow e di BPM in YAWL open source workflow system workflow YAWL: Rete di Petri estesa
Esempio di processo bancario
Verifica di Norme (1) La banca deve fornire all’investitore informazioni adeguate sui suoi servizi e le sue politiche prima che ogni contratto venga siglato (2) Se l’investitore firma un ordine, la banca è tenuta ad inviargli una copia del contratto
Quali tecniche di verifica? Le tecniche di verifica di workflow sono basate sull’uso di Reti di Petri e tecniche di Model Checking. Esempio: traduzione di BPMN in Promela (SPIN) Strumenti per la verifica di workflow in YAWL (soundness, weak soundness,...) basati sull’analisi dello spazio degli stati (tecniche di riduzione dello spazio degli stati) Obiettivo: estendere tali tecniche alla verifica delle norme
Verifica delle norme mediante model checking modello = business process proprietà = norma da verificare
Le norme come proprietà da verificare La codifica delle norme come proprietà (formule temporali) da verificare non è banale: le norme possono essere fra loro conflittuali, possono avere priorità ed eccezioni necessario stabilire una connessione fra le norme (proprietà da provare) ed il modello sulla base di annotazioni “I veicoli sono soggetti al pagamento della tassa automobilistica, con l’eccezione delle auto intestate a disabili, delle autoambulanze, dei veicoli in dotazione alle forze armate,..........”
Verifica delle norme nella logica computazionale Processi di business e norme modellati nel medesimo formalismo logico Norme come regole che generano obblighi, proibizioni e permessi (rappresentazione modulare delle regole) Bounded model checking nella logica computazionale per verificare che gli obblighi siano realizzati Individuare esecuzioni che violano le norme (sistemi dlv, Smodels) Dipartimento di Informatica - Università del Piemonte Orientale
Verifica di norme Model Checking Petri Nets LTL model checking (SPIN) Bounded Model Checking
Logical specification Verifica di YAWL-net ....... <xs:schema xmlns:xs="http://www.w3.org/2001/ XMLSchema" /> <decomposition id="New_Net_1" isRootNet="true" xsi:type="NetFactsType"> <processControlElements> <inputCondition id="InputCondition_1"> <flowsInto> <nextElementRef id="Investor_identification_3" /> </flowsInto> </inputCondition> <task id="Investor_identification_3"> <name>Investor identification</name> <nextElementRef id="Investor_profiling_5" /> <join code="xor" /> <split code="and" /> </task> . ....... Mapper CPN Logical specification Promela process Model Checker