Component-Based Behavioural Modelling with High-Level Petri Nets

Similar documents
Java Mouse Actions. C&G criteria: 5.2.1, 5.4.1, 5.4.2,

G51PGP Programming Paradigms. Lecture 008 Inner classes, anonymous classes, Swing worker thread

Programming Languages and Techniques (CIS120)

ECE 462 Object-Oriented Programming using C++ and Java. Key Inputs in Java Games

GUI in Java TalentHome Solutions

Programming Languages and Techniques (CIS120)

Computer Science 210: Data Structures. Intro to Java Graphics

CSSE 220. Event Based Programming. Check out EventBasedProgramming from SVN

GUI DYNAMICS Lecture July 26 CS2110 Summer 2011

The AWT Event Model 9

Programming Languages and Techniques (CIS120)

Java for Interfaces and Networks (DT3010, HT10)

Modeling a groupware editing tool with Cooperative Objects

Handling Mouse and Keyboard Events

Method Of Key Event Key Listener must implement three methods, keypressed(), keyreleased() & keytyped(). 1) keypressed() : will run whenever a key is

Programming Languages and Techniques (CIS120)

Specifying Web Workflow Services for Finding Partners in the Context of Loose Inter-Organizational Workflow

Analysis of BPMN Models

Outline. Topic 9: Swing. GUIs Up to now: line-by-line programs: computer displays text user types text AWT. A. Basics

Composability Test of BOM based models using Petri Nets

Design Patterns: Prototype, State, Composite, Memento

Distributed Information System as a System of Asynchronous Concurrent Processes

Petri Nets: Properties, Applications, and Variations. Matthew O'Brien University of Pittsburgh

Graphical User Interfaces 2

Formal Process Modelling

Class Hierarchy and Interfaces. David Greenstein Monta Vista High School

Graphical User Interfaces 2

Modeling the behaviour of interactive 3D scenes and applications

Colored Petri Net Evaluation Tool. Stephen Rojcewicz CS 2310

Graphical User Interfaces 2

Control Flow: Overview CSE3461. An Example of Sequential Control. Control Flow: Revisited. Control Flow Paradigms: Reacting to the User

Programming Languages and Techniques (CIS120)

Cheng, CSE870. More Frameworks. Overview. Recap on OOP. Acknowledgements:

Technical Research on Describing Reconfigurable Systems by Object Oriented Petri net

javax.swing Swing Timer

Object-Oriented Concepts and Design Principles

WEEK 5 - APPLICATION OF PETRI NETS. 4.4 Producers-consumers problem with priority

Advanced Java Programming (17625) Event Handling. 20 Marks

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic

Spiking Neural P Systems and Petri Nets

(listener)... MouseListener, ActionLister. (adapter)... MouseAdapter, ActionAdapter. java.awt AWT Abstract Window Toolkit GUI

Event Driven Programming

Advanced Java Programming

A Brief Introduction to Coloured Petri Nets

Process and data flow modeling

HW#1: Pencil Me In Status!? How was Homework #1? Reminder: Handouts. Homework #2: Java Draw Demo. 3 Handout for today! Lecture-Homework mapping.

User interfaces and Swing

BM214E Object Oriented Programming Lecture 13

Petri Nets ~------~ R-ES-O---N-A-N-C-E-I--se-p-te-m--be-r Applications.

Orchestration vs Choreography

Class 27: Nested Classes and an Introduction to Trees

L4,5: Java Overview II

A Model-Driven Approach to Adapt SysML Blocks

M257 Past Paper Oct 2008 Attempted Solution

Semantics of ARIS Model

CA441 BPM - Modelling Workflow with Petri Nets. Modelling Workflow with Petri Nets. Workflow Management Issues. Workflow. Process.

Component models. Page 1

Characterising Resource Management Performance in Kubernetes. Appendices.

On Hierarchical, parallel and distributed components for Grid programming

Object-Oriented Design

Workflow : Patterns and Specifications

CSEN401 Computer Programming Lab. Topics: Graphical User Interface Window Interfaces using Swing

The Ivy architecture and protocol

UCLA PIC 20A Java Programming

Formal Support for QVT-Relations with Coloured Petri Nets

Component Interface Pattern

Architectural Blueprint

I/O Framework and Case Study. CS151 Chris Pollett Nov. 2, 2005.

A Matching Algorithm and AGG Overview

GUI Event Handlers (Part I)

An Approach Integrating two Complementary Model-based Environments for the Construction of Multimodal Interactive Applications 1

ISO/IEC INTERNATIONAL STANDARD. Software and system engineering High-level Petri nets Part 1: Concepts, definitions and graphical notation

Modeling, Testing and Executing Reo Connectors with the. Reo, Eclipse Coordination Tools

Bean Communication. COMP434B Software Design. Bean Communication. Bean Communication. Bean Communication. Bean Communication

Outline. More on the Swing API Graphics: double buffering and timers Model - View - Controller paradigm Applets

AUTOMATED BEHAVIOUR REFINEMENT USING INTERACTION PATTERNS

CIS 120 Final Exam 16 December Name (printed): Pennkey (login id):

Unit 7: Event driven programming

Performance Testing from UML Models with Resource Descriptions *

class BankFilter implements Filter { public boolean accept(object x) { BankAccount ba = (BankAccount) x; return ba.getbalance() > 1000; } }

