Embedded Real-Time Systems (TI-IRTS) State Machine Implementation

Size: px
Start display at page:

Download "Embedded Real-Time Systems (TI-IRTS) State Machine Implementation"

Transcription

1 Embedded Real-Time Systems (TI-IRTS) State Machine Implementation Version:

2 Agenda STM notation and example Five state machine implementation techniques: 1. Switch based 2. Table driven implementation 3. GoF State Pattern (separate slides) Case tool STM generation Slide 2

3 UML State Chart Notation Class with State Machine State_0 event1(parameter1)[guard1]/action_1 State_1 entry/ action_2 event2/ action_3 do/ activity_1 exit/ action_4 +event1(parameter1) +event2() -entry() -exit() -action_1() -action_2() -action_3() -action_4() -activity() (task/thread) Slide 3

4 Two State Machine Types Mealy Machine Moore Machine IDLE IDLE start / start motor stop / stop motor start stop RUNNING RUNNING do/ motor running Slide 4

5 Example: Infusion Pump as a Mealy Machine /start_alarm Alarm alarmacknowledged / stopalarm stop / stopinfusion Infusion Inactive clear / cleartotal start [door_closed ] / startinfusion /stopinfusion; startalarm Infusion Active alarmdetected dooropened Slide 5

6 Example: Infusion Pump as a Moore Machine Alarm do/ givealarm alarmacknowledged Infusion Inactive clear / cleartotal stop start [doorclosed] Infusion Active do/ infusemedicine alarmdetected dooropened Slide 6

7 1. Switch Based Implementation (1) InfusionPumpControl -currentstate: STATES +handleevent(event: EVENTS) 1 1 pipump Infusion Pump main() // Mealy implementation InfusionPump infpump; InfusionPumpControl ipumpcontrol(&infpump); EVENTS event; while(forever) event = readevent(); ipumpcontrol.handleevent(event); Slide 7

8 Switch Based Implementation (2) class InfusionPumpControl public: InfusionPumpControl(InfusionPump* pip) pipump= pip; currentstate= ALARM; startalarm(); void handleevent(events event); private: STATES currentstate; InfusionPump* pipump; startalarm(); stopalarm(); cleartotal(); Slide 8

9 Switch Based Implementation (3) void InfusionPumpControl::handleEvent(Events event) switch (currentstate) case ALARM: if (event == ALARM_ACKNOWLEDGED) stopalarm(); currentstate = INFUSION_INACTIVE; break; case INFUSION_INACTIVE: if (event == CLEAR) cleartotal(); else if ((event == START) && doorclosed()) // Guarded transition pipump->startinfusion(); currentstate = INFUSION_ACTIVE; break; Slide 9

10 Discussion of Switch-based Implementation Advantages: Very easy and straightforward to implement Easy to implement guarded transitions and entry/exit actions Disadvantages: Problem with event parameters The logic and the behavior are tightly interconnected For larger state machines: the nested switch/case statements becomes very difficult to read and modify Recommendation: Use it only, for small and simple state machines Slide 10

11 2. State-Event Table Implementation Event1 Event2 Event3. State1 action1 State2 - action5 State3 State2 - action3 - action6 State1 State3 action2 State1 action4 State2 - New state Slide 11

12 Infusion Pump State-Event Table Notice start AND stop alarm alarmdetected doorclosed Acknowledged OR dooropened stopalarm ALARM X X X INFUSION INACTIVE start INFUSION infusion INACTIVE X X X INFUSION ACTIVE stop startalarm, INFUSION X Infusion stopinfusion ACTIVE X INFUSION ALARM INACTIVE clear X clear Total X X X represents don't cares Slide 12

13 State-Event Table Implementation (1) InfusionPumpControl -statetable +handleevent(event) -preprocessevent(event) -executeaction(actionno) 1 actionno= handleevent(event) StateTableMachine -actualstate +handleevent(event: int): int +getstate(): int class InfusionPumpControl static int[ ] statetable = /* EVENTS E1 E2 E3 E4 E5 */ /* ALARM 0 */ NO,NO, NO,NO, A1,1, NO,NO, NO,NO, /* INF_INA 1 */ A2, 2, NO,NO, NO,NO, NO,NO, A3,NO, /* INF_ACT 2 */ NO,NO, A4, 1, NO,NO, A5, 0, NO,NO ; Slide 13

