CSCI1600: Embedded and Real Time Software Lecture 10: Modeling IV: Compositions of State Machines Steven Reiss, Fall 2015.

Slides:



Advertisements
Similar presentations
Embedded System, A Brief Introduction
Advertisements

State Machines An approach to assembler coding. Intro State Machines are an integral part of software programming. State machines make code more efficient,
Modeling Software Systems Lecture 2 Book: Chapter 4.
VHDL Structural Architecture ENG241 Week #5 1. Fall 2012ENG241/Digital Design2 VHDL Design Styles Components and interconnects structural VHDL Design.
CS 290C: Formal Models for Web Software Lecture 4: Implementing and Verifying Statecharts Specifications Using the Spin Model Checker Instructor: Tevfik.
Semantic Translation of Simulink/Stateflow Models to Hybrid Automata using Graph Transformations A. Agarwal, Gy. Simon, G. Karsai ISIS, Vanderbilt University.
Conformance Simulation Relation ( ) Let and be two automata over the same alphabet simulates () if there exists a simulation relation such that Note that.
Software modeling for embedded systems: static and dynamic behavior.
Basic Register A register is a sequential component that can store multiple bits.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Ch.2 Part A: Requirements, State Charts EECE **** Embedded System Design.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
Lesson 3-5: Solving Equations with the Variable on Each Side.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
CSCI1600: Embedded and Real Time Software Lecture 12: Modeling V: Control Systems and Feedback Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 4: Introduction to the Arduino Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 7: Modeling II: Discrete Systems Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 8: Modeling III: Hybrid Systems Steven Reiss, Fall 2015.
Verification & Validation By: Amir Masoud Gharehbaghi
CSCI1600: Embedded and Real Time Software Lecture 2: Introduction Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 11: Modeling IV: Concurrency Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 6: Modeling I: Continuous Systems Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 14: Input/Output II Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 16: Advanced Programming with I/O Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 5: Arduino Programming Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 15: Advanced Programming Concepts Steven Reiss, Fall 2015.
Interacting Finite State Machine Design Shaun Murphy.
CSCI1600: Embedded and Real Time Software Lecture 17: Concurrent Programming Steven Reiss, Fall 2015.
Sub-fields of computer science. Sub-fields of computer science.
Multiplication and Division of Powers
Programming Assignment #1
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
IS301 – Software Engineering V:
CSCI1600: Embedded and Real Time Software
Fei Li Jinjun Xiong University of Wisconsin-Madison
Reducibility The Chinese University of Hong Kong Fall 2010
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
STATE MACHINE AND CONCURRENT PROCESS MODEL
CSCI1600: Embedded and Real Time Software
STATE MACHINE AND CONCURRENT
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
Presentation transcript:

CSCI1600: Embedded and Real Time Software Lecture 10: Modeling IV: Compositions of State Machines Steven Reiss, Fall 2015

Modeling Tasks  We can model individual tasks using FSMs  Extended FSMs, Timed automata, …  Hybrid automata to reflect state of outside world  This is sufficient for coding  We need to model the overall application  We need this to prove properties of the system  We need this to understand overall system behavior  What was in chapter 5

Statecharts  We saw this last week  Lets look at it in more detail  Lets be able to understand it formally  Map to a single FSM

Example : Concurrent Machines

Example: concurrency

Example: Concurrency

Example : communicating tasks

Example: hierarchical

Example: Hierarchical

Example

 Tic-Tac-Toe

Issues  Handling concurrency  The FSM is in multiple states  What does this mean formally (single FSA)  What does this mean in a statechart  What do you do with an input  How is this implemented  What if the results are contradictory (set x = 1, set x = 0)  What does this mean for your implementation

Mapping to Code  Direct sequential coding  Determine state from various conditions  Act accordingly  Allows common operations for multiple states  Explicit state variable  switch (state) { … }  Table-driven  Approximate the state machine

Homework  Read 6.1, 6.2, 6.4