sea buoy problem
play

Sea Buoy Problem CMU-SEI Example Software Architecture Problem J. - PowerPoint PPT Presentation

Sea Buoy Problem CMU-SEI Example Software Architecture Problem J. Scott Hawker/R. Kuehl p. 1 R I T Software Engineering Functional Requirements Sea Buoy a collection of untethered buoys acquire and maintain navigation and weather


  1. Sea Buoy Problem CMU-SEI Example Software Architecture Problem J. Scott Hawker/R. Kuehl p. 1 R I T Software Engineering

  2. Functional Requirements  Sea Buoy – a collection of untethered buoys acquire and maintain navigation and weather data, and provide the data to air and sea traffic  Use cases:  Collect environment data:  Air and water temperature every 10 seconds  Wind speed every 30 seconds  Location data every 10 seconds  Broadcast environment data  Every 60 seconds to air and sea traffic  On-demand broadcast 24-hour history  Activate/deactivate emergency SOS signal  Activate/deactivate red light, audio horn, and continuous broadcast of location data J. Scott Hawker/R. Kuehl p. 2 R I T Software Engineering

  3. Architecturally Significant Requirements  Single processor due to cost  Must operate for one year without maintenance  Support multiple sensors and accommodation for future sensor types  Data formats depend on the sensors used  Availability requirement – 24/7  On-demand broadcasts have priority over periodic broadcasts  Emergency broadcasts have priority over all other broadcasts  There is limited memory to save raw data beyond one month but summary statistical data must be persisted J. Scott Hawker/R. Kuehl p. 3 R I T Software Engineering

  4. First Order Software Architecture Design How Did We get Here? J. Scott Hawker/R. Kuehl p. 4 R I T Software Engineering

  5. Design Patterns and Tactics  Synchronization - mutually exclusive access to data repositories  Concurrent Pipelines - several real-time information pipelines  Abstract Data Repository - handle sensor data format changes or addition of new sensor data types  Simplex pattern- redundancy (same functions but not implementation) to achieve availability/reliability J. Scott Hawker/R. Kuehl p. 5 R I T Software Engineering

  6. Synchronization ASRs Access to sensor data  Single processor on which multiple processes reside, each of which perform computations on their own input data stream (messages)  Each final output from the system must be produced within a specified time interval after the arrival of an input (message) and after all computations have been performed  So completely process each message with a specified bounded end-to end latency — a deadline  Contention for shared resources J. Scott Hawker/R. Kuehl p. 6 R I T Software Engineering

  7. Synchronization Design  Application: store sensor data then retrieve for periodic or on-demand transmission  Stimuli: two or more periodic or sporadic input streams  Response: end-to-end, worst-case latency  Decisions: process relationships based on prioritization, scheduling, data-locking policy J. Scott Hawker/R. Kuehl p. 7 R I T Software Engineering

  8. Add in Broadcast and Transmit Function  Apply concurrent pipeline tactic - broadcast + transmission pipeline  Broadcast has lower frequency than data acquisition, so assign it a lower priority  but Broadcast could block sensor access to DB  Effective priority of a pipeline is strongly related to the lowest priority process in the pipeline  If transmission process priority is lower than broadcast priority, it effectively lowers the priority of the entire pipeline J. Scott Hawker/R. Kuehl p. 8 R I T Software Engineering

  9. Apply Concurrent Pipeline Tactic J. Scott Hawker/R. Kuehl p. 9 R I T Software Engineering

  10. Add in History Function “On - demand, broadcast 24 hour history” Quantitative analysis: what scheduling policy?  History request is stochastic (event-driven, aperiodic)  Data base synchronization and concurrent pipeline behavior is (assumed) deterministic  Non blocking data base access, priority based preemptive task scheduling  Apply rate monotonic scheduling (RMS)  Static priority scheduling - the shorter the task duration, the higher the task's priority  (versus round robin or time sharing for example) J. Scott Hawker/R. Kuehl p. 10 R I T Software Engineering

  11. Add in SOS Function Analysis:  Constraint: SOS, history and broadcast all use the transmission process  SOS highest priority, then history, then broadcast  Synchronization treated transmit as a critical section, thus a long history broadcast could block a high priority SOS  Must make history broadcast preemptive  e.g. transmit long message in small chunks, preempt between chunks J. Scott Hawker/R. Kuehl p. 11 R I T Software Engineering

  12. Adding in Modifiability Requirements  Modifications: add new sensor types  Will new sensors produce data in same or different format?  Are new sensors added or substitutes for existing sensors?  Is a new environmental parameter being sensed?  Apply a data indirection pattern to hide sensor changes:  Abstract Data Repository  Publish/Subscribe  Considerations: data format conversion effect on process execution time, thus latency J. Scott Hawker/R. Kuehl p. 12 R I T Software Engineering

  13. Current Architecture J. Scott Hawker/R. Kuehl p. 13 R I T Software Engineering

  14. Adding Availability Simplex Pattern  SOS function is critical  Add redundancy that use different mechanisms  Provide a separate hardware unit for SOS transmit J. Scott Hawker/R. Kuehl p. 14 R I T Software Engineering

Recommend


More recommend