Modeling and Verification. Devoir Maison 6 : DSL



Similar documents
BPMN by example. Bizagi Suite. Copyright 2014 Bizagi

BPMN Business Process Modeling Notation

Dr. Jana Koehler IBM Zurich Research Laboratory

Notepad++ The COMPSCI 101 Text Editor for Windows. What is a text editor? Install Python 3

WHITE PAPER. Peter Drucker. intentsoft.com 2014, Intentional Software Corporation

RIC 2007 SNAP: Symbolic Nuclear Analysis Package. Chester Gingrich USNRC/RES 3/13/07

Model Decisions and Business Rules in System Architect. Larry Goldberg & Barbara von Halle Knowledge Partners International LLC

Budapest University of Technology and Economics Department of Measurement and Information Systems. Business Process Modeling

How To Set Up A Net Integration Firewall

MAXIMUS Telephone Enrollment- Phase I Call Center Script

Business Process Modelling. CA4 Business Process Modelling 1

03 - Lexical Analysis

Engineering Process Software Qualities Software Architectural Design

Social Security Number

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

HOW IT WORKS GET STARTED ACCESS FROST MOBILE VIEW ACCOUNT BALANCE VIEW ACCOUNT ACTIVITY MAKE TRANSFERS PAY BILLS LOG OUT SAFETY & SECURITY CONTACT US

How To Design An Information System

08 BPMN/1. Software Technology 2. MSc in Communication Sciences Program in Technologies for Human Communication Davide Eynard

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

Chapter 13: Program Development and Programming Languages

Efficient BPMN: from Anti-Patterns to Best Practices

Model-Driven Development - From Frontend to Code

FileMaker. Installation and New Features Guide. for FileMaker Pro 15 and FileMaker Pro 15 Advanced

Wave Analytics Data Integration

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

K-SITE RULES: Integrating Business Rules in the mainstream software engineering practice

Identifying Gas Ultrasonic Measurement. Problems Using Advanced Techniques. John Lansing CEESI

Human-Readable BPMN Diagrams

Wave Analytics Data Integration Guide

Generate Android App

Redpaper Axel Buecker Kenny Chow Jenny Wong

Gates, Plexers, Decoders, Registers, Addition and Comparison

JAVA WEB START OVERVIEW

POOSL IDE Installation Manual

Windows Family Safety Filter

Contents First Time Setup... 2 Setting up the Legal Vault Client (KiteDrive)... 3 Setting up the KiteDrive Outlook Plugin Using the Legal Vault

Office 365 deploym. ployment checklists. Chapter 27

Process Modeling using BPMN 2.0

Software Quality Exercise 1

BPMN PATTERNS USED IN MANAGEMENT INFORMATION SYSTEMS

G Cloud 6 CDG Service Definition for Forgerock Software Services

Using ZeroShell as a NetBalancer, QoS server & Captive Portal.

Modeling BPMN Diagrams within XTT2 Framework. A Critical Analysis**

Setting Up Your Android Development Environment. For Mac OS X (10.6.8) v1.0. By GoNorthWest. 3 April 2012

Set internet safety parental controls with Windows

Kirsten Sinclair SyntheSys Systems Engineers

Entity / Activity Table for Causeway Cash Receipts System

INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0

CSC 120: Computer Science for the Sciences (R section)

1/20/2016 INTRODUCTION

SAML single sign-on configuration overview

Integers are positive and negative whole numbers, that is they are; {... 3, 2, 1,0,1,2,3...}. The dots mean they continue in that pattern.

FileMaker 12. ODBC and JDBC Guide

High-level Petri Nets

South East of Process Main Building / 1F. North East of Process Main Building / 1F. At 14:05 April 16, Sample not collected

VDM vs. Programming Language Extensions or their Integration

Securing PHP Based Web Application Using Vulnerability Injection

The Subnet Training Guide

Using Speccy to Report on Your Computer Components

Introducing Formal Methods. Software Engineering and Formal Methods

Service Description and Expectations. September 2010

Structural Detection of Deadlocks in Business Process Models

WoPeD - An Educational Tool for Workflow Nets

Unipass Secur Client. User Guide v1.2

This walk-through was created using Windows XP as a guide, however alternate versions of the Windows OS will be very similar in procedure as well.

White Paper. Java Security. What You Need to Know, and How to Protect Yourself

14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë

Why are Business Process Models often too complex? Do s and Don ts for Business Process Modelers

POWER WAVE SOFTWARE SOLUTIONS TECHNOLOGY TOOLS THAT ENABLE SMART BUSINESS DECISIONS

A-LINE S GUIDE TO GOOGLE MY BUSINESS. Using Google s My Business, Maps and Google+ to increase your organization s visibility online.

Automation Testing in Mobile Applications Swati Hajela

Android: Setup Hello, World: Android Edition. due by noon ET on Wed 2/22. Ingredients.

Introduction to Fractions

Circles and Diamonds and Squares, Oh My! Demystifying the BPMN Standard

15 minutes is not much so I will try to give some crucial guidelines and basic knowledge.

Web Application Development Using UML

BIG DATA, MAPREDUCE & HADOOP

United States Naval Academy Electrical and Computer Engineering Department. EC262 Exam 1

Introduction to the course, Eclipse and Python

The power of IBM SPSS Statistics and R together

Open-Xchange Guard Major Release v Feature Overview V1.4

Joomla Admin Protection

