Presentation is loading. Please wait.

Presentation is loading. Please wait.

Embedded System Spring, 2011 Lecture 2: FORMALISMS FOR SYSTEM DESIGN Eng. Wazen M. Shbair.

Similar presentations


Presentation on theme: "Embedded System Spring, 2011 Lecture 2: FORMALISMS FOR SYSTEM DESIGN Eng. Wazen M. Shbair."— Presentation transcript:

1

2 Embedded System Spring, 2011 Lecture 2: FORMALISMS FOR SYSTEM DESIGN Eng. Wazen M. Shbair

3 IUG- Embedded System2 Today’s Lecture  Object-oriented design.  Unified Modeling Language (UML).

4 IUG- Embedded System3 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. 3

5 IUG- Embedded System4 Object-oriented design  Object-oriented (OO) design: A generalization of object-oriented programming.  Object = state + methods. State provides each object with its own identity. Methods provide an abstract interface to the object. 4

6 IUG- Embedded System5 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. 5

7 IUG- Embedded System6 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. 6

8 IUG- Embedded System7 UML  Developed by Booch et al.  Goals: object-oriented; visual; useful at many levels of abstraction; usable for all aspects of design. 7

9 IUG- Embedded System8 UML object d1: Display pixels: array[] of pixels elements menu_items pixels is a 2-D array comment object name class name attributes 8

10 IUG- Embedded System9 UML class Display pixels elements menu_items mouse_click() draw_box operationsclass name 9

11 IUG- Embedded System10 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. 10

12 IUG- Embedded System11 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. 11

13 IUG- Embedded System12 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. 12

14 IUG- Embedded System13 Class derivation  May want to define one class in terms of another. Derived class inherits attributes, operations of base class. Derived_class Base_class UML generalization 13

15 IUG- Embedded System14 Class derivation example Display pixels elements menu_items pixel() set_pixel() mouse_click() draw_box BW_displayColor_map_display base class derived class 14

16 IUG- Embedded System15 Multiple inheritance SpeakerDisplay Multimedia_display base classes derived class 15

17 IUG- Embedded System16 Links and associations  Link: describes relationships between objects.  Association: describes relationship between classes. 16

18 IUG- Embedded System17 Link example  Link defines the contains relationship: message msg = msg1 length = 1102 message msg = msg2 length = 2114 message set count = 2 17

19 IUG- Embedded System18 Association example message msg: ADPCM_stream length : integer message set count : integer 0..*1 contains # contained messages # containing message sets 18

20 IUG- Embedded System19 Stereotypes  Stereotype: recurring combination of elements in an object or class.  Example: > 19

21 IUG- Embedded System20 Behavioral description  Several ways to describe behavior: internal view; external view. 20

22 IUG- Embedded System21 State machines ab state state name transition 21

23 IUG- Embedded System22 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. 22

24 IUG- Embedded System23 Types of events  Signal: asynchronous event.  Call: synchronized communication.  Timer: activated by time. 23

25 IUG- Embedded System24 Signal event > mouse_click leftorright: button x, y: position declaration a b mouse_click(x,y,button) event description 24

26 IUG- Embedded System25 Call event cd draw_box(10,5,3,2,blue) 25

27 IUG- Embedded System26 Timer event ef tm(time-value) 26

28 IUG- Embedded System27 Example state machine region found got menu item called menu item found object highlighted start finish mouse_click(x,y,button)/ find_region(region) input/output region = menu/ which_menu(i) call_menu(I) region = drawing/ find_object(objid) highlight(objid) 27

29 IUG- Embedded System28 Sequence diagram  Shows sequence of operations over time.  Relates behaviors of multiple objects. 28

30 IUG- Embedded System29 Sequence diagram example m: Moused1: Displayu: Menu mouse_click(x,y,button) which_menu(x,y,i) call_menu(i) time 29

31 IUG- Embedded System30 Summary  Object-oriented design helps us organize a design.  UML is a transportable system design language. Provides structural and behavioral description primitives. 30

32 IUG- Embedded System31 Introduction  Example: model train controller. 31

33 IUG- Embedded System32 Purposes of example  Follow a design through several levels of abstraction.  Gain experience with UML. 32

