System Design Research Lab University of Pennylvania 1/29/2002 CHARON modeling language.

Slides:



Advertisements
Similar presentations
Models of Concurrency Manna, Pnueli.
Advertisements

CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
SDRL University of Pennsylvania 2/27/2002 CHARON toolkit overview DIVES Team University of Pennsylvania.
CS 290C: Formal Models for Web Software Lecture 4: Implementing and Verifying Statecharts Specifications Using the Spin Model Checker Instructor: Tevfik.
Timed Automata.
CompSci Applets & Video Games. CompSci Applets & Video Games The Plan  Applets  Demo on making and running a simple applet from scratch.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
1 Spin Model Checker Samaneh Navabpour Electrical and Computer Engineering Department University of Waterloo SE-464 Summer 2011.
Modular Specification of Hybrid Systems in CHARON R. Alur, R. Grosu, Y. Hur, V. Kumar, I. Lee University of Pennsylvania SDRL and GRASP.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
System Design Research Lab University of Pennylvania 2/8/2006 CHARON modeling language.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
DIVES: Design, Implementation and Validation of Embedded Software Alur, Kumar, Lee(PI), Pappas, Sokolsky GRASP/SDRL University of Pennsylvania
1 University of Pennsylvania Demonstrations Alur, Kumar, Lee, Pappas Rafael Fierro Yerang Hur Franjo Ivancic PK Mishra.
SDRL and GRASP University of Pennsylvania 6/27/00 MoBIES 1 Design, Implementation, and Validation of Embedded Software (DIVES) Contract No. F C-1707.
University of Pennsylvania 1 SDRL CHARON SDRL and GRASP University of Pennsylvania Funded by DARPA ITO.
AR vs. CFSM Abdallah Tabbara. CFSM Overview 4 CFSM has: –a finite state machine part –a data computation part –a locally synchronous behavior transitions.
Programming Languages Structure
DIVES Alur, Lee, Kumar, Pappas: University of Pennsylvania  Charon: high-level modeling language and a design environment reflecting the current state.
Tool Integration of Ptolemy II EE290N Class Project Haiyang Zheng May
Code Generation from CHARON Rajeev Alur, Yerang Hur, Franjo Ivancic, Jesung Kim, Insup Lee, and Oleg Sokolsky University of Pennsylvania.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
©2005 GE Fanuc Automation, Inc. All Rights Reserved PACSystems Training Programmer’s Toolkit.
What is Concurrent Programming? Maram Bani Younes.
Lecture 4 Component Behavioral Modeling with REMES Advanced Component-Based Software Engineering.
Neal Stublen Practice Solution  Create a new solution  Add a WinForms project  Add a Class Library project  Reference the library.
1 Data Object Object Types A VHDL object consists of one of the following: –Signal, Which represents interconnection wires that connect component instantiation.
State Machine Diagram Chapter 10. State Machine Diagram Used to describe system behavior.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
Programming Languages and Paradigms Object-Oriented Programming.
CS413: Java Programming language Applications Applets
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
1 SFWR ENG 3KO4 Software Development Statemate I-CASE Tool for Designing Software Systems from Different Views Statemate I-CASE Tool for Designing Software.
Applets & Video Games 1 Last Edited 1/10/04CPS4: Java for Video Games Applets &
 2003 Joel C. Adams. All Rights Reserved. Calvin CollegeDept of Computer Science(1/10) An Overview of Objects and the Java API Joel Adams and Jeremy Frens.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Chapter 1: Introducing JAVA. 2 Introduction Why JAVA Applets and Server Side Programming Very rich GUI libraries Portability (machine independence) A.
Page 1, CBSE graduate course Lecture 4 Component Behavioral Modeling with REMES.
1 H ardware D escription L anguages Modeling Digital Systems.
PAT: Getting started.
Chapter 6 Programming Languages © 2007 Pearson Addison-Wesley. All rights reserved.
Lecture51 Timed Automata II CS 5270 Lecture 5.
Interactive CARA Simulation Prof. Insup Lee. Hierarchical EFSM Specification for CARA.
Chapter 10 Defining Classes. The Internal Structure of Classes and Objects Object – collection of data and operations, in which the data can be accessed.
COP 4331 OO Processes for Software Development Lab1 © Dr. David A. Workman School of EE and Computer Science University of Central Florida May 11, 2005.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Distributed Computing With Triana A Short Course Matthew Shields, Ian Taylor & Ian Wang.
CS3773 Software Engineering Lecture 06 UML State Machines.
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Inheritance and Class Hierarchies Chapter 3. Chapter Objectives  To understand inheritance and how it facilitates code reuse  To understand how Java.
The Dynamic Analysis Model StateCharts Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Computer Architecture Organization and Architecture
® IBM Software Group © 2009 IBM Corporation Module 11: Creating State Machine Diagrams Essentials of Modeling with IBM Rational Software Architect V7.5.
Computer Programming.
Towards Next Generation Panel at SAINT 2002
VHDL Discussion Subprograms
Spring CS 599. Instructor: Jyo Deshmukh
Chapter 6: Programming Languages
VHDL Discussion Subprograms
Compositional Refinement for Hierarchical Hybrid Systems
Object Oriented Programming in java
THE ECE 554 XILINX DESIGN PROCESS
CHARON modeling language
Defining Classes and Methods
Introducing Java.
UML Diagrams: StateCharts The Dynamic Analysis Model
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

System Design Research Lab University of Pennylvania 1/29/2002 CHARON modeling language

System Design Research Lab University of Pennylvania 1/29/2002 Outline Overview of language features Example Charon toolset Toolset demo Obtaining and running the toolset

