1 Flexible Subtyping Relations for Component- Oriented Formalisms and their Verification David Hurzeler PhD Examination, 9/11/2004.

Slides:



Advertisements
Similar presentations
Giving a formal meaning to “Specialization” In these note we try to give a formal meaning to specifications, implementations, their comparisons. We define.
Advertisements

Operational Resilience Theory and Experimentation Levi Lúcio.
1 How to transform an analyzer into a verifier. 2 OUTLINE OF THE LECTURE a verification technique which combines abstract interpretation and Park’s fixpoint.
SATEL Semi Automatic TEsting Language University of Geneva Levi Lúcio, Didier Buchs M-TOOS, Portland 4/30/2015.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
1 FLACOS Malta October 2008 Service Oriented Architectures: The new Software Paradigm W. Reisig Humboldt-Universität zu Berlin Theory of Programming.
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Principles of Object-Oriented Software Development Behavioral refinement.
Specifying Workflow using CO- OPN Ang Chen SMV group 11 Mars, 2005.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
1 Relational Algebra and Calculus Yanlei Diao UMass Amherst Feb 1, 2007 Slides Courtesy of R. Ramakrishnan and J. Gehrke.
Abstract Verification is traditionally done by determining the truth of a temporal formula (the specification) with respect to a timed transition system.
Extensible Type-Driven Parsing for Embedded DSLs in Wyvern Cyrus Omar Benjamin Chung Darya Kurilova Ligia Nistor Alex Potanin (Victoria University of Wellington)
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes.
Modern Concurrency Abstractions for C# by Nick Benton, Luca Cardelli & C´EDRIC FOURNET Microsoft Research.
Requirements Expression and Modelling
Speaking Bluntly about SharpHDL: Some Old Stuff and Some Other Proposed Future Extensions Gordon J. Pace & Christine Vella Synchron’05 Malta, November.
The Architecture of Secure Systems Jim Alves-Foss Laboratory for Applied Logic Department of Computer Science University of Idaho By, Nagaashwini Katta.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Workflow Treatment with Coloured Petri Nets Alexandru Cicortaş Diana
An Algebra for Composing Access Control Policies (2002) Author: PIERO BONATTI, SABRINA DE CAPITANI DI, PIERANGELA SAMARATI Presenter: Siqing Du Date:
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
SDS Foil no 1 Process Algebra Process Algebra – calculating with behaviours.
© DATAMAT S.p.A. – Giuseppe Avellino, Stefano Beco, Barbara Cantalupo, Andrea Cavallini A Semantic Workflow Authoring Tool for Programming Grids.
1 Levi Lúcio © A Test Selection Language for CO-OPN Specifications Levi Lúcio, Luis Pedro and Didier Buchs University of Geneva.
Reactive systems – general
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Amending Choreographies Joint work with Fabrizio Montesi and Gianluigi Zavattaro.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 LiSyC ENSIETA/DTN 02/04/2008 AADL execution semantics transformation for formal verification Joel Champeau, Thomas Abdoul, Pierre Yves Pillain, Philippe.
Towards a High-Level Petri Net Type DefinitionWorkshop on Interchange Formats for Petri Nets 1/18 June 26, 2004 Towards a High-Level Petri Net Type Definition.
Secure Systems Research Group - FAU Model Checking Techniques for Security Systems 5/14/2009 Maha B Abbey PhD Candidate.
9-1 © Prentice Hall, 2007 Chapter 9: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Submodule construction in logics 1 Gregor v. Bochmann, University of Ottawa Using First-Order Logic to Reason about Submodule Construction Gregor v. Bochmann.
Verification of behavioural elements of UML models using B Truong, Ninh-Thuan and Souquieres, Jeanine In Proceedings of the 2005 ACM Symposium on.
Scaling Heterogeneous Databases and Design of DISCO Anthony Tomasic Louiqa Raschid Patrick Valduriez Presented by: Nazia Khatir Texas A&M University.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Egocentric Context-Aware Programming in Ad Hoc Mobile Environments Christine Julien Gruia-Catalin Roman Mobile Computing Laboratory Department of Computer.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
CS 5204 Spring 99 1 A Simple Agent A CCS agent is described both by a structural diagram and one or more algebraic equations. The diagram is for readability.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
2G1516 Formal Methods2005 Mads Dam IMIT, KTH 1 CCS: Processes and Equivalences Mads Dam Reading: Peled 8.5.
Transparent First-class Futures and Distributed Components Introduction: components, futures, and challenges Statically Representing Futures An Example.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
7-1 © Prentice Hall, 2007 Topic 7: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Process Algebra (2IF45) Basic Process Algebra Dr. Suzana Andova.
Verifying Component Substitutability Nishant Sinha Sagar Chaki Edmund Clarke Natasha Sharygina Carnegie Mellon University.
Université Toulouse I 1 CADUI' June FUNDP Namur Implementation Techniques for Petri Net Based Specifications of Human-Computer Dialogues.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
TTCN-3 Testing and Test Control Notation Version 3.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
Analysis Classes Unit 5.
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Introduction to Design Patterns
Logical architecture refinement
Logics for Data and Knowledge Representation
Introduction to UML.
Generating Optimal Linear Temporal Logic Monitors by Coinduction
Chapter 20 Object-Oriented Analysis and Design
Event-Based Architecture Definition Language
ISpec: A Compositional Approach to Interface Specification
Presentation transcript:

