32
1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5 Design example: model train controller

1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Embed Size (px)

Citation preview

Page 1: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

1. Embedded Computing

1.1 Introduction1.2 Complex system and

microprocessors1.3 Embedded system design process1.4 Formalisms for system designs1.5 Design example: model train

controller

Page 2: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Introduction

Object-oriented design.Unified Modeling Language (UML).

Page 3: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

System modeling

Need languages to describe systems: useful across several levels of

abstraction; understandable within and between

organizations.Block diagrams are a start, but don’t

cover everything.

Page 4: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Object-oriented design

Object-oriented (OO) design: A generalization of object-oriented programming.

Object = state + methods. State provides each object with its own

identity. attributes Methods provide an abstract interface

to the object.

Page 5: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

OO implementation in C++

class display {pixels : pixeltype[IMAX,JMAX];

public:display() { }pixeltype pixel(int i, int j) { return pixels[i,j]; }void set_pixel(pixeltype val, int i, int j) { pixels[i,j] = val; }

}

Page 6: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

OO implementation in C

typedef struct { pixels: pixeltype[IMAX,JMAX]; } display;

display d1;pixeltype pixelval(pixel *px, int i, int j) { return px[i,j]; }

Page 7: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Objects and classes

Class: object type.Class defines the object’s state

elements but state values may change over time.

Class defines the methods used to interact with all objects of that type. Each object has its own state.

Page 8: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

OO design principles

Some objects will closely correspond to real-world objects. Some objects may be useful only for

description or implementation.Objects provide interfaces to

read/write state, hiding the object’s implementation from the rest of the system.

Page 9: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

UML

Developed by Booch et al.Goals:

object-oriented; visual; useful at many levels of abstraction; usable for all aspects of design.

Page 10: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

UML object

d1: Display

pixels: array[] of pixelselementsmenu_items

pixels is a2-D array

comment

object nameclass name

attributes

Page 11: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

UML class

Display

pixelselementsmenu_items

mouse_click()draw_box

operations

class name

Page 12: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

The class interface

The operations provide the abstract interface between the class’s implementation and other classes.

Operations may have arguments, return values.

An operation can examine and/or modify the object’s state.

Page 13: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Choose your interface properly

If the interface is too small/specialized: object is hard to use for even one application; even harder to reuse.

If the interface is too large: class becomes too cumbersome for designers

to understand; implementation may be too slow; spec and implementation are probably buggy.

Page 14: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Relationships between objects and classes

Association: objects communicate but one does not own the other.

Aggregation: a complex object is made of several smaller objects.

Composition: aggregation in which owner does not allow access to its components.

Generalization: define one class in terms of another.

Page 15: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Class derivation

May want to define one class in terms of another. Derived class inherits attributes,

operations of base class.

Derived_class

Base_class

UMLgeneralization

Page 16: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Class derivation example

Display

pixelselementsmenu_items

pixel()set_pixel()mouse_click()draw_box

BW_display Color_map_display

baseclass

derived class

Page 17: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Multiple inheritance

Speaker Display

Multimedia_display

base classes

derived class

Page 18: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Links and associations

Link: describes relationships between objects.

Association: describes relationship between classes.

Page 19: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Link example

Link defines the contains relationship:

message

msg = msg1length = 1102

message

msg = msg2length = 2114

message set

count = 2

Page 20: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Association example

message

msg: ADPCM_streamlength : integer

message set

count : integer

0..* 1

contains

# contained messages # containing message sets

Page 21: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Stereotypes

Stereotype: the class of an entity in the UML metamodel. It provide an extension mechanism to the UML. Each modeling element in the UML is

represented as a metaclass (classifier, class, state, operation, signal).

A stereotyped metaclass is derived form an existing UML metaclass for recurring combination of elements in an object or class.

Example: <<foo>> : double angled brackets

Page 22: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Behavioral description

Several ways to describe behavior: internal view; external view.

state machine sequence diagram

Page 23: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

State machines

a b

state state name

Transition triggered by events

Page 24: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Event-driven state machines

Behavioral descriptions are written as event-driven state machines. Machine changes state when receiving

an input.An event may come from inside or

outside of the system.

Page 25: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Types of events

Signal: asynchronous event.Call: synchronized communication.Timer: activated by time.

Page 26: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Signal event

<<signal>>mouse_click

leftorright: buttonx, y: position

declaration

a

b

mouse_click(x,y,button)

event description

Page 27: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Call event

c d

draw_box(10,5,3,2,blue)

Page 28: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Timer event

e f

tm(time-value)

Timeout event 는 e state 에 들어온 후 , time-value 시간이지난 후에 transition 이 일어난다 .

Page 29: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Example state machine

regionfound

got menuitem

calledmenu item

foundobject

objecthighlighted

start

finish

mouse_click(x,y,button)/find_region(region)

input/outputregion = menu/which_menu(i) call_menu(I)

region = drawing/find_object(objid) highlight(objid)

event/action

conditional/unconditional transitions

Page 30: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Sequence diagram

Shows sequence of operations over time.

Relates behaviors of multiple objects.

HW timing diagram 과 비슷한 특정 scenario 만을 표현여러가지 alternative 가능성 표현 부적합

Page 31: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Sequence diagram example

m: Mouse d1: Display u: Menu

mouse_click(x,y,button)which_menu(x,y,i)

call_menu(i)

time

lifeline

focus of control

object

Page 32: 1. Embedded Computing 1.1 Introduction 1.2 Complex system and microprocessors 1.3 Embedded system design process 1.4 Formalisms for system designs 1.5

Summary

Object-oriented design helps us organize a design.

UML is a transportable system design language. Provides structural and behavioral

description primitives.