14 State-Event Table Implementation (2) main() int eventno, actionno; InfusionPumpControl ipumpcontrol; while ((eventno=getevent())!= END_PROGRAM) ipumpcontrol.handleevent(eventno); Slide 14

15 State-Event Table Implementation (3) InfusionPumpControl::InfusionPumpControl() pstm = new statetablemachine( statetable,noofevents, ALARM); startalarm(); // call initial action InfusionPumpControl::handleEvent(int eventno) int pevent= preprocessevent(eventno); int actionno= pstm->handleevent(pevent); executeaction(actionno); Slide 15

16 State-Event Table Implementation (4) StateTableMachine::StateTableMachine(int[] _states, int maxevent, int initstate) nofevents = maxevent; states = _states; actualstate = initstate; int StateTableMachine:: handleevent(int eventno) int index = ((actualstate * nofevents) + eventno) * 2; // look for a state transition if (states[index+1]!= State.NO) actualstate = states[index+1]; // return action return (states[index]); int StateTableMachine:: getstate() return actualstate; Slide 16

17 State-Event Table Implementation (5) int InfusionPumpControl::preProcessEvent(int inevent) switch (inevent) case START: if (doorclosed()) // GUARDED TRANSITION return E1; break; case STOP: return E2; break; case ALARM_ACKNOWLEDGED: return E3; break; case ALARM_DETECTED: case DOOR_OPENED: return E4; break; case CLEAR: return E5; break; default: return NO_EVENT; return NO_EVENT; Slide 17

18 State-Event Table Implementation (6) void InfusionPumpController::executeAction(int actionno) switch (actionno) case NO: cout << "NO action defined in ; break; case A1: cout << "A1: stopalarm; new "; break; case A2: cout << "A2: startinfusion; new "; break; case A3: cout << "A3: cleartotal; new "; break; case A4: cout << A4: stopinfusion; new "; break; case A5: cout << A5: startalarm, stopinfusion; new "; break; default: cout << "undefined action in ; cout << "state = " << pstm->getstate()); Slide 18

19 State-Event Table Implementation (7) Example with guarded transition internal events start stop alarm alarm clear OK NOT_ Acknowled. Det.+xx OK stopalarm ALARM X X X X INFUSION INACTIVE check_ clear INFUSION for_start Total INACTIVE X X X TRANSIT. X STATE X X X X start TRANSI- Infusion X TION- X X X X X STATE INFUSION INFUSION ACTIVE INACTIVE stop stop INFUSION X Infusion Infusion ACTIVE X startal. X X X INFUSION INACTIVE ALARM Slide 19

20 State-Event Table Implementation (8) / start_alarm Alarm alarmacknowledged / stopalarm Special: Transition state NOT_OK Infusion Inactive start/ checkforstart clear / cleartotal /stopinfusion; startalarm stop / stopinfusion OK/ startinfusion Infusion Active alarmdetected dooropened Slide 20

21 Example with a Specialized State M. (1) Infusion Pump Control StateTableMachine +handleevent(int eventno) preprocessing eventtabel (cmdeventtable) as an extra constructor parameter PreprocessingStateTableMachine PreprocessingStateTableMachine( ) +handleevent(int eventno) Slide 21

22 Example with a Specialized State M. (2) static int[] cmdeventtable = START, E0, STOP, E1, ALARM_ACKNOWLEDGED, E2, ALARM_DETECTED, E3, DOOR_OPENED, E3, CLEAR, E4, OK, E5, NOT_OK, E6, END_OF_TABLE, NO_EVENT, ; InfusionPumpControl::InfusionPumpControl() // call of constructor with cmdeventtable pstm = new PreProcessingStateTableMachine( statetable,noofevents,alarm,cmdeventtable); Slide 22

23 Example with a Specialized State M. (3) int PreProcessingStateTableMachine:: handleevent(int actualeventno) int i=0; while ((cmdevent[i]!= END_OF_TABLE) && (cmdevent[i]!= actualeventno)) i += 2; if (cmdevent[i]!= END_OF_TABLE) return StateTableMachine::handleEvent( cmdevent[i+1]); else return NO; // NO= end of table Slide 23

24 Example with a Specialized State M. (4) int InfusionPumpControl::executeAction(int actionno) switch (actionno)... case A6: // check_for_start return (doorclosed()? OK : NOT_OK); break; default: return NO_EVENT; void InfusionPumpControl:: handleexternalevent(int inevent) while (inevent!= NO_EVENT) inevent = executeaction(pstm->handleevent(inevent)); Slide 24