34 IUG- Embedded System33 Model train setup console power supply rcvrmotor ECCaddressheadercommand 33 Message

35 IUG- Embedded System34 Requirements  Console can control 8 trains on 1 track.  Throttle has at least 63 levels.  Inertia control adjusts responsiveness with at least 8 levels.  Emergency stop button.  Error detection scheme on messages. 34

36 IUG- Embedded System35 Requirements form 35

37 IUG- Embedded System36 Digital Command Control  DCC created by model railroad hobbyists, picked up by industry.  Defines way in which model trains, controllers communicate. Leaves many system design aspects open, allowing competition.  This is a simple example of a big trend: Cell phones, digital TV rely on standards. 36 © 2010 Husam Alzaq Computers as Components

38 IUG- Embedded System37 DCC documents  Standard S-9.1, DCC Electrical Standard. Defines how bits are encoded on the rails.  Standard S-9.2, DCC Communication Standard. Defines packet format and semantics. 37

39 IUG- Embedded System38 DCC electrical standard  Voltage moves around the power supply voltage; adds no DC component.  1 is 58  s, 0 is at least 100  s. time logic 1logic 0 58  s>= 100  s 38

40 IUG- Embedded System39 DCC communication standard  Basic packet format: PSA(sD)+E.  P: preamble = 1111111111.  S: packet start bit = 0.  A: address data byte.  s: data byte start bit.  D: data byte (data payload).  E: packet end bit = 1. 39 © 2010 Husam Alzaq Computers as Components

41 IUG- Embedded System40 DCC packet types  Baseline packet: minimum packet that must be accepted by all DCC implementations. Address data byte gives receiver address. Instruction data byte gives basic instruction. Error correction data byte gives ECC. 40 © 2010 Husam Alzaq Computers as Components

42 IUG- Embedded System41 Conceptual specification  Before we create a detailed specification, we will make an initial, simplified specification. Gives us practice in specification and UML. Good idea in general to identify potential problems before investing too much effort in detail. 41

43 IUG- Embedded System42 Basic system commands 42

44 IUG- Embedded System43 Typical control sequence :console:train_rcvr set-inertia set-speed estop 43

45 IUG- Embedded System44 Message classes command set-inertia value: unsigned- integer set-speed value: integer estop 44

46 IUG- Embedded System45 Roles of message classes  Implemented message classes derived from message class. Attributes and operations will be filled in for detailed specification.  Implemented message classes specify message type by their class. May have to add type as parameter to data structure in implementation. 45

47 IUG- Embedded System46 Subsystem collaboration diagram Shows relationship between console and receiver (ignores role of track): :console:receiver 1..n: command 46

48 IUG- Embedded System47 System structure modeling  Some classes define non-computer components. Denote by *name.  Choose important systems at this point to show basic relationships. 47

49 IUG- Embedded System48 Major subsystem roles  Console: read state of front panel; format messages; transmit messages.  Train: receive message; interpret message; control the train. 48 © 2010 Husam Alzaq Computers as Components

50 IUG- Embedded System49 Console system classes console panelformattertransmitter receiver*sender* 1 1 1 1 1 1 1 1 1 1 49

51 IUG- Embedded System50 Console class roles  panel: describes analog knobs and interface hardware.  formatter: turns knob settings into bit streams.  transmitter: sends data on track. 50 © 2010 Husam Alzaq Computers as Components

52 IUG- Embedded System51 Train system classes train set train receiver controller motor interface detector*pulser* 1 1..t 1 1 1 1 1 1 1 1 1 1 51 © 2010 Husam Alzaq Computers as Components

53 IUG- Embedded System52 Train class roles  receiver: digitizes signal from track.  controller: interprets received commands and makes control decisions.  motor interface: generates signals required by motor. 52 © 2010 Husam Alzaq Computers as Components

54 IUG- Embedded System53 Detailed specification  We can now fill in the details of the conceptual specification: more classes; behaviors.  Sketching out the spec first helps us understand the basic relationships in the system. 53

55 IUG- Embedded System54 Train speed control  Motor controlled by pulse width modulation: V + - duty cycle 54

