+ All Categories
Home > Documents > Software modeling for embedded systems: static and dynamic behavior.

Software modeling for embedded systems: static and dynamic behavior.

Date post: 15-Jan-2016
Category:
View: 265 times
Download: 5 times
Share this document with a friend
Popular Tags:
35
Software modeling for embedded systems: static and dynamic behavior
Transcript
Page 1: Software modeling for embedded systems: static and dynamic behavior.

Software modeling for embedded systems: static and dynamic behavior

Page 2: Software modeling for embedded systems: static and dynamic behavior.

Important concepts in embedded systems:

--concurrency: the system can handle multiple active independent or cooperating objects at the same time

--thread [of control]—models sequential execution of a set of instructions; embedded system may have several concurrent threads operating simultaneously

--persistence—how long does a software object last?

Examples:

Temporary variable

Global variable

Software module

Page 3: Software modeling for embedded systems: static and dynamic behavior.

table_05_00

Recall: “UML” syntax can vary among implementations;

Previously we looked at one implementation, here we consider examples from the text

Page 4: Software modeling for embedded systems: static and dynamic behavior.

fig_05_00

UML: Use case diagram (graphical)

Page 5: Software modeling for embedded systems: static and dynamic behavior.

fig_05_01

UML Use case diagram--example

Page 6: Software modeling for embedded systems: static and dynamic behavior.

fig_05_02

UML: Use case diagram (text); note exceptions

Page 7: Software modeling for embedded systems: static and dynamic behavior.

UML—static modeling

Page 8: Software modeling for embedded systems: static and dynamic behavior.

fig_05_03

UML: Class diagram (“CRC card”)

Class name

data

Methods (responsibilitiesandcollaborators)

(+ collaborators)

Page 9: Software modeling for embedded systems: static and dynamic behavior.

fig_05_04

UML: class relationships: inheritance

Page 10: Software modeling for embedded systems: static and dynamic behavior.

fig_05_05

UML: “interface”—similar to inheritance but different

public appearance

Hidden operation

Page 11: Software modeling for embedded systems: static and dynamic behavior.

fig_05_06

UML: containment of one class within another

Type 1: aggregation—statistical analysis has a number of algorithm “parts”

Page 12: Software modeling for embedded systems: static and dynamic behavior.

fig_05_07

UML: containment of one class within another

Type 2: composition—here the intervals are meaningless outside the schedule (~ “local variables”)

Page 13: Software modeling for embedded systems: static and dynamic behavior.

UML—dynamic modeling

Page 14: Software modeling for embedded systems: static and dynamic behavior.

fig_05_08

UML: interaction diagram—call and return

Page 15: Software modeling for embedded systems: static and dynamic behavior.

fig_05_09

UML: interaction diagram—create and destroy

Page 16: Software modeling for embedded systems: static and dynamic behavior.

fig_05_10

UML: interaction diagram—send (no response expected)

Page 17: Software modeling for embedded systems: static and dynamic behavior.

fig_05_11

UML: sequence diagram:sequence of actions; carries out a use case

Page 18: Software modeling for embedded systems: static and dynamic behavior.

fig_05_12

UML sequence diagram--example

Page 19: Software modeling for embedded systems: static and dynamic behavior.

fig_05_13

UML: concurrent behavior. Example: fork and join

Page 20: Software modeling for embedded systems: static and dynamic behavior.

fig_05_14

UML: concurrent behavior. Example: branch and merge

Page 21: Software modeling for embedded systems: static and dynamic behavior.

fig_05_15

UML activity diagram—captures all actions and control flows within a task

Page 22: Software modeling for embedded systems: static and dynamic behavior.

fig_05_16

UML state machine models--4 types of events:

UML state chart is a directed graph

Page 23: Software modeling for embedded systems: static and dynamic behavior.

fig_05_18

UML state chart: types of transitions

initial state

final state

Page 24: Software modeling for embedded systems: static and dynamic behavior.

fig_05_19

UML state chart: actions and guard conditionsIf guard condition is false, transition does not happen

Page 25: Software modeling for embedded systems: static and dynamic behavior.

fig_05_20

UML: can decompose state into sequential substates

Page 26: Software modeling for embedded systems: static and dynamic behavior.

fig_05_21

UML: can define a “history” state (e.g., for an interrupt)—system will probably eventually return to this state

Page 27: Software modeling for embedded systems: static and dynamic behavior.

fig_05_22

UML: can have concurrent substates

Page 28: Software modeling for embedded systems: static and dynamic behavior.

UML is a tool for a structured design methodology

It helps manage the design and development process

We can also look at modifying / refining the PROCESS itself

"hardware / software life cycle": easier specify requirements (cheaper) (levels:1. functional to fix 2. performance mistakes (time/space) 3. implementation 4. use 5. maintenance)

analyze requirements design implement harder to fix test mistakes maintain

CMM : capability maturity model--defines level of the development process itself

1. Initial: ad hoc

2. Repeatable: basic project management processes in place

3. Defined: documented process integrated into an organization-wide software process

4. Managed: detailed measures are collected

5. Optimizing--desired level: Continuous process improvement from quantitative feedback

Page 29: Software modeling for embedded systems: static and dynamic behavior.

UML is a tool for a structured design methodology

It helps manage the design and development process

We can also look at modifying / refining the PROCESS itself

"hardware / software life cycle": easier specify requirements (cheaper) (levels:1. functional to fix 2. performance mistakes (time/space) 3. implementation 4. use 5. maintenance)

analyze requirements design implement harder to fix test mistakes maintain

CMM : capability maturity model--defines level of the development process itself

1. Initial: ad hoc

2. Repeatable: basic project management processes in place

3. Defined: documented process integrated into an organization-wide software process

4. Managed: detailed measures are collected

5. Optimizing--desired level: Continuous process improvement from quantitative feedback

Page 30: Software modeling for embedded systems: static and dynamic behavior.

fig_05_23

Another methodology: control flow and data flow diagrams(Note: in a processor we usually have a data path and a control path)

Page 31: Software modeling for embedded systems: static and dynamic behavior.

fig_05_24

Control and data flow diagrams: tasks (with hierarchy levels)

Page 32: Software modeling for embedded systems: static and dynamic behavior.

fig_05_25

Control and data flow diagrams: Data sources and sinks

Page 33: Software modeling for embedded systems: static and dynamic behavior.

fig_05_26

Control and data flow diagrams: Data stores

Page 34: Software modeling for embedded systems: static and dynamic behavior.

fig_05_27

Control and data flow diagrams: Example

Page 35: Software modeling for embedded systems: static and dynamic behavior.

fig_05_28

Control and data flow diagrams: Hierarchical view of an input / output task


Recommended