25 Discussion of State-Event Table Implementation Disadvantages The events should be preprocessed, to consecutive constants, before table lookup Guarded transitions requires extra transition state plus internal events Difficult to implement hierarchic state machines Advantages if the state machine is specified as a state-event table: Easy to implement and verify The StateTableMachine can be a general utility class Recommendations: Use it for larger and flat state machines, with no or only few guarded transition Slide 25

26 3. State Pattern (GoF) Implementation See separate GoF State Pattern Slide Presentation Slide 26

27 Case tool STM Generations A few tools can automatically generate code for state machines: Visual State (IAR) Rhapsody (IBM (Telelogic)) Code generation for two different strategies supported (switch based or state pattern based) Slide 27

Embedded Real-Time Systems (TI-IRTS) GoF State Pattern a Behavioral Pattern

Embedded Real-Time Systems (TI-IRTS) GoF State Pattern a Behavioral Pattern Embedded Real-Time Systems (TI-IRTS) GoF State Pattern a Behavioral Pattern Version: 5-2-2010 State Pattern Behavioral Intent: Allow an object to alter its behavior when its internal state changes. The

More information

How To Understand The Dependency Inversion Principle (Dip)

How To Understand The Dependency Inversion Principle (Dip) Embedded Real-Time Systems (TI-IRTS) General Design Principles 1 DIP The Dependency Inversion Principle Version: 22-2-2010 Dependency Inversion principle (DIP) DIP: A. High level modules should not depend

More information

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks Designing a Home Alarm using the UML And implementing it using C++ and VxWorks M.W.Richardson I-Logix UK Ltd. [email protected] This article describes how a simple home alarm can be designed using the UML

More information

UML By Examples. 0. Introduction. 2. Unified Modeling Language. Home UML. Resources

UML By Examples. 0. Introduction. 2. Unified Modeling Language. Home UML. Resources 1 of 7 09/01/2008 7:57 UML By Examples Home UML Resources Table of Contents 1 Elevator Problem 2 Unified Modeling Language 3 Analysis 3.1 Use Case Dagram 3.2 Class Diagram 3.3 State Diagram 4 Design 4.1

More information

Integration, testing and debugging of C code together with UML-generated sources

Integration, testing and debugging of C code together with UML-generated sources Integration, testing and debugging of C code together with UML-generated sources Old C code Fig. 1: Adding tram traffic lights to a traffic intersection Introduction It will soon no longer be possible

More information

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer Generate Results. Real Models. Real Code. Real Fast. Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer Andreas Henriksson, Ericsson [email protected]

More information

Treemap by Category Visualizations. Product: IBM Cognos Active Report Area of Interest: Reporting

Treemap by Category Visualizations. Product: IBM Cognos Active Report Area of Interest: Reporting Treemap by Category Visualizations Product: IBM Cognos Active Report Area of Interest: Reporting Treemap by Category Visualizations 2 Copyright and Trademarks Licensed Materials - Property of IBM. Copyright

More information

Architecture & Design of Embedded Real-Time Systems (TI-AREM)

Architecture & Design of Embedded Real-Time Systems (TI-AREM) Architecture & Design of Embedded Real-Time Systems (TI-AREM) Architectural Design Patterns 2. Components & Connectors and Component Architecture Patterns and UML 2.0 Ports (BPD. Chapter 4. p. 184-201)

More information

Automotive System and Software Architecture

Automotive System and Software Architecture Automotive System and Software Architecture Yanja Dajsuren 2IW80 Software specification and architecture March 25, 2014 Which one has more software? Chevrolet Volt, an example modern day car Boeing 787,

More information

Singletons. The Singleton Design Pattern using Rhapsody in,c

Singletons. The Singleton Design Pattern using Rhapsody in,c Singletons Techletter Nr 3 Content What are Design Patterns? What is a Singleton? Singletons in Rhapsody in,c Singleton Classes Singleton Objects Class Functions Class Variables Extra Functions More Information

More information

A UML Documentation for an Elevator System. Distributed Embedded Systems, Fall 2000 PhD Project Report

A UML Documentation for an Elevator System. Distributed Embedded Systems, Fall 2000 PhD Project Report A UML Documentation for an Elevator System Distributed Embedded Systems, Fall 2000 PhD Project Report December 2000 A UML documentation for an elevator system. Introduction This paper is a PhD project

More information

Polymorphism. Problems with switch statement. Solution - use virtual functions (polymorphism) Polymorphism

