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

Size: px
Start display at page:

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

Transcription

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

2 State Pattern Behavioral Intent: Allow an object to alter its behavior when its internal state changes. The object will appear to change its class (its state). An implementation technique for realizing a state machine described by a UML State Chart. Each state is implemented as a class with the events as operations. Slide 2

3 TCP State Chart Example TCPClosed ActiveOpen PassiveOpen Close Transmit TCPEstablished Close Send TCPListen Slide 3

4 Client State Pattern Class Diagram * TCPConnection +ActiveOpen() +PassiveOpen() +Close() +Acknowledge() +Synchronize() +Send() +Transmit() _state 1 TCPState +ActiveOpen() +PassiveOpen() +Close() +Acknowledge() +Synchronize() +Send() +Transmit() _state->activeopen() TCPEstablished TCPListen TCPClosed Close() Transmit() Close() Send() ActiveOpen () PassiveOpen() Slide 4

5 State Pattern - GoF Structure Client * Context +Request() _state 1 State +Handle() _state->handle(); ConcreteStateA +Handle() ConcreteStateB +Handle() Slide 5

6 State Pattern C++ Example (1) TCPConnection ActiveOpen () PassiveOpen() Close() Acknowledge() Synchronize() Send() Transmit() -ChangeState() «friend» _state TCPState ActiveOpen () PassiveOpen() Close() Acknowledge() Synchronize() Send() Transmit() -ChangeState() class TCPConnection public: TCPConnection(); void ActiveOpen(); void PassiveOpen(); void Close(); void Acknowledge(); void Synchronize(); void Send(); void Transmit(); void ProcessOctet(TCPOctetStream*); private: friend class TCPState; void ChangeState(TCPState*); TCPState* _state; ; Slide 6

7 State Pattern C++ Example (2) TCPConnection::TCPConnection () _state = TCPClosed::Instance(); void TCPConnection::ActiveOpen () _state->activeopen(this); void TCPConnection::PassiveOpen () _state->passiveopen(this); void TCPConnection::Close () _state->close(this); void TCPConnection::Acknowledge () _state->acknowledge(this); void TCPConnection::Synchronize () _state->synchronize(this); void TCPConnection::ChangeState (TCPState* s) _state = s; Slide 7

8 State Pattern C++ Example (3) class TCPState public: virtual void ActiveOpen(TCPConnection*); virtual void PassiveOpen(TCPConnection*); virtual void Close(TCPConnection*); virtual void Acknowledge(TCPConnection*); virtual void Synchronize(TCPConnection*); virtual void Send(TCPConnection*); virtual void Transmit(TCPConnection*, TCPOctetStream*); protected: TCPState() void ChangeState(TCPConnection*, TCPState*); ; Slide 8

9 State Pattern C++ Example (4) Implementation of TCPState with default code: void TCPState::ActiveOpen (TCPConnection*) default(); void TCPState::PassiveOpen (TCPConnection*) default(); void TCPState::Close (TCPConnection*) default(); void TCPState::Acknowledge (TCPConnection*) default(); void TCPState::Synchronize (TCPConnection*) default(); void TCPState::Send (TCPConnection*) default(); void TCPState::Transmit (TCPConnection*, TCPOctetStream*) default(); void TCPState::ChangeState (TCPConnection* t, TCPState* s) t->changestate(s); Slide 9

10 State Pattern C++ Example (5) TCPConnection::TCPConnection () _state = TCPClosed::Instance(); // start state TCPClosed state object create :TCPConnection :TCPClosed Slide 10

11 State Pattern C++ Example (6) 1 ActiveOpen 1.1 ActiveOpen :TCPConnection ChangeState :TCPClosed ChangeState Instance void TCPConnection::ActiveOpen () _state->activeopen(this); TCPEstablished void TCPClosed::ActiveOpen (TCPConnection* t) // send SYN, receive SYN, ACK, etc. ChangeState(t, TCPEstablished::Instance()); // state shift Slide 11

12 State Pattern C++ Example (7) void TCPClosed::PassiveOpen (TCPConnection* t) ChangeState(t, TCPListen::Instance()); void TCPEstablished::Transmit (TCPConnection* t, TCPOctetStream* o) t->processoctet(o); // no state change void TCPEstablished::Close (TCPConnection* t) // send FIN, receive ACK of FIN ChangeState(t, TCPListen::Instance()); Slide 12