System Design Research Lab University of Pennylvania 1/29/2002 Language features: hierarchy Architectural hierarchy –Autonomous agents can contain subagents –Agents execute concurrently and asynchronously –Communication via shared variables Behavioral hierarchy –Each agent is described as a state machine modes and transitions –Modes can contain submodes

System Design Research Lab University of Pennylvania 1/29/2002 Language features: modularity Encapsulation –Local (private) variables restrict communication and hide details of behavior Instantiation –An agent or mode defined in the model can be instantiated multiple times –Agents and modes can have parameters that are given values at instantiation

System Design Research Lab University of Pennylvania 1/29/2002 Agents: architecture and data flow Agents are autonomous concurrent components in the model An agent consists of variable definitions and may contain sub-agents Agent interfaces are global variables Tank Hole leak private analog real leak level inflow LTank Pump level flow

System Design Research Lab University of Pennylvania 1/29/2002 Agents: definition and instantiation // the tank agent with a hidden leak agent LTank() { private analog real leak; agent tank = Tank(); agent hole = Hole(); } // a leaky tank controlled by a pump agent LeakyTank() { private analog real level, flow; agent tank = LTank( ) [ inflow := flow ] agent pump = Pump( 5, 10 ) } definition instantiation parameterized instantiation

System Design Research Lab University of Pennylvania 1/29/2002 Primitive agents A primitive agent does not have concurrent structure –single thread of control Behavior is given by a mode agent Tank() { write analog real level; init { level = 6; } mode top = TankMode( ); }

System Design Research Lab University of Pennylvania 1/29/2002 Modes: behavior A mode is a hierarchical hybrid state machine A primitive mode is a single-state machine Behavior is given by constraints mode TankMode() { read analog real inflow; read analog real leak; write analog real level; diff { d(level) == inflow-leak } inv { 0 <= level and level <= 15 } } inflow leak

System Design Research Lab University of Pennylvania 1/29/2002 Modes: behavior + discrete control Composite modes have multiple submodes and discrete transitions between them PumpModeprivate analog real clock diff { d(clock) == 1 } start return Compute Maintain onturnOff offadjust inv { clock <= 1 } clock >= 1 {clock = 0}

System Design Research Lab University of Pennylvania 1/29/2002 Modes: behavior + discrete control Modes have variable declarations, same as agents PumpModeprivate analog real clock diff { d(clock) == 1 } start return Compute Maintain onturnOff offadjust inv { clock <= 1 } clock >= 1 {clock = 0}

System Design Research Lab University of Pennylvania 1/29/2002 Modes: behavior + discrete control Modes can have constraints at any level PumpModeprivate analog real clock diff { d(clock) == 1 } start return Compute Maintain onturnOff offadjust inv { clock <= 1 } clock >= 1 {clock = 0}

System Design Research Lab University of Pennylvania 1/29/2002 Modes: behavior + discrete control Transitions are instantaneous Transitions have guards and actions PumpModeprivate analog real clock diff { d(clock) == 1 } start return Compute Maintain onturnOff offadjust inv { clock <= 1 } clock >= 1 {clock = 0}

System Design Research Lab University of Pennylvania 1/29/2002 Modes: behavior + discrete control Transition can happen when its guard is true Transition must happen when invariant is false PumpModeprivate analog real clock diff { d(clock) == 1 } start return Compute Maintain onturnOff offadjust inv { clock <= 1 } clock >= 1 {clock = 0}

System Design Research Lab University of Pennylvania 1/29/2002 Control points Mode interface: entry and exit points –Control enters mode via entry points and exits via exit points Different paths through a mode correspond to different qualitative behaviors slow fast set=25 set=65 alge { speed == set } crash stop

System Design Research Lab University of Pennylvania 1/29/2002 Named vs. default control points Default control points allow: –preemption –history start return Compute Maintain onturnOff offadjust inv { clock <= 1 } clock >= 1 {clock = 0}

System Design Research Lab University of Pennylvania 1/29/2002 PumpMode text mode PumpMode( int low, int high ) { private analog real clock; private discrete real rate; write analog real flow; read analog real level; mode m = Maintain( 0.1, low, high ); mode c = Compute(); trans from default to m when true do { clock = 0; rate = 0 } trans from m to c.start when clock > 1 do { clock = 0; } trans from c.return to m when true do { } diff { d(clock) == 1 } }

System Design Research Lab University of Pennylvania 1/29/2002 Computational modes Do not have continuous behavior Instantaneous execution Internal structure defines control flow delta = level-past return rate = 0 start delta > 0 rate = -delta delta <= 0 Compute past = level

System Design Research Lab University of Pennylvania 1/29/2002 Charon toolset: visual editor

System Design Research Lab University of Pennylvania 1/29/2002 Charon toolset: visual editor

System Design Research Lab University of Pennylvania 1/29/2002 Charon toolset: control panel

System Design Research Lab University of Pennylvania 1/29/2002 Charon toolset: simulation

System Design Research Lab University of Pennylvania 1/29/2002 Charon toolset: simulation

System Design Research Lab University of Pennylvania 1/29/2002 DEMO

System Design Research Lab University of Pennylvania 1/29/2002 How to obtain and use Charon Download Charon from: –both the toolkit and the visual editor are available as compressed archives –see installation instructions on the web page Running: –Charon toolkit: run-charon.sh (Solaris/Linux) or run-charon.bat (Win) in the directory CharonCP –Visual editor: run.sh (Solaris/Linux) or run.bat (Win) in the directory CharonVisual