Polymorphism. Problems with switch statement. Solution - use virtual functions (polymorphism) Polymorphism Polymorphism Problems with switch statement Programmer may forget to test all possible cases in a switch. Tracking this down can be time consuming and error prone Solution - use virtual functions (polymorphism)

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

UML for the C programming language.

UML for the C programming language. Functional-based modeling White paper June 2009 UML for the C programming language. Bruce Powel Douglass, PhD, IBM Page 2 Contents 2 Executive summary 3 FunctionalC UML profile 4 Functional development

More information

Testing high-power hydraulic pumps with NI LabVIEW (RT) and the StateChart module. Jeffrey Habets & Roger Custers www.vi-tech.nl

Testing high-power hydraulic pumps with NI LabVIEW (RT) and the StateChart module. Jeffrey Habets & Roger Custers www.vi-tech.nl Testing high-power hydraulic pumps with NI LabVIEW (RT) and the StateChart module Jeffrey Habets & Roger Custers www.vi-tech.nl Agenda Introduction to the teststand The challenge New setup system overview

More information

This presentation introduces you to the new call home feature in IBM PureApplication System V2.0.

This presentation introduces you to the new call home feature in IBM PureApplication System V2.0. This presentation introduces you to the new call home feature in IBM PureApplication System V2.0. Page 1 of 19 This slide shows the agenda, which covers the process flow, user interface, commandline interface

More information

Lesson 5: The Trading Station

Lesson 5: The Trading Station Lesson 5: The Trading Station Objective To understand the basic functions of the Trading Station and become proficient with market order entry, the stop loss and limit functions, closing trades manually,

More information

C++ INTERVIEW QUESTIONS

C++ INTERVIEW QUESTIONS C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get

More information

Designing Real-Time and Embedded Systems with the COMET/UML method

Designing Real-Time and Embedded Systems with the COMET/UML method By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design

More information

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority) Boolean Expressions, Conditions, Loops, and Enumerations Relational Operators == // true if two values are equivalent!= // true if two values are not equivalent < // true if left value is less than the

More information

Fundamentals of Programming and Software Development Lesson Objectives

Fundamentals of Programming and Software Development Lesson Objectives Lesson Unit 1: INTRODUCTION TO COMPUTERS Computer History Create a timeline illustrating the most significant contributions to computing technology Describe the history and evolution of the computer Identify

More information

IBM WebSphere Application Server

IBM WebSphere Application Server IBM WebSphere Application Server Multihomed hosting 2011 IBM Corporation Multihoming allows you to have a single application communicate with different user agent clients and user agent servers on different

More information

All Visualizations Documentation

All Visualizations Documentation All Visualizations Documentation All Visualizations Documentation 2 Copyright and Trademarks Licensed Materials - Property of IBM. Copyright IBM Corp. 2013 IBM, the IBM logo, and Cognos are trademarks

More information

Sources: On the Web: Slides will be available on:

Sources: On the Web: Slides will be available on: C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,

More information

Curriculum Map. Discipline: Computer Science Course: C++

Curriculum Map. Discipline: Computer Science Course: C++ Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code

More information

Sofware Requirements Engineeing

Sofware Requirements Engineeing Sofware Requirements Engineeing Three main tasks in RE: 1 Elicit find out what the customers really want. Identify stakeholders, their goals and viewpoints. 2 Document write it down (). Understandable

More information

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language.

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language. UML 1 Introduction UML = Unified Modeling Language It is a standardized visual modeling language. Primarily intended for modeling software systems. Also used for business modeling. UML evolved from earlier

More information

UML - Getting Started EA v4.0

UML - Getting Started EA v4.0 UML - Getting Started Codegeneration with Enterprise Architect How to generate Code from an Enterprise Architect UML Model with the help of and Willert Software Tools RXF (Realtime execution Framework)

More information

BPMonline CRM + Service Desk Agent Desktop User Guide

BPMonline CRM + Service Desk Agent Desktop User Guide BPMonline CRM + Service Desk Agent Desktop 1 Contents About This Guide... 2 1. Agent Desktop Setup... 3 2. Agent Desktop... 7 2.1. The CTI Panel of Agent Desktop... 10 2.1.1. The Incoming/Outgoing Call

More information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II C++ intro Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 26, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February 26,

More information

Embedded State Machine Implementation

