ID: 2

1 Product Description


ID: 3

Please see section B.2 AquaLush Project Mission Statement for an overview of the product.


ID: 4

The software, as delivered, must consist of two parts: A Web-based simulation, and
Software to control the hardware.


ID: 5

2 Functional Requirements


ID: 6

2.1 Setting Parameters


ID: 7

All parameters set by users must remain in effect until changed by users.

This object is linked to:
Device Interface Layer Static Structure
(246)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Basic Flow:
1. Operator sets the mode fro
(16)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Device Interface
(19)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
Remove data from persistent store
(469)
(OUT)
Record a value in persistent store
(447)
(OUT)
StoreDevice Interface
(328)
(OUT)
Fetch a value from persistent store
(458)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Usage Guide
(788)
(OUT)
Restore program state
(677)
(OUT)
AquaLush must recover from power failure
(65)
(IN)
Once configured, AquaLush must not requir
(59)
(IN)

This object has external links to:
UseCaseOneBasicFlowTest.java(EXT OUT)
UseCaseTwoTestBasicFlowCriticalLevel.java(EXT OUT)
UseCaseTwoTestBasicFlowIrrigationTime.java(EXT OUT)
UseCaseTwoTestBasicFlowWaterAllocation.java(EXT OUT)


ID: 8

AquaLush must run in one of two modes: manual or automatic.

This object is linked to:
ManualCycle
(263)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Design Rationale
(408)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
Basic Flow:
1. AquaLush reads each (work
(65)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
IrrigationReport
(615)
(OUT)
Mode
(603)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow operation in either
(12)
(IN)

This object has external links to:
UseCaseSevenBasicFlowTest.java(EXT OUT)
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 9

Users must be able to set the mode.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Basic Flow:
1. Operator sets the mode fro
(16)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)

This object has external links to:
UseCaseOneBasicFlowTest.java(EXT OUT)
UseCaseOneExtension1ATest.java(EXT OUT)


ID: 10

Setting the mode to its current value must have no effect on irrigation.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)


ID: 11

Setting the mode to a different value must result in AquaLush closing all valves.

This object is linked to:
Manually open or close a valve (Irrigato
(353)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator sets the mode fro
(16)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)

This object has external links to:
UseCaseOneBasicFlowTest.java(EXT OUT)
UseCaseOneExtension1ATest.java(EXT OUT)


ID: 12

AquaLush must display the current mode to the user after the user sets the mode.

This object is linked to:
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Basic Flow:
1. Operator sets the mode fro
(16)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)

This object has external links to:
UseCaseOneBasicFlowTest.java(EXT OUT)
UseCaseOneExtension1ATest.java(EXT OUT)


ID: 13

AquaLush must allow users to set the current time.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
User Interface Layer Design Rationale
(480)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the current time to
(7)
(IN)

This object has external links to:
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 14

The current time consists of the current day and the current time of day.

This object is linked to:
Device Interface Layer Static Structure
(246)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
Get the day of the week (Clock and Clock
(392)
(OUT)
Get the time of the day (Clock and Clock
(370)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
AquaLush must allow the current time to
(7)
(IN)


ID: 15

AquaLush must either not allow an invalid time setting or validate the new time setting.

This object is linked to:
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
AquaLush must allow the current time to
(7)
(IN)

This object has external links to:
UseCaseFourBasicFlowInvalidTimeTest.java(EXT OUT)
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 16

If a new time setting fails validation, then AquaLush must notify the user of the problem and not accept the new setting.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
User Interface
(13)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the current time to
(7)
(IN)

This object has external links to:
UseCaseFourBasicFlowInvalidTimeTest.java(EXT OUT)


ID: 17

AquaLush must display a reset current time to the user.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the current time to
(7)
(IN)


ID: 18

If the current time is set so that an irrigation time is skipped, then AquaLush must wait for the next irrigation time. In other words, AquaLush makes no attempt to detect and react to irrigation times skipped as a result of a time setting.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. AquaLush reads each (work
(65)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Trigger: The current time is the irrigat
(64)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow the current time to
(7)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)


ID: 19

AquaLush must allow the days and time of day when irrigation occurs, called the irrigation time, to be set.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowIrrigationTime.java(EXT OUT)


ID: 20

AquaLush must either not allow an invalid irrigation time setting or validate the new irrigation time setting.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowIrrigationTime.java(EXT OUT)
UseCaseTwoTestExtension2aIrrigationTime.java(EXT OUT)


ID: 21

If a new irrigation time setting fails validation, then AquaLush must notify the user of the problem and not accept the new setting.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)

This object has external links to:
UseCaseTwoTestExtension2aIrrigationTime.java(EXT OUT)


ID: 22

If the irrigation time is set when automatic irrigation is in progress, then AquaLush must finish the current irrigation cycle and the new irrigation time must take effect upon completion of the cycle.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)

This object has external links to:
UseCaseTwoTestRunningCycleIrrigationTime.java(EXT OUT)


ID: 23

AquaLush must display a reset irrigation time to the user.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)


ID: 24

AquaLush must allow moisture levels that control irrigation, called critical moisture levels, to be set for each irrigation zone.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
ZoneReport
(606)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow moisture levels that
(9)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowCriticalLevel.java(EXT OUT)


ID: 25

AquaLush must either not allow an invalid critical moisture level setting or validate the new critical moisture level setting.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow moisture levels that
(9)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowCriticalLevel.java(EXT OUT)
UseCaseTwoTestExtension2aCriticalLevel.java(EXT OUT)


ID: 26

If a new critical moisture level setting fails validation, then AquaLush must notify the user of the problem and not accept the new setting.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow moisture levels that
(9)
(IN)

This object has external links to:
UseCaseTwoTestExtension2aCriticalLevel.java(EXT OUT)


ID: 27