PREEvision at Porsche (Update 2018)

Appendix G Navigation and Collision Detection for Web-Based 3D Experiment

A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework

Concurrent Models of Computation

Process groups and message ordering

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

Diagnostic Information for Control-Flow Analysis of Workflow Graphs (aka Free-Choice Workflow Nets)

GUI (Graphic User Interface) Programming. Part 2 (Chapter 8) Chapter Goals. Events, Event Sources, and Event Listeners. Listeners

Hierarchical FSMs with Multiple CMs

Java Semaphore (Part 1)

J.73 J.74 THE I/O PACKAGE. Java I/O is defined in terms of streams. Streams are ordered sequences of data that have a source and a destination.

Chapter 10. Further Abstraction Techniques

Which is the Best Modeling Language? Sukriti Goel Tutorial BPM 2013 August 2013

COMPONENT BASED TECHNOLOGY (IT-1401)

Business Process Modelling

Transforming Cyber-Physical System Models

User Tools and Languages for Graph-based Grid Workflows

Introduction to Model Checking

Chapter 4. Capturing the Requirements. 4th Edition. Shari L. Pfleeger Joanne M. Atlee

Transcription:

Component-Based Behavioural Modelling with High-Level Petri Nets Rémi Bastide, Eric Barboni LIIHS IRIT, University of Toulouse, France {bastide, barboni}@irit.fr

Software Components Active domain for industry, commercial success Several mature component models competing :.Net, JavaBeans, CCM Common concepts : Component as a black box, accessed through software interfaces Favor composition over inheritance (white box reuse) Multicast, event-based communication as well as unicast method invocation Design-time assembly and configuration of components to produce an executable system Driven by industry, lack of formal foundations 2

Our research goals Define a component model Not specially original, close to CCM Propose a formal notation to specify the inner behavior of components Petri nets (of course!) Allows for specifying concurrent, event and time-driven behavior Define a mapping from the constructs of the component model to the Petri net Provide a formal definition of intercomponents communication Method invocation and event multicast Petri nets (again!) Provide a denotational semantics for an assembly of components From their internal behavior and intercommunications Provided as an unstructured high-level Petri net 3

Outline of the talk Introduction Done The component model Mapping to Petri nets A case study 4

he Component Model The Envelope of a component is made of a set of Ports Each port described by a pair (Name, java interface) Facets Functional features offered May be connected to several receptacles Receptacles Functional features required Requires exactly one facet Event sources* Events the component can emit Each method in the event interface represents an event Connected to any number of event sinks Event sinks* Events the component is willing to receive Connected to any number of event sources 5

Example : a 2D gesture recognizer public interface MouseListener extends EventListener { public void mouseclicked(mouseevent e); public void mousepressed(mouseevent e); public void mousereleased(mouseevent e); public void mouseentered(mouseevent e); public void mouseexited(mouseevent e); } public interface MouseMotionListener extends EventListener { public void mousedragged(mouseevent e); public void mousemoved(mouseevent e); } public interface MouseInputListener extends MouseListener,MouseMotionListener { } public interface ActionListener extends EventListener { public void actionperformed(actionevent e); } public interface GestureRecognizer { public void start(); public void stop(); } 6

Assemblies : wiring components together 7

Mapping for Facets and Receptacles public interface Buffer { void put(string m); String get(); } Consumer buffer: Buffer buffer: Buffer buffer: Buffer Producer Consumer mybuffer 8

Specifying Server-side behaviour (mybuffer) public interface Buffer { void put(string m); String get(); } buffer: Buffer mybuffer 9

Specifying client-side behaviour (e.g. Consumer) Consumer buffer: Buffer 10

Merging Facets and Receptacles 11

Mapping for event sources and sinks public interface ActionListener extends EventListener { void actionperformed(actionevent e); } a: ActionListener Receiver1 Sender action: ActionListener Receiver2 b: ActionListener 12

Specifying sender-side behaviour (event source) ublic interface ActionListener xtends EventListener { void actionperformed(actionevent e); Sender action: ActionListener 13

Expected semantics The event emitter can always emit event through its event sources whether or not there are connected receivers Event emission is non-blocking and atomic (for the emitter) Transmission of events from source to sink may take time 14

Specifying receiver-side behavior (event sink) ublic interface ActionListener xtends EventListener { void actionperformed(actionevent e); Several synchronized transitions (Moalla et al. 78) may be associated to each event of a sink. Synchronized transitions fire (if enabled) only when they receive an external signal If a signal occurs when no transition is enabled, it is lost a: ActionListener Receiver1 15

Merging event sources and sinks Using signal arcs from Signal nets (Starke & Roch, 2001) Several good analysis techniques developped for this class of nets 16

Case study : Head gesture recognition 17

Assemblies and Hierarchy 18

Petri net-based behavioral specification 19

Conclusion A component model close to the practice of Software Engineering, yet provided with a simple formal semantics in terms of HLPN Connectors ( Facet-Receptacle, Source- Sink) can be considered as PN composition operators Partially implemented Facet-Receptacle close enough to our previous work on CORBA Need a proper assembly editor Provide an environment where the behavior of a component may be seamlessly provided in Java, in PN, or as an assembly of sub-components Perform formal verification on parts of the system that particularly deserve it 20