Lecture 4 Component Behavioral Modeling with REMES Advanced Component-Based Software Engineering.

Slides:



Advertisements
Similar presentations
Modeling and Simulation By Lecturer: Nada Ahmed. Introduction to simulation and Modeling.
Advertisements

Seyedehmehrnaz Mireslami, Mohammad Moshirpour, Behrouz H. Far Department of Electrical and Computer Engineering University of Calgary, Canada {smiresla,
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
1 CS101 Introduction to Computing Lecture 17 Algorithms II.
1 MODULE name (parameters) “Ontology” “Program” “Properties” The NuSMV language A module can contain modules Top level: parameters less module Lower level.
Timed Automata.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 5: Process Synchronization.
UPPAAL Andreas Hadiyono Arrummaisha Adrifina Harya Iswara Aditya Wibowo Juwita Utami Putri.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Verification/Simulati on –GUI for simulation and formal verification –Simulator: Exploration of dynamic behavior Checking.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Page 1 Building Reliable Component-based Systems Chapter 13 -Components in Real-Time Systems Chapter 13 Components in Real-Time Systems.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
University of Pennsylvania 1 SDRL CHARON SDRL and GRASP University of Pennsylvania Funded by DARPA ITO.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Code Generation from CHARON Rajeev Alur, Yerang Hur, Franjo Ivancic, Jesung Kim, Insup Lee, and Oleg Sokolsky University of Pennsylvania.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Page 1, August 14, 2015 Advanced CBSE Advanced Component-Based Software Engineering Course Organization Ivica Crnkovic.
Page 1, August 14, 2015 Advanced CBSE Advanced Component-Based Software Engineering Course Organization Ivica Crnkovic.
Page 1, CBSE graduate course. Overall Description  Design and implement a “drive-by-wire"-like solution to electronically drive a vehicle  Using the.
[ §6 : 1 ] 6. Basic Methods II Overview 6.1 Models 6.2 Taxonomy 6.3 Finite State Model 6.4 State Transition Model 6.5 Dataflow Model 6.6 User Manual.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
1.eCognition Overview. 1 eCognition eCognition is a knowledge utilisation platform based on Active Knowledge Network technology eCognition covers the.
Designing a Discrete Event Simulation Tool Peter L. Jackson School of Operations Research and Industrial Engineering March 15, 2003 Cornell University.
Hardware Supported Time Synchronization in Multi-Core Architectures 林孟諭 Dept. of Electrical Engineering National Cheng Kung University Tainan, Taiwan,
GUI for development of REMES models REMES GUI group.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Page 1, CBSE graduate course Lecture 4 Component Behavioral Modeling with REMES.
Agenda Introduction Overview of White-box testing Basis path testing
By the end of this session you should be able to...
Introduction to Computer Programming Using C Session 23 - Review.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
Timed Use Case Maps Jameleddine Hassine Concordia University, Montreal, Canada URN Meeting, Ottawa, January 16-18, 2008.
Selected Topics in Software Engineering - Distributed Software Development.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Page 1, CBSE graduate course Lecture 3 CBSE in Embedded System Development.
1 Introduction to Software Engineering Lecture 1.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
Prepare by : Ihab shahtout.  Overview  To give an overview of fixed priority schedule  Scheduling and Fixed Priority Scheduling.
Visual Basic Programming
System Design Research Lab University of Pennylvania 1/29/2002 CHARON modeling language.
Page 1, CBSE graduate course Lecture 4 Component Behavioral Modeling with REMES.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Communicating Real-Time State Machines (CRSM) State machines that communicate synchronously Unique unidirectional channels are used for the communication.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
CS3773 Software Engineering Lecture 06 UML State Machines.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Page 1, CBSE graduate course Lecture 4 Component Behavioral Modeling with REMES.
SystemC Semantics by Actors and Reduction Techniques in Model Checking Marjan Sirjani Formal Methods Lab, ECE Dept. University of Tehran, Iran MoCC 2008.
Topics Introduction to Repetition Structures
Formal Methods in Software Engineering
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Computer Programming.
Model Checking for an Executable Subset of UML
Presented By: Darlene Banta
Presentation transcript:

Lecture 4 Component Behavioral Modeling with REMES Advanced Component-Based Software Engineering

Agenda  Background and Motivation  REMES  Connecting REMES and ProCom  REMES Editor  Lab2 Advanced Component-Based Software Engineering

 Embedded systems  “Computer that does not look like computer”  Part of a larger system or machine  Typical requirements  Low cost  Constantly react to changes in the environment  Dependability  Compute certain results in real-time without delay  Limited available resources  Manage the growing complexity of software  Need for solutions that  Alleviate software complexity  Ensure predictable system behavior Background and Motivation Advanced Component-Based Software Engineering

C2C2 {R C2 } C3C3 {R C3 } CnCn {R Cn } {R B } > {R C1 } C1C1 {R C1 } B {R B Repository Background and Motivation Advanced Component-Based Software Engineering

 Challenge construct component model for ES design enriched with behavioral information support predictable system development and as such guarantee absence or presence of certain properties prediction methods should be available already at early design stage bottom-up  resource analysis can guide the selection of components top-down  resource analysis could help in correct decomposition of system’s specification Background and Motivation Advanced Component-Based Software Engineering

REMES behavioural language Advanced Component-Based Software Engineering

Resource ClassCharacteristics A (memory) discrete c´=0 or c’=inf referable B (CPU, bandwidth) discrete c’=0 or c´=inf non-referable C (CPU, energy) continuous c´=n, n in Z - {-inf,+inf} non-referable  Resource consumption- annotated with c; accumulated resource usage up to some time point  c’ - rate of consumption over time  Classification of resources: discrete or continuous nature referable or non-referable Classification of resources Advanced Component-Based Software Engineering

REMES – REsource Model for Embedded Systems  Behavioral model intended to describe the resource-wise behavior of interacting embedded components  Behavior of a component is a mode  Modes atomic composite Advanced Component-Based Software Engineering

REMES - modes  Mode M (SM, V, In, Out, E, RC, Inv, CC) Control points In: (Init point, Entry point), Out: (Write point, Exit point) Variables (V) (boolean, natural, integer, array, clock, history variables) Actions over edges (E) discrete A (guard, body) delay/timed Constraints set of invariants (Inv) set of res. diff equations (RC) Conditional connectors (CC) Nested submodes (SM) Entry Point Init Point C M submode1 submode2 submode3 Exit Point Write Point (guard, body) Inv1 RC1

C Control Init Entry Exit login=userdata cpu’=2 t<=30, Credentials Air_conditioning Example1 - internal behaviour of Control component in REMES logged==true logged==false cpu’=10 eng’=2 mem+=30, t:=0 Initialization resource mem:T A ; resource cpu:T C ; resource eng:T C ; t:clock turnoff==true

Analysing REMES based ES  REMES modes have access to R 1,…, R n  Goal analyze various scenarios of system’s resource usage  Analysis model for REMES r tot total accumulated resource consumption for R 1,…, R n r 1,…, r n accumulated consumption of R 1,…, R n w 1,…, w n relative importance of r 1,…, r n Advanced Component-Based Software Engineering

12 Analysing REMES based ES  Translating REMES into Priced timed automata or Multi PTA TA + costs on locations and edges REMES atomic submode  PTA location(s) REMES discrete edge  PTA edge REMES discrete step  PTA transition REMES conditional connectors are removed Automated translation  Types of analysis Feasibility Optimal/ worst-case resource consumption Trade-off analysis

PTA waits in location Start for system startup Init, Entry, Write and Exit locations created Transformation of Submode2 Internal execution rounds - PTA edge connecting locations Write and Submode1 Synchronization with other components Analysing REMES based ES

Model Checker (Uppaal Cora) PTA / MPTA resource-aware property error trace yes Assumptions from hardware abstraction: Memory budget, Bandwidth, Cost mode l Analysing REMES based ES Advanced Component-Based Software Engineering

ProCom component REMES model of component behavior Attribute Framework  Managing and integrating properties  Each ProCom component has an attribute with a complex value : Reference to a REMES model file Reference to a mapping file between ProCom and REMES interfaces Analysing REMES based ES Advanced Component-Based Software Engineering

 ProSave level trigger port  REMES interface boolean variable data port  REMES interface data variable  ProSys level  input message port  REMES read boolean variable and REMES read data variable of the same type as the port type  output message port  REMES write boolean variable and REMES write data variable Connecting ProCom and REMES Advanced Component-Based Software Engineering

Example2 - Temperature control system core is heated at some given rate core temperature should be maintained between a minimum and a maximum when max temp. is reached, designed to be cooled down by inserting one of two existing rods, which cool at different rates R1 or R2 a rod is available again after T time units Advanced Component-Based Software Engineering

 Model of the architecture and behaviour System modeled with 3 ProSave components Each component has a behavior depicted by a REMES mode Assume memory and cpu usage Formal analysis ProCom + REMES  PTA Example2 - Temperature control system Advanced Component-Based Software Engineering

Example2 - Temperature control system Advanced Component-Based Software Engineering

Example2 - Temperature control system Advanced Component-Based Software Engineering

Example2 - Temperature control system – Analysis in Uppaal Just for illustration!

Advanced Component-Based Software Engineering

REMES tool-chain Advanced Component-Based Software Engineering

 The REMES tool-chain consists of REMES model editor REMES simulator to test timing and resource behavior prior to formal analysis Automated transformation from REMES to PTA for formal analysis and UppaalLite editor  Integrated in PRIDE REMES tool-chain Advanced Component-Based Software Engineering

REMES tool-chain

Page 26, CBSE graduate course

REMES editor Advanced Component-Based Software Engineering

Page 28, CBSE graduate course

REMES language elements Composite mode  Compartments  for declaration variables, resources, constants   Advanced Component-Based Software Engineering

REMES language elements    Submodes  Invariant – time is allowed to pass until invariant is violated Non-lazy – does not contain any.invariant, Time is allowed to pass in a non-lazy mode until at least one of the guards of the outgoing discrete actions evaluates to true Urgent – time is not allowed to pass (invariant is false) Advanced Component-Based Software Engineering

REMES language elements     Input and output  Init-, entry-, exit-, write – points (local exit points not presented here) Advanced Component-Based Software Engineering

REMES language elements      Control flow Edges with guards and actions  Conditional connectors  Advanced Component-Based Software Engineering

Introduction to Lab2 Advanced Component-Based Software Engineering

Objectives  Learn how to model behaviors of component-based embedded systems Model internal behavior of components Think about modes, actions, resources, invariants etc. Get familiar with the REMES editor Advanced Component-Based Software Engineering

Expected Output  Same system as for Lab1 Archive files only (no folder) named ”Lab2_X.zip” where X is student name  1 report explaining your design choices  The Project folder for your system  Submission to  Individual work And nothing else!  Do not copy solutions from others ! Advanced Component-Based Software Engineering

Deadline  Thursday 21 February :59 (FIRM Deadline!)  If you submit your work late, you fail one submission opportunity  Remember Lab2 needs to be aproved for passing the course

The assignment  In 2 exercices Modelling behavior of simple Touch-Lamp system Modeling behavior of an abstracted version of a Baking Conveyor System Advanced Component-Based Software Engineering

Exercise 1- Touch Lamp System  Lamp has two modes of light operation Dim – 1 touch Bright – 2 successive touches within 15 sec Advanced Component-Based Software Engineering

Exercise 2- Industrial Baking Conveyor System  Main parts Oven Conveyor Belt Orchestrator Advanced Component-Based Software Engineering

Usage Scenario Orchestrator Oven Conveyor Belt Oven monitors the temperature and humidity and determines 1. if the heat should be increased or decreased and 2. displays the status of the cookies Carries the cookies from point A to point B in passing by the oven Ensure that the conveyor belt and the oven are working together Advanced Component-Based Software Engineering

Exercise 1 and 2- What do you need to do?  To model the behaviour of the system components Lamp component for Exercise 1 Orchestrator, Oven and Conveyor Belt component for Exercise 2  Tips Start by understanding REMES  think about different types of modes that exist in REMES Use pen and paper before using REMES editor Once you are sure of your solution. Model it in the REMES editor Advanced Component-Based Software Engineering