13 State Pattern C++ Example (8) Singleton pattern class Singleton public: static Singleton* Instance(); protected: Singleton(); private: static Singleton* _instance; ; Singleton* Singleton::_instance = 0; Singleton* Singleton::Instance () if (_instance == 0) _instance = new Singleton; return _instance; Slide 13

14 State Pattern C++ Example (9) Singleton pattern used on TCPClosed class class TCPClosed : public TCPState public: static TCPState* Instance(); virtual void ActiveOpen(TCPConnection*); virtual void PassiveOpen(TCPConnection*); protected: TCPClosed(); private: static TCPState* _instance; TCPState* TCPClosed::_instance = 0; TCPState* TCPClosed::Instance() if (_instance = = 0) _instance = new TCPClosed; return _instance; Slide 14

15 State Pattern Implementation Details (1) TCPState ActiveOpen () PassiveOpen() Close() Acknowledge() Synchronize() Send() Transmit() 1. Design choice 1. All event operations specified as pure virtual (C++) Requires that all operations are defined in the subclasses (forced by the compiler) 2. Design choice 2. All event operations have default implementation in superclass Only necessary to implement event operations for the actual state Slide 15

16 State Pattern Implementation Details (2) Event parameters, guard, entry and exit actions void TCPClosed::event1(TCPConnection* t,type parameter1) if ( t->guard1() ) exit(); // explicit call of exit action t->action_1(); ChangeState(t,TCPListen::Instance()); void TCPConnection::ChangeState(State* ps) _state= ps; _state->entry(); // call entry in new state Slide 16

17 Three Solutions for Event Handling Class_X +event1() +event2() +event3() _state->event1(); StatePattern Class_X +handleevent(eventno) StatePattern 3. Class_X +handlecommand(command* pc) switch (eventno) case START: _state->start(); StatePattern pc->execute(_state); Slide 17

18 Event Handling - Solution 1. Class_X +event1() +event2() +event3() _state->event1(); StatePattern Each event modeled as an operation in the Context class TCPConnection ActiveOpen () PassiveOpen() Close() Acknowledge() Synchronize() Send() Transmit() _state TCPState ActiveOpen () PassiveOpen() Close() Acknowledge() Synchronize() Send() Transmit() _state->activeopen() Slide 18

19 Event Handling - Solution 2. Class_X +handleevent(eventno) Only one operation in the Context class switch based StatePattern switch (eventno) case START: _state->start(); TCPConnection TCPState +handleevent(eventno) switch (eventno) case ACTIVE_OPEN: _state->activeopen(); break; Slide 19 _state ActiveOpen () PassiveOpen() Close() Acknowledge() Synchronize() Send() Transmit()

20 Event Handling - Solution 3. Class_X +handlecommand(command* pc) StatePattern pc->execute(_state); Only one operation in the Context class polymorphic based An example of the Command Pattern used in concert with the State Pattern Slide 20

21 Command (GoF) & State Pattern (C++) Command +excecute() TCPConnection handlecommand() _state TCPState ActiveOpen () PassiveOpen() Close() Acknowledge() Synchronize() Send() Transmit() ActiveOpen PassiveOpen Close excecute() excecute() excecute() TCPEstablished TCPListen TCPClosed Close() Transmit() Close() Send() ActiveOpen () PassiveOpen() excecute(tcpstate* pstate) pstate->activeopen(); handlecommand(command* pcommand) pcommand->excecute(_state); Slide 21

22 State Pattern Infusion Pump Example InfusionPump Control «friend» +start() +stop() +alarmacknowledged() +alarmdetected() +dooropened() +clear() -startalarm() -stopalarm() -startinfusion() -stopinfusion() -cleartotal() currentstate STATE abstract +start() +stop() +alarmacknowledged() +alarmdetected() +dooropened() +clear() ALARM +alarmacknowledged() INFUSION_INACTIVE +start() +clear() INFUSION_ACTIVE +stop() +alarmdetected() +dooropened() Slide 22

