Event-Based Architecture Definition Language

Slides:



Advertisements
Similar presentations
Modeling Main issues: What do we want to build How do we write this down.
Advertisements

Component Oriented Programming 1 Chapter 2 Theory of Components.
Database Systems: Design, Implementation, and Management Tenth Edition
Modeling Main issues: What do we want to build How do we write this down ©2008 John Wiley & Sons Ltd. vliet.
Discrete Mathematics Lecture 5 Alexander Bukharovich New York University.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Temporal Specification Chris Patel Vinay Viswanathan.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
UML Class Diagrams: Basic Concepts. Objects –The purpose of class modeling is to describe objects. –An object is a concept, abstraction or thing that.
Chapter 10 Architectural Design
An Introduction to Software Architecture
Chapter 2: Modeling Data in the Organization
Chapter 3 Functions Functions provide a means of expressing relationships between variables, which can be numbers or non-numerical objects.
 FOAL 2010 Modeling Aspects by Category Theory Serge P. Kovalyov Novosibirsk, Russia.
CS6133 Software Specification and Verification
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Copyright © Cengage Learning. All rights reserved.
Systems Analysis and Design in a Changing World, Fourth Edition
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Reasoning about the Behavior of Semantic Web Services with Concurrent Transaction Logic Presented By Dumitru Roman, Michael Kifer University of Innsbruk,
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
State Modeling. Introduction A state model describes the sequences of operations that occur in response to external stimuli. As opposed to what the operations.
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
The Relation Induced by a Partition
Modular Decomposition, Abstraction and Specifications
Chapter 5 Relations and Operations
Database Systems: Design, Implementation, and Management Tenth Edition
Systems Analysis and Design in a Changing World, Fourth Edition
Cmpe 589 Spring 2006.
UML Diagrams By Daniel Damaris Novarianto S..
State Machine Model.
Finite State Machines Dr K R Bond 2009
Main issues: • What do we want to build • How do we write this down
Course Outcomes of Object Oriented Modeling Design (17630,C604)
COMPONENT & DEPLOYMENT DIAGRAMS
Timing Model Start Simulation Delay Update Signals Execute Processes
J. Michael, M. Shing M. Miklaski, J. Babbitt Naval Postgraduate School
UML Diagrams Jung Woo.
CS201: Data Structures and Discrete Mathematics I
UML Class Diagrams: Basic Concepts
Propositional Calculus: Boolean Algebra and Simplification
Logical architecture refinement
Lec 3: Object-Oriented Data Modeling
Multiple Aspect Modeling of the Synchronous Language Signal
Chapter 20 Object-Oriented Analysis and Design
Object-Oriented Knowledge Representation
VHDL Discussion Subprograms
Concurrent Models of Computation
Analysis models and design models
Software Design Lecture : 9.
Architecture Description Languages
An Introduction to Software Architecture
Dynamic Modeling Lecture # 37.
Lesson 1-1 Linear Relations and Things related to linear functions
VHDL Discussion Subprograms
Seminar 2 Design of Informatics Systems
Copyright © Cengage Learning. All rights reserved.
Design Yaodong Bi.
Copyright © Cengage Learning. All rights reserved.
Dichotomies in CSP Karl Lieberherr inspired by the paper:
Copyright © Cengage Learning. All rights reserved.
Algebraic Trace Theory
NULL SPACES, COLUMN SPACES, AND LINEAR TRANSFORMATIONS
From Use Cases to Implementation
Presentation transcript:

Event-Based Architecture Definition Language Luckham/Vera Abstract requirements for architecture description languages Subset of Rapide which satisfies requirements Rapide: modelling the architecture of software and hardware causal event simulations 12/29/2018 Rapide

Testing Applications for Conformance to Reference Architectures X/Open Distributed Transaction Processing Architecture for UNIX, still evolving. Industry standard, promotes interoperability and easy integration of products from different vendors. More than 750 products are branded (conformance tested). Rapide simplifies branding. 12/29/2018 Rapide

Event-Based Architecture Definition Language causal event simulations events and time stamps causal relationships Rapide architecture description features event patterns interfaces architectures event pattern mappings 12/29/2018 Rapide

Rapide Executable architecture definition language (EADL) Interface Connection Architecture Interfaces: behavior of components Connections: communication between components Constraints: restrict behavior of interfaces and connections 12/29/2018 Rapide

Rapide When architecture is executed: causal event history which is automatically checked for conformance to constraints 12/29/2018 Rapide

Requirements for Architecture Definition Languages Component abstraction: Interfaces: facilities provided required behavior allowing execution and analysis Communication abstraction connections use only interfaces, allow execution and analysis 12/29/2018 Rapide

Requirements for Architecture Definition Languages Communication integrity interfaces may communicate only if there is an architecture connection Dynamicism components and connections vary during execution Causality and time causal dependencies, independencies, timing 12/29/2018 Rapide

Requirements for Architecture Definition Languages Hierarchical Refinement replace both components and connectors by subarchitectures 12/29/2018 Rapide

Conformance to Architecture A Rapide architecture is a constraint on systems. Three conformance criteria: decomposition: for each interface in the architecture there should be a module interface conformance: each component in the system must conform to its interface. Behavioral constraints can be part of interface: stronger conformance requirement than usual 12/29/2018 Rapide

Conformance to Architecture A Rapide architecture is a constraint on systems. Three conformance criteria: communication integrity: the system’s components communicate directly only as specified by the interface connections of the architecture. 12/29/2018 Rapide

Distributed executions Traces of states interactions are not obvious Traces of events event shows some activity, e.g., interaction between two components 12/29/2018 Rapide