If the critical moisture level is set when automatic irrigation is in progress, then AquaLush must use the new critical moisture level to control irrigation immediately.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Check for auto irrigation completion (Zo
(331)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must irrigate only until the se
(50)
(IN)

This object has external links to:
UseCaseTwoTestRunningCycleCriticalLevel.java(EXT OUT)


ID: 28

AquaLush must display a reset critical moisture level to the user.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow moisture levels that
(9)
(IN)


ID: 29

AquaLush must allow the maximum amount of water used in each irrigation cycle, called the water allocation, to be set.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
Create an automatic irrigation cycle (Au
(276)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the maximum amount o
(10)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowWaterAllocation.java(EXT OUT)


ID: 30

AquaLush must either not allow an invalid water allocation setting or validate the new water allocation setting.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow the maximum amount o
(10)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowWaterAllocation.java(EXT OUT)
UseCaseTwoTestExtension2aWaterAllocation.java(EXT OUT)


ID: 31

If a new water allocation setting fails validation, then AquaLush must notify the user of the problem and not accept the new setting.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the maximum amount o
(10)
(IN)

This object has external links to:
UseCaseTwoTestExtension2aWaterAllocation.java(EXT OUT)


ID: 32

If the water allocation is set when automatic irrigation is in progress, then AquaLush must recompute the allocations for each unirrigated irrigation zone and use them immediately to control irrigation.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
See if a cycle is ended
(309)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must irrigate only until the wa
(51)
(IN)
AquaLush must allow the maximum amount o
(10)
(IN)

This object has external links to:
UseCaseTwoTestRunningCycleWaterAllocation.java(EXT OUT)


ID: 33

AquaLush must display a reset water allocation to the user.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the maximum amount o
(10)
(IN)


ID: 34

2.2 General Operation


ID: 35

A configuration file must be prepared at installation so that AquaLush can read this file to obtain its configuration at startup.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Runtime Components
(815)
(OUT)
AquaLush software must be configurable in
(60)
(IN)


ID: 36

AquaLush must allow operation in either automatic or manual mode.

This object is linked to:
ManualCycle
(263)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Design Rationale
(408)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
Basic Flow:
1. AquaLush reads each (work
(65)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
IrrigationReport
(615)
(OUT)
Mode
(603)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must allow operation in either
(12)
(IN)

This object has external links to:
UseCaseSevenBasicFlowTest.java(EXT OUT)
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 37

AquaLush must monitor the amount of water used in irrigation.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
IrrigationCycle
(257)
(OUT)
Basic Flow:
1. AquaLush reads each (work
(65)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must monitor the amount of wate
(13)
(IN)

This object has external links to:
UseCaseSevenBasicFlowTest.java(EXT OUT)
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 38

AquaLush must detect valve and sensor failures.

This object is linked to:
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
SensorDevice Interface
(334)
(OUT)
Close a valve
(568)
(OUT)
Open a valve
(557)
(OUT)
ValveDevice Interface
(337)
(OUT)
Read a sensor
(546)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)
AquaLush must continue operating as norm
(43)
(IN)

This object has external links to:
UseCaseOneExtension2ABasicFlowTest.java(EXT OUT)
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)
UseCaseThreeExtension2a2bTest.java(EXT OUT)
UseCaseThreeExtension2aTest.java(EXT OUT)
UseCaseThreeExtension4aTest.java(EXT OUT)
UseCaseThreeExtension6a2bTest.java(EXT OUT)
UseCaseThreeExtension6aTest.java(EXT OUT)
UseCaseThreeExtension8aTest.java(EXT OUT)


ID: 39

2.3 Manual-Mode Operation


ID: 40

In manual-mode operation, AquaLush must allow users to select non-empty sets of (working) valves and direct that they be opened or closed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Manually open or close a valve (Irrigato
(353)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Manually open or close a valve
(710)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 41

AquaLush must display the following data for each manually opened valve while it is open:
- its identifier
- its location
- how long it has been open
- how much water it has used
- the moisture level reported by its associated sensor

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
User Interface
(13)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must provide data about manual
(47)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 47

AquaLush must display the total water used in manual irrigation.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
IrrigationReport
(615)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Obtain irrigation cycle data
(721)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must provide data about manual
(47)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 48

AquaLush must set the total water used in manual irrigation to zero when it starts up in manual mode or when it is switched to manual mode from automatic mode.

This object is linked to:
ManualCycle
(263)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Start and end manual irrigation cycles
(699)
(OUT)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must provide data about manual
(47)
(IN)

This object has external links to:
UseCaseOneExtension1ATest.java(EXT OUT)
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 49

When no valve is open in manual irrigation mode, AquaLush must set the total water used in manual irrigation to zero.

This object is linked to:
ManualCycle
(263)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
A cycle is ended (IrrigationCycle)
(320)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Start and end manual irrigation cycles
(699)
(OUT)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must provide data about manual
(47)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 50

2.4 Automatic-Mode Operation


ID: 51

In automatic-mode operation, AquaLush must begin an irrigation cycle when the current time reaches the irrigation time.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Trigger: The current time is the irrigat
(64)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must irrigate only during irrig
(49)
(IN)

This object has external links to:
UseCaseSevenBasicFlowTest.java(EXT OUT)


ID: 52

In automatic-mode operation, AquaLush must conduct an irrigation cycle by irrigating one irrigation zone at a time and successively irrigating each zone until all have been irrigated.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
See if a cycle is ended
(309)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
A cycle is ended (IrrigationCycle)
(320)
(OUT)
Basic Flow:
1. AquaLush reads each (work
(65)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)

This object has external links to:
UseCaseSevenBasicFlowTest.java(EXT OUT)


ID: 53

AquaLush must do the following during an irrigation cycle:
- AquaLush must read the working sensor in each zone and place all zones whose sensors are below that zone’s critical moisture level on an active zone list.
- AquaLush must count the working valves in the active zones and divide the water allocation by this count to get a valve allocation.
- AquaLush must assign each zone a zone allocation, which is the valve allocation multiplied by the number of working valves in the zone.
- For each active zone, AquaLush must open all the working valves in the zone.
- Every minute, AquaLush must read the zone sensor.
- Every minute, AquaLush must compute the zone water usage by multiplying the total flow rate for all open valves in the zone by the time that the valves have been open.
- If a zone’s critical moisture level is reached, then AquaLush must close all valves in the zone and go to the next zone.
- If a zone’s zone allocation is reached, then AquaLush must close all valves in the zone and go to the next zone.
- When all valves in a zone are closed, if the zone allocation is not exhausted, then AquaLush must add the remainder of the zone allocation to the total of the zone allocations of the unirrigated zones, divide this sum by the number of working valves in the unirrigated zones to produce a new valve allocation, and multiply this value by the number of working valves in each unirrigated zone to produce a new zone allocation for each unirrigated zone.
- An irrigation cycle must end when every zone on the active zone list has been irrigated.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
AutoCycle
(260)
(OUT)
See if a cycle is ended
(309)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
Valve
(272)
(OUT)
Basic Flow:
1. AquaLush reads each (work
(65)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
SensorDevice Interface
(334)
(OUT)
Close a valve
(568)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Open a valve
(557)
(OUT)
ValveDevice Interface
(337)
(OUT)
Read a sensor
(546)
(OUT)
AquaLush must irrigate only until the wa
(51)
(IN)
AquaLush must irrigate only until the se
(50)
(IN)
AquaLush must monitor the amount of wate
(13)
(IN)

This object has external links to:
UseCaseSevenBasicFlowTest.java(EXT OUT)


ID: 64

2.5 Failures


ID: 65

If a sensor cannot be read, then AquaLush must try to read it twice more.

This object is linked to:
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
SensorDevice Interface
(334)
(OUT)
Read a sensor
(546)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)

This object has external links to:
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseThreeExtension2a2bTest.java(EXT OUT)
UseCaseThreeExtension6a2bTest.java(EXT OUT)


ID: 66

If a sensor can be read within three tries, then AquaLush must ignore the error.

This object is linked to:
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
SensorDevice Interface
(334)
(OUT)
Read a sensor
(546)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)


ID: 67

If a sensor cannot be read after three tries, then AquaLush must mark that sensor as failed in its persistent store and stop using it in irrigation.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Get sensor data (Irrigator)
(364)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
SensorDevice Interface
(334)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Read a sensor
(546)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseThreeExtension2a2bTest.java(EXT OUT)
UseCaseThreeExtension6a2bTest.java(EXT OUT)


ID: 68

If a sensor cannot be read after three tries in manual-mode operation, then AquaLush must alert the user that the sensor has failed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Get sensor data (Irrigator)
(364)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get sensor data
(743)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
SensorReport
(612)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseThreeExtension2a2bTest.java(EXT OUT)
UseCaseThreeExtension6a2bTest.java(EXT OUT)


ID: 69

If a sensor cannot be read after three tries when AquaLush is irrigating that sensor’s zone, then AquaLush must close all valves in that zone and continue the irrigation cycle as if that sensor had indicated that the zone had reached its critical moisture level.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Irrigation
(16)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)

This object has external links to:
UseCaseSevenExtension4aTest.java(EXT OUT)


ID: 70

If a valve cannot be manipulated (opened or closed), then AquaLush must try to manipulate it twice more.

This object is linked to:
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Close a valve
(568)
(OUT)
Open a valve
(557)
(OUT)
ValveDevice Interface
(337)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)

This object has external links to:
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)
UseCaseThreeExtension2aTest.java(EXT OUT)
UseCaseThreeExtension4aTest.java(EXT OUT)
UseCaseThreeExtension6aTest.java(EXT OUT)
UseCaseThreeExtension8aTest.java(EXT OUT)


ID: 71

If a valve can be manipulated within three tries, then AquaLush must ignore the error.

This object is linked to:
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Close a valve
(568)
(OUT)
Open a valve
(557)
(OUT)
ValveDevice Interface
(337)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)


ID: 72

If a valve cannot be manipulated after three tries, then AquaLush must mark that valve as failed in its persistent store and stop using it in irrigation.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
Close a valve
(568)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Open a valve
(557)
(OUT)
ValveDevice Interface
(337)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseOneExtension2ABasicFlowTest.java(EXT OUT)
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)
UseCaseThreeExtension2aTest.java(EXT OUT)
UseCaseThreeExtension4aTest.java(EXT OUT)
UseCaseThreeExtension6aTest.java(EXT OUT)
UseCaseThreeExtension8aTest.java(EXT OUT)


ID: 73

If a valve cannot be manipulated after three tries in manual-mode operation, then AquaLush must alert the user that the valve has failed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
Get valve data
(754)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseThreeExtension2aTest.java(EXT OUT)
UseCaseThreeExtension4aTest.java(EXT OUT)
UseCaseThreeExtension6aTest.java(EXT OUT)
UseCaseThreeExtension8aTest.java(EXT OUT)


ID: 74

If AquaLush cannot write to its persistent store, then it must alert the user of the problem and continue operation.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Extensions:
6a AquaLush cannot write to
(42)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Remove data from persistent store
(469)
(OUT)
Record a value in persistent store
(447)
(OUT)
StoreDevice Interface
(328)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 75

If AquaLush cannot read its persistent store it must alert the user of the problem.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
StoreDevice Interface
(328)
(OUT)
Fetch a value from persistent store
(458)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 76

If AquaLush cannot read its persistent store during operation, then it must continue operation.

This object is linked to:
Manually open or close a valve (Irrigato
(353)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
IrrigationCycle
(257)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 77

If AquaLush cannot read its persistent store when starting up, then it must display an error message and suspend operation.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 78

AquaLush must provide reports of failed valves and sensors when requested to do so by the user.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseFiveBasicFlowTest.java(EXT OUT)
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 79

If no valves have failed, then AquaLush must report that there are no valve failures.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 80

If no sensors have failed, then AquaLush must report that there are no sensor failures.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 81

If valves or sensors have failed, then AquaLush must report for each failed valve and sensor:
- The valve or sensor identifier
- The valve or sensor location

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 84

AquaLush must allow users to indicate that failed valves and sensors have been repaired.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Mark a device as repaired (Irrigator)
(397)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Mark a device as repaired
(776)
(OUT)

This object has external links to:
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 85

When told that a failed valve or sensor is repaired, AquaLush must update its persistent store with this information.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Mark a device as repaired (Irrigator)
(397)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Irrigation
(16)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Mark a device as repaired
(776)
(OUT)

This object has external links to:
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 86

When told that a failed valve or sensor is repaired, AquaLush must begin using the repaired valve or sensor in irrigation immediately.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
IrrigationCycle
(257)
(OUT)
Basic Flow:
1. AquaLush reads each (work
(65)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)

This object has external links to:
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 87

2.6 Startup


ID: 88

When power is applied to the system, the AquaLush software must load and execute.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
AquaLush must recover from power failure
(65)
(IN)
Once configured, AquaLush must not requir
(59)
(IN)


ID: 89

When it starts, AquaLush must first read its configuration file from persistent store to establish its configuration.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Runtime Components
(815)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
AquaLush must recover from power failure
(65)
(IN)
Once configured, AquaLush must not requir
(59)
(IN)


ID: 90

After establishing its configuration, AquaLush must read its persistent store to restore its state.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Runtime Components
(815)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLush must recover from power failure
(65)
(IN)
Once configured, AquaLush must not requir
(59)
(IN)


ID: 91

After starting, AquaLush must close all valves.

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Restore program state
(677)
(OUT)
AquaLush must irrigate only until the wa
(51)
(IN)
AquaLush must irrigate only until the se
(50)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)