23 Example with Hierarchic State Machine (1) Infusion Pump Operating state setin Maintenance Infusion Pump Maintenance state setinoperation /start_alarm Alarm alarmacknowledged / stopalarm stop / stopinfusio n Infusion Inactive clear / cleartotal start[ door_closed ] / startinfusion /stopinfusion; startalarm Infusion Active alarmdetected dooropened Slide 23

24 Hierarchic State Pattern Example STATE InfusionPump Control currentstate start() stop() alarmacknowledged() alarmdetecteded() dooropened() clear() setinmaintenance() setinoperation() abstract classes Operation setinmaintenance() Maintenance setinoperation() ALARM alarmacknowledged() INFUSION_INACTIVE start() clear() INFUSION_ACTIVE stop() alarmdetected() dooropened() Slide 24

25 Definition of Interface IPump Client «interface» InfusionPump Control-IF +start() +stop() +alarmacknowledged() +alarmdetected() +dooropened() +clear() +setinoperation() +setinmaintenance() action op. only called from state machine Slide 25 InfusionPump Control +start() +stop() +alarmacknowledged() +alarmdetected() +dooropened() +clear() +setinoperation() +setinmaintenance() +startalarm() +stopalarm() +startinfusion() +stopinfusion() +cleartotal()

26 Discussion of State Pattern Implementation Disadvantages Results in many small classes Breaks encapsulation (of the state machine class) Advantages Easy to implement most UML state chart notations (guards, event parameters, entry, exit) State Pattern can be reverse engineered from code All state handling logic in separate state classes Easy to extend with new states Recommendation: Very useful for nontrivial flat and hierarchical state machines Slide 26

27 Pacemaker Class Diagram Classes with state machines abstract class Slide 27

28 Pacemaker State Chart for Class Coil Driver Slide 28

29 Step 1: Construct Class Hierarchy CoilDriver CoilDriver State Disabled Enabled Idle Receiving Bit Waiting ForBit WaitingTo Transmit Transmitting Bit WaitingTo Pulse Pulsing Slide 29

30 Step 2: Add Event Operations CoilDriver EnableComm() DisableComm() Outgoing(Byte) Pulse() mystate CoilDriver State EnableComm() DisableComm() Outgoing(Byte) Pulse() abstract class with abstract operations Disabled EnableComm() Enabled DisableComm() Add operations for outgoing arrows on state chart Idle Receiving Bit Waiting ForBit WaitingTo Transmit Transmitting Bit Outgoing(Byte) Pulse() WaitingTo Pulse Pulsing Slide 30

31 Summary State extremely useful Slide 31

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

Embedded Real-Time Systems (TI-IRTS) State Machine Implementation Embedded Real-Time Systems (TI-IRTS) State Machine Implementation Version: 5-2-2010 Agenda STM notation and example Five state machine implementation techniques: 1. Switch based 2. Table driven implementation

More information

This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio).

This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio). Client App Network Server App 25-May-13 15:32 (Page 1) This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio). TCP is an end to end protocol which

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

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

How To Design Software

How To Design Software The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies

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

Life of a Packet CS 640, 2015-01-22

Life of a Packet CS 640, 2015-01-22 Life of a Packet CS 640, 2015-01-22 Outline Recap: building blocks Application to application communication Process to process communication Host to host communication Announcements Syllabus Should have

More information

point to point and point to multi point calls over IP

point to point and point to multi point calls over IP Helsinki University of Technology Department of Electrical and Communications Engineering Jarkko Kneckt point to point and point to multi point calls over IP Helsinki 27.11.2001 Supervisor: Instructor:

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

Chapter 1 Fundamentals of Java Programming

Chapter 1 Fundamentals of Java Programming Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The

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

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

KCU-02 Monitor. Software Installation User Manual. For Windows XP and Windows 7

KCU-02 Monitor. Software Installation User Manual. For Windows XP and Windows 7 KCU-02 Monitor Software Installation User Manual For Windows XP and Windows 7 Headquarters : No.3, Lane 201, Chien Fu ST., Chyan Jenn Dist., Kaohsiung, TAIWAN Tel : + 886-7-8121771 Fax : + 886-7-8121775

More information

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming

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

Transport Layer. Chapter 3.4. Think about

Transport Layer. Chapter 3.4. Think about Chapter 3.4 La 4 Transport La 1 Think about 2 How do MAC addresses differ from that of the network la? What is flat and what is hierarchical addressing? Who defines the IP Address of a device? What is