Embedded State Machine Implementation CHAPTER 6 Embedded State Machine Implementation Martin Gomez State machines have been around pretty much since the first air-breather muddily crawled ashore hundreds of millions of years ago. They ve always

More information

NETWORK ADMINISTRATION

NETWORK ADMINISTRATION NETWORK ADMINISTRATION INTRODUCTION The PressureMAP software provides users who have access to an Ethernet network supporting TCP/IP with the ability to remotely log into the MAP System via a network connection,

More information

DEVELOPING DATA PROVIDERS FOR NEEDFORTRADE STUDIO PLATFORM DATA PROVIDER TYPES

DEVELOPING DATA PROVIDERS FOR NEEDFORTRADE STUDIO PLATFORM DATA PROVIDER TYPES DEVELOPING DATA PROVIDERS FOR NEEDFORTRADE STUDIO PLATFORM NeedForTrade.com Internal release number: 2.0.2 Public release number: 1.0.1 27-06-2008 To develop data or brokerage provider for NeedForTrade

More information

Lecture 2 Notes: Flow of Control

Lecture 2 Notes: Flow of Control 6.096 Introduction to C++ January, 2011 Massachusetts Institute of Technology John Marrero Lecture 2 Notes: Flow of Control 1 Motivation Normally, a program executes statements from first to last. The

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Introduction to Electrical and Computer Engineering II Lecture 1 Course Overview Welcome! What is this class about? Java programming somewhat software somewhat

More information

Integrating Legacy Code / Models with Model Based Development Using Rhapsody

Integrating Legacy Code / Models with Model Based Development Using Rhapsody Integrating Legacy Code / Models with Model Based Development Using Rhapsody M.W.Richardson 28/11/06 1 Telelogic AB Model Driven Development Very few Green Field projects are started, nearly always there

More information

Vending Machine using Verilog

Vending Machine using Verilog Vending Machine using Verilog Ajay Sharma 3rd May 05 Contents 1 Introduction 2 2 Finite State Machine 3 2.1 MOORE.............................. 3 2.2 MEALY.............................. 4 2.3 State Diagram...........................

More information

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by

More information

Building Web Services with Apache Axis2

Building Web Services with Apache Axis2 2009 Marty Hall Building Web Services with Apache Axis2 Part I: Java-First (Bottom-Up) Services Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets,

More information

Types of UML Diagram. UML Diagrams 140703-OOAD. Computer Engineering Sem -IV

Types of UML Diagram. UML Diagrams 140703-OOAD. Computer Engineering Sem -IV 140703-OOAD Computer Engineering Sem -IV Introduction to UML - UML Unified Modeling Language diagram is designed to let developers and customers view a software system from a different perspective and

More information

Database lifecycle management

Database lifecycle management Lotus Expeditor 6.1 Education IBM Lotus Expeditor 6.1 Client for Desktop This presentation explains the Database Lifecycle Management in IBM Lotus Expeditor 6.1 Client for Desktop. Page 1 of 12 Goals Understand

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

From Systems to Services

From Systems to Services From Systems to Services How we can collaborate in the new paradigm? Randy Ballew, Chief Technology Architect, IST-AS Steve Masover, Architecture Group, IST-AS Overview What is "software as services"?

More information

Guardian Tracking Systems

Guardian Tracking Systems Guardian Tracking Systems Operations Manual Revision 2.7 May 2010 All Rights Reserved. 2006-2010 Table of Contents LOGIN SCREEN... 3 USER CONFIGURATION... 4 Locale Screen... 4 Report Email... 4 Report

More information

Planning and Managing Projects with Microsoft Project Professional 2013

Planning and Managing Projects with Microsoft Project Professional 2013 Slides Slides Slides Steps to Enter Resource Types: 1. Click View and Resource Sheet 2. In the Type column of a resource, select Work, Material, or Cost, and press Enter on your keyboard Important

More information

Combination Chart Extensible Visualizations. Product: IBM Cognos Business Intelligence Area of Interest: Reporting

Combination Chart Extensible Visualizations. Product: IBM Cognos Business Intelligence Area of Interest: Reporting Combination Chart Extensible Visualizations Product: IBM Cognos Business Intelligence Area of Interest: Reporting Combination Chart Extensible Visualizations 2 Copyright and Trademarks Licensed Materials

More information

Review of getting started: Dynamic Model - State Diagram. States Labeled with Conditions. Dynamic Models for E.S. More Dynamic Modeling

