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

sea buoy problem
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1
  • J. Scott Hawker/R. Kuehl
  • p. 1

R I T

Software Engineering

Sea Buoy Problem

CMU-SEI Example Software Architecture Problem

slide-2
SLIDE 2
  • J. Scott Hawker/R. Kuehl
  • p. 2

R I T

Software Engineering

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

slide-3
SLIDE 3
  • J. Scott Hawker/R. Kuehl
  • p. 3

R I T

Software Engineering

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

slide-4
SLIDE 4
  • J. Scott Hawker/R. Kuehl
  • p. 4

R I T

Software Engineering

First Order Software Architecture Design How Did We get Here?

slide-5
SLIDE 5
  • J. Scott Hawker/R. Kuehl
  • p. 5

R I T

Software Engineering

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

slide-6
SLIDE 6
  • J. Scott Hawker/R. Kuehl
  • p. 6

R I T

Software Engineering

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

slide-7
SLIDE 7
  • J. Scott Hawker/R. Kuehl
  • p. 7

R I T

Software Engineering

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

slide-8
SLIDE 8
  • J. Scott Hawker/R. Kuehl
  • p. 8

R I T

Software Engineering

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

slide-9
SLIDE 9
  • J. Scott Hawker/R. Kuehl
  • p. 9

R I T

Software Engineering

Apply Concurrent Pipeline Tactic

slide-10
SLIDE 10
  • J. Scott Hawker/R. Kuehl
  • p. 10

R I T

Software Engineering

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)

slide-11
SLIDE 11
  • J. Scott Hawker/R. Kuehl
  • p. 11

R I T

Software Engineering

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

slide-12
SLIDE 12
  • J. Scott Hawker/R. Kuehl
  • p. 12

R I T

Software Engineering

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

  • n process execution time, thus latency
slide-13
SLIDE 13
  • J. Scott Hawker/R. Kuehl
  • p. 13

R I T

Software Engineering

Current Architecture

slide-14
SLIDE 14
  • J. Scott Hawker/R. Kuehl
  • p. 14

R I T

Software Engineering

Adding Availability

Simplex Pattern

 SOS function is critical  Add redundancy that use different mechanisms  Provide a separate hardware unit for SOS transmit