More information

Design Document For Insulin Pump (Version 1.1)

Design Document For Insulin Pump (Version 1.1) For Insulin Pump (Version 1.1) Written by: Morteza Yousef-Sanati Hamid Mohammad-Gholizadeh Assignment 2 Course: 703 Software Design Professor: Dr. Tom Maibaum March 2011 Table of Contents I INSULIN PUMP

More information

Prefix AggregaNon. Company X and Company Y connect to the same ISP, and they are assigned the prefixes:

Prefix AggregaNon. Company X and Company Y connect to the same ISP, and they are assigned the prefixes: Data Transfer Consider transferring an enormous file of L bytes from Host A to B using a MSS of 1460 bytes and a 66 byte header. What is the maximum value of L such that TCP sequence numbers are not exhausted?

More information

Real Time Programming: Concepts

Real Time Programming: Concepts Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize

More information

Old Company Name in Catalogs and Other Documents

Old Company Name in Catalogs and Other Documents To our customers, Old Company Name in Catalogs and Other Documents On April 1 st, 2010, NEC Electronics Corporation merged with Renesas Technology Corporation, and Renesas Electronics Corporation took

More information

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship. CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation

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

Ethernet. Ethernet. Network Devices

Ethernet. Ethernet. Network Devices Ethernet Babak Kia Adjunct Professor Boston University College of Engineering ENG SC757 - Advanced Microprocessor Design Ethernet Ethernet is a term used to refer to a diverse set of frame based networking

More information

Chapter 46 Terminal Server

Chapter 46 Terminal Server Chapter 46 Terminal Server Introduction... 46-2 TTY Devices... 46-2 Multiple Sessions... 46-4 Accessing Telnet Hosts... 46-5 Command Reference... 46-7 connect... 46-7 disable telnet server... 46-7 disconnect...

More information

Software Engineering. System Modeling

Software Engineering. System Modeling Software Engineering System Modeling 1 System modeling System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system.

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

Firewall Port Handling in TENA Applications

Firewall Port Handling in TENA Applications Firewall Port Handling in TENA Applications The purpose of this report is to describe the manner in which TENA applications handle communications using TCP. This report will also present some insight for

More information

Object Oriented Software Models

Object Oriented Software Models Software Engineering CSC 342/ Dr Ghazy Assassa Page 1 Object Oriented Software Models Use case diagram and use case description 1. Draw a use case diagram for a student-course-registration system. Show

