Title: Software modeling for embedded systems: static and dynamic behavior
1- Software modeling for embedded systems static
and dynamic behavior
2- Important concepts in embedded systems
- --concurrency the system can handle multiple
active independent or cooperating objects at the
same time - --thread of controlmodels sequential execution
of a set of instructions embedded system may
have several concurrent threads operating
simultaneously - --persistencehow long does a software object
last? - Examples
- Temporary variable
- Global variable
- Software module
3table_05_00
Recall UML syntax can vary among
implementations Previously we looked at one
implementation, here we consider examples from
the text
table_05_00
4fig_05_00
UML Use case diagram (graphical)
fig_05_00
5fig_05_01
UML Use case diagram--example
fig_05_01
6fig_05_02
UML Use case diagram (text) note exceptions
fig_05_02
7 8fig_05_03
UML Class diagram (CRC card) Class
name data Methods (responsibilities and colla
borators)
( collaborators)
fig_05_03
9fig_05_04
UML class relationships inheritance
fig_05_04
10fig_05_05
UML interfacesimilar to inheritance but
different public appearance Hidde
n operation
fig_05_05
11fig_05_06
UML containment of one class within
another Type 1 aggregationstatistical analysis
has a number of algorithm parts
fig_05_06
12fig_05_07
UML containment of one class within
another Type 2 compositionhere the intervals
are meaningless outside the schedule ( local
variables)
fig_05_07
13 14fig_05_08
UML interaction diagramcall and return
fig_05_08
15fig_05_09
UML interaction diagramcreate and destroy
fig_05_09
16fig_05_10
UML interaction diagramsend (no response
expected)
fig_05_10
17fig_05_11
UML sequence diagram sequence of actions
carries out a use case
fig_05_11
18fig_05_12
UML sequence diagram--example
fig_05_12
19fig_05_13
UML concurrent behavior. Example fork and
join
fig_05_13
20fig_05_14
UML concurrent behavior. Example branch and
merge
fig_05_14
21fig_05_15
UML activity diagramcaptures all actions and
control flows within a task
fig_05_15
22fig_05_16
UML state machine models--4 types of
events UML state chart is a
directed graph
fig_05_16
23fig_05_18
UML state chart types of transitions
initial state
final state
fig_05_18
24fig_05_19
UML state chart actions and guard conditions If
guard condition is false, transition does not
happen
fig_05_19
25fig_05_20
UML can decompose state into sequential substates
fig_05_20
26fig_05_21
UML can define a history state (e.g., for an
interrupt)system will probably eventually return
to this state
fig_05_21
27fig_05_22
UML can have concurrent substates
fig_05_22
28- 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
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
29- 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
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
30fig_05_23
Another methodology control flow and data flow
diagrams (Note in a processor we usually have a
data path and a control path)
fig_05_23
31fig_05_24
Control and data flow diagrams tasks (with
hierarchy levels)
fig_05_24
32fig_05_25
Control and data flow diagrams Data sources
and sinks
fig_05_25
33fig_05_26
Control and data flow diagrams Data stores
fig_05_26
34fig_05_27
Control and data flow diagrams Example
fig_05_27
35fig_05_28
Control and data flow diagrams Hierarchical
view of an input / output task
fig_05_28