Modeling and Visualization of CFSM Networks in JavaTime Michael Shilman James Shin Young EE249 Project Presentation December 8, 1998.

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

Database System Concepts and Architecture
Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly.
Component Oriented Programming 1 Chapter 2 Theory of Components.
Programming Paradigms and languages
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
 An object-oriented program’s structure often bears little resemblance to its code structure.  The code structure is frozen at compile-time; it consists.
Object-Oriented Analysis and Design
Esterel Overview Roberto Passerone ee249 discussion section.
CS220 Software Development Lecture: Multi-threading A. O’Riordan, 2009.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Why Behavioral Wait statement Signal Timing Examples of Behavioral Descriptions –ROM.
AR vs. CFSM Abdallah Tabbara. CFSM Overview 4 CFSM has: –a finite state machine part –a data computation part –a locally synchronous behavior transitions.
Software Engineering, COMP201 Slide 1 Protocol Engineering Protocol Specification using CFSM model Lecture 30.
Models of Computation for Embedded System Design Alvise Bonivento.
4.7.1 Thread Signal Delivery Two types of signals –Synchronous: Occur as a direct result of program execution Should be delivered to currently executing.
Mahapatra-A&M-Sprong'021 Co-design Finite State Machines Many slides of this lecture are borrowed from Margarida Jacome.
Chapter 1 Program Design
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
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.
SE-565 Software System Requirements More UML Diagrams.
1 System-Level Description Languages Andrew Mihal EE249 Fall 1999 Project Presentation 4 December 1999.
Course Instructor: Aisha Azeem
Architectural Design.
From Scenic to SystemC Mehrdad Abutalebi. Outline Introducing Scenic Scenic Implementation Modeling Reactivity A Simple example From Scenic to SystemC.
 2002 Prentice Hall. All rights reserved. 1 Introduction to Visual Basic.NET,.NET Framework and Visual Studio.NET Outline 1.7Introduction to Visual Basic.NET.
The Old World Meets the New: Utilizing Java Technology to Revitalize and Enhance NASA Scientific Legacy Code Michael D. Elder Furman University Hayden.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Silberschatz, Galvin and Gagne ©2011Operating System Concepts Essentials – 8 th Edition Chapter 4: Threads.
An Introduction to Software Architecture
Speaking Bluntly about SharpHDL: Some Old Stuff and Some Other Proposed Future Extensions Gordon J. Pace & Christine Vella Synchron’05 Malta, November.
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.
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
Java Threads 11 Threading and Concurrent Programming in Java Introduction and Definitions D.W. Denbo Introduction and Definitions D.W. Denbo.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
Selected Topics in Software Engineering - Distributed Software Development.
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Object-Oriented Design CSC 212. Announcements This course is speeding up and we are starting new material. Please see me if you feel this is going too.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Design Languages in 2010 Chess: Center for Hybrid and Embedded Software Systems Edward A. Lee Professor UC Berkeley Panel Position Statement Forum on Design.
Celluloid An interactive media sequencing language.
Threads II IS Outline  Quiz  Thread review  Stopping a thread  java.util.Timer  Swing threads javax.swing.Timer  ProgressMonitor.
© S. Ramesh / Kavi Arya / Krithi Ramamritham 1 IT-606 Embedded Systems (Software ) S. Ramesh Kavi Arya Krithi Ramamritham KReSIT/ IIT Bombay.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Design-Directed Programming Martin Rinard Daniel Jackson MIT Laboratory for Computer Science.
Third International Workshop on Networked Appliance 2001 SONA: Applying Mobile Agent to Networked Appliance Control S.Aoki, S.Makino, T.Okoshi J.Nakazawa.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Online Performance Analysis and Visualization of Large-Scale Parallel Applications Kai Li, Allen D. Malony, Sameer Shende, Robert Bell Performance Research.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Kai Li, Allen D. Malony, Sameer Shende, Robert Bell
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
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
An Introduction to Software Architecture
Criteria for rapid prototyping
Presentation transcript:

Modeling and Visualization of CFSM Networks in JavaTime Michael Shilman James Shin Young EE249 Project Presentation December 8, 1998

Outline Introduction JavaTime Components Abstract Reactive Model Modeling of CFSM’s AR and CFSM JavaTime Packages Visualization of CFSM Networks Design Example - Seatbelt Controller Conclusions

Introduction The JavaTime Project –Collection of tools, libraries, and methodologies for embedded systems design. –Use Java TM, enhanced via packages, as textual design input syntax. –Graphical input syntax and visualization infrastructure. –Common model for system representation Goals for EE249 –Incorporate CFSM model into JavaTime environment. –Describe, visualize, and execute CFSM networks on standard Java platforms.