More information

Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse:

Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse: PS-2 Mouse: The Protocol: For out mini project we designed a serial port transmitter receiver, which uses the Baud rate protocol. The PS-2 port is similar to the serial port (performs the function of transmitting

More information

DUAL PUMPS COMMUNICATIONS CABLE

DUAL PUMPS COMMUNICATIONS CABLE DUAL PUMPS COMMUNICATIONS CABLE Part # Description Contents CBL-DUAL-3 RS-232 Dual pumps communications cable (3 ). RJ-11 Connector Synchronizes the operation of two pumps in one of the special communications

More information

INDUSTRIAL AUTOMATION Interactive Graphical SCADA System INSIGHT AND OVERVIEW. IGSS Online Training. Exercise 8: Creating Templates

INDUSTRIAL AUTOMATION Interactive Graphical SCADA System INSIGHT AND OVERVIEW. IGSS Online Training. Exercise 8: Creating Templates INDUSTRIAL AUTOMATION Interactive Graphical SCADA System INSIGHT AND OVERVIEW IGSS Online Training Exercise 8: Creating Templates Exercise: Create Templates and Template Based Objects Purpose Learn how

More information

Special Note Ethernet Connection Problems and Handling Methods (CS203 / CS468 / CS469)

Special Note Ethernet Connection Problems and Handling Methods (CS203 / CS468 / CS469) Special Note Connection Problems and Handling Methods (CS203 / CS468 / CS469) Sometimes user cannot find the RFID device after installing the CSL Demo App and the RFID reader is connected. If user cannot

More information

Wharf T&T Limited DDoS Mitigation Service Customer Portal User Guide

Wharf T&T Limited DDoS Mitigation Service Customer Portal User Guide Table of Content I. Note... 1 II. Login... 1 III. Real-time, Daily and Monthly Report... 3 Part A: Real-time Report... 3 Part 1: Traffic Details... 4 Part 2: Protocol Details... 5 Part B: Daily Report...

More information

Computer Networks. Chapter 5 Transport Protocols

Computer Networks. Chapter 5 Transport Protocols Computer Networks Chapter 5 Transport Protocols Transport Protocol Provides end-to-end transport Hides the network details Transport protocol or service (TS) offers: Different types of services QoS Data

More information

NMS300 Network Management System

NMS300 Network Management System NMS300 Network Management System User Manual June 2013 202-11289-01 350 East Plumeria Drive San Jose, CA 95134 USA Support Thank you for purchasing this NETGEAR product. After installing your device, locate

More information

UML-based Test Generation and Execution

UML-based Test Generation and Execution UML-based Test Generation and Execution Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder Siemens Corporate Research, Inc. 755 College Road East Princeton NJ 08540, USA [email protected] ABSTRACT

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

PK5500 v1.1 Installation Instructions

PK5500 v1.1 Installation Instructions PK5500 v1.1 Installation Instructions 1 2 3 4 5 6 7 8 9 * 0 # WARNING: Please refer to the System Installation Manual for information on limitations regarding product use and function and information on

More information

Changing Your Cameleon Server IP

Changing Your Cameleon Server IP 1.1 Overview Technical Note Cameleon requires that you have a static IP address defined for the server PC the Cameleon server application runs on. Even if the server PC has a static IP address, you may

More information

How do I get to www.randomsite.com?

How do I get to www.randomsite.com? Networking Primer* *caveat: this is just a brief and incomplete introduction to networking to help students without a networking background learn Network Security. How do I get to www.randomsite.com? Local

More information

Communication Diagrams

Communication Diagrams Communication Diagrams Massimo Felici Realizing Use cases in the Design Model 1 Slide 1: Realizing Use cases in the Design Model Use-case driven design is a key theme in a variety of software processes

More information

Software engineering for real-time systems

Software engineering for real-time systems Introduction Software engineering for real-time systems Objectives To: Section 1 Introduction to real-time systems Outline the differences between general-purpose applications and real-time systems. Give

More information

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Chapter 8 The Enhanced Entity- Relationship (EER) Model Chapter 8 The Enhanced Entity- Relationship (EER) Model Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 Outline Subclasses, Superclasses, and Inheritance Specialization

More information

Assignment # 2: Design Patterns and GUIs

Assignment # 2: Design Patterns and GUIs CSUS COLLEGE OF ENGINEERING AND COMPUTER SCIENCE Department of Computer Science CSc 133 Object-Oriented Computer Graphics Programming Spring 2014 John Clevenger Assignment # 2: Design Patterns and GUIs

More information

IP Subnetting and Addressing

IP Subnetting and Addressing Indian Institute of Technology Kharagpur IP Subnetting and Addressing Prof Indranil Sengupta Computer Science and Engineering Indian Institute of Technology Kharagpur Lecture 6: IP Subnetting and Addressing

More information

CS330 Design Patterns - Midterm 1 - Fall 2015

CS330 Design Patterns - Midterm 1 - Fall 2015 Name: Please read all instructions carefully. The exam is closed book & no laptops / phones / computers shall be present nor be used. Please write your answers in the space provided. You may use the backs

More information

New York University Computer Science Department Courant Institute of Mathematical Sciences

New York University Computer Science Department Courant Institute of Mathematical Sciences New York University Computer Science Department Courant Institute of Mathematical Sciences Course Title: Data Communications & Networks Course Number: g22.2662-001 Instructor: Jean-Claude Franchitti Session:

More information

From Control Loops to Software

From Control Loops to Software CNRS-VERIMAG Grenoble, France October 2006 Executive Summary Embedded systems realization of control systems by computers Computers are the major medium for realizing controllers There is a gap between

More information

Global Monitoring + Support

Global Monitoring + Support Use HyperTerminal to access your Global Monitoring Units View and edit configuration settings View live data Download recorded data for use in Excel and other applications HyperTerminal is one of many

More information

Checking Access to Protected Members in the Java Virtual Machine

Checking Access to Protected Members in the Java Virtual Machine Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/

More information

TDDC88 Lab 2 Unified Modeling Language (UML)

TDDC88 Lab 2 Unified Modeling Language (UML) TDDC88 Lab 2 Unified Modeling Language (UML) Introduction What is UML? Unified Modeling Language (UML) is a collection of graphical notations, which are defined using a single meta-model. UML can be used

More information

8-ch RAID0 Design by using SATA Host IP Manual Rev1.0 9-Jun-15

8-ch RAID0 Design by using SATA Host IP Manual Rev1.0 9-Jun-15 8-ch RAID0 Design by using SATA Host IP Manual Rev1.0 9-Jun-15 1 Overview RAID0 system uses multiple storages to extend total storage capacity and increase write/read performance to be N times. Assumed

More information

Backup Server DOC-OEMSPP-S/6-BUS-EN-21062011

Backup Server DOC-OEMSPP-S/6-BUS-EN-21062011 Backup Server DOC-OEMSPP-S/6-BUS-EN-21062011 The information contained in this guide is not of a contractual nature and may be subject to change without prior notice. The software described in this guide

More information

Trends in Embedded Software Development in Europe. Dr. Dirk Muthig [email protected]

Trends in Embedded Software Development in Europe. Dr. Dirk Muthig dirk.muthig@iese.fraunhofer.de Trends in Embedded Software Development in Europe Dr. Dirk Muthig [email protected] Problems A software project exceeds the budget by 90% and the project time by 120% in average Project Management

More information

Routing concepts in Cyberoam

Routing concepts in Cyberoam Routing concepts in Cyberoam Article explains routing concepts implemented in Cyberoam, how to define static routes and route policies. It includes following sections: Static route Firewall based routes

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

Case Study: F5 Load Balancer and TCP Idle Timer / fastl4 Profile

Case Study: F5 Load Balancer and TCP Idle Timer / fastl4 Profile Case Study: F5 Load Balancer and TCP Idle Timer / fastl4 Profile This describes a problem whereby a client connects to a server then waits for a report to complete before retrieving it. The report took

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

Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester

Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester Leonardo Journal of Sciences ISSN 1583-0233 Issue 20, January-June 2012 p. 31-36 Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester Ganesh Sunil NHIVEKAR *, and Ravidra Ramchandra MUDHOLKAR

More information

Configuring Static and Dynamic NAT Translation

Configuring Static and Dynamic NAT Translation This chapter contains the following sections: Network Address Translation Overview, page 1 Information About Static NAT, page 2 Dynamic NAT Overview, page 3 Timeout Mechanisms, page 4 NAT Inside and Outside

More information

MS Project Tutorial for Senior Design Using Microsoft Project to manage projects

MS Project Tutorial for Senior Design Using Microsoft Project to manage projects MS Project Tutorial for Senior Design Using Microsoft Project to manage projects Overview: Project management is an important part of the senior design process. For the most part, teams manage projects

More information

This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio).