1 Flexible Subtyping Relations for Component- Oriented Formalisms and their Verification David Hurzeler PhD Examination, 9/11/2004

2 Plan of the presentation Introduction Introduction The component-oriented formalism The component-oriented formalism Subtyping Subtyping Verification Verification Conclusion and future work Conclusion and future work

3 Introduction The problems: « In a given system specified with the Concurrent Object-Oriented Petri Nets formalism, can we safely replace a component ? » « In a given system specified with the Concurrent Object-Oriented Petri Nets formalism, can we safely replace a component ? » Can we generalize our work to other formalisms ? Can we generalize our work to other formalisms ?

4 Introduction  Subtyping: Which existing definition(s) do we need ? Which existing definition(s) do we need ? Do we need to extend these ? Do we need to extend these ?  Verification: How can we guarantee this safety ? How can we guarantee this safety ? Safesubstitutability Safesubstitutability Safesubstitutability

5 Introduction Generality of our work:  If we define new subtype definitions, can we make them applicable to other formalisms ?  Can we find an abstract and high-level component-oriented formalism on which we can define our notion of subtyping, and which is still compatible with a large set of formalisms ?

6 Plan of the presentation Introduction Introduction The component-oriented formalism The component-oriented formalism Subtyping Subtyping Verification Verification Conclusion and future work Conclusion and future work

7 The component oriented formalism Aim:  Give the basic definitions and concepts on which we can develop notions of subtyping and verification.  Define a formalism, not a concrete language. What we want is a meta-language giving the pre-requisites for the core of our work.

8 The component oriented formalism A component is a tuple:, where:, where: c is the component name, c is the component name, B is the set of attributes, B is the set of attributes, I is the interface, containing both methods (provided services) and gates (required services), and I is the interface, containing both methods (provided services) and gates (required services), and Trans is the transition system, Trans is the transition system, Trans States × Events × States Trans States × Events × States m1 g1 c

9 Main features of the formalism  Concurrency inside and outside components,  Non-determinism,  Modularity: Component orientation with strict encapsulation,  Component interaction: Synchronization between components,  Component composition,  Component mobility.

10 Interaction Synchronizations, both inside and in between components: g1 g2 g3 m1m2m3m4 // m1 with (g1//g2)

11 The buffer example put buffer get failput failget put get get with failget put with failput

12 Interaction Synchronizations, both inside and in between components: g1 g3 m1m2m3m4 // g1 with m3, g2 with m4 g2 g1 with m3

13 Component composition Given:  a set of components,  a synchronization expression, and  a new interface, getput failput failget put get buffer1 failput failget put get buffer2 failput failget {b1.failput with b2.put, b1.failget with b2.get} We can define a new component.

14 Component composition (-,-,e,-) get with failget put get put with failput b1 b2 b1°b2 get get with failget put get put with failput get with failget {b1.failput with b2.put, b1.failget with b2.get}

15 Component composition (-,-,e,-) get with failget put get put with failput b1 b2 b1°b2 get get with failget put get put with failput (-,-,e,-,-,-,e,-) get {b1.failput with b2.put, b1.failget with b2.get}

16 Mobility g3 m3m4 g1 m1m2 g2 m1m2m3 g3 g4 m7m8 g5 m6m5 m3 g3 m3m4 m3

17 Mobility: components  Regular components  Containers:  Containers: c is its name, c is its name, I is its interface, I is its interface, MC is the set of acceptable components, MC is the set of acceptable components, Exp is a set of sync. expressions between all mc in MC, Exp is a set of sync. expressions between all mc in MC, MSyncExp is a set of mobile sync. expressions, MSyncExp is a set of mobile sync. expressions, B is the set of attributes (= union of attributes of mc in MC), B is the set of attributes (= union of attributes of mc in MC), Trans is its transition system. Trans is its transition system.

18 Mobility: Transition system State of a container: If a container contains components c1,c2,...,cn from MC respectively in states s1,s2,...,sn, its state is noted: If component c1 is container containing regular components c11 and c12 in states s11 and s12, this is also: (s1 s2...sn ) c1 c2 cn ((s11 s12 ) s2... sn ) c11 c12 c1 c2 cn

