Embedded Software Challenges for the Next 10 Years Chess: Center for Hybrid and Embedded Software Systems Infineon Embedded Software Days Munich, Sept.

Slides:



Advertisements
Similar presentations
UML an overview.
Advertisements

Topic 2: Balance between formal and informal methods, engineering and artistry, evolution and rebuild Edward A. Lee Professor UC Berkeley Center for Hybrid.
ACM SIGPLAN 2001 Workshop on Languages, Compilers, and Tools for Embedded Systems (LCTES'2001) Jun 22-23, 2001, Snowbird, Utah, USA Embedded Software from.
Introduction To System Analysis and Design
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.
Component Technologies for Embedded Systems Johan Eker.
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.
Advanced Tool Architectures Supporting Interface-Based Design
Integrated Design and Analysis Tools for Software-Based Control Systems Shankar Sastry (PI) Tom Henzinger Edward Lee University of California, Berkeley.
NSF Foundations of Hybrid and Embedded Software Systems UC Berkeley: Chess Vanderbilt University: ISIS University of Memphis: MSI A New System Science.
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.
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 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.
Are “Embedded Systems" Just Systems Made with Small Computers? Chess: Center for Hybrid and Embedded Software Systems Invited Talk Artist International.
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.
Actor-Oriented Design: A focus on domain-specific languages for embedded systems Edward A. Lee Professor, UC Berkeley Director, Center for Hybrid and Embedded.
Unified Modeling (Part I) Overview of UML & Modeling
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
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
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.
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.
MoBIES Working group meeting, September 2001, Dearborn Ptolemy II The automotive challenge problems version 4.1 Johan Eker Edward Lee with thanks.
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.
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.
Panel: What Comes After C++ in System-Level Specification Edward Lee UC Berkeley Forum on Design Languages Workshop on System Specification & Design Languages.
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.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
C++ fundamentals.
What’s Ahead for Embedded Software? - Edward A. Lee (2000) Wednesday November 10, 2010 Hokeun Kim.
Composing Models of Computation in Kepler/Ptolemy II
An Introduction to Software Architecture
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.
Introduction To System Analysis and Design
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
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.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
CS 5991 Presentation Ptolemy: A Framework For Simulating and Prototyping Heterogeneous Systems.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
UML (Unified Modeling Language)
Object-Oriented Analysis and Design
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
TRUST:Team for Research in Ubiquitous Secure Technologies
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Chapter 20 Object-Oriented Analysis and Design
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Presentation transcript:

Embedded Software Challenges for the Next 10 Years Chess: Center for Hybrid and Embedded Software Systems Infineon Embedded Software Days Munich, Sept , 2003 Edward A. Lee Professor UC Berkeley

UC Berkeley, Edward Lee 2 Thesis Embedded software is not just software on small computers. Time and concurrency are essential in embedded software. Platforms are essential in the design of embedded software. Platforms need good modeling properties (model-based design). Object-oriented design cannot provide these modeling properties. Actor-oriented design offers better concurrency and time. Behavioral types offer a truly practical form of verification.

UC Berkeley, Edward Lee 3 Platforms A platform is a set of designs (the rectangles at the right, e.g., the set of all x86 binaries). Model-based design is specification of designs in platforms with useful modeling properties (e.g., Simulink block diagrams for control systems).

UC Berkeley, Edward Lee 4 Platforms Where the Action Has Been: Giving the red platforms useful modeling properties (e.g. UML, MDA) Getting from red platforms to blue platforms.

UC Berkeley, Edward Lee 5 Platforms Where the Action Will Be: Giving the red platforms useful modeling properties (via models of computation) Getting from red platforms to blue platforms.

UC Berkeley, Edward Lee 6 Abstraction How abstract a design is depends on how many refinement relations separate the design from one that is physically realizable. Three paintings by Piet Mondrian

UC Berkeley, Edward Lee 7 Design Framework A design framework is a collection of platforms and realizable relations between platforms where at least one of the platforms is a set of physically realizable designs, and for any design in any platform, the transitive closure of the relations from that design includes at least one physically realizable design. In model-based design, a specification is a point in a platform with useful modeling properties.

UC Berkeley, Edward Lee 8 UML and MDA Trying to Give Useful Modeling Properties to Object-Oriented Designs Interface is a collection of methods and their type signatures. UML static structure diagram Inheritance Implementation

UC Berkeley, Edward Lee 9 But These Are Fundamentally Rooted in a Procedural Abstraction Some Problems: –OO says little or nothing about concurrency and time –Components implement low-level communication protocols –Re-use potential is disappointing Some Partial Solutions –Adapter objects (laborious to design and deploy) –Model-driven architecture (still fundamentally OO) –Executable UML (little or no useful modeling properties) Our Solution:Actor-Oriented Design OO interface definition gives procedures that have to be invoked in an order not specified as part of the interface definition. TextToSpeech initialize(): void notify(): void isReady(): boolean getSpeech(): double[] actor-oriented interface definition says “Give me text and I’ll give you speech” Focus on this

UC Berkeley, Edward Lee 10 The Turing Abstraction of Computation arguments + state in results + state out sequence f : State  State Everything “computable” can be given by a terminating sequential program.

UC Berkeley, Edward Lee 11 Timing is Irrelevant All we need is terminating sequences of state transformations! Simple mathematical structure: function composition. f : State  State

UC Berkeley, Edward Lee 12 What about “real time”? Make it faster!

UC Berkeley, Edward Lee 13 Worse: Processes & Threads are a Terrible Way to Specify Concurrency incoming message outgoing message Infinite sequences of state transformations are called “processes” or “threads” Their “interface” to the outside is a sequence of messages in or out. For embedded software, these are typically nonterminating computations.

UC Berkeley, Edward Lee 14 Interacting Processes Impose Partial Ordering Constraints on Each Other stalled for rendezvous stalled by precedence timing dependence Note that UML sequence and activity diagrams (major ways of expressing concurrency in UML), follow this model.

UC Berkeley, Edward Lee 15 Interacting Processes Impose Partial Ordering Constraints on External Interactions After composition: External interactions are no longer ordered. An aggregation of processes is not a process. What is it?

UC Berkeley, Edward Lee 16 A Story: Code Review in the Chess Software Lab

UC Berkeley, Edward Lee 17 Code Review in the Chess Software Lab A Typical Story Code review discovers that a method needs to be synchronized to ensure that multiple threads do not reverse each other’s actions. No problems had been detected in 4 years of using the code. Three days after making the change, users started reporting deadlocks caused by the new mutex. Analysis of the deadlock takes weeks, and a correction is difficult.

UC Berkeley, Edward Lee 18 What it Feels Like to Use the synchronized Keyword in Java Image “borrowed” from an Iomega advertisement for Y2K software and disk drives, Scientific American, September 1999.

UC Berkeley, Edward Lee 19 Threads, Mutexes, and Semaphores are a Terrible Basis for Concurrent Software Architectures Ad hoc composition. Yet this is the basis for RTOS-based embedded software design.

UC Berkeley, Edward Lee 20 Is There a Better Mechanism?

UC Berkeley, Edward Lee 21 Focus on Actor-Oriented Design Object orientation: class name data methods call return What flows through an object is sequential control Actor orientation: actor name data (state) ports Input data parameters Output data What flows through an object is streams of data

UC Berkeley, Edward Lee 22 Example of Actor-Oriented Design (in this case, with a visual syntax) Director from a library defines component interaction semantics Large, domain-polymorphic component library. Ptolemy II example: Key idea: The model of computation is part of the framework within which components are embedded rather than part of the components themselves. Thus, components need to declare behavioral properties. Model of Computation: Messaging schema Flow of control Concurrency Component

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

UC Berkeley, Edward Lee 24 Actor View of Producer/Consumer Components Models of Computation: push/pull continuous-time dataflow rendezvous discrete events synchronous time-driven publish/subscribe … Many actor-oriented frameworks assume a producer/consumer metaphor for component interaction.

UC Berkeley, Edward Lee 25 Actor Orientation vs. Object Orientation Object Orientation –procedural interfaces –a class is a type (static structure) –type checking for composition –separation of interface from implementation –subtyping –polymorphism Actor Orientation –concurrent interfaces –a behavior is a type –type checking for composition of behaviors –separation of behavioral interface from implementation –behavioral subtyping –behavioral polymorphism This vision of the future offers a truly practical form of verification, an extension of modern type systems. Focus on this

UC Berkeley, Edward Lee 26 Polymorphism Data polymorphism: –Add numbers (int, float, double, Complex) –Add strings (concatenation) –Add composite types (arrays, records, matrices) –Add user-defined types Behavioral polymorphism: –In dataflow, add when all connected inputs have data –In a time-triggered model, add when the clock ticks –In discrete-event, add when any connected input has data, and add in zero time –In process networks, execute an infinite loop in a thread that blocks when reading empty inputs –In CSP, execute an infinite loop that performs rendezvous on input or output –In push/pull, ports are push or pull (declared or inferred) and behave accordingly –In real-time CORBA, priorities are associated with ports and a dispatcher determines when to add By not choosing among these when defining the component, we get a huge increment in component re- usability. But how do we ensure that the component will work in all these circumstances?

UC Berkeley, Edward Lee 27 Object-Oriented Approach to Achieving Behavioral Polymorphism 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. Recall: Behavioral polymorphism is the idea that components can be defined to operate with multiple models of computation and multiple middleware frameworks.

UC Berkeley, Edward Lee 28 Behavioral Polymorphism The Object Oriented View Interface Implementation

UC Berkeley, Edward Lee 29 But What If… The component requires data at all connected input ports? The component can only perform meaningful operations on two successive inputs? The component can produce meaningful output before the input is known (enabling it to break potential deadlocks)? The component has a mutex monitor with another component (e.g. to access a common hardware resource)? None of these is expressed in the object-oriented interface definition, yet each can interfere with behavioral polymorphism.

UC Berkeley, Edward Lee 30 Behavioral Types – A Practical Approach 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 –behaviorally polymorphic

UC Berkeley, Edward Lee 31 Behavioral Type System execution interface communication interface A type signature for a consumer actor. We capture patterns of component interaction in a type system framework. We describe interaction types and component behavior using extended interface automata (de Alfaro & Henzinger) We do type checking through automata composition (detect component incompatibilities) Subtyping order is given by the alternating simulation relation, supporting behavioral polymorphism.

UC Berkeley, Edward Lee 32 Verification Via a Behavioral Type System Checking behavioral compatibility of components that are composed. Checking behavioral compatibility of components and their frameworks. Behavioral subtyping enables interface/implementation separation. Helps with the definition of behaviorally- polymorphic components.

UC Berkeley, Edward Lee 33 Enabled by Behavioral Polymorphism (1): More Re-Usable Component Libraries UML package diagram of key actor libraries included with Ptolemy II. Data polymorphic components Domain polymorphic components

UC Berkeley, Edward Lee 34 Enabled by Behavioral Polymorphism (2): Hierarchical Heterogeneity Giotto director indicates a new model of computation. Domain-polymorphic component. Domains can be nested and mixed.

UC Berkeley, Edward Lee 35 Enabled by Behavioral Polymorphism (3): Modal Models Periodic, time-driven tasks Modes (normal & faulty) Controller task

UC Berkeley, Edward Lee 36 Enabled by Behavioral Polymorphism (4): Mobile Models Model-based distributed task management: MobileModel actor accepts a StringToken containing an XML description of a model. It then executes that model on a stream of input data. PushConsumer actor receives pushed data provided via CORBA, where the data is an XML model of a signal analysis algorithm. Authors: Yang Zhao Steve Neuendorffer Xiaojun Liu Data and behavioral type safety will help make such models secure

UC Berkeley, Edward Lee 37 … And More Refinement of communication between actors –supporting hardware/software codesign –using fault tolerant bus protocols –synthesizing custom hardware –using middleware for distributed systems We are also working on expressing temporal properties in behavioral types –execution time dependencies on state –schedulability analysis

UC Berkeley, Edward Lee 38 Will Model-Based Design Yield Better Designs? Not necessarily. “Why isn’t the answer XML, or UML, or IP, or something like that?” Direct quote from a high- ranking decision maker at a large embedded systems company with global reach. The Box, Eric Owen Moss Mandating use of the wrong platform is far worse than tolerating the use of multiple platforms. Source: Contemporary California Architects, P. Jodidio, Taschen, 1995 “New” is not better than “good”

UC Berkeley, Edward Lee 39 Better Architecture is Enabled but not Guaranteed by Model-Based Design More re-usable component libraries Models of computation with time Understandable concurrency Systematic heterogeneity

UC Berkeley, Edward Lee 40 Conclusion – What to Remember Model-based design –specification using platforms with useful modeling properties Actor-oriented design –concurrent components interacting via ports Models of computation –principles of component interaction Understandable concurrency –compositional models Behavioral types –a practical approach to verification and interface definition Behavioral polymorphism –defining components for use in multiple contexts

UC Berkeley, Edward Lee 41 Desirable Modeling Properties in Actor-Oriented Design For at least some models of computation: Closer to the application level Compatibility of components with each other Compatibility of components with the framework Analyzable concurrency –Deadlock detection –Load balancing –No semaphores or mutexes Memory requirements Schedulability analysis –Timing properties –Throughput analysis –Latency analysis