This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio). This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio). Here we explore the sequence of interactions in a typical FTP (File Transfer Protocol) session.

More information

SE 360 Advances in Software Development Object Oriented Development in Java. Polymorphism. Dr. Senem Kumova Metin

SE 360 Advances in Software Development Object Oriented Development in Java. Polymorphism. Dr. Senem Kumova Metin SE 360 Advances in Software Development Object Oriented Development in Java Polymorphism Dr. Senem Kumova Metin Modified lecture notes of Dr. Hüseyin Akcan Inheritance Object oriented programming languages

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

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

Interaction Diagrams. Use Cases and Actors INTERACTION MODELING

Interaction Diagrams. Use Cases and Actors INTERACTION MODELING Karlstad University Department of Information Systems Adapted for a textbook by Blaha M. and Rumbaugh J. Object Oriented Modeling and Design Pearson Prentice Hall, 2005 INTERACTION MODELING Remigijus GUSTAS

More information

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering System Models Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain why the context of a system should be modeled as part of the RE process To describe

More information

Secure Network Access System (SNAS) Indigenous Next Generation Network Security Solutions

Secure Network Access System (SNAS) Indigenous Next Generation Network Security Solutions Secure Network Access System (SNAS) Indigenous Next Generation Network Security Solutions Gigi Joseph, Computer Division,BARC. [email protected] Intranet Security Components Network Admission Control (NAC)

More information

Umbrello UML Modeller Handbook

Umbrello UML Modeller Handbook 2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................

