Advanced Tool Architectures Supporting Interface-Based Design

Slides:



Advertisements
Similar presentations
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Advertisements

Topic 2: Balance between formal and informal methods, engineering and artistry, evolution and rebuild Edward A. Lee Professor UC Berkeley Center for Hybrid.
Object-Oriented Analysis and Design
UC Berkeley Mobies Technology Project PI: Edward Lee CoPI: Tom Henzinger Process-Based Software Components for Networked Embedded Systems.
ACM SIGPLAN 2001 Workshop on Languages, Compilers, and Tools for Embedded Systems (LCTES'2001) Jun 22-23, 2001, Snowbird, Utah, USA Embedded Software from.
Mobies Phase 1 UC Berkeley 1 Process-Based Software Components Mobies Phase 1, UC Berkeley Edward A. Lee and Tom Henzinger PI Meeting, New York July 24,
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
Process-Based Software Components for Networked Embedded Systems Edward A. Lee, PI UC Berkeley Core Technical Team (Mobies, SEC, and GSRC): Christopher.
SRC ETAB Summer Study Colorado Springs, June 25-26, 2001 Model-Based Approaches to Embedded Software Design Edward A. Lee UC Berkeley & GSRC.
Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor- Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley.
NSF Foundations of Hybrid and Embedded Software Systems UC Berkeley: Chess Vanderbilt University: ISIS University of Memphis: MSI A New System Science.
Chess Review May 11, 2005 Berkeley, CA Advances In MIC Tools for Networked Embedded Systems Applications Edited and Presented by Janos Sztipanovits ISIS,
February 21, 2008 Center for Hybrid and Embedded Software Systems Organization Board of Directors Edward A. Lee, UC Berkeley.
Mobies Phase 1 UC Berkeley 1 Agenda 8:00-8:30 Continental breakfast 8:30-9:00 Overview of Mobies Phase 1 effort (Edward A. Lee) 9:00-9:40 Introduction.
Type System, March 12, Data Types and Behavioral Types Yuhong Xiong Edward A. Lee Department of Electrical Engineering and Computer Sciences University.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.
Behavioral Types as Interface Definitions for Concurrent Components Center for Hybrid and Embedded Software Systems Edward A. Lee Professor UC Berkeley.
Building Unreliable Systems out of Reliable Components: The Real Time Story Edward A. Lee Professor, Chair of EE, and Associate Chair of EECS CHESS: Center.
February 11, 2010 Center for Hybrid and Embedded Software Systems Ptolemy II - Heterogeneous Concurrent Modeling and Design.
Chess Review October 4, 2006 Alexandria, VA Edited and presented by Advanced Tool Architectures Edward A. Lee UC Berkeley.
Chess Review November 18, 2004 Berkeley, CA Advanced Tool Architectures Edited and Presented by Edward A. Lee, Co-PI UC Berkeley.
Chess Review November 21, 2005 Berkeley, CA Edited and presented by Advanced Tool Architectures Edward A. Lee UC Berkeley.
Heterogeneous Modeling and Design in Ptolemy II Johan Eker UC Berkeley with material courtesy of Edward Lee and the Ptolemy group ECE Seminar Series, Carnegie.
Mobies Phase 1 UC Berkeley 1 Process-Based Software Components Mobies Phase 1, UC Berkeley Edward A. Lee and Tom Henzinger PI Meeting, Boca Raton January.
February 12, 2009 Center for Hybrid and Embedded Software Systems Encapsulated Model Transformation Rule A transformation.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Chess Review May 10, 2004 Berkeley, CA Advanced Tool Architectures Edited and Presented by Edward A. Lee, Co-PI UC Berkeley.
Actor-Oriented Design: A focus on domain-specific languages for embedded systems Edward A. Lee Professor, UC Berkeley Director, Center for Hybrid and Embedded.
Building Unreliable Systems out of Reliable Components: The Real Time Story Edward A. Lee Professor, Chair of EE, and Associate Chair of EECS CHESS: Center.
An Extensible Type System for Component-Based Design
The Gigascale Silicon Research Center Edward A. Lee UC Berkeley The GSRC Semantics Project Tom Henzinger Luciano Lavagno Edward Lee Alberto Sangiovanni-Vincentelli.
Chess Review November 21, 2005 Berkeley, CA Edited and presented by Causality Interfaces and Compositional Causality Analysis Rachel Zhou UC Berkeley.
NSF Foundations of Hybrid and Embedded Software Systems UC Berkeley: Chess Vanderbilt University: ISIS University of Memphis: MSI A New System Science.
Ptolemy Miniconference May 9, 2003 Berkeley, CA Ptolemy Project Plans for the Future Edward A. Lee Professor Ptolemy Project Director.
SEC PI Meeting Annapolis, May 8-9, 2001 Component-Based Design of Embedded Control Systems Edward A. Lee & Jie Liu UC Berkeley with thanks to the entire.
Foundations of Hybrid and Embedded Software Systems UC Berkeley: Chess Vanderbilt University: ISIS University of Memphis: MSI NSF Model-Based Design DSML.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley System-Level Types for Component-Based Design Edward A.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley Concurrent Component Patterns, Models of Computation, and.
February 12, 2009 Center for Hybrid and Embedded Software Systems Model Transformation Using ERG Controller Thomas H. Feng.
7th Biennial Ptolemy Miniconference Berkeley, CA February 13, 2007 PTIDES: A Programming Model for Time- Synchronized Distributed Real-time Systems Yang.
State of the Art Lecture IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001 Computing for Embedded Systems Edward.
Designing Predictable and Robust Systems Tom Henzinger UC Berkeley and EPFL.
Embedded Software: Leveraging Concurrent Models of Computation Edward A. Lee Professor, UC Berkeley Center for Hybrid and Embedded Software Systems (CHESS)
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 The Component Interaction Domain: Modeling Event-Driven and Demand- Driven Applications.
Embedded Software Challenges for the Next 10 Years Chess: Center for Hybrid and Embedded Software Systems Infineon Embedded Software Days Munich, Sept.
Panel: What Comes After C++ in System-Level Specification Edward Lee UC Berkeley Forum on Design Languages Workshop on System Specification & Design Languages.
Lee & Henzinger ESWG #1 UC Berkeley Mobies Technology Project Process-Based Software Components for Networked Embedded Systems PI: Edward Lee CoPI: Tom.
MOBIES Project Progress Report Engine Throttle Controller Design Using Multiple Models of Computation Edward Lee Haiyang Zheng with thanks to Ptolemy Group.
Model-Driven Development From Object-Oriented Design to Actor-Oriented Design Chess: Center for Hybrid and Embedded Software Systems Edward A. Lee Professor.
System-Level Types for Component-Based Design Paper by: Edward A. Lee and Yuhong Xiong Presentation by: Dan Patterson.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley The Ptolemy II Framework for Visual Languages Xiaojun Liu.
Chess Review November 21, 2005 Berkeley, CA Edited and presented by Coupled Interface Modules for Heterogeneous Composition Ethan Jackson ISIS, Vanderbilt.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Composing Models of Computation in Kepler/Ptolemy II
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Unified Modeling Language, Version 2.0
C. André, J. Boucaron, A. Coadou, J. DeAntoni,
Design Languages in 2010 Chess: Center for Hybrid and Embedded Software Systems Edward A. Lee Professor UC Berkeley Panel Position Statement Forum on Design.
Actor Networks Edward A. Lee Robert S. Pepper Distinguished Professor Chair of EECS UC Berkeley Invited Talk Workshop Foundations and Applications of Component-based.
1 Unified Modeling Language, Version 2.0 Chapter 2.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
CS 5991 Presentation Ptolemy: A Framework For Simulating and Prototyping Heterogeneous Systems.
Object-Oriented Analysis and Design
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Retargetable Model-Based Code Generation in Ptolemy II
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Presentation transcript:

Advanced Tool Architectures Supporting Interface-Based Design Presented by Edward A. Lee Chess, UC Berkeley

NSF ITR Deliverables A set of reusable, inter-operating software modules, freely distributed as open-source software. These modules will be toolkits and frameworks that support the design of embedded systems, provide infrastructure for domain-specific tools, and provide model-based code generators. The starting point is a family of actor-oriented modeling tools and associated meta modeling tools.

Define modeling & design “languages” with: Tool Architectures Objective is to unify: modeling specification design programming Define modeling & design “languages” with: syntaxes that aid understanding composable abstractions understandable concurrency and time predictable behavior robust behavior All of these tasks are accomplished by the system designers.

Actor-Oriented Design Object orientation: What flows through an object is sequential control class name data methods call return Actor orientation: actor name data (state) ports Input data parameters Output data What flows through an object is data streams

Examples of Actor-Oriented Component Frameworks Simulink (The MathWorks) Labview (National Instruments) Modelica (Linkoping) OCP, open control platform (Boeing) GME, actor-oriented meta-modeling (Vanderbilt) SPW, signal processing worksystem (Cadence) System studio (Synopsys) ROOM, real-time object-oriented modeling (Rational) Port-based objects (U of Maryland) I/O automata (MIT) VHDL, Verilog, SystemC (Various) Polis & Metropolis (UC Berkeley) Ptolemy & Ptolemy II (UC Berkeley) …

Actor View of Producer/Consumer Components Models of Computation: continuous-time dataflow rendezvous discrete events synchronous time-driven publish/subscribe … Key idea: The model of computation defines the component interaction patterns and is part of the framework, not part of the components themselves.

Object-Oriented and Actor-Oriented Design Object orientation: strong typing inheritance procedural interfaces Actor orientation concurrency communication real time These are complementary UML object model emphasizes static structure. Actor orientation offers: modeling the continuous environment (and hybrid systems) understandable concurrency (vs. RPC, semaphores, and mutexes) specifications of temporal behavior (vs. “prioritize and pray”)

Two of Our Tool Starting Points GME: Generic Modeling Environment Vanderbilt ISIS Meta modeling of actor-oriented modeling Proven for representing “abstract syntax” (called by some “static semantics”) Ptolemy II UC Berkeley Chess Framework for exploring actor-oriented semantics Beginnings of meta modeling of actor-oriented “abstract semantics”

Actor-Oriented Modeling in GME Domain-specific actor-oriented modeling environments are created from meta models, and a sophisticated, domain-specific UI is generated from those models.

Meta Modeling in GME Meta models consist of UML object models enriched by OCL constraints which capture structural properties shared by a family of models.

Ptolemy II continuous environment A laboratory supporting experimentation with actor-oriented design, concurrent semantics, and visual syntaxes. http://ptolemy.eecs.berkeley.edu modal model discrete controller example Ptolemy model: hybrid control system

Software Practice Ptolemy II and GME are widely recognized to be unusually high quality software from a research group. Software practice in the Ptolemy Project: Object models in UML Design patterns Layered software architecture Design and code reviews Design document Nightly build Regression tests Sandbox experimentation Code rating

Code rating A simple framework for Four confidence levels quality improvement by peer review change control by improved visibility encouraging innovation Four confidence levels Red. No confidence at all. Yellow. Passed design review. Soundness of the APIs. Green. Passed code review. Quality of implementation. Blue. Passed final review. Backwards-compatibility assurance. Software is written to be read! On “commitment” point: emphasize that this is an eternal property. Clients of your code know that green code will nt changed radically, but red code probably will.

Modeling Semantics in Ptolemy II – Object Model for Executable Components

Communication Protocols – Object Model for Messaging Framework

Structuring This Space with Interface Theories Concept of Interface Theories is due to Tom Henzinger and his colleagues. We are using this concept to figure out what the Ptolemy Group has done with its software prototypes.

Receiver Interface – Software Architecture Perspective These polymorphic methods implement the communication semantics of a domain in Ptolemy II. The receiver instance used in communication is supplied by the director, not by the component.

Behavioral Types – Interface Theory Perspective Capture the dynamic interaction of components in types Obtain benefits analogous to data typing. Call the result behavioral types. Communication has data types behavioral types Components have data type signatures behavioral type signatures Components are data polymorphic domain polymorphic

A Preliminary Behavioral Type System Based on interface automata Proposed by de Alfaro and Henzinger Concise composition (vs. standard automata) Alternating simulation provides contravariant inputs/outputs Compatibility checking Done by automata composition Captures the notion “components can work together” Alternating simulation (from Q to P) All input steps of P can be simulated by Q, and All output steps of Q can be simulated by P. Provides the ordering we need for subtyping & polymorphism

Simple Example: One Place Buffer Showing Consumer Interface Only Model of the interaction of a one-place buffer, showing the interface to a consumer actor. Outputs: Inputs: t Token hTT Return True from hasToken hTF Return False from hasToken g get hT hasToken

Two Candidate Consumer Actors Consumer with check: Consumer without check: buffer interface Inputs: Outputs: t Token hTT Return True from hasToken hTF Return False from hasToken g get hT hasToken

Composition: Behavioral Type Check Consumer with check: Buffer: Illegal states are pruned out of the composition. A composite state is illegal if an output produced by one has no corresponding input in the other.

Composition: Behavioral Type Check Buffer: Consumer without check: An empty composition means that all composite states are illegal. E.g., here, 0_0 is illegal, which results in pruning all states.

Subclassing and Polymorphism We can construct a type lattice by defining a partial order based on alternating simulation. It properly reflects the desire for contravariant inputs and outputs. Buffer: Buffer with Default: Alternating simulation relation

Contravariance of Inputs and Outputs in a Classical Type System BaseClass … and deliver more specific outputs public Complex foo(Double arg) Can accept more general inputs DerivedClass DerivedClass remains a valid drop-in substitution for BaseClass. public Double foo(Complex arg)

Representing Models of Computation Synchronous Dataflow (SDF) Domain receiver interface director interface This can be composed with models of actors to determine compatibility.

Subtyping Relation Between Models of Computation: SDF  DE DE Domain SDF Domain Broaden inputs, narrow outputs Game interpretation This enables the design of components that can operate within multiple models of computation (“domain polymorphic components”)

Summary of Behavioral Types – Preliminary Results We capture patterns of component interaction in a type system framework: behavioral types We describe interaction types and component behavior using interface automata. We do type checking through automata composition (detect component incompatibilities) Subtyping order is given by the alternating simulation relation, supporting polymorphism. A behavioral type system is a set of automata that form a lattice under alternating simulation.

Scalability Automata represent behavioral types Not arbitrary program behavior Descriptions are small Compositions are small Scalability is probably not an issue Type system design becomes an issue What to express and what to not express Restraint! Will lead to efficient type check and type inference algorithms

Issues and Ideas Composition by name-matching Rich subtyping: awkward, limiting. use ports in hierarchical models? Rich subtyping: extra ports interfere with alternating simulation. projection automata? Synchronous composition: composed automata react synchronously. modeling mutual exclusion is awkward use transient states? hierarchy with transition refinements?

More Speculative We can reflect component dynamics in a run-time environment, providing behavioral reflection. admission control run-time type checking fault detection, isolation, and recovery (FDIR) Timed interface automata may be able to model real-time requirements and constraints. checking consistency becomes a type check generalized schedulability analysis Need a language with a behavioral type system Visual syntax given here is meta modeling Use this to build domain-specific languages

Conclusions You can expect from this team: Emphasis on: Sophisticated software High quality, open-source software Domain-specific modules Generators for domain-specific modules Emphasis on: Meta modeling of abstract syntax Meta modeling of semantics Actor-oriented design methods Interface definitions Composable models