19 Mobility: Transition system ((s1) (s2) ) ((s4) (s5) ) c1 c2 c3 c4 c5 c6 m1 g1 c2 c1 c5 c4 c6 c3 c2 ((s1’) ) ((s4) (s5) (s2’) ) c1c3 c4 c5 c2 c6 Exp: m1 with g1 m1 mwith Send c2 g1 mwith Receive c2 MSyncExp:

20 Example of formalism: CO-OPN  CO-OPN objects correspond to regular components,  CO-OPN contexts correspond to containers,  Composition is exactly similar in both formalisms,  Concurrency, non-determinism, component interaction and modularity are equivalent.  Mobility is more general in our formalism.

21 Results so far  Composition: From two given components, we know how to build a third component.  Mobility: We are able to give the semantics of a container, and to build a container from a set of components (containers or regular).  This implies a formalisation of the mobility of contexts in CO-OPN.

22 Plan of the presentation Introduction Introduction The component-oriented formalism The component-oriented formalism Subtyping Subtyping Verification Verification Conclusion and future work Conclusion and future work

23 Subtyping « Can we safely replace a component in a given system ? »  Many existing definitions,  Each have their advantages, particular situations where particular situations where they are useful, they are useful,  But sometimes of little use in other situations: Often not very flexible. Often not very flexible. Strength Ease of use

24 Subtyping  A set of properties will be preserved during the substitution.  The substitutability depends on the context. Validation formula Observer component « Can wesafelyreplace a componentin a given system ? » safelyin a given system ? » Subtype relation

25 Subtyping: Definition Component rc is a subtype of component c w.r.t. observer obs and validation formula vf iff: Component rc is a subtype of component c w.r.t. observer obs and validation formula vf iff: (obs °c vf ) (obs °rc vf ) ! This relation is not symetric! ! This relation is not symetric! cc

26 The buffer example produceconsume put get Buffer Capacity 1 Producer Consumer Observer put get gput gget s s’ put with gput get with gget New Buffer put get put get vf ? Verification Tool feedback

27 Results  Substitutability: If s is a subtype of t w.r.t. observer obs and validation formula f, we may safely substitute s for t in the sense that for the kind of interaction depicted by obs, the satisfaction of f is preserved.  Flexibility and generality of our definition of subtyping.

28 Observer conception Problems:  Often impossible to build an optimal observer. Solutions:  Incremental conception from heuristics,  For some class of interaction, conception decidable (for example, for regular languages). Obs for heuristic2 Obs for heuristic3 Obs for heuristic1

29 Plan of the presentation Introduction Introduction The component-oriented formalism The component-oriented formalism Subtyping Subtyping Verification Verification Conclusion and future work Conclusion and future work

30 Verification pp’ ? Transformation f p p ?

31 Verification pp’ ? f(p) f(p)’ ? ??

32 Verification Three axis of research:  Restrict transformations,  Restrict properties to check,  Restrict composition.

33 Verification: Results Properties Existence Containing Contained TIP TCP Quite-strong Strong Including Trace preserving composition Connection preserving ci pi ci pi c1°c2p1p2 c1°c2p1p2 ci pi i f i f (ci)(pi) i f i f (ci)(pi) 1°2 f (c1°c2) 1°2 f (p1 p2) 1°2 f (c1°c2) 1°2 f (p1 p2) 1°2 f (c1°c2) 1°2 f (p1 p2) Strong c1°c2 p1 p2c1°c2 p1 p2 1°2 f (c1°c2) 1°2 f (p1 p2) 1°2 f

34 Verification: The Buffer example We have two buffers of transition system: If we compose these two buffers, can we get a buffer of capacity two which is such that EG is true? put get... put get Including Transformation NO Contained property

35 Plan of the presentation Introduction Introduction The component-oriented formalism The component-oriented formalism Subtyping Subtyping Verification Verification Conclusion and future work Conclusion and future work

36 Conclusions: Contribution  Definition of an abstract component-oriented formalism including composition semantics and mobility semantics.  Complete formalisation of the extension of CO- OPN ot the case of mobile contexts.  Definition of an adaptable notion of subtyping which englobes many existing works.

37 Conclusions: Contributions  Description of a verification technique based on component transformation, which, again, is intended to include many existing techniques. Proof of several results on property satisfaction which depend on the type of transformation, property and composition.  If we have a substitutability problem in a language L which may be seen as an instance of our own formalism, we may apply the subtyping and verification techniques defined in this thesis.  Case study as a means of illustrating our concepts in the COOPN formalism.

38 Future work  Implementation in a tool,  Include active component behavior in our formalism,  Include asynchrony ?  More work on observer conception,  Further development of verification techniques, by exploring other classes of properties, transformations, and composition.  Translation of existing techniques.