Review of getting started: Dynamic Model - State Diagram. States Labeled with Conditions. Dynamic Models for E.S. More Dynamic Modeling Review of getting ed: More Dynamic Modeling Scenario making: gets us ed thinking about s. Interface (high-level prototyping): helps us to think about order of things. (happening in projects) Event trace:

More information

Banner Workflow. Creating FOAPAL Requests

Banner Workflow. Creating FOAPAL Requests Banner Workflow Creating FOAPAL Requests Workflow s automated processes allow business events to trigger user emails, automated activities, and notifications. Workflow s automated approval notifications

More information

C++FA 3.1 OPTIMIZING C++

C++FA 3.1 OPTIMIZING C++ C++FA 3.1 OPTIMIZING C++ Ben Van Vliet Measuring Performance Performance can be measured and judged in different ways execution time, memory usage, error count, ease of use and trade offs usually have

More information

Application of UML in Real-Time Embedded Systems

Application of UML in Real-Time Embedded Systems Application of UML in Real-Time Embedded Systems Aman Kaur King s College London, London, UK Email: [email protected] Rajeev Arora Mechanical Engineering Department, Invertis University, Invertis Village,

More information

Rebuild Perfume With Python and PyPI

Rebuild Perfume With Python and PyPI perfwhiz Documentation Release 0.1.0 Cisco Systems, Inc. February 01, 2016 Contents 1 Overview 3 1.1 Heatmap Gallery............................................. 3 1.2 perfwhiz Workflow............................................

More information

C++FA 5.1 PRACTICE MID-TERM EXAM

C++FA 5.1 PRACTICE MID-TERM EXAM C++FA 5.1 PRACTICE MID-TERM EXAM This practicemid-term exam covers sections C++FA 1.1 through C++FA 1.4 of C++ with Financial Applications by Ben Van Vliet, available at www.benvanvliet.net. 1.) A pointer

More information

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix Model-driven development solutions To support your business objectives IBM Rhapsody edition comparison matrix IBM Rhapsody 7.5 edition: capabilities and comparisons The enclosed table compares the capabilities

More information

6. Control Structures

6. Control Structures - 35 - Control Structures: 6. Control Structures A program is usually not limited to a linear sequence of instructions. During its process it may bifurcate, repeat code or take decisions. For that purpose,

More information

Term Project: Roulette

Term Project: Roulette Term Project: Roulette DCY Student January 13, 2006 1. Introduction The roulette is a popular gambling game found in all major casinos. In contrast to many other gambling games such as black jack, poker,

More information

SETTING UP YOUR 6000 SERIES TIME RECORDER

SETTING UP YOUR 6000 SERIES TIME RECORDER INTRODUCTION The Pyramid 6000 Series Time Recorder is an electronic time recorder designed to make payroll processing easier and more efficient. The 6000 series will meet your business needs whether your

More information

Resource Management with VMware DRS

Resource Management with VMware DRS VMWARE BEST PRACTICES VMware Infrastructure Resource Management with VMware DRS VMware Infrastructure 3 provides a set of distributed infrastructure services that make the entire IT environment more serviceable,

More information

Digi Cellular Application Guide Using Digi Surelink

Digi Cellular Application Guide Using Digi Surelink Introduction Digi s SureLink is a mechanism to help maintain persistent wireless connections. It contains four main components: 1. Mobile Link Rx Inactivity Timer 2. SureLink Settings - Hardware Reset

More information

Kokii BatteryDAQ. BMS Software Manual. Battery Analyzer Battery DAS

Kokii BatteryDAQ. BMS Software Manual. Battery Analyzer Battery DAS Kokii BatteryDAQ BMS Battery Analyzer Battery DAS Updated: October 2008 Caution: High Voltage Exists on Battery Power and Sampling Connectors! Please refer to device installation and operation manual for

More information

Software Design. Software Design. Software design is the process that adds implementation details to the requirements.

Software Design. Software Design. Software design is the process that adds implementation details to the requirements. Software Design Software Design Software design is the process that adds implementation details to the requirements. It produces a design specification that can be mapped onto a program. It may take several

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information

How To Develop A Telelogic Harmony/Esw Project

How To Develop A Telelogic Harmony/Esw Project White paper October 2008 The Telelogic Harmony/ESW process for realtime and embedded development. Bruce Powel Douglass, IBM Page 2 Contents 3 Overview 4 Telelogic Harmony/ESW core principles 6 Harmony/ESW