Aplicando enfoque MDE a aplicaciones WEB-SOA

Access NSF Frequently Asked Questions

Learning Links Understanding the Power of NSLDS

Profiling and Testing with Test and Performance Tools Platform (TPTP)

3PlayMedia. Closed Captioning, Transcription, and Subtitling

Transcription:

Modeling and Verification Devoir Maison 6 : DSL Alexis Marechal & Levi Lucio April 20, 2009 Introduction In homework 3 we saw an introduction to BPMN. BPMN is a well known formalism to define a system behaviour, but it doesn t have formal semantics (you cannot execute a Business Process). On the other hand we saw in the course an in-depth description of Algebraic Petri Nets, that can be used to model the same systems, but also have formal semantics. The objective of the homework 3 was to give semantics to a particular Bussiness Process using a tranlation to APN. In this homework, we will study some elements of a generic way to achieve this translation. We could try to translate directly the Business Process defined with Intalio, but this can be a bit complicated. Instead we ll use the XText plugin, seen during the exercises session, to create a simple language that will allow us to create and translate Business Process. This task presents two major issues, we ll try to avoid them in this exercise. The first issue is data types. In BPMN there is no way to define precisely which data structures are used. In APN, on the other hand, data structures are clearly defined (including semantics) with ADTs. In order to simplify this exercise, we will only consider P/T Petri Nets and we won t care about the data handled. The second issue is that a BPMN activity doesn t have clear semantics, when we create a Business Process we suppose that any activity is simple and that we won t have any problem implementing it. We can t make this assumption if we want to define clear and formal semantics for our Business Process. In order to

by-pass this problem, we will consider that a BPMN activity only represents a state of our system, and it doesn t have any behaviour. In clear, a BPMN activity will be translated as a single place in our Petri Nets. If you check the Business Process that we used for the homework 3 (still available in the course website), and consider the first subprocess, you will notice that activities like Database request or decode PIN where complex, and thus were translated using more than one place/transition. On the other hand, the activity called verify PIN was extremely simple, and was translated as a single place. We will consider in the following exercises that all BPMN activites are like the last one. 2 Exercise : DSL creation During the exercises session we saw how to use xtext in order to create a DSL for Petri Nets. Create a DSL for BPMN using XText. Your DSL must allow a user to specify a Business Process that contains the elements defined in the table (given the restrictions stated in the introduction). Please note that, in order to simplify your work, we changed a bit the structure of the BPMN elements: in BPMN there is no difference between an In Gateway" and an Out Gateway". Creating this difference should make the translation into Petri Nets much easier. While creating your DSL try to keep in mind that you will have to generate code from your models like we saw during the exercises session, so try to think how would you translate the elements you are defining into P/T Petri Nets. 3 Exercice 2: Semantics definition by transformation We will now give semantics to the Business Process diagram you have expressed in your DSL. The semantics will be given by translation into a Petri Net and we will then produce the state space for the given Petri Net. We saw in the exrcises session how to translate Petri Nets to Java, using XPand. In this exercise we will use XPand to translate our Business Process to Petri Nets, using a Prolog syntax. The required prolog syntax includes three simple facts: inarc/3 define arcs going from places into transitions; 2

outarc/3 initial/ define arcs going from transitions into places; defines the initial state for the Petri Net. for example, the facts: inarc(p,t,). outarc(t,p2,). inarc(p5,t3,). outarc(t3,p,). inarc(p2,t4,). outarc(t4,p3,). inarc(p2,t2,). outarc(t2,p4,). inarc(p,t5,). outarc(t5,p5,). initial([(p,),(p2,0),(p3,0),(p4,0),(p5,0)]). define the Petri Net in figure. p t t5 p2 p5 t4 t2 t3 p3 p4 Figure : Petri Net Example From the course site you can download a file called semantic_tools.zip containing the following files: engine.pl: contains the prolog engine that will produce the state space for a petri net; petri_net.pl: contains a definition of the Petri Net you want to explore, you will have to override this file with your own results; 3

launch.pl: contains a script that produces a visual form of the Petri Net you are exploring and the state space of that Petri Net. From your XPand translation you will produce a file petri_net.pl that will replace the example given. You can then load the launch.pl script in the prolog interpreter and call the predicate launch. Two files will be created: petri_net.dot: contains the visual description of the Petri Net you have translated from your Business Process diagram; state_space.dot: contains the visual description of the state space of the Petri Net you have you have translated from your Business Process diagram. In order to obtain SWI Prolog you can go to the webpage http://www.swiprolog.org/download/stable. The output in dot format can be read by an application called Graphviz that pretty prints diagrams. You can obtain Graphviz freely at http://www.graphviz.org/. 4 Exercise 3: example In order to test your implementation, you should provide a very small but fully functional example, i.e. a Business Process described using with your DSL that can be executed using the Prolog API. You should include in your solution the Busines Process specification and talk about your results in your final report. Figure 2: Business Process Example 4

Send your solutions by mail to levi.lucio@unige.ch and alexis.marechal@unige.ch with the subject of the mail starting by TP and including the number of the devoir maison and you name. Example: TP_7_your_name_here. Deadline: 29th of may, noon, for the first version. 2nd of june, midnight, for the final version. 5

Activities (as simple places). Start events. End events. Exclusive in gateways. Exclusive out gateways. Inclusive in gateways. Inclusive out gateways. Control flows. Table : Elements of BPMN to be defined in the DSL. 6