Concurrency and interleaving Event-based systems used linear traces of events Do not distinguish concurrency from interleaving Use event-based models with true concurrency Based on partially ordered sets (posets) 12/29/2018 Rapide

Causality Partial Order An event is caused by another event if the first event could not have occurred without the occurrence of the second event. Independent events: did not cause each other. Concurrency is causal independence A partial order on a set S is an irreflexive, anti-symmetric and transitive relation « on the elements of S. 12/29/2018 Rapide

Causal dependency partial order An event B depends on an event A, written (A -> B) if and only if: A and B are generated by the same process, and A is generated before B (total order per process). A process is triggered by A and then generates B. A process generates A and then assigns to a variable v. Another process reads v and then generates B. Transitivity 12/29/2018 Rapide

12/29/2018 Rapide

12/29/2018 Rapide

12/29/2018 Rapide

12/29/2018 Rapide

12/29/2018 Rapide

Event Patterns Used in several ways: to recognize (or trigger on) posets with particular features. To specify constraints on posets, thus constraining behaviors. To generate posets (for generating behaviors) only restricted pattern can be used connections, mappings between architectures 12/29/2018 Rapide

Event Patterns A generalization of regular expressions for event posets instead of for sequences of events. Note: posets are special kinds of graphs: why not consider a generalization of regular expressions for graphs? 12/29/2018 Rapide

Event Patterns Examples ?I place holder variable: bound by pattern matching Event Patterns Examples A(?I) and B(?I) : An A event and a B event with the same parameter. A -> B: An A event and a B event which depends on the A event. A(?I) where ?I>4: An A event whose parameter is greater than 4. 12/29/2018 Rapide

Event Patterns Action a: action name and finite list of types called the signature of a. Event of action a: A tuple with a unique event identifier. Contains action name, event name, data objects of appropriate types. Other information: component which generated event, component which is destination, timestamp, dependency history. 12/29/2018 Rapide

Event Patterns Tuple notation for events a(v1, … vn), does not include event identifier. Distinct events may have same tuple. Event patterns define posets (partially ordered sets). 12/29/2018 Rapide

basic_pattern | “(“ pattern “)” | empty | any | pattern binary_op pattern | pholder_decl_list pattern | pattern “^” “(“iterator_exp binary_op “)” | pattern where boolean_expression. binary_op : “->” | “||” | or | and | “~” | “==“. iterator_exp : “*” | “+” | expression. pholder_decl : “?” Ident {“,” “?” Ident} in expression | “!” Ident in expression by operator. 12/29/2018 Rapide

Basic Patterns Name of an action with optional parameters. Specifies a set of posets each of which is a single event. Read_return(o) is only matched by Read_return events whose first parameter is equal to “o”. 12/29/2018 Rapide

Constants Two pattern constants: empty and any. Empty pattern is matched only by the empty poset. Any pattern is matched by any single event. That is, by any poset consisting of one event. 12/29/2018 Rapide

Composite Patterns Dependent: P->P’. A match of patterns P and P’ where all of the events that matched P’ depend on all the events that matched P. Read_call() ->Read_return(o) Read_return(o) Read_call() 12/29/2018 Rapide

Composite Patterns Independent: P || P’. A match of patterns P and P’ where none of the events that matched P’ are dependent on any of the events that matched P and vice versa. Read_call() || Read_return(o) Read_return(o) Read_call() 12/29/2018 Rapide

Composite Patterns Disjunction: P or P’. A match of patterns P or a match of pattern P’. Conjunction: P and P’. A match of patterns P and P’. Disjoint Conjunction: P ~ P’. A match of patterns P and P’ where all of the events that matched P are distinct from the events that matched P’. 12/29/2018 Rapide

Composite Patterns Equivalent Conjunction: P == P’. A match of patterns P that is also a match for P’. 12/29/2018 Rapide

Placeholders Universal and existential placeholders. Existential: similar to “exists” ?: represent holes in the patterns where any value of the type of the placeholder fits in. Universal: similar to “for all” !: represent multiple instances of the pattern in which they occur, one instance for each object of the type of the placeholder. 12/29/2018 Rapide

Placeholders Pattern: (?I in T) P(?I). A poset C matches this pattern if there exists an object o of type T such that P(o) is matched by C. Pattern (!I in T by Op) P(!I). A poset C matches this pattern if L=[o1,o2,…] is the lst of objects of type T and C matches P(o1) Op P(o2) Op … 12/29/2018 Rapide

Event Patterns Place holder variables: ?v can only be bound to an object by pattern matching When does a pattern match a poset? Input: pattern PatExp, finite poset Pos Output: binding B of each placeholder to an object such that PatExp|B matches Pos, following the rules below. 12/29/2018 Rapide

Event Patterns PatExp|B is the instance of PatExp when each placeholder is replaced at all of its occurrences by its binding in B. 12/29/2018 Rapide

Event Patterns If PatExp is a basic pattern a(v1, …, vn), then B is chosen such that Pos = PatExp|B If PatExp is a composite pattern, built up from event patterns, P, P’ and a pattern operation, then Pos matches PatExp if Pos is the union of the matches for P and P’ under the same binding of placeholders B, as follows: 12/29/2018 Rapide

Event Patterns Dependent: P->P’. Pos is a match if all the events in the match for P’ depend on all the events in the match for P. Conjunction: P and P’. Pos is a match if there are matches for patterns P and P’. Disjoint Conjunction: P ~ P’. Pos is a match if all the events which matched P are distinct from the events which matched P’. 12/29/2018 Rapide

Event Patterns Independent: P||P’. A match of patterns P and P' where none of the events that matched P are dependent on any of the events that matched P' and vice versa. Disjunction: P and P’. Pos is a match if there are matches for patterns P or P’. 12/29/2018 Rapide