{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

AlexLecture_StateModelling - Motivation and overview State...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
1 State Modeling - UML 2 Motivation and overview Some objects in a system have complex temporal behaviors , which must be carefully designed E.g., modern interactive and distributed applications Typically comprise multiple active objects Use locking primitives to synchronize threads E.g., embedded systems where software controls devices Devices run in parallel with controller Communicate with one another by signalling Design problems: e.g., race conditions and synchronization anomalies e.g., lost or unexpected signals, deadlock Issue: How to design to prevent these problems 3 Concrete example Starter interface Shift-lock actuator Software controller Remote interface to engine from engine 4 Potential problems in such systems Controller enters a state in which it is no longer receptive to signals from its environment Signals may arrive but have no effect Controller may prevent issuing of signals e.g., greying out of buttons in a graphical dialog box Controller enters a state in which it is receptive to some signals, but not those that are being offered by the environment Controller expects some peer to be in a state that is ready to receive a signal, sends the signal, but the peer isn t ready
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 5 Problems (continued) The bad news: Most of these problems cannot be reliably detected and fixed via testing Some are race conditions Depend on how the various actors are scheduled by OS Difficult to reproduce Very difficult to simulate all possible interactions with an environment Often we test our programs under lots of assumptions about how they will be used These assumptions often turn out to be naive 6 Current state of the practice... Relies on designing out these problems rather than trying to uncover and reproduce them after the fact Aided by finite state modeling and analysis of software architectures Model each entity in the system as a communicating finite state machine
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}