ID: 92

AquaLush must make no attempt to resume an irrigation operation that may have been in progress when it was shut down.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
IrrigationCycle
(257)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Restore program state
(677)
(OUT)
AquaLush must recover from power failure
(65)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)


ID: 93

2.7 Simulation


ID: 94

The Web-based AquaLush simulation must represent all operational and maintenance features of the delivered product.

This object is linked to:
Simulation
(372)
(OUT)
SimTimeControl
(100)
(OUT)
SimKeypad
(97)
(OUT)
SimFailureControl
(109)
(OUT)
SimZone
(115)
(OUT)
SimEvapControl
(103)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Provide a simulated sensor (SimEnvironme
(142)
(OUT)
Provide the simulated display (SimContro
(153)
(OUT)
Provide a simulated valve (SimEnvironmen
(131)
(OUT)
Provide simulated persistent store (SimE
(120)
(OUT)
SimSite
(112)
(OUT)
SimSiteView
(106)
(OUT)
Set the failure status of a sensor (SimV
(230)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
Set a sensor’s moisture level (SimSensor
(208)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
SimSensor
(91)
(OUT)
SimDisplay
(88)
(OUT)
Simulation
(82)
(OUT)
SimStore
(85)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Close a simulated valve
(245)
(OUT)
Record a value in simulated persistent s
(179)
(OUT)
Fetch a value from simulated persistent
(190)
(OUT)
Open a simulated valve
(234)
(OUT)
SimTime
(97)
(OUT)
Provide the simulated display
(146)
(OUT)
Provide simulated persistent store
(113)
(OUT)
SimValve
(94)
(OUT)
Write to the simulated display
(212)
(OUT)
Remove data from simulated persistent st
(201)
(OUT)
Read a simulated sensor
(223)
(OUT)
Provide a simulated valve
(124)
(OUT)
Provide a simulated sensor
(135)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)


ID: 95

The simulation must provide a realistic representation of the AquaLush control panel.

This object is linked to:
SimKeypad
(167)
(OUT)
SimDisplay
(115)
(OUT)
SimKeypad
(97)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Provide the simulated display (SimContro
(153)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Provide the simulated display
(146)
(OUT)
Write to the simulated display
(212)
(OUT)
AquaLush must be operated from a single
(63)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)


ID: 96

The simulation must provide a representation of a site with irrigation zones.

This object is linked to:
Simulation
(372)
(OUT)
SimSiteView
(259)
(OUT)
SimEnvironment
(138)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)


ID: 97

Each simulated irrigation zone must simulate a sensor and display the simulated sensor’s moisture level.

This object is linked to:
SimSiteView
(259)
(OUT)
SimEnvironment
(138)
(OUT)
SimZone
(115)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
SimSensor
(91)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLush must irrigate only until the se
(50)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)


ID: 98

Each simulated irrigation zone must simulate regions watered by irrigation valves and display the states of the simulated valves and their flow rates.

This object is linked to:
SimSiteView
(259)
(OUT)
SimEnvironment
(138)
(OUT)
SimZone
(115)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
SimValve
(94)
(OUT)
AquaLush must irrigate only until the wa
(51)
(IN)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must provide data about manual
(47)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)


ID: 99

The simulation must provide means for controlling the simulation.

This object is linked to:
Simulation
(372)
(OUT)
SimTimeControl
(100)
(OUT)
SimFailureControl
(109)
(OUT)
SimEvapControl
(103)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Set the failure status of a sensor (SimV
(230)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
SimTime
(97)
(OUT)
Get the simulated time
(267)
(OUT)
Start and stop the simulated time
(289)
(OUT)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 100

The simulation must display the simulated time and provide a means for setting the simulated time.

This object is linked to:
SimTimeControl
(291)
(OUT)
SimTimeControl
(100)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Set the simulated time
(278)
(OUT)
Fetch the instance of SimTime
(256)
(OUT)
SimTime
(97)
(OUT)
Get the simulated time
(267)
(OUT)
AquaLush must irrigate only during irrig
(49)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 101

The simulation must provide controls to change the simulation speed (that is, speed up or slow down the simulated time).

This object is linked to:
SimTimeControl
(291)
(OUT)
SimTimeControl
(100)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
SimTime
(97)
(OUT)
Start and stop the simulated time
(289)
(OUT)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 102

The simulation must simulate water evaporation, reflected in the measured moisture levels at the simulated sensors.

This object is linked to:
SimSite
(255)
(OUT)
SimSensor
(220)
(OUT)
SimZone
(334)
(OUT)
SimZone
(115)
(OUT)
SimEvapControl
(103)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSite
(112)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set a sensor’s moisture level (SimSensor
(208)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLush must irrigate only until the se
(50)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 103

The simulation must provide controls to alter the simulated water evaporation rate.

This object is linked to:
SimEvapControl
(148)
(OUT)
SimEvapControl
(103)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLush must irrigate only until the se
(50)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 104

The simulation must simulate valve and sensor failure and repair.

This object is linked to:
SimSite
(255)
(OUT)
SimSensor
(220)
(OUT)
SimZone
(334)
(OUT)
SimValve
(295)
(OUT)
SimFailureControl
(109)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Set the failure status of a sensor (SimV
(230)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
SimSensor
(91)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Close a simulated valve
(245)
(OUT)
Open a simulated valve
(234)
(OUT)
SimValve
(94)
(OUT)
Read a simulated sensor
(223)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must report failed components,
(44)
(IN)
AquaLush must continue operating as norm
(43)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 105

The simulation must provide controls to alter the failure status of valves and sensors.

This object is linked to:
SimFailureControl
(165)
(OUT)
SimFailureControl
(109)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 106

3 Data Requirements


ID: 107

3.1 Irrigation Zones


ID: 108

The irrigated site must be divided into 1 to 32 irrigation zones.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
IrrigationCycle
(257)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSite
(112)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Add a zone
(644)
(OUT)
AquaLush must support enough sensors an
(57)
(IN)


ID: 109

Each irrigation zone must have exactly one moisture sensor.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Check for auto irrigation completion (Zo
(331)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
IrrigationCycle
(257)
(OUT)
Get sensor data (Irrigator)
(364)
(OUT)
Sensor
(269)
(OUT)
SimZone
(115)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSensor
(91)
(OUT)
Irrigation
(16)
(OUT)
ZoneReport
(606)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get sensor data
(743)
(OUT)
SensorReport
(612)
(OUT)
Get zone data
(732)
(OUT)
Add a sensor
(655)
(OUT)
AquaLush must support enough sensors an
(57)
(IN)


ID: 110

Each irrigation zone must have 1 to 32 irrigation valves.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
IrrigationCycle
(257)
(OUT)
Valve
(272)
(OUT)
SimZone
(115)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Irrigation
(16)
(OUT)
ZoneReport
(606)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get valve data
(754)
(OUT)
Add a valve
(666)
(OUT)
Get zone data
(732)
(OUT)
SimValve
(94)
(OUT)
AquaLush must support enough sensors an
(57)
(IN)


ID: 111

An irrigation zone identifier must consist of the letter “Z” (upper- or lowercase) followed by a unique integer in the range 0..999.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
SimZone
(115)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Add a zone
(644)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 112

An irrigation zone location must be a string of 0 to 24 characters not containing angle brackets.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
SimZone
(115)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Add a zone
(644)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 113

The zone’s critical moisture level must be an integer in the range 0..100 interpreted as a percent of saturation.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
SimZone
(115)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
ZoneReport
(606)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get zone data
(732)
(OUT)
AquaLush must provide data about manual
(47)
(IN)
AquaLush must record the following data
(77)
(IN)


ID: 114

3.2 Sensor Data


ID: 115

The following data must be recorded for each sensor:
- Identifier
- Location
- Operational status

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Sensor
(269)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Irrigation
(16)
(OUT)
Runtime Components
(815)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseFourBasicFlowTest.java(EXT OUT)
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseThreeExtension2a2bTest.java(EXT OUT)
UseCaseThreeExtension6a2bTest.java(EXT OUT)


ID: 119

A sensor identifier must consist of the letter “S” (upper- or lowercase) followed by a unique integer in the range 0..999.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Sensor
(269)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSensor
(91)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Add a sensor
(655)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 120

A sensor location must be a string of 0 to 24 characters not containing angle brackets.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Sensor
(269)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSensor
(91)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Add a sensor
(655)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 121

The operational status must be a Boolean value interpreted as the truth value of the statement “This sensor is working.”

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get sensor data (Irrigator)
(364)
(OUT)
Sensor
(269)
(OUT)
SimFailureControl
(109)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
SimSensor
(91)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get sensor data
(743)
(OUT)
SensorReport
(612)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 122

3.3 Valve Data


ID: 123

The following data must be recorded for each valve:
- Identifier
- Type
- Location
- Flow rate
- Operational status

This object is linked to:
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Irrigation
(16)
(OUT)
Runtime Components
(815)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseFourBasicFlowTest.java(EXT OUT)
UseCaseOneExtension2ABasicFlowTest.java(EXT OUT)
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)
UseCaseThreeExtension2aTest.java(EXT OUT)
UseCaseThreeExtension4aTest.java(EXT OUT)
UseCaseThreeExtension6aTest.java(EXT OUT)
UseCaseThreeExtension8aTest.java(EXT OUT)


ID: 129

A valve identifier must consist of the letter “V” (upper- or lowercase) followed by a unique integer in the range 0..999.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Add a valve
(666)
(OUT)
SimValve
(94)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 130

A valve type must be a string of 0 to 16 characters not containing angle brackets.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Add a valve
(666)
(OUT)
SimValve
(94)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 131

A valve location must be a string of 0 to 24 characters not containing angle brackets

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Add a valve
(666)
(OUT)
SimValve
(94)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 132

A flow rate must be an integer in the range 1.. 231–1 interpreted as gallons per minute of water flow through the valve.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get valve data
(754)
(OUT)
Add a valve
(666)
(OUT)
SimValve
(94)
(OUT)
AquaLush must provide data about manual
(47)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 133

The operational status must be a Boolean value interpreted as the truth value of the statement “This valve is working.”

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
SimFailureControl
(109)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Set the failure status of a sensor (SimV
(230)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get valve data
(754)
(OUT)
SimValve
(94)
(OUT)
AquaLush must provide data about manual
(47)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 134

3.4 Configuration File


ID: 135

The configuration file must be a text file editable with a standard text editor.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Runtime Components
(815)
(OUT)
AquaLush software must be configurable us
(58)
(IN)


ID: 136

A configuration file must have the form (specified using data definition notation) shown in Figure B-7-1.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Tokenizer
(9)
(OUT)
TokenType
(12)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)
AquaLush software must be configurable us
(58)
(IN)


ID: 407

Figure B-7-1 AquaLush Configuration File


ID: 137

Each elementary data item must be separated from the others by white space with the exception of the following:

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Tokenizer
(9)
(OUT)
TokenType
(12)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush software must be configurable us
(58)
(IN)


ID: 138

The zone, sensor, and valve letters must not be separated from their identifier numbers.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Tokenizer
(9)
(OUT)
TokenType
(12)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush software must be configurable us
(58)
(IN)


ID: 139

All characters between angle brackets must be considered part of the description.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Tokenizer
(9)
(OUT)
TokenType
(12)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush software must be configurable us
(58)
(IN)


ID: 140

The curly braces and semicolon do not need to be separated from other tokens by white space.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Tokenizer
(9)
(OUT)
TokenType
(12)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush software must be configurable us
(58)
(IN)


ID: 141

The configuration file must be named “config.txt” and must be placed in the same directory as the AquaLush executable program.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Runtime Components
(815)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush software must be configurable us
(58)
(IN)


ID: 142

A configuration file that cannot be found, opened, read, or parsed must be treated as a persistent store failure.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Program execution
(53)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush
(35)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must report failed components,
(44)
(IN)
AquaLush software must be configurable us
(58)
(IN)


ID: 143

3.5 System Parameters


ID: 144

AquaLush must record its system parameters in persistent store so that its state can be restored at startup.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Basic Flow:
1. Operator sets the mode fro
(16)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Runtime Components
(815)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must recover from power failure
(65)
(IN)
Once configured, AquaLush must not requir
(59)
(IN)

This object has external links to:
UseCaseOneBasicFlowTest.java(EXT OUT)
UseCaseTwoTestBasicFlowCriticalLevel.java(EXT OUT)
UseCaseTwoTestBasicFlowIrrigationTime.java(EXT OUT)
UseCaseTwoTestBasicFlowWaterAllocation.java(EXT OUT)


ID: 145

System parameters include the following items:
- Mode of operation
- Irrigation time
- Water allocation

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Basic Flow:
1. Operator sets the mode fro
(16)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must allow the maximum amount o
(10)
(IN)
AquaLush must record the following data
(77)
(IN)

This object has external links to:
UseCaseOneBasicFlowTest.java(EXT OUT)
UseCaseTwoTestBasicFlowCriticalLevel.java(EXT OUT)
UseCaseTwoTestBasicFlowIrrigationTime.java(EXT OUT)
UseCaseTwoTestBasicFlowWaterAllocation.java(EXT OUT)


ID: 149

The mode must be either manual or automatic.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)


ID: 150

The irrigation time must specify both the days and the time of day when irrigation is to occur.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)


ID: 151

The irrigation days must be a subset of {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)


ID: 152

The irrigation time of day must be a 24-hour-clock value in the range 0000 to 2359 (accurate to one minute).

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)


ID: 153

The water allocation must be an integer in the range 0..2^31–1 interpreted as gallons of water.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)


ID: 154

The current time is recorded in the system clock and may be set by the user; it consists of both the current day and the current time of day.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Get the day of the week (Clock and Clock
(392)
(OUT)
Get the time of the day (Clock and Clock
(370)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the current time to
(7)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)

This object has external links to:
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 155

The current day must be an element of {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Get the day of the week (Clock and Clock
(392)
(OUT)
Get the time of the day (Clock and Clock
(370)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 156

The current time of day must be a 24-hour-clock value in the rage 0000 to 2359 (accurate to one minute).

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Get the day of the week (Clock and Clock
(392)
(OUT)
Get the time of the day (Clock and Clock
(370)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 157

3.6 Manual Mode Data Display


ID: 158

The following data must be displayed for each valve in manual mode:
- Valve identifer
- Valve location
- How long the valve has been open
- How much water has been used
- Associated sensor moisture level

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must provide data about manual
(47)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 164

The valve identifier and location must be the valve data recorded in the system. The location may be truncated to fit user interface display constraints.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must provide data about manual
(47)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 165

The length of time the valve has been open must be a military time specification in the form hhmm, where hh must be hours in the range 0..23 and mm must be minutes in the range 0..59. All four digits must always be displayed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must provide data about manual
(47)
(IN)


ID: 166

The amount of water used by the valve must be an integer in the range 0..2^31–1 describing the water used in gallons.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must provide data about manual
(47)
(IN)


ID: 167

The associated sensor moisture level must be a moisture sensor reading in the range 0..100.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must provide data about manual
(47)
(IN)


ID: 168

The total water used during manual irrigation must also be displayed. This value must be an integer in the range 0..2^31–1 describing the water used in gallons.

This object is linked to:
ManualCycle
(263)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
IrrigationReport
(615)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Obtain irrigation cycle data
(721)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must provide data about manual
(47)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 169

Each displayed value must be updated every minute or when a valve is opened.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must provide data about manual
(47)
(IN)


ID: 170

3.7 Failure Reports


ID: 171

Failure reports must display the following data:

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must report failed components,
(44)
(IN)


ID: 172

The failed sensor or valve identifier

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must report failed components,
(44)
(IN)


ID: 173

The failed sensor or valve location

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must report failed components,
(44)
(IN)


ID: 174

The failed sensor or valve identifier must be the sensor or valve identifier recorded in the system.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must report failed components,
(44)
(IN)


ID: 175

The failed sensor or valve location must be the sensor or valve location recorded in the system. It may not be truncated on display.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must report failed components,
(44)
(IN)


ID: 176

3.8 Simulation Parameters


ID: 177

The simulated time consists of the simulated day and the simulated time of day.

This object is linked to:
SimTimeControl
(100)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Set the simulated time
(278)
(OUT)
SimTime
(97)
(OUT)
Get the simulated time
(267)
(OUT)
Start and stop the simulated time
(289)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 178

The simulated day must be an element of {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}.

This object is linked to:
SimTimeControl
(100)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Set the simulated time
(278)
(OUT)
SimTime
(97)
(OUT)
Get the simulated time
(267)
(OUT)
Start and stop the simulated time
(289)
(OUT)


ID: 179

The simulated time of day must be a 24-hour-clock value in the range 0000 to 2359 (accurate to one minute).

This object is linked to:
SimTimeControl
(100)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Set the simulated time
(278)
(OUT)
SimTime
(97)
(OUT)
Get the simulated time
(267)
(OUT)
Start and stop the simulated time
(289)
(OUT)


ID: 180

The simulation speed must be a multiple of the real rate of time specified as an integer multiplier in the range 1..1000.

This object is linked to:
SimTimeControl
(100)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Start and stop the simulated time
(289)
(OUT)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 181

The simulated water evaporation rate must be an integer in the range 0..100 interpreted as the percent change in moisture level per day (as reflected in the simulated moisture sensor reading).

This object is linked to:
SimEvapControl
(103)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSite
(112)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLush must irrigate only until the se
(50)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 182

3.9 Defaults


ID: 183

The default mode must be automatic.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Mode
(603)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)
AquaLush must record the following data
(77)
(IN)


ID: 184

The default irrigation day must be the set {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday} (every day).

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)
AquaLush must record the following data
(77)
(IN)


ID: 185

The default irrigation time must be 0200.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)
AquaLush must record the following data
(77)
(IN)


ID: 186

The default water allocation must be 10000.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Obtain irrigation cycle data
(721)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must irrigate only until the wa
(51)
(IN)
AquaLush must allow the maximum amount o
(10)
(IN)
AquaLush must record the following data
(77)
(IN)


ID: 187

The default zone critical moisture level must be 50.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
See if a cycle is ended
(309)
(OUT)
Check for auto irrigation completion (Zo
(331)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
Startup Layer Behavior
(82)
(OUT)
SimZone
(115)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSite
(112)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Program execution
(53)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Obtain irrigation cycle data
(721)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
AquaLushApplet
(32)
(OUT)
Applet initialization
(42)
(OUT)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must irrigate only until the se
(50)
(IN)
AquaLush must record the following data
(77)
(IN)


ID: 188

The default sensor and valve operational status must be true.

This object is linked to:
Manually open or close a valve (Irrigato
(353)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
See if a cycle is ended
(309)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
SimFailureControl
(109)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Set the failure status of a sensor (SimV
(230)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
SimSensor
(91)
(OUT)
Configurer
(38)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Program execution
(53)
(OUT)
Manually open or close a valve
(710)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLush
(35)
(OUT)
Restore program state
(677)
(OUT)
Get sensor data
(743)
(OUT)
Get a failed hardware report
(765)
(OUT)
Get valve data
(754)
(OUT)
Close a simulated valve
(245)
(OUT)
AquaLushApplet
(32)
(OUT)
Add a valve
(666)
(OUT)
Add a sensor
(655)
(OUT)
Applet initialization
(42)
(OUT)
Open a simulated valve
(234)
(OUT)
SimValve
(94)
(OUT)
Read a simulated sensor
(223)
(OUT)
Provide a simulated valve
(124)
(OUT)
Provide a simulated sensor
(135)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must record the following data
(77)
(IN)


ID: 189

The default simulation speed must be 1 (real time).

This object is linked to:
SimTimeControl
(100)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
SimTime
(97)
(OUT)
Start and stop the simulated time
(289)
(OUT)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 190

The default simulated rate of water evaporation must be 10.

This object is linked to:
SimEvapControl
(103)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSite
(112)
(OUT)
SimSiteView
(106)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLush must irrigate only until the se
(50)
(IN)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 191

4 Non-Functional Requirements


ID: 192

4.1 Installation


ID: 193

AquaLush software must be configurable in no more than 1 minute per irrigation valve after no more than 30 minutes of reading the instruction manual.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush software must be configurable in
(60)
(IN)


ID: 194

4.2 Operation


ID: 195

AquaLush must have an interface that allows irrigation to be set up or altered in less than five minutes without consulting a manual.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must have an interface that all
(62)
(IN)


ID: 196

AquaLush must be operated from a single central control panel.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
SimKeypad
(97)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Provide the simulated display (SimContro
(153)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Register a Keypad listener (SimKeypad)
(175)
(OUT)
Register a ScreenButton listener (SimDis
(197)
(OUT)
Register a ScreenButton listener (SimCon
(186)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Register a screen button listener
(168)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
User Interface
(13)
(OUT)
Register a keypad listener
(157)
(OUT)
SimDisplay
(88)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Provide the simulated display
(146)
(OUT)
Register a ScreenButton listener
(425)
(OUT)
Register a Keypad listener
(436)
(OUT)
DisplayDevice Interface
(331)
(OUT)
KeypadDevice Interface
(340)
(OUT)
ScreenButtonDevice Interface
(346)
(OUT)
AquaLush must be operated from a single
(63)
(IN)


ID: 197

4.3 Failure


ID: 198

AquaLush must recover from power failures without human intervention.

This object is linked to:
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Runtime Components
(815)
(OUT)
Program execution
(53)
(OUT)
AquaLush
(35)
(OUT)
AquaLush must recover from power failure
(65)
(IN)


ID: 199

AquaLush software must fail no more than once per month of normal operation.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Device Interface
(19)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLush software must fail no more than
(67)
(IN)


ID: 200

4.4 Simulation


ID: 201

The AquaLush simulation must be installable on a Web site in no more than one hour.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Device Interface
(19)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
The AquaLush simulation must be installa
(69)
(IN)


ID: 202

The AquaLush simulation must require no more than one hour per month of maintenance.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Device Interface
(19)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
The AquaLush simulation must require no
(70)
(IN)


ID: 203

At least 70% of users must agree that the AquaLush Web-based simulation provides an accurate representation of the actual product and its use.

This object is linked to:
SimTimeControl
(100)
(OUT)
SimKeypad
(97)
(OUT)
SimFailureControl
(109)
(OUT)
SimZone
(115)
(OUT)
SimEvapControl
(103)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
SimSite
(112)
(OUT)
SimSiteView
(106)
(OUT)
Set the failure status of a sensor (SimV
(230)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
Set a sensor’s moisture level (SimSensor
(208)
(OUT)
Register a Keypad listener (SimKeypad)
(175)
(OUT)
Register a Keypad listener (SimControlPa
(164)
(OUT)
Register a ScreenButton listener (SimDis
(197)
(OUT)
Register a ScreenButton listener (SimCon
(186)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Register a screen button listener
(168)
(OUT)
SimSensor
(91)
(OUT)
Register a keypad listener
(157)
(OUT)
SimDisplay
(88)
(OUT)
Simulation
(82)
(OUT)
SimStore
(85)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Close a simulated valve
(245)
(OUT)
Record a value in simulated persistent s
(179)
(OUT)
Fetch a value from simulated persistent
(190)
(OUT)
Open a simulated valve
(234)
(OUT)
Get the simulated time
(267)
(OUT)
SimValve
(94)
(OUT)
Write to the simulated display
(212)
(OUT)
Remove data from simulated persistent st
(201)
(OUT)
Read a simulated sensor
(223)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)


ID: 204

4.5 Evolution


ID: 205

The main AquaLush irrigation software components must be reusable in later products.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Irrigation
(16)
(OUT)
Startup
(10)
(OUT)
Device Interface
(19)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
The main AquaLush irrigation software co
(73)
(IN)


ID: 206

AquaLush must eventually control a variety of irrigation valves.

This object is linked to:
Manually open or close a valve (Irrigato
(353)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Close a valve
(568)
(OUT)
Manually open or close a valve
(710)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
Open a valve
(557)
(OUT)
ValveDevice Interface
(337)
(OUT)
Get valve data
(754)
(OUT)
Add a valve
(666)
(OUT)
AquaLush must eventually control a varie
(74)
(IN)


ID: 207

AquaLush must accommodate implementation of traditional timer-controlled irrigation.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Irrigation
(16)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
AquaLush must accommodate implementation
(75)
(IN)


ID: 208

5 Hardware Interface


ID: 209

5.1 Sensors and Valves


ID: 210

Sensors must be readable and provide data convertible to a percent of saturation value.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
IrrigationCycle
(257)
(OUT)
Get sensor data (Irrigator)
(364)
(OUT)
Sensor
(269)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSite
(112)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set a sensor’s moisture level (SimSensor
(208)
(OUT)
SimSensor
(91)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
SensorDevice Interface
(334)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Read a sensor
(546)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get sensor data
(743)
(OUT)
Read a simulated sensor
(223)
(OUT)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must irrigate only until the se
(50)
(IN)


ID: 211

Sensor failures must be detectable when a sensor is read.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
IrrigationCycle
(257)
(OUT)
Get sensor data (Irrigator)
(364)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
SimFailureControl
(109)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
SimSensor
(91)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
SensorDevice Interface
(334)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Read a sensor
(546)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get sensor data
(743)
(OUT)
Get a failed hardware report
(765)
(OUT)
Read a simulated sensor
(223)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseThreeExtension2a2bTest.java(EXT OUT)
UseCaseThreeExtension6a2bTest.java(EXT OUT)


ID: 212

Valves must be openable and closable.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
IrrigationCycle
(257)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSite
(112)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
Basic Flow:
1. AquaLush reads each (work
(65)
(OUT)
Basic Flow:
1. Operator sets the mode fro
(16)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. AquaLush reads its persis
(57)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
Close a valve
(568)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Open a valve
(557)
(OUT)
ValveDevice Interface
(337)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get valve data
(754)
(OUT)
Close a simulated valve
(245)
(OUT)
Open a simulated valve
(234)
(OUT)
SimValve
(94)
(OUT)
AquaLush must irrigate only until the wa
(51)
(IN)
AquaLush must irrigate only until the se
(50)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)
AquaLush must allow individual valves to
(46)
(IN)

This object has external links to:
UseCaseOneBasicFlowTest.java(EXT OUT)
UseCaseSevenBasicFlowTest.java(EXT OUT)
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 213

Valve failures must be detectable when a valve is manipulated.

This object is linked to:
Irrigation Layer Behavior
(409)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
IrrigationCycle
(257)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
SimFailureControl
(109)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Set the failure status of a sensor (SimV
(230)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Runtime Components
(815)
(OUT)
Close a valve
(568)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
Open a valve
(557)
(OUT)
ValveDevice Interface
(337)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Get a failed hardware report
(765)
(OUT)
Get valve data
(754)
(OUT)
Close a simulated valve
(245)
(OUT)
Open a simulated valve
(234)
(OUT)
SimValve
(94)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseOneExtension2ABasicFlowTest.java(EXT OUT)
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)
UseCaseThreeExtension2aTest.java(EXT OUT)
UseCaseThreeExtension4aTest.java(EXT OUT)
UseCaseThreeExtension6aTest.java(EXT OUT)
UseCaseThreeExtension8aTest.java(EXT OUT)


ID: 214

5.2 Control Panel


ID: 215

The AquaLush central control panel must be based on ATM machine technology.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
SimKeypad
(97)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Register a Keypad listener (SimKeypad)
(175)
(OUT)
Register a ScreenButton listener (SimDis
(197)
(OUT)
Register a ScreenButton listener (SimCon
(186)
(OUT)
Register a screen button listener
(168)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Register a keypad listener
(157)
(OUT)
SimDisplay
(88)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Write to the simulated display
(212)
(OUT)


ID: 216

It must include a monochrome screen that displays 16 lines of 40 ASCII characters each.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Register a ScreenButton listener (SimDis
(197)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
SimDisplay
(88)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Write to the simulated display
(212)
(OUT)


ID: 217

It must include eight push buttons adjacent to the screen, called screen buttons.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Register a ScreenButton listener (SimCon
(186)
(OUT)
Register a screen button listener
(168)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)


ID: 218

There must be four buttons on each side of the screen, arranged so that their centers align with the 9th, 11th, 13th, and 15th lines of the display.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Register a ScreenButton listener (SimCon
(186)
(OUT)
Register a screen button listener
(168)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)


ID: 219

It must include a 12-key keypad.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
SimKeypad
(97)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Register a Keypad listener (SimKeypad)
(175)
(OUT)
Register a ScreenButton listener (SimCon
(186)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Register a keypad listener
(157)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)


ID: 220

The keypad must have 10 numeric keys, a DEL (delete) key, and an ESC (escape) key.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
SimKeypad
(97)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Register a Keypad listener (SimKeypad)
(175)
(OUT)
Register a ScreenButton listener (SimCon
(186)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Register a keypad listener
(157)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)


ID: 221

6 Control Panel User Interface


ID: 222

6.1 General Control Panel Conventions


ID: 223

The control panel must have a menu-based textual user interface.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 224

Most screens must present a menu selection or ask the user to fill in values as a result of a menu selection.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
ScrollingScreen
(422)
(OUT)
Prompt
(428)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 225

Pressing one of the screen buttons must take the indicated action.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
EventAction
(431)
(OUT)
Notify a screen that a screen button has
(457)
(OUT)
Notify a screen that a keypad key has be
(468)
(OUT)
The UIController simply passes keypad pr
(482)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 226

Each child screen must have a menu item for returning to the parent screen from the bottom-right screen button.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 227

Pressing the ESC button on a child screen must cancel any changes the user may have made and return to the parent screen.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
EventAction
(431)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 228

Pressing the ESC button on the main menu screen must have no effect.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
EventAction
(431)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 229

Pressing a screen button that does not have a function indicated in the display must have no effect.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
EventAction
(431)
(OUT)
The UIController simply passes keypad pr
(482)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 230

Pressing a keypad digit button or the DEL button when the screen does not prompt for numeric input must have no effect.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Prompt
(428)
(OUT)
EventAction
(431)
(OUT)
The UIController simply passes keypad pr
(482)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 231

Many screens have centered text. Text must be centered by dividing the length of the text in two, rounding down, and subtracting this value from 20 to reach the display column where the text begins. The first column must be zero.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 232

6.2 Control Panel Dialog Maps


ID: 233

The control panel must conduct a dialog with the user that begins in a main menu with AquaLush in automatic mode.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow operation in either
(12)
(IN)


ID: 234

The user may change to a menu screen with AquaLush in manual mode.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)


ID: 235

The menu screens in the two modes must be identical except that

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 236

Their mode indicators must be different

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 237

The manual mode menu must have an extra menu item for controlling irrigation manually.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)


ID: 238

The control panel must conform to the dialog map in Figure B-7-2, which shows the main menu states and the manual irrigation control state.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must provide data about manual
(47)
(IN)


ID: 422

Figure B-7-2 AquaLush Dialog Map


ID: 239

The Change Mode action must be a “Change Mode” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 240

The Control Irrigation action must be a “Control Irrigation” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 241

The Finished action must be either a “Finished” screen button press or a keypad ESC button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 242

The Display Location action must be a “Display Location” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 243

The Display Data action must be a “Display Data” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 244

The control panel must conform to the dialog map in Figure B-7-3, which shows the common main menu item states suppressed in Figure B-7-2.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must allow the maximum amount o
(10)
(IN)
AquaLush must allow the current time to
(7)
(IN)
AquaLush must report failed components,
(44)
(IN)
AquaLush must have an interface that all
(62)
(IN)


ID: 423

Figure B-7-3 Expanded AquaLush Dialog Map


ID: 245

The Main Menu state in this dialog map is a placeholder for the Auto Main state or the Manual Main state.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 246

The Accept action must be an “Accept New Settings” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 247

The Finished action must be a “Finished” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 248

The Cancel action must be a keypad ESC button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 249

The Set Clock action must be a “Set the Clock” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 250

The Fix Failures action must be a “Fix Failures” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 251

The Set Up Automatic Irrigation action must be a “Set Up Automatic Irrigation” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 252

The Set Times action must be a “Set Irrigation Times” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 253

The Set Moisture action must be a “Set Critical Moisture Levels” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 254

The Set Allocation action must be a “Set Water Allocation” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 255

The control panel must conform to the dialog map in Figure B-7-4 in the special circumstance that a device or persistent store error occurs during user interaction.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Extensions:
6a AquaLush cannot write to
(42)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseOneExtension2ABasicFlowTest.java(EXT OUT)
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)
UseCaseThreeExtension2a2bTest.java(EXT OUT)
UseCaseThreeExtension2aTest.java(EXT OUT)
UseCaseThreeExtension4aTest.java(EXT OUT)
UseCaseThreeExtension6a2bTest.java(EXT OUT)
UseCaseThreeExtension6aTest.java(EXT OUT)
UseCaseThreeExtension8aTest.java(EXT OUT)


ID: 424

Figure B-7-4 AquaLush Dialog Map with Failures


ID: 256

Note that the Normal State is a placeholder for any of the states in the previous dialog maps.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 257

The Device Failure action must be a detected sensor or valve failure.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)


ID: 258

The Store Failure action must be an inability to read from or write to the persistent data store.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must report failed components,
(44)
(IN)


ID: 259

The OK action must be an “OK” screen button press.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 260

6.3 Control Panel User Interface Diagrams


ID: 261

The Auto Main state must be the initial state of the user interface when AquaLush is installed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)


ID: 262

The Auto Main state must display the main menu screen shown in Figure B-7-5.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must allow the maximum amount o
(10)
(IN)
AquaLush must allow the current time to
(7)
(IN)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)
AquaLush must have an interface that all
(62)
(IN)


ID: 408

Figure B-7-5 AquaLush Automatic Main Menu Screen


ID: 263

Note that the digits in the borders of Figures B-7-5 through B-7-17 are for ease in interpreting the diagram: They must not appear on the screen.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 264

Note that the day, time, number of failed valves, and number of failed sensors must vary. This data must always be centered on the screen.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 265

The Manual Main state must be an alternative main menu state in manual mode.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow operation in either
(12)
(IN)


ID: 266

The Manual Main state must display the main menu screen shown in Figure B-7-6.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must allow the maximum amount o
(10)
(IN)
AquaLush must allow the current time to
(7)
(IN)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must provide data about manual
(47)
(IN)
AquaLush must report failed components,
(44)
(IN)
AquaLush must have an interface that all
(62)
(IN)


ID: 409

Figure B-7-6 AquaLush Manual Main Menu Screen


ID: 267

Note that the day, time, number of failed valves, and number of failed sensors must vary. This data must always be centered on the screen.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 268

The Manual Irrigation (Data) state must allow users to directly open and close valves and must display irrigation data about each valve.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Manually open or close a valve (Irrigato
(353)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Manually open or close a valve
(710)
(OUT)
Irrigator
(600)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must provide data about manual
(47)
(IN)
AquaLush must have an interface that all
(62)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 269

The Manual Irrigation (Data) state must display the screen shown in Figure B-7-7.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 410

Figure B-7-7 AquaLush Manual Irrigation Data Screen


ID: 270

The region between the dashed lines must be a scrollable display of all working valves and data about their states or locations.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)


ID: 271

The valves must be listed in zone identifier order and then in valve identifier order within a zone.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 272

The middle, highlighted element is the current valve.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 273

The list must scroll up to or down to the middle element so that any valve can be made current.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 274

There must always be a current valve.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 275

The two middle screen buttons on the right must control scrolling.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 276

If the user presses the “Open/Close Valve” screen button, then the current valve must be opened (if it is closed) or closed (if it is open).

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Manually open or close a valve (Irrigato
(353)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Valve
(272)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Manually open or close a valve
(710)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must have an interface that all
(62)
(IN)


ID: 277

If the user presses the “Propagate to Zone” screen button, then all valves in the current valve’s zone must be opened (if the current valve is open) or closed (if the current valve is closed).

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
Valve
(272)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must have an interface that all
(62)
(IN)


ID: 278

The Valve field must show the identifier and status of each valve.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must provide data about manual
(47)
(IN)


ID: 279

The status must be indicated by a single character in column three in the format “+” for open and “–” for closed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 280

The valve identifier must be left-aligned and occupy columns four through seven.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 281

The Zone field must display the zone identifier left-aligned in columns 9 through 12.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
ZoneReport
(606)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get zone data
(732)
(OUT)
AquaLush must provide data about manual
(47)
(IN)


ID: 282

The Wet% field must display the percent saturation of the moisture sensor in the valve’s zone right-aligned in columns 14 through 16 with no leading zero.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get sensor data (Irrigator)
(364)
(OUT)
Sensor
(269)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get sensor data
(743)
(OUT)
SensorReport
(612)
(OUT)
AquaLush must provide data about manual
(47)
(IN)


ID: 283

If the valve’s zone moisture sensor has failed, then this column must be filled with two dashes and be right-aligned.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get sensor data (Irrigator)
(364)
(OUT)
Sensor
(269)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get sensor data
(743)
(OUT)
SensorReport
(612)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 284

The Time field must display the time that the valve has been open in four-digit military time notation in columns 19 through 22.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must provide data about manual
(47)
(IN)


ID: 285

The Water Used field must show the number of gallons of water released by the valve during this manual irrigation cycle right-aligned in columns 24 through 36 with no leading zeros.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must provide data about manual
(47)
(IN)


ID: 286

The Gallons Used display in row eight must show the number of gallons released by all valves during this irrigation cycle with no leading zeros.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must provide data about manual
(47)
(IN)


ID: 287

The Gallons Used display must be centered.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 288

The Manual Irrigation (Location) state must allow users to directly open and close valves and must display the location of each valve.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Manually open or close a valve (Irrigato
(353)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
One minute passes (IrrigationCycle, Zone
(298)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Basic Flow:
1. Operator selects a non-em
(33)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Manually open or close a valve
(710)
(OUT)
Irrigator
(600)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must monitor the amount of wate
(13)
(IN)

This object has external links to:
UseCaseThreeBasicFlowTest.java(EXT OUT)


ID: 289

The Manual Irrigation (Location) state must display the screen shown in Figure B-7-8.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 411

Figure B-7-8 AquaLush Manual Irrigation Location Screen


ID: 290

The region between the dashed lines must be a scrollable display that works just as in the Manual Irrigation (Data) state.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)


ID: 291

The screen buttons must work just as in the Manual Irrigation (Data) state.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Manually open or close a valve (Irrigato
(353)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
Open or close all valves in a zone
(342)
(OUT)
Valve
(272)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Manually open or close a valve
(710)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow individual valves to
(46)
(IN)
AquaLush must have an interface that all
(62)
(IN)


ID: 292

The Valve field must display data just as in the Manual Irrigation (Data) state.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must provide data about manual
(47)
(IN)


ID: 293

The Zone field must display data just as in the Manual Irrigation (Data) state.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
ZoneReport
(606)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get zone data
(732)
(OUT)
AquaLush must provide data about manual
(47)
(IN)


ID: 294

The Location field must display the valve’s location string left-aligned in columns 14 through 37.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must provide data about manual
(47)
(IN)


ID: 295

The Gallons Used display must work just as in the Manual Irrigation (Data) state.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
ManualCycle
(263)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Get valve data (Irrigator)
(375)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
ValveReport
(609)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get valve data
(754)
(OUT)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must provide data about manual
(47)
(IN)


ID: 296

The Set Clock state must allow users to set the AquaLush hardware clock.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the current time to
(7)
(IN)

This object has external links to:
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 297

The Set Clock state must display the screen shown in Figure B-7-9.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 412

Figure B-7-9 AquaLush Set Clock Screen


ID: 298

The current day and time displays must change as time progresses.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
User Interface
(13)
(OUT)
Get the day of the week (Clock and Clock
(392)
(OUT)
Get the time of the day (Clock and Clock
(370)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 299

If the user alters the current time, then the display must no longer progress.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 300

If the user presses the DEL key, then characters must be erased from the Current Time display from right to left.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 301

If the user presses keypad digit keys, then digits must be added to the Current Time display from left to right.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 302

If the user presses keypad digit keys when there are already four digits in the Current Time display, then the display must not be changed and the terminal must beep.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 303

Users must be constrained in entering digits in the following ways:

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 304

The first digit must be in the range zero to two.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 305

If the first digit is zero or one, then the second digit must be in the range zero to nine.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 306

If the first digit is two, then the second digit must be in the range zero to three.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 307

The third digit must be in the range zero to five.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 308

The fourth digit must be in the range zero to nine.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 309

If the user attempts to enter an illegal digit, the digit must not be displayed and the terminal must beep.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 310

If the user presses a screen key for a day, the day must be shown in the Current Day display immediately.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 311

If the user presses the ESC key, the clock must not be changed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 312

If the user presses the “Accept New Settings” button, the current settings (possibly altered by the user) must be used to reset the clock.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
Clock
(352)
(OUT)
ClockDevice Interface
(322)
(OUT)
User Interface
(13)
(OUT)
Set the day of the week (Clock and Clock
(381)
(OUT)
Set the time of the day (Clock and Clock
(359)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 313

If a new time is only partially entered when the user presses the “Accept New Settings” button, the time must not be reset.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 314

The Fix Failures state must allow users to see which devices have failed and to tell AquaLush which have been repaired.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
The ManualCycle.tick() operation is pict
(411)
(OUT)
IrrigationCycle
(257)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Mark a device as repaired (Irrigator)
(397)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Basic Flow:
1. Maintainer begins a repai
(41)
(OUT)
Basic Flow:
1. Maintainer requests a fai
(49)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
Mark a device as repaired
(776)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseFiveBasicFlowTest.java(EXT OUT)
UseCaseFourBasicFlowTest.java(EXT OUT)


ID: 315

The Fix Failures state must display the screen shown in Figure B-7-10.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 413

Figure B-7-10 AquaLush Fix Failures Screen


ID: 316

The region between the dashed lines must be a scrollable display of all failed sensors and valves, their zones, and their locations.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)


ID: 317

The failed sensors must be listed first, followed by failed valves in zone identifier order and then in valve identifier order within a zone.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 318

The middle, highlighted element is the current device.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 319

If the list is empty, there must be no current device.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 320

A non-empty list must scroll up to or down to the middle element so that any device can be made current and there is always a current device.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 321

The two middle screen buttons on the right must control scrolling.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 322

If the user presses the “Repaired” screen button, then the current device must be recorded as repaired and removed from the list.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Valve
(272)
(OUT)
Sensor
(269)
(OUT)
Mark a device as repaired (Irrigator)
(397)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Mark a device as repaired
(776)
(OUT)


ID: 323

When a device is removed from the list and there is a device below the removed device, the device below must become the current device.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 324

When a device is removed from the list and there is no device below the removed device but there is one above it, then device above must become the current device.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 325

When a device is removed from the list and the list becomes empty, there must be no current device.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 326

The Device field must show the identifier of each failed device left-aligned in columns three through six.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 327

The Zone field must show the failed device’s zone identifier left-aligned in columns 9
through 12.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 328

The Location field must display the failed device’s location string left-aligned in columns 14 through 37.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 329

The failed devices summary in row eight must show counts of failed sensors and valves with no leading zeros in a centered display.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)


ID: 330

The Set Up Auto Irrigation state must allow users to configure automatic moisture-controlled irrigation.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must allow the maximum amount o
(10)
(IN)
AquaLush must have an interface that all
(62)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowCriticalLevel.java(EXT OUT)
UseCaseTwoTestBasicFlowIrrigationTime.java(EXT OUT)
UseCaseTwoTestBasicFlowWaterAllocation.java(EXT OUT)


ID: 331

The Set Up Auto Irrigation state must display the screen shown in Figure B-7-11.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 414

Figure B-7-11 AquaLush Set Up Auto Irrigation Screen


ID: 332

The Set Irrigation Times state must allow users to set automatic irrigation times.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the days and times d
(8)
(IN)
AquaLush must have an interface that all
(62)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowIrrigationTime.java(EXT OUT)


ID: 333

The Set Irrigation Times state must display the screen shown in Figure B-7-12.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 415

Figure B-7-12 AquaLush Set Irrigation Times Screen


ID: 334

If the user presses the DEL key, then characters must be erased from the Irrigation Time display from right to left.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 335

If the user presses keypad digit keys, then digits must be added to the Irrigation Time display from left to right.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 336

If the user presses keypad digit keys when there are already four digits in the Irrigation Time display, then the display must not be changed and the terminal must beep.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 337

Users must be constrained in entering digits in the following ways:

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 338

The first digit must be in the range zero to two.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 339

If the first digit is zero or one, then the second digit must be in the range zero to nine.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 340

If the first digit is two, then the second digit must be in the range zero to three.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 341

The third digit must be in the range zero to five.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 342

The fourth digit must be in the range zero to nine.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 343

If the user attempts to enter an illegal digit, the digit must not be displayed and the terminal must beep.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 344

The Irrigation Days display must show the current set of irrigation days as a day set string.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 345

The day set string must show the currently selected irrigation days in order, starting from Monday using, the following abbreviations:

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 346

Monday must be abbreviated as “M.”

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 347

Tuesday must be abbreviated as “Tu.”

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 348

Wednesday must be abbreviated as “W.”

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 349

Thursday must be abbreviated as “Th.”

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 350

Friday must be abbreviated as “F.”

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 351

Saturday must be abbreviated as “Sa.”

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 352

Sunday must be abbreviated as “Su.”

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 353

If the user presses a screen key for a day and that day is present in the Irrigation Days display, then that day must be removed from the Irrigation Days display.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 354

If the user presses a screen key for a day and that day is not present in the Irrigation Days display, then that day must be added to the Irrigation Days display.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 355

If the user presses the ESC key, the irrigation days and time must not be changed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 356

If the user presses the “Accept New Settings” button, the current settings (possibly altered by the user) must be used for irrigation times.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 357

If a new irrigation time is only partially entered when the user presses the “Accept New Settings” button, the irrigation time must not be changed, but any changes to the irrigation days must be accepted.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 358

The Set Moisture Levels state must allow users to alter each zone’s critical moisture level.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must have an interface that all
(62)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowCriticalLevel.java(EXT OUT)


ID: 359

The Set Moisture Levels state must display the screen shown in Figure B-7-13.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 416

Figure B-7-13 AquaLush Set Moisture Levels Screen


ID: 360

The region between the dashed lines must be a scrollable display of all zones, their critical moisture levels, and their locations.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Zone
(266)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
ZoneReport
(606)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get zone data
(732)
(OUT)


ID: 361

The zones must be listed in zone identifier order.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 362

The middle, highlighted element is the current zone.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 363

The list must scroll up to or down to the middle element so that any zone can be made current.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 364

There must always be a current zone.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 365

The two middle screen buttons on the right must control scrolling.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 366

If the user presses the “Propagate Settings to All Zones” screen button, then the current zone’s critical moisture setting must be applied to all zones.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 367

If the user presses the DEL key, then characters must be erased from the current zone’s moisture level display from right to left.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 368

If the user presses keypad digit keys, then digits must be added to the current zone’s moisture level display from left to right.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 369

If the user presses keypad digit keys when there are already three digits in the current zone’s moisture level display, then the display must not be changed and the terminal must beep.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 370

Users must be constrained in entering digits in following ways:

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 371

The first two digits must be in the range zero to nine.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 372

The third digit must be a zero, and it must be accepted only if the first two digits are “10.”

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 373

The Zone field must show the zone identifier left-aligned in columns three through six.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 374

The Level field must show the zone’s critical moisture level right-aligned in columns 9 through 11 with no leading zeros.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 375

The Location field must display the zone’s location string left-aligned in columns 14 through 37.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 376

If the user presses the ESC key, then no changes made to the critical moisture levels must take effect.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 377

If the user presses the “Accept New Settings” button, then all changes to critical moisture levels must take effect.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Zone
(266)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Set or get a zone’s critical moisture le
(688)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 378

The Set Water Allocation state must allow users to set the total amount of water to be used in an automatic irrigation cycle.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Create an automatic irrigation cycle (Au
(276)
(OUT)
Basic Flow:
1. Operator sets the irrigat
(25)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Irrigation
(16)
(OUT)
UIController
(797)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must allow the maximum amount o
(10)
(IN)
AquaLush must have an interface that all
(62)
(IN)

This object has external links to:
UseCaseTwoTestBasicFlowWaterAllocation.java(EXT OUT)


ID: 379

The Set Water Allocation state must display the screen shown in Figure B-7-14.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 417

Figure B-7-14 AquaLush Set Water Allocation Screen


ID: 380

If the user presses the DEL key, then characters must be erased from the Gallons Allocated display from right to left.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 381

If the user presses keypad digit keys, then digits must be added to the Gallons Allocated display from left to right.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 382

If the user presses keypad digit keys when there are already 14 digits in the Gallons Allocated display, then the display must not be changed and the terminal must beep.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 383

If the user presses the ESC key, the water allocation must not be changed.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 384

If the user presses the “Accept New Settings” button, the current water allocation must be used to regulate irrigation.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
Irrigation Layer Behavior
(409)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
AutoCycle
(260)
(OUT)
The Irrigator calls IrrigationCycle.tick
(410)
(OUT)
Irrigation
(16)
(OUT)
Set and get irrigation parameters
(633)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 385

The Device Failure state must be entered to notify the user that a sensor or valve has failed and possibly that AquaLush cannot write to its persistent store.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Irrigation
(16)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Remove data from persistent store
(469)
(OUT)
Record a value in persistent store
(447)
(OUT)
StoreDevice Interface
(328)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseOneExtension2ABasicFlowTest.java(EXT OUT)
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)
UseCaseThreeExtension2a2bTest.java(EXT OUT)
UseCaseThreeExtension2aTest.java(EXT OUT)
UseCaseThreeExtension4aTest.java(EXT OUT)
UseCaseThreeExtension6a2bTest.java(EXT OUT)
UseCaseThreeExtension6aTest.java(EXT OUT)
UseCaseThreeExtension8aTest.java(EXT OUT)


ID: 386

The Device Failure state must display the screen shown in Figure B-7-15.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 418

Figure B-7-15 AquaLush Device Failure Screen


ID: 387

The device identifier, zone, and location must vary.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 388

If the failed device is a valve, then the display must show the valve identifier, the valve’s zone, and the valve’s location string.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)


ID: 389

If the failed device is a sensor, then the display must show the sensor identifier, the sensor’s zone, and the sensor’s location string.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Irrigation Layer Static Structure
(247)
(OUT)
Get a failed hardware report (Irrigator)
(386)
(OUT)
Irrigation
(16)
(OUT)
User Interface
(13)
(OUT)
Irrigator
(600)
(OUT)
Irrigation Layer Decomposition
(593)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
Get a failed hardware report
(765)
(OUT)
FailureReport
(618)
(OUT)


ID: 390

The data displayed in rows three through five must be centered.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 391

The message about failure to write to persistent store must appear only if this failure actually occurs.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
User Interface
(13)
(OUT)
Remove data from persistent store
(469)
(OUT)
Record a value in persistent store
(447)
(OUT)
StoreDevice Interface
(328)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 392

When the user presses the “OK” button, the program must return to the state from which it came when the failure was detected.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 393

The Persistent Store Failure state must be entered to notify the user that AquaLush cannot read from or write to its persistent store.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
1a Operator sets the mode fr
(17)
(OUT)
Extensions:
2a A setting is invalid:
2a1
(26)
(OUT)
Extensions:
6a AquaLush cannot write to
(42)
(OUT)
Extensions:
2a,4a,6a,8a A Valve fails:
2
(34)
(OUT)
Extensions:
1a A Sensor fails:
1a1. Aqua
(66)
(OUT)
Device Interface
(19)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
UIController
(797)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Remove data from persistent store
(469)
(OUT)
Record a value in persistent store
(447)
(OUT)
StoreDevice Interface
(328)
(OUT)
Fetch a value from persistent store
(458)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)

This object has external links to:
UseCaseOneExtension2ABasicFlowTest.java(EXT OUT)


ID: 394

The Persistent Store Failure state must display the screen shown in Figure B-7-16.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 419

Figure B-7-16 AquaLush Persistent Store Failure Screen


ID: 395

When the user presses the “OK” button, the program must return to the state from which it came when the failure was detected.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
User Interface
(13)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)


ID: 396

If AquaLush cannot read its persistent store during startup, then it must display the screen shown in Figure B-7-17 and suspend further processing.

This object is linked to:
User Interface Layer Behavior
(481)
(OUT)
Screen
(419)
(OUT)
User Interface Layer Static Structure
(412)
(OUT)
Device Interface Layer Static Structure
(246)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
Basic Flow:
Any of the following Simula
(73)
(OUT)
Extensions:
*a AquaLush cannot read its
(58)
(OUT)
Configurer
(38)
(OUT)
Startup
(10)
(OUT)
Device Interface
(19)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
Device Interface Layer Decomposition
(315)
(OUT)
User Interface
(13)
(OUT)
Runtime Components
(815)
(OUT)
Remove data from persistent store
(469)
(OUT)
Record a value in persistent store
(447)
(OUT)
Program execution
(53)
(OUT)
StoreDevice Interface
(328)
(OUT)
Fetch a value from persistent store
(458)
(OUT)
User Interface Layer Decomposition
(790)
(OUT)
AquaLush
(35)
(OUT)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)


ID: 420

Figure B-7-17 AquaLush Unable to Start Screen


ID: 397

7 Simulation User Interface


ID: 398

7.1 User Interface Appearance


ID: 399

The simulation user interface must appear as indicated in Figure B-7-18.

This object is linked to:
Simulation
(372)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
SimTimeControl
(100)
(OUT)
SimKeypad
(97)
(OUT)
SimFailureControl
(109)
(OUT)
SimEvapControl
(103)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
SimDisplay
(88)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLushApplet
(32)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 421

Figure B-7-18 AquaLush Simulation User Interface


ID: 400

The right-hand side of the user interface must simulate the AquaLush control panel.

This object is linked to:
SimControlPanel
(103)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
SimKeypad
(97)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimControlPanel
(94)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
SimDisplay
(88)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLushApplet
(32)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 401

The left-hand side of the user interface must control and display the state of the simulated irrigation site.

This object is linked to:
SimTimeControl
(291)
(OUT)
SimSiteView
(259)
(OUT)
SimKeypad
(167)
(OUT)
Startup Layer Static Structure
(2)
(OUT)
Startup Layer Behavior
(82)
(OUT)
SimTimeControl
(100)
(OUT)
SimFailureControl
(109)
(OUT)
SimEvapControl
(103)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Startup
(10)
(OUT)
Startup Layer Decomposition
(25)
(OUT)
SimDisplay
(88)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
AquaLushApplet
(32)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 402

7.2 User Interface Behavior


ID: 403

The failed devices controls must behave as specified in Figure B-7-19.

This object is linked to:
SimFailureControl
(165)
(OUT)
SimFailureControl
(109)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Set the failure status of a sensor (SimV
(230)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set the failure status of a sensor (SimS
(219)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 425

Figure B-7-19 Simulated Failed Devices Controls


ID: 404

The irrigation site display must behave as indicated in Figure B-7-20.

This object is linked to:
SimSiteView
(259)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
SimSiteView
(106)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 426

Figure B-7-20 Simulated Irrigation Site Display


ID: 405

The simulated time controls must behave as specified in Figure B-7-21.

This object is linked to:
SimTimeControl
(291)
(OUT)
SimTimeControl
(100)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
Set the simulated time
(278)
(OUT)
Get the simulated time
(267)
(OUT)
Start and stop the simulated time
(289)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 427

Figure B-7-21 Simulated Time Controls


ID: 406

The evaporation controls must behave as specified in Figure B-7-22.

This object is linked to:
SimEvapControl
(148)
(OUT)
SimEvapControl
(103)
(OUT)
SimEnvironment
(91)
(OUT)
Simulation Layer Static Structure
(83)
(OUT)
Simulation Layer Behavior
(243)
(OUT)
Set a sensor’s moisture level (SimSensor
(208)
(OUT)
Simulation
(82)
(OUT)
Simulation
(22)
(OUT)
Simulation Layer Decomposition
(75)
(OUT)
At least 70% of users must agree that th
(71)
(IN)
The Web-based AquaLush simulation must r
(53)
(IN)
The Web-based AquaLush simulation must p
(54)
(IN)


ID: 428

Figure B-7-22 Simulated Evaporation Controls

Produced by DOORS 9.3.0.2