More information

1 An application in BPC: a Web-Server

1 An application in BPC: a Web-Server 1 An application in BPC: a Web-Server We briefly describe our web-server case-study, dwelling in particular on some of the more advanced features of the BPC framework, such as timeouts, parametrized events,

More information

UML FOR OBJECTIVE-C. Excel Software www.excelsoftware.com

UML FOR OBJECTIVE-C. Excel Software www.excelsoftware.com UML FOR OBJECTIVE-C Excel Software www.excelsoftware.com Objective-C is a popular programming language for Mac OS X computers. The Unified Modeling Language (UML) is the industry standard notation for

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

ivms-4200 Client Software Quick Start Guide V1.02

ivms-4200 Client Software Quick Start Guide V1.02 ivms-4200 Client Software Quick Start Guide V1.02 Contents 1 Description... 2 1.1 Running Environment... 2 1.2 Surveillance System Architecture with an Performance of ivms-4200... 3 2 Starting ivms-4200...

More information

Design by Contract beyond class modelling

Design by Contract beyond class modelling Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

More information

PT Activity: Configure Cisco Routers for Syslog, NTP, and SSH Operations

PT Activity: Configure Cisco Routers for Syslog, NTP, and SSH Operations PT Activity: Configure Cisco Routers for Syslog, NTP, and SSH Operations Instructor Version Topology Diagram Addressing Table Device Interface IP Address Subnet Mask Default Gateway Switch Port R1 FA0/1

More information

Bitter, Rick et al "Object-Oriented Programming in LabVIEW" LabVIEW Advanced Programming Techinques Boca Raton: CRC Press LLC,2001

Bitter, Rick et al Object-Oriented Programming in LabVIEW LabVIEW Advanced Programming Techinques Boca Raton: CRC Press LLC,2001 Bitter, Rick et al "Object-Oriented Programming in LabVIEW" LabVIEW Advanced Programming Techinques Boca Raton: CRC Press LLC,2001 10 Object-Oriented Programming in LabVIEW This chapter applies a different

More information

Getting Started - SINAMICS Startdrive. Startdrive. SINAMICS Getting Started - SINAMICS Startdrive. Introduction 1

Getting Started - SINAMICS Startdrive. Startdrive. SINAMICS Getting Started - SINAMICS Startdrive. Introduction 1 Introduction 1 Connecting the drive unit to the PC 2 Startdrive SINAMICS Getting Started - SINAMICS Startdrive Getting Started Creating a project 3 Going online and incorporating devices 4 Commissioning

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

What is a Firewall? A choke point of control and monitoring Interconnects networks with differing trust Imposes restrictions on network services

What is a Firewall? A choke point of control and monitoring Interconnects networks with differing trust Imposes restrictions on network services Firewalls What is a Firewall? A choke point of control and monitoring Interconnects networks with differing trust Imposes restrictions on network services only authorized traffic is allowed Auditing and

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

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

USTC Course for students entering Clemson F2013 Equivalent Clemson Course Counts for Clemson MS Core Area. CPSC 822 Case Study in Operating Systems

USTC Course for students entering Clemson F2013 Equivalent Clemson Course Counts for Clemson MS Core Area. CPSC 822 Case Study in Operating Systems USTC Course for students entering Clemson F2013 Equivalent Clemson Course Counts for Clemson MS Core Area 398 / SE05117 Advanced Cover software lifecycle: waterfall model, V model, spiral model, RUP and

More information

UML Activities & Actions. Charles ANDRE - UNSA

UML Activities & Actions. Charles ANDRE - UNSA UML Activities & Actions Action & Object Nodes Accept inputs, start behaviors, provide outputs Object/Data flow Control flow Send Envoice Invoice Make Payment Accept Payment Invoice1234: Invoice Invoice1234:

More information

Overview. Securing TCP/IP. Introduction to TCP/IP (cont d) Introduction to TCP/IP

Overview. Securing TCP/IP. Introduction to TCP/IP (cont d) Introduction to TCP/IP Overview Securing TCP/IP Chapter 6 TCP/IP Open Systems Interconnection Model Anatomy of a Packet Internet Protocol Security (IPSec) Web Security (HTTP over TLS, Secure-HTTP) Lecturer: Pei-yih Ting 1 2

More information

