Real-Time System Requirements & Design Specs Shaw - Chapters 3 & 4 Homework #2: 3.3.1, 3.4.1, Add Error states to Fig 4.1 Lecture 4/17.

Slides:



Advertisements
Similar presentations
The Quest for Correctness Joseph Sifakis VERIMAG Laboratory 2nd Sogeti Testing Academy April 29th 2009.
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
1 Model checking. 2 And now... the system How do we model a reactive system with an automaton ? It is convenient to model systems with Transition systems.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Verification of Hybrid Systems An Assessment of Current Techniques Holly Bowen.
Software Requirements Engineering
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
1 Formal Methods in SE Qaisar Javaid Assistant Professor Lecture 05.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Winter 2007SEG2101 Chapter 41 Chapter 4 SDL – Structure and Behavior.
Scheduling for Embedded Real-Time Systems Amit Mahajan and Haibo.
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
FunState – An Internal Design Representation for Codesign A model that enables representations of different types of system components. Mixture of functional.
Models of Computation for Embedded System Design Alvise Bonivento.
Describing Syntax and Semantics
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
The Model Checker SPIN Written by Gerard J. Holzmann Presented by Chris Jensen.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Instructore: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Concurrent and.
EENG 1920 Chapter 1 The Engineering Design Process 1.
From requirements to specification Specification is a refinement of requirements Can be included together as Software Requirements Specifications (SRS)
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Institute e-Austria in Timisoara 1 Author: prep. eng. Calin Jebelean Verification of Communication Protocols using SDL ( )
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
Joseph Cordina 1/11 The Use of Model-Checking for the Verification of Concurrent Algorithms Joseph Cordina Department of C.S.&A.I.
Sept COMP60611 Fundamentals of Parallel and Distributed Systems Lecture 15 More Advanced Program Properties: Temporal logic and jSpin John Gurd,
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
1 Introduction to Software Engineering Lecture 1.
CSC 395 – Software Engineering Lecture 28: Classical Analysis -or- Do You Really Want to Do That?
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
Dynamic software reconfiguration using control supervisors Ugo Buy 13 June 2005.
Algorithms & Flowchart
9-1 © Prentice Hall, 2007 Chapter 9: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
Communicating Real-Time State Machines (CRSM) State machines that communicate synchronously Unique unidirectional channels are used for the communication.
Petri Nets Invented by Carl Adam Petri in 1962 Concurrent systems with timing problems  Synchronization, race problem, deadlock A petri net consists of.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
Object Oriented Discrete-Event Simulation CS4730 Fall 2010 Jose M. Garrido Department of Computer Science and Information Systems Kennesaw State University.
ECE-C662 Lecture 2 Prawat Nagvajara
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering Lecture 11: System Analysis.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
7-1 © Prentice Hall, 2007 Topic 7: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Model Checking Lecture 1. Model checking, narrowly interpreted: Decision procedures for checking if a given Kripke structure is a model for a given formula.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Formal Approaches to Swarm Technologies Technical Briefing Christopher Rouff, Amy Vanderbilt - SAIC Walt Truszkowski, James Rash - NASA GSFC, Code 588.
Introduction to distributed systems description relation to practice variables and communication primitives instructions states, actions and programs synchrony.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
From requirements to specification Specification is a refinement of requirements Can be included together as Software Requirements Specifications (SRS)
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini VII. System Specification (I)
Analysis Classes Unit 5.
Algorithms and Problem Solving
An Overview of Requirements Engineering Tools and Methodologies*
Software Design Methodology
IP – Based Design Methodology
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Algorithms and Problem Solving
Essential Issues in Codesign: Models
COMP60621 Designing for Parallelism
Presentation transcript:

Real-Time System Requirements & Design Specs Shaw - Chapters 3 & 4 Homework #2: 3.3.1, 3.4.1, Add Error states to Fig 4.1 Lecture 4/17

The Problem We need to be able to describe a system unambiguously and prove that it can meet desired criteria before we begin the design. Unfortunately the reality is that for almost all practical systems, the complexity and the scale of the system makes this extremely difficult if not virtually impossible, at least with today’s tools and methodologies. Concurrency can easily produce race conditions. Mutual exclusion solutions can produce deadlocks or starvation. Etc.

Practical Approaches? Behaviors for many scenarios of interest can be demonstrated through simulation or prototyping. Executable “specifications” can be useful for clarifying or refining requirements and designs. Bottom up approaches often allow designs to evolve through increasingly adding complexity to proven simplified models and subsystems.

Imperative vs Declarative Specs Imperative specs specify system behaviors in terms of algorithmic descriptions. These can be visualized and translated into computer procedures and prototypes, supporting rapid prototyping.

Imperative vs Declarative Specs Declarative descriptions specify properties that must be satisfied by the system. It is usually easier to prove properties with these descriptions, but more difficult to use them to generate designs. Declarative descriptions specify properties that must be satisfies by the system. It is usually easier to prove properties with these descriptions, but more difficult to use them to generate designs.

Some Approaches Shaw Explores Data Flow Diagrams: Provides an attractive visualization which can be easily developed and evolved by a team. Tabular Languages: Provides a way to express and communicate a lot of requirements in a comprehensive and complete process. State Machines: State machines have proven to be a language of choice for many traditional modeling and design projects. A number of adaptations have been proposed and used effectively in real-time system designs.

Some Approaches Shaw Explores Formal Methods: Sophisticated mathematical techniques can provide powerful description and verification of systems, for example: –Regular expressions –Propositional Logic –Predicates –Temporal Logic

Data Flow Diagrams They are based on a familiar tool They provide an attractive visualization which can be easily developed and evolved by a team.

Data Flow Diagrams (DFD)

DFD Example

DFD Deficiencies Lack of control information Lack of timing Lack of scheduling specification

Tabular languages They provide a way to express and communicate a lot of requirements in a comprehensive and complete process. They nicely tabulate Conditions and Actions They are easily expanded, partitioned, and simplified.

Tabular Languages

Example of Tabular Language

Example Tabular Language

Tabular Language Deficiencies Timing and logical constraints are listed separately There does not appear to be an obvious way to include concurrency and timing in an effective way.

Finite State Machines State machines have proven to be a language of choice for many traditional modeling and design projects. A number of adaptations have been proposed and used effectively in real-time system designs. We will look at one approach Communicating Real-Time State Machines (CRSM)

FSM Example

Allowing Outputs in FSM

Chapter 4 Systems of State Machines Communicating Real-Time State Machines An attempt to create a complete executable design specification language Time is integral to the language

CRSMs CSRMs are state machine with guarded commands for transitions, synchronous communicating senders and receivers, and explicit time restrictions. A complete CSRM system contains both a simulation of the internal system and its external environment. They are an extension of Tony Hoare’s classical Communicating Sequential Processes

Terminology Denotes the timing constraint, i.e. the lower t min and upper t max bounds on time allowed during the transition. Then for an execution or deadline d, 0 <= t min <= d <= t max

Terminology Communication: Communicating Channel name: channel Sending a message over channel: channel(message)! Receiving a message through channel: channel(target)?  Effect is equivalent to an assignment: target := message

CRSM Timing M1 (sender) enters state U at time Tu, and M2 (Receiver) enters state X at Tx : I/O must occur between Tu+a and Tx+d or CRSM will transition to an error state

Bounded Buffer Example

Mouse Click Example