More information

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 UNIT 22: PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 ASSIGNMENT 3 DESIGN AND OPERATIONAL CHARACTERISTICS NAME: I agree to the assessment as contained in this assignment.

More information

Embedding Maps into Microsoft Office and Microsoft SharePoint

Embedding Maps into Microsoft Office and Microsoft SharePoint Embedding Maps into Microsoft Office and Microsoft SharePoint Toronto Esri Canada User Conference Tuesday, October 16, 2012 Presented By: Heather Hainsworth [email protected] Agenda This seminar is designed

More information

Chapter 3 Claims June 2012

Chapter 3 Claims June 2012 Chapter 3 Claims This Page Left Blank Intentionally CTAS User Manual 3-1 Claims: Introduction Checks All payments must be supported by an approved claim. Claims should be prepared for every check to be

More information

Appendix K Introduction to Microsoft Visual C++ 6.0

Appendix K Introduction to Microsoft Visual C++ 6.0 Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):

More information

Lab Manual: Using Rational Rose

Lab Manual: Using Rational Rose Lab Manual: Using Rational Rose 1. Use Case Diagram Creating actors 1. Right-click on the Use Case View package in the browser to make the shortcut menu visible. 2. Select the New:Actor menu option. A

More information

What is a Loop? Pretest Loops in C++ Types of Loop Testing. Count-controlled loops. Loops can be...

What is a Loop? Pretest Loops in C++ Types of Loop Testing. Count-controlled loops. Loops can be... What is a Loop? CSC Intermediate Programming Looping A loop is a repetition control structure It causes a single statement or a group of statements to be executed repeatedly It uses a condition to control

More information

Off The Shelf Approach to ArcGIS Server & The Dashboard Approach to Gaining Insight to ArcGIS Server

Off The Shelf Approach to ArcGIS Server & The Dashboard Approach to Gaining Insight to ArcGIS Server Off The Shelf Approach to ArcGIS Server & The Dashboard Approach to Gaining Insight to ArcGIS Server Robert Lenarcic Latitude Geographics [email protected] AGENDA Out of the box ArcGIS Server web-mapping

More information

Part VI. Object-relational Data Models

Part VI. Object-relational Data Models Part VI Overview Object-relational Database Models Concepts of Object-relational Database Models Object-relational Features in Oracle10g Object-relational Database Models Object-relational Database Models

More information

Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

More information

Database Access via Programming Languages

Database Access via Programming Languages Database Access via Programming Languages SQL is a direct query language; as such, it has limitations. Some reasons why access to databases via programming languages is needed : Complex computational processing

More information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

An Associate of the UOB Group A UTRADE FX ELITE QUICK START GUIDE

An Associate of the UOB Group A UTRADE FX ELITE QUICK START GUIDE An Associate of the UOB Group A UTRADE FX ELITE QUICK START GUIDE Contents UTRADE FX QUICK START GUIDE About The Application... 1 Starting With the Application...1 Getting Started... 2 Logging In...2 Changing

More information

Monday, April 8, 13. Creating Successful Magento ERP Integrations

Monday, April 8, 13. Creating Successful Magento ERP Integrations Creating Successful Magento ERP Integrations Happy Together Creating Successful Magento ERP Integrations David Alger CTO / Lead Engineer www.classyllama.com A Little About Me Exclusively focused on Magento

More information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES TECHNOLOGY COURSE MODULE (C, C++, DS) KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

More information

Unified Static and Runtime Verification of Object-Oriented Software

Unified Static and Runtime Verification of Object-Oriented Software Unified Static and Runtime Verification of Object-Oriented Software Wolfgang Ahrendt 1, Mauricio Chimento 1, Gerardo Schneider 2, Gordon J. Pace 3 1 Chalmers University of Technology, Gothenburg, Sweden

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2010 G. Lipari (Scuola Superiore Sant Anna) Introduction

More information

Connecting EWS using DDNS

Connecting EWS using DDNS Application Note 013 a Visual Plus Corporation Company Connecting EWS using DDNS ver.1.0 This application note explains how to establish communication between PROS and EWS over internet, in case EWS is

More information

Chapter 7. Address Translation

Chapter 7. Address Translation Chapter 7. Address Translation This chapter describes NetDefendOS address translation capabilities. Dynamic Network Address Translation, page 204 NAT Pools, page 207 Static Address Translation, page 210

More information

Google Drive: Access and organize your files

