Lesson 16 STD Development Testing Procedures Object Oriented

Lesson 16: STD -- Development & Testing Procedures Object. Oriented Modeling & Applications MEF-OOM&A-L 16 -1 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -1

Lesson Objectives o Understand STD development procedures o Understand some of the common errors that are made in constructing STDs o List and discuss some practical tips about dynamic modeling MEF-OOM&A-L 16 -2 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -2

STD Development Procedures • Identify external events from the Context Diagrams – A discrete data item arrives – A required time passed – A recognition device signals an event • Use scenarios • Identify state from DFDs • Add Idle state to the list of states MEF-OOM&A-L 16 -3 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -3

STD Development Procedures (con’d) • Combine states and events into a STD • Identify actions that need to be performed after each event • Identify states that split into substates • Use an action table to check for missing states and events • Walkthrough the STD with users to verify it MEF-OOM&A-L 16 -4 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -4

Testing a STD • Five clues 1. No transition out of a state 2. No transition into a state 3. The STD is too complicated 4. Ambiguous or unclear event names 5. Events with continuous instead of discrete signals MEF-OOM&A-L 16 -5 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -5

No Transition Out of a State Clue # 1: No transition out of a state Cause: An event & transition line have been omitted Cure: Identify the event and add the transition Start Idle State Cold Enable Heat Warm Disable Heating Hot Enable Cooling Idle State Cold Enable Heat Warm Disable Heating Hot OK Disable Cooling Enable Cooling MEF-OOM&A-L 16 -6 Stop A STD in which the Cooling state has no exit Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -6

No Transition Into a State Clue # 2: No transition into a state Cause: An event & transition line have been omitted Cure: Identify the event and add the transition Start Stop Start Idle State Cold Enable Heat Idle State Warm Disable Heat Cooling Stop Cold Enable Heat Hot Warm Enable Cool Disable Heat Cooling Cold Enable Heating MEF-OOM&A-L 16 -7 Cold Enable Heating A STD with no way to get into the Cooling state Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -7

The STD is Too Complicated Clue # 3: The STD is too complicated. Cause: The STD should be redrawn in multiple levels Cure: • Identify independent group of states and give them a group name • Each group can then be redrawn in detail on separate diagrams • Such leveling reduces the complexity of the diagrams and make easier for the reader to identify the different processes that are being controlled. MEF-OOM&A-L 16 -8 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -8

The STD is Too Complicated (cont’d) Start Stop Idle State Cold Enable Gas Cold or Cool Enable Electric Gas Heating Acid Hot Enable Base Refrig’n OK Disable Base Adding Base Cool Disable Gas Cold Enable Gas OK Disable Electric Cold oe Cool Disable Refrig’n MEF-OOM&A-L 16 -9 Basic Enable Acid Electric Heating OK Disable Acid Adding Acid Hot Disable Electric Enable Refrig’n Refrigeration Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -9

The STD is Too Complicated (cont’d) Start Stop Idle State Wrong Temperature Enable Control Temperature OK Disable Control Wrong p. H Enable p. H Control p. H OK Disable p. H Control Temperature Control p. H This STD combines two control functions that should be separated and leveled. Control Temperature and Control p. H can then be zoomed separately MEF-OOM&A-L 16 -10 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -10

Ambiguous or Unclear Event Names Clue # 4: Ambiguous or unclear event names Cause: Not identified Cure: Identify all the events and include them in the STD Start Stop Start Idle State Signal Arrives Process Signal Finished End Processing Stop Idle State Cold Enable Heat Hot Warm Enable Cool Disable Heat Cooling Cold Enable Heat Signal Processing MEF-OOM&A-L 16 -11 Heating Signal Arrives and Finished are not clearly defined events Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -11

Events with Continuous Instead of Discrete Signals Clue # 5: Events with continuous instead of discrete signals Cause: A signal is not an event. It is a raw data stream. Cure: Extract the events triggered by special data values Start Stop Idle State Temperature Control Temperature Disable Control p. H Enable Idle Control p. H Control Temperature MEF-OOM&A-L 16 -12 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -12

Events with Continuous Instead of Discrete Signals (cont’d) Start Stop Idle State Wrong Temperature Enable Control Temperature OK Disable Control Wrong p. H Enable p. H Control p. H OK Disable p. H Control Temperature Control p. H Temperature and p. H are not events. They are continuous data streams. MEF-OOM&A-L 16 -13 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -13

Practical Tips • Only construct STDs for classes with meaningful dynamic behavior. – Not all classes require a STD. • Check the various STDs for consistency on shared events so that the full dynamic model will be accurate. – Check for redundancy • Use scenarios to help you construct STDs • Distinguish between activities and actions. – Activities occur over a period of time. – Actions are instantaneous compared to the time scale of an application. • Distinguish between events and conditions MEF-OOM&A-L 16 -14 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -14

Practical Tips • Use nested states when the same transaction applies to many states • Most concurrency arises from object aggregation and need not be expressed explicitly in the STD. – Use composite states to show independent facets of the behavior of a single object • Try to make the STDs of subclasses independent of the STDs of their superclasses. – The subclass STDs should concentrate on things unique to the subclasses. • Beware of unwanted race conditions in the STDs – Race conditions may occur when a state can accept events from more than one object. MEF-OOM&A-L 16 -15 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -15

Discussion Questions Define nested states and race conditions describe how to construct a STD. MEF-OOM&A-L 16 -16 Dr. M. E. Fayad STD -- Development & Testing Procedures - Page L 16 -16
- Slides: 16