Vérifica(on et Valida(on de Business Process Ang Chen et Levi Lúcio
Résumé Méthodologie de développement Architecture & environnement pour le développement des processus mé(er Modèle opéra(onnel Vérifica(on (test) des processus mé(er Valida(on de propriétés Conclusion
Résumé Méthodologie de développement Architecture & environnement pour le développement des processus mé(er Modèle opéra(onnel Vérifica(on (test) des processus mé(er Valida(on de propriétés Conclusion
Méthodologie de Développement: Générale Domaine Analyser Propriétés Analyser Spécifica(on Tests Tester Implémenta(on
Model Driven Développement: Solu(on Idéale Domaine Analyser Propriétés Spécifica(on Tests Implémenta(on
Problème Tester le génerateur du code??? Spécifica(on Tests Tester Implémenta(on
Méthodologie: Model Driven Development (MDD) Hypothèses: U(liser les langages de modélisa(on formelles et expressives pour le domaine (DSLs), et il y a des moyens de décrire les propriétés et de les valider. L implémenta(on est automa(que sans être assistée par humaine: transforma(on de modèles Actuellement: Il existe mais peu de DSLs sa(sfaisent les condi(ons, par ex. design de circuits Avec UML, BPMN, et BPEL, ce n est pas encore le cas
MDD: L état actuel Domaine Analyser Tests Analyser Propriétés Spécifica(on Tester Implémenta(on
L état actuel par rapport à processus mé(er Processus mé(er Analyser Tests Analyser Propriétés UML, BPMN etc. Tester Implémenta(on
Architecture du système orienté processus Service Oriented Architecture Processus est la composi(on de services Processus Service SI infrastructures, par ex. BDD
Notre travail Propriétés UML, BPMN etc. Tests Tester Implémenta(on
Résumé Méthodologie de développement Architecture & environnement pour le développement des processus mé(er Modèle opéra(onnel Vérifica(on (test) des processus mé(er Valida(on de propriétés Conclusion
Cas d étude en BPMN: Demande de crédit
Modèle Opéra(onnel Nous traduisons automa(quement le modèle BPMN dans un format intermédiaire APN Ou(llage standard MDD pour la transforma(on de modèles (Ecore Metamodel + ATL) Résultat: modèle opéra(onnel adapté à la généra(on de tests et la vérifica(on de propriétés
Modèle Opéra(onnel (2)
Résumé Méthodologie de développement Architecture & environnement pour le développement des processus mé(er Modèle opéra(onnel Vérifica(on (test) des processus mé(er Valida(on de propriétés Conclusion
Test des processus mé(er Vue du système à tester comme une boite noire entrée sortie Implémentation (SUT) sortie entrée sortie entrée
Jeu de tests 100 amount entrée yes approval sortie Implémentation (SUT) sortie entrée sortie entrée amount 100 risk amount high 100 approval yes <requestforminput(100) with accessriskoutput(100)> < accessriskinput(high) with approvetaskoutput(1000)> < approvetaskoutput(yes) with responseoutput(yes)>
Généra(on automa(que de tous les tests <requestforminput(0) with accessriskoutput(0)> < accessriskinput(high) with approvetaskoutput(0)> < approvetaskoutput(yes) with responseoutput(yes)> <requestforminput(10) with accessriskoutput(10)> < accessriskinput(high) with approvetaskoutput(10)> < approvetaskoutput(yes) with responseoutput(yes)> <requestforminput(0) with accessriskoutput(0)> < accessriskinput(high) with approvetaskoutput(0)> < approvetaskoutput(no) with responseoutput(no)> <requestforminput(10) with accessriskoutput(10)> < accessriskinput(high) with approvetaskoutput(10)> < approvetaskoutput(no) with responseoutput(no)> <requestforminput(0) with accessriskoutput(0)> < accessriskinput(low) with responseoutput(yes)> <requestforminput(10) with accessriskoutput(10)> < accessriskinput(low) with responseoutput(yes)> <requestforminput(10000) with accessriskoutput(10000)> < approvetaskoutput(yes) with responseoutput(yes)> <requestforminput(10010) with accessriskoutput(10010)> < approvetaskoutput(yes) with responseoutput(yes)> <requestforminput(10000) with accessriskoutput(10000)> < approvetaskoutput(no) with responseoutput(no)> <requestforminput(10010) with accessriskoutput(10010)> < approvetaskoutput(no) with responseoutput(no)> Ensemble infini de tests à cause de la valeur d entrée
Comment obtenir automa(quement un jeu de tests représenta(f? <requestforminput(10) with accessriskoutput(10)> < accessriskinput(high) with approvetaskoutput(10)> < approvetaskoutput(yes) with responseoutput(yes)> <requestforminput(10) with accessriskoutput(10)> < accessriskinput(high) with approvetaskoutput(10)> < approvetaskoutput(no) with responseoutput(no)> <requestforminput(10) with accessriskoutput(10)> < accessriskinput(low) with responseoutput(yes)> <requestforminput(10010) with accessriskoutput(10010)> < approvetaskoutput(yes) with responseoutput(yes)> <requestforminput(10010) with accessriskoutput(10010)> < approvetaskoutput(no) with responseoutput(no)> 5 tests suffisent, en choisissant 1 valeur < 10000 et une autre >= 10000 Nous avons les outils pour générer des jeux de tests automatiquement de façon exhaustive ou dirigée Langage SATEL
Résumé Méthodologie de développement Architecture & environnement pour le développement des processus mé(er Modèle opéra(onnel Vérifica(on (test) des processus mé(er Valida(on de propriétés Conclusion
Valida(on de Propriétés Invariance d une ac(vité en ce qui concerne les entrées précédentes: Tout processus qui exécute ce_e ac(vité à eu un ensemble de entrées d une certaine forme Exemple: Tout processus qui exécute l ac(vité InvokeApprover a reçu comme entrées des requêtes avec amount >= 10000 ou risk=high
Valida(on de Propriétés (2) Propriétés génériques (en implémenta(on) Pour chaque ac(vité il existe un processus qui l exécute Tout processus arrive à la fin
Résumé Méthodologie de développement Architecture & environnement pour le développement des processus mé(er Modèle opéra(onnel Vérifica(on (test) des processus mé(er Valida(on de propriétés Conclusion
Conclusion Approach Model Driven Development Chaîne d ou(ls pour la transforma(on, vérifica(on et valida(on de modèle BPMN Ilustra(on avec un pe(t example Propriétés du procesus à determiner au cas par cas