Google Drive: Access and organize your files Google Drive: Access and organize your files Use Google Drive to store and access your files, folders, and Google Docs, Sheets, and Slides anywhere. Change a file on the web, your computer, tablet, or

More information

13 Classes & Objects with Constructors/Destructors

13 Classes & Objects with Constructors/Destructors 13 Classes & Objects with Constructors/Destructors 13.1 Introduction In object oriented programming, the emphasis is on data rather than function. Class is a way that binds the data & function together.

More information

Vim, Emacs, and JUnit Testing. Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor

Vim, Emacs, and JUnit Testing. Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor Vim, Emacs, and JUnit Testing Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor Overview Vim and Emacs are the two code editors available within the Dijkstra environment. While both

More information

Using triggers and actions

Using triggers and actions Using triggers and actions Important For Triggers and Actions to function correctly, the server PC must be running at all times. Triggers and Actions is a powerful feature. It can be used to report on

More information

Best Practices with IBM Cognos Framework Manager & the SAP Business Warehouse Agnes Chau Cognos SAP Solution Specialist

Best Practices with IBM Cognos Framework Manager & the SAP Business Warehouse Agnes Chau Cognos SAP Solution Specialist Best Practices with IBM Cognos Framework Manager & the SAP Business Warehouse Agnes Chau Cognos SAP Solution Specialist 2008 IBM Corporation Agenda Objective Interoperability Prerequisites Where to model

More information

Using Microsoft Lync for Web Conferencing, Training & Support

Using Microsoft Lync for Web Conferencing, Training & Support Using Microsoft Lync for Web Conferencing, Training & Support A Demonstration of Lync Features 28 May 2014 What is Lync? Microsoft Lync is a communications and collaboration tool available to Exchange

More information

Hello and welcome to this presentation of the STM32L4 Firewall. It covers the main features of this system IP used to secure sensitive code and data.

Hello and welcome to this presentation of the STM32L4 Firewall. It covers the main features of this system IP used to secure sensitive code and data. Hello and welcome to this presentation of the STM32L4 Firewall. It covers the main features of this system IP used to secure sensitive code and data. 1 Here is an overview of the Firewall s implementation

More information

Setting up RDP on your ipad

Setting up RDP on your ipad This document will show you how to set up RDP (Remote Desktop Protocol) on your ipad. It will cover the following: Step 1: Creating an itunes account (if necessary) Step 2: Using the App Store Step 3:

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 14, 2011 G. Lipari (Scuola Superiore Sant Anna) Introduction

More information

Vodafone Email Plus. User Guide for Windows Mobile

Vodafone Email Plus. User Guide for Windows Mobile Vodafone Email Plus User Guide for Windows Mobile 1 Table of Contents 1 INTRODUCTION... 4 2 INSTALLING VODAFONE EMAIL PLUS... 4 2.1 SETUP BY USING THE VODAFONE EMAIL PLUS ICON...5 2.2 SETUP BY DOWNLOADING

More information

Contents. Introduction

Contents. Introduction TION Contents Introduction...1 Basics...2 Main Menu Structure...3 Time Schedule Menu...4 Settings Menu...5 Reports Menu...6 Date / Time Adjustment Menu...7 Introduction TION is an advanced control device

More information

Using switch/case as the core of your state machine

Using switch/case as the core of your state machine state code examples #2 1/8 Using switch/case as the core of your state machine a state machine with an on/off switch and a button that changes the LED color each time you press the button. our states.

More information

Project Server Plus Risk to Issue Escalator User Guide v1.1

Project Server Plus Risk to Issue Escalator User Guide v1.1 Project Server Plus Risk to Issue Escalator User Guide v1.1 Overview The Project Server Plus Risk to Issue Escalator app will immediately raise a risk to an issue at the push of a button. Available within

More information

Colorado Medical Assistance Program Web Portal Dental Claims User Guide

Colorado Medical Assistance Program Web Portal Dental Claims User Guide Colorado Medical Assistance Program Web Portal Dental Claims User Guide The Dental Claim Lookup screen (Figure 1) is the main screen from which to manage Dental claims. It consists of different sections

More information

BIG DATA ANALYTICS For REAL TIME SYSTEM

BIG DATA ANALYTICS For REAL TIME SYSTEM BIG DATA ANALYTICS For REAL TIME SYSTEM Where does big data come from? Big Data is often boiled down to three main varieties: Transactional data these include data from invoices, payment orders, storage

More information

Keil C51 Cross Compiler

Keil C51 Cross Compiler Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation

More information