JavaTime Component Package Components –Central design entities. Ports –Access points for connecting components. Connections –Relation between ports. Containers –Hierarchical nesting of components and containers

The Abstract Reactive Model Components react to all input events. Events are changes in signal values. Fully asynchronous communication. –No events happen “at the same time.” Networks for abstraction –Temporal and structural abstraction –Fundamental-mode asynchronous assumption. –All internal signals converge to a stable value before output is emitted. Used in JavaTime as building block for describing other models.

The javatime.jcp.ar Package ARComponent –User specifies behavior by defining the react(ARPort p, Object v) method. ARNetwork –Executes components contained within according to semantics of AR model. ARThread –Enables Esterel-style description of component behavior. public class Foo extends ARComponent { public void react() { // do something }

Modeling CFSM’s in AR CFSM’s are modeled as AR components with two implicit ports. –Activate input, runnable output Transitions of CFSM’s controlled by scheduler component.

The javatime.jcp.cfsm Package Implemented using the javatime.jcp.ar package. CFSM –User specifies behavior by defining transition() method. –eventPresent(Input I) method tests for presence of events. CFSMNet –Contains a scheduler component responsible for activating CFSM’s. CFSMThread –Esterel-style input for CFSM’s. public class Bar extends CFSM { public void transition() { // do something }

Esterel-style Programs in Java Esterel provides compact syntax for synchronous reactive programming. –await, do watching, ||, etc. Construct similar conveniences in Java. –Provided in ARThread, CFSMThread classes. –await, awaitWatching, methods. –Uses standard Java threads, monitors to implement Esterel-like facilities. –Maintains compatibility with standard Java syntax, tools, and execution platforms. public class Blah extends ARThread { public void run() { while(true) { // do something await(); }

CFSM Visualization Focus on infrastructure rather than application –Make it easy to construct visualizations, rather than trying to pre-package all possible visualizations. –Able to develop in parallel with modeling effort. Our goal: view, edit, and animate component networks at different levels of abstraction

Visualization Probes Components which sample signals to construct visualizations. –Modular and easy to write; drag and drop just like any other component. –Probe to modify network display as system executes, via protocol-based API. Image probes at different stages in a JPEG decoder

Animation and Instrumentation Listener interface allows monitoring of execution state. Instrumentation by procedural insertion of probes. –Simple traversal of JCP design hierarchy. Code instrumentation using JavaTime AST tools. –Create extra output ports to communicate instrumentation results.

Visualization Protocols Software protocols for reusable visualization surfaces. –Support for incremental update. –Read/modification capabilities. Sample protocols:

Anatomy of a Protocol Filters: - scheduler, activate/runnable ports - visualization probes Filters: - scheduler, activate/runnable ports - visualization probes Multiple views: - standard - sketch -... Multiple views: - standard - sketch -...

Multi-Syntax Editing Different visual syntax for different models of computation. –Illustrate relationship between different models. CFSM ViewAR View

Design Example Implemented the POLIS seatbelt controller example using javatime.jcp.cfsm package. Original design –CFSM behavior described with two Esterel modules. –CFSM network described in Ptolemy. Ported design –CFSM’s described as Java classes. –Network also a Java class.

Design Example - Esterel module belt_control: input reset, key_on, key_off, belt_on, end_5, end_10; output alarm(boolean), start_timer; loop do emit alarm(false); every key_on do do emit start_timer; await end_5; emit alarm(true); await end_10; watching [key_off or belt_on]; emit alarm(false); end watching reset end.

Design Example - JavaTime public void run() { Condition watch = new Condition() { public boolean isTrue() { return (eventPresent(_reset) || eventPresent(_keyOff) || eventPresent(_beltOn)); } }; while (true) { try { emit(_alarm,Boolean.FALSE); awaitWatching(_reset); if (eventPresent(_keyOn)) { try { emit(_startTimer); awaitWatching(_end5, watch); emit(_alarm,Boolean.TRUE); awaitWatching(_end10, watch); } catch (WatchException e) { if (eventPresent(_reset)) { throw e; } emit(_alarm,Boolean.FALSE); } } catch (WatchException e) {} }

Conclusions Java as an input syntax for reactive systems. –Resulting specification not as concise as Esterel... –…but provides compatibility with standard Java tools. Programming language “extensions” as packages. –Extends utility of a language without compromising compatibility. –Avoid high overhead of new language development; a good option for niche domains. Relationship between AR and CFSM models. –CFSM networks can be modeled as AR systems. –The reverse is probably also true.

More Conclusions Visual editing and animation of systems –Multi-syntax editing reveals relationship between models of computation. –Software protocols enable rapid development of interactive visualizations. –Visualization probes simplify user-level construction of visualizations.