Kepware Technologies Optimizing KEPServerEX V5 Projects

Kepware Technologies Optimizing KEPServerEX V5 Projects Kepware Technologies Optimizing KEPServerEX V5 Projects September, 2010 Ref. 50.16 Kepware Technologies Table of Contents 1. Overview... 1 2. Factors that Affect Communication Speed... 1 2.1 Defining Bandwidth...

More information

How To Set Up A Modbus Cda On A Pc Or Maca (Powerline) With A Powerline (Powergen) And A Powergen (Powerbee) (Powernet) (Operating System) (Control Microsci

How To Set Up A Modbus Cda On A Pc Or Maca (Powerline) With A Powerline (Powergen) And A Powergen (Powerbee) (Powernet) (Operating System) (Control Microsci Firmware Loader User Manual CONTROL MICROSYSTEMS SCADA products... for the distance 48 Steacie Drive Telephone: 613-591-1943 Kanata, Ontario Facsimile: 613-591-1022 K2K 2A9 Technical Support: 888-226-6876

More information

PROGRAMMABLE LOGIC CONTROL

PROGRAMMABLE LOGIC CONTROL PROGRAMMABLE LOGIC CONTROL James Vernon: control systems principles.co.uk ABSTRACT: This is one of a series of white papers on systems modelling, analysis and control, prepared by Control Systems Principles.co.uk

More information

FILE TRANSFER PROTOCOL INTRODUCTION TO FTP, THE INTERNET'S STANDARD FILE TRANSFER PROTOCOL

FILE TRANSFER PROTOCOL INTRODUCTION TO FTP, THE INTERNET'S STANDARD FILE TRANSFER PROTOCOL FTP FILE TRANSFER PROTOCOL INTRODUCTION TO FTP, THE INTERNET'S STANDARD FILE TRANSFER PROTOCOL Peter R. Egli INDIGOO.COM 1/22 Contents 1. FTP versus TFTP 2. FTP principle of operation 3. FTP trace analysis

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

Port Scanning. Objectives. Introduction: Port Scanning. 1. Introduce the techniques of port scanning. 2. Use port scanning audit tools such as Nmap.

Port Scanning. Objectives. Introduction: Port Scanning. 1. Introduce the techniques of port scanning. 2. Use port scanning audit tools such as Nmap. Port Scanning Objectives 1. Introduce the techniques of port scanning. 2. Use port scanning audit tools such as Nmap. Introduction: All machines connected to a LAN or connected to Internet via a modem

More information

THE STEP7 PROGRAMMING LANGUAGE

THE STEP7 PROGRAMMING LANGUAGE THE STEP7 PROGRAMMING LANGUAGE STEP 7 is the standard software package used for configuring and programming SIMATIC programmable logic controllers. It is part of the SIMATIC industry software. Basic algorithm

More information

The first program: Little Crab

The first program: Little Crab CHAPTER 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,

More information

Cyclic Architectures in UML

Cyclic Architectures in UML Cyclic Architectures in UML Techletter Nr. 2 What is a Techletter? Well actually nothing more than a newsletter, just that the content mainly focusses on technical items in the UML and in embedded systems

More information

4D v11 SQL Release 6 (11.6) ADDENDUM

4D v11 SQL Release 6 (11.6) ADDENDUM ADDENDUM Welcome to release 6 of 4D v11 SQL. This document presents the new features and modifications of this new version of the program. Increased ciphering capacities Release 6 of 4D v11 SQL extends

More information

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business Software Engineering Design Theory and Practice Carlos E. Otero CRC Press Taylor & Francis Croup Boca Raton London New York CRC Press is an imprint of the Taylor St Francis Croup, an Informa business AN

More information

SNMP Manager User s Manual

SNMP Manager User s Manual SNMP Manager User s Manual Table of Contents 1. Introduction...2 2. SNMP Manager Install, Quick Start and Uninstall...2 2.1. Software Installation...2 2.2. Software Quick Start...2 2.3. Software Uninstall...2

More information

Business Vehicle Tracking USER MANUAL

Business Vehicle Tracking USER MANUAL Business Vehicle Tracking USER MANUAL Logging On To start using Fonix Swift, navigate to www.businessvehicletracking.co.uk You will be presented with the following login screen: To log in, enter your Username

More information