56 IUG- Embedded System55 Console physical object classes knobs* train-knob: integer speed-knob: integer inertia-knob: unsigned- integer emergency-stop: boolean pulser* pulse-width: unsigned- integer direction: boolean sender* send-bit() detector* read-bit() : integer 55 © 2010 Husam Alzaq Computers as Components

57 IUG- Embedded System56 Panel and motor interface classes panel train-number() : integer speed() : integer inertia() : integer estop() : boolean new-settings() motor-interface speed: integer 56

58 IUG- Embedded System57 Class descriptions  panel class defines the controls. new-settings() behavior reads the controls.  motor-interface class defines the motor speed held as state. 57 © 2010 Husam Alzaq Computers as Components

59 IUG- Embedded System58 Transmitter and receiver classes transmitter send-speed(adrs: integer, speed: integer) send-inertia(adrs: integer, val: integer) set-estop(adrs: integer) receiver current: command new: boolean read-cmd() new-cmd() : boolean rcv-type(msg-type: command) rcv-speed(val: integer) rcv-inertia(val:integer) 58

60 IUG- Embedded System59 Class descriptions  transmitter class has one behavior for each type of message sent.  receiver function provides methods to: detect a new message; determine its type; read its parameters (estop has no parameters). 59

61 IUG- Embedded System60 Formatter class formatter current-train: integer current-speed[ntrains]: integer current-inertia[ntrains]: unsigned-integer current-estop[ntrains]: boolean send-command() panel-active() : boolean operate() 60

62 IUG- Embedded System61 Formatter class description  Formatter class holds state for each train, setting for current train.  The operate() operation performs the basic formatting task. 61

63 IUG- Embedded System62 Control input cases  Use a soft panel to show current panel settings for each train.  Changing train number: must change soft panel settings to reflect current train’s speed, etc.  Controlling throttle/inertia/estop: read panel, check for changes, perform command. 62

64 IUG- Embedded System63 Control input sequence diagram :knobs:panel:formatter:transmitter change in speed/ inertia/estop change in train number change in control settings read panel panel settings panel-active send-command send-speed, send-inertia. send-estop read panel panel settings read panel panel settings change in train number set-knobs new-settings 63

65 IUG- Embedded System64 Formatter operate behavior idle update-panel() send-command() panel-active()new train number other 64

66 IUG- Embedded System65 Panel-active behavior panel*:read-train() current-train = train-knob update-screen changed = true T panel*:read-speed() current-speed = throttle changed = true T F... F 65

67 IUG- Embedded System66 Controller class controller current-train: integer current-speed[ntrains]: integer current-direction[ntrains]: boolean current-inertia[ntrains]: unsigned-integer operate() issue-command() 66

68 IUG- Embedded System67 Setting the speed  Don’t want to change speed instantaneously.  Controller should change speed gradually by sending several commands. 67 © 2010 Husam Alzaq Computers as Components

69 IUG- Embedded System68 Sequence diagram for set-speed command :receiver:controller:motor-interface:pulser* new-cmd cmd-type rcv-speed set-speed set-pulse 68

70 IUG- Embedded System69 Controller operate behavior issue-command() receive-command() wait for a command from receiver 69 © 2010 Husam Alzaq Computers as Components

71 IUG- Embedded System70 Refined command classes command type: 3-bits address: 3-bits parity: 1-bit set-inertia type=001 value: 3-bits set-speed type=010 value: 7-bits estop type=000 70 © 2010 Husam Alzaq Computers as Components

72 IUG- Embedded System71 Summary  Separate specification and programming. Small mistakes are easier to fix in the spec. Big mistakes in programming cost a lot of time.  You can’t completely separate specification and architecture. Make a few tasteful assumptions. 71

73 IUG- Embedded System72 References  Jie Hu, ECE692 Embedded Computing Systems, Fall 2010.  Wayne Wolf’s, Computers as Components © 2000, Morgan Kaufman


Download ppt "Embedded System Spring, 2011 Lecture 2: FORMALISMS FOR SYSTEM DESIGN Eng. Wazen M. Shbair."

Similar presentations


Ads by Google