1 / 22

Marija Rakic Greg Gao Roshanak Roshandel

Statecharts example. Marija Rakic Greg Gao Roshanak Roshandel. Statecharts – brief overview. Provide behavioral description of reactive systems. Clustering and refinement. States and transitions Arrow- labeled event and optionally a parenthesized condition Clustered two events to one

jeslyn
Download Presentation

Marija Rakic Greg Gao Roshanak Roshandel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Statecharts example Marija Rakic Greg Gao Roshanak Roshandel CS599- Formal Methods in SW Architectures

  2. Statecharts – brief overview Provide behavioral description of reactive systems • Clustering and refinement • States and transitions • Arrow- labeled event and optionally a parenthesized condition • Clustered two events to one • D is an abstraction of A and C • D can be refined to consist of A and C • Zooming in and out of D (in latter A and C are not shown) CS599- Formal Methods in SW Architectures

  3. A D B G m b in (G) F a g d a C E Statecharts – brief overview • Orthogonality Y • Y is the orthogonal product of A and D CS599- Formal Methods in SW Architectures

  4. Gas Station Specifications 1. There will be four pumps at the gas station, and a unique number will identify each pump. 2. All pumps are “self serve.” 3. Each pump has three nozzles for different type of gas—regular, plus, and premium—denoting different octane content in the gasoline. The prices for the three types of gas vary. 4. Each pump has one meter. At any one time, only one person can use one pump. 5. All pumps are connected to common storage tanks, one for each of the three types of gas. When the level of gas in a storage tank gets below a set threshold, a request for a refill is issued to an external system. 6. It is possible for a customer to pump gas during storage tank refill. 7. A customer must pay first. The single gas station attendant accepts cash only. 8. Upon payment, the attendant enables a given pump to dispense the paid-for amount of gas. 9. The customer can change the decision on the type of gas (s)he wants to fill before starting to fill. Once the customer has started to fill, then the decision cannot be changed. 10. Should the customer pre-pay more than (s)he spent to fill the car tank, the gas station attendant will return to the customer his/her change. 11. The pump nozzle has a sensor that stops the gas flow once the tank is full. 12. The system should handle race conditions, such as a. one customer paying while, in the meantime, another beginning to pump gas at the paid-for pump, and b. one customer beginning to pump at a pump without paying, before another is able to retrieve his/her change. CS599- Formal Methods in SW Architectures

  5. Example – gas station • Assumptions • The threshold is set in such a way that there is enough gas for the current vehicles on all pumps to finish filling Events • “regular”, “premium” or “plus” selected • Level of gas reached threshold • Pump gas • Tank full • Pay • Change picked up CS599- Formal Methods in SW Architectures

  6. Refinement Clustering CS599- Formal Methods in SW Architectures

  7. Gas station Handling the raise condition CS599- Formal Methods in SW Architectures

  8. CS599- Formal Methods in SW Architectures

  9. CS599- Formal Methods in SW Architectures

  10. Cruise Control System CS599- Formal Methods in SW Architectures

  11. Cruise Control System Specifications 1. You can assume an automatic transmission vehicle. 2. For any of the cruise control (CC) functions to take effect, CC must be turned on first. 3. CC can be in the following states: off, enabled (i.e., on and cruising), and disabled (on, but not cruising). 4. The CC system should be automatically disabled below 30mph and above 90mph. 5. Four actions are permitted during CC: set speed, accelerate, decelerate, and resume speed. 6. When the system is under CC and the brake is pressed, CC is disabled. When the resume button is pressed, the system resumes at the last set CC speed. 7. When the system is under CC and the accelerator pedal is pressed, CC is disabled and the speed increases correspondingly. When the accelerator is released, the CC resumes at its last set CC speed. If at any point of time during acceleration the CC speed is set, CC replaces the old set speed with the new speed. 8. If CC is enabled and the vehicle starts going uphill or downhill, CC should automatically apply the accelerator or brake to maintain the set speed. CS599- Formal Methods in SW Architectures

  12. Cruise Control (CC) Events • Engine on • Engine off • CC off • CC on (+ cruising+ disabled) • Set speed (CC is on) • Accelerate • Decelerate • Resume CC CS599- Formal Methods in SW Architectures

  13. Refinement Clustering • Top level states: Engine on and engine off • Events to change states: turn on engine, turn off engine CS599- Formal Methods in SW Architectures

  14. Refinement Clustering • Zoom in engine on: CC on and CC off • Events to change states: push CC on, push CC off CS599- Formal Methods in SW Architectures

  15. Refinement Clustering • Zoom in CC on: CC enabled and CC disabled • Disable to enable: push resume (speed set); push set (30<speed<90); accelerator released; • Enable to Disable: gas or brake pressed; CS599- Formal Methods in SW Architectures

  16. CS599- Formal Methods in SW Architectures

  17. What Statecharts are good for? • Reactive Systems (event driven) • Showing concurrency and its restrictions • Showing state changes • Certain timing constraints • Hierarchical systems • Easy to understand and communicate CS599- Formal Methods in SW Architectures

  18. What are the problems? • Statemate formulas require more notation than others for the same level of details • Large (or variable) number of similar activities are hard to present • Various designers could come up with different designs • State explosion CS599- Formal Methods in SW Architectures

  19. What happened in our systems? We used: • Clustering/Refinement • Orthogonality (i.e. Concurrency) • Action/Activities We did not use: • History (we tried!) CS599- Formal Methods in SW Architectures

  20. Our experience • Timing and Concurrency issue was not critical in our systems • Orthogonality could not be used except for the the gas station example when the station runs out of gas • History was not used since the system did not need to remember the previous state in any of the examples CS599- Formal Methods in SW Architectures

  21. Challenges • Transition on the same state • Problems in the system for differentiating states from conditions and events. • Is “grade selected” an state or event? • Is “current speed = cruise speed” an event or state or condition? • Concurrency issue in the gas station example CS599- Formal Methods in SW Architectures

  22. Discussion • Is Statechart notation appropriate for modeling these systems? • Pre/post conditions  conditions/activities • Problem with specifying values in the statecharts (unlike C2SADEL) • Difficult to model statical aspects. Variables inside the state (current speed) • Specifying invariants, state variable. CS599- Formal Methods in SW Architectures

More Related