ORIGINAL ARTICLE Open Access Static and fatigue behavior ...
Software modeling for embedded systems: static and dynamic behavior.
-
date post
15-Jan-2016 -
Category
Documents
-
view
260 -
download
5
Transcript of Software modeling for embedded systems: static and dynamic behavior.
![Page 1: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/1.jpg)
Software modeling for embedded systems: static and dynamic behavior
![Page 2: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/2.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/3.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/4.jpg)
fig_05_00
UML: Use case diagram (graphical)
![Page 5: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/5.jpg)
fig_05_01
UML Use case diagram--example
![Page 6: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/6.jpg)
fig_05_02
UML: Use case diagram (text); note exceptions
![Page 7: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/7.jpg)
UML—static modeling
![Page 8: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/8.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/9.jpg)
fig_05_04
UML: class relationships: inheritance
![Page 10: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/10.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/11.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/12.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/13.jpg)
UML—dynamic modeling
![Page 14: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/14.jpg)
fig_05_08
UML: interaction diagram—call and return
![Page 15: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/15.jpg)
fig_05_09
UML: interaction diagram—create and destroy
![Page 16: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/16.jpg)
fig_05_10
UML: interaction diagram—send (no response expected)
![Page 17: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/17.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/18.jpg)
fig_05_12
UML sequence diagram--example
![Page 19: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/19.jpg)
fig_05_13
UML: concurrent behavior. Example: fork and join
![Page 20: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/20.jpg)
fig_05_14
UML: concurrent behavior. Example: branch and merge
![Page 21: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/21.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/22.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/23.jpg)
fig_05_18
UML state chart: types of transitions
initial state
final state
![Page 24: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/24.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/25.jpg)
fig_05_20
UML: can decompose state into sequential substates
![Page 26: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/26.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/27.jpg)
fig_05_22
UML: can have concurrent substates
![Page 28: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/28.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/29.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/30.jpg)
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.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/31.jpg)
fig_05_24
Control and data flow diagrams: tasks (with hierarchy levels)
![Page 32: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/32.jpg)
fig_05_25
Control and data flow diagrams: Data sources and sinks
![Page 33: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/33.jpg)
fig_05_26
Control and data flow diagrams: Data stores
![Page 34: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/34.jpg)
fig_05_27
Control and data flow diagrams: Example
![Page 35: Software modeling for embedded systems: static and dynamic behavior.](https://reader033.fdocuments.us/reader033/viewer/2022061600/56649d445503460f94a2118c/html5/thumbnails/35.jpg)
fig_05_28
Control and data flow diagrams: Hierarchical view of an input / output task