Please see section B.2 AquaLush Project Mission Statement for an overview of the product.
The software, as delivered, must consist of two parts: A Web-based simulation, and
Software to control the hardware.
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-1 AquaLush Configuration File
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-2 AquaLush Dialog Map
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)
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)
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)
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)
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)
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)
Figure B-7-3 Expanded AquaLush Dialog Map
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-4 AquaLush Dialog Map with Failures
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)
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)
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)
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)
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)
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)
Figure B-7-5 AquaLush Automatic Main Menu Screen
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)
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)
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)
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)
Figure B-7-6 AquaLush Manual Main Menu Screen
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)
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)
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)
Figure B-7-7 AquaLush Manual Irrigation Data Screen
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-8 AquaLush Manual Irrigation Location Screen
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-9 AquaLush Set Clock Screen
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-10 AquaLush Fix Failures Screen
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-11 AquaLush Set Up Auto Irrigation Screen
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)
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)
Figure B-7-12 AquaLush Set Irrigation Times Screen
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-13 AquaLush Set Moisture Levels Screen
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-14 AquaLush Set Water Allocation Screen
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)
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)
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)
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)
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)
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)
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)
Figure B-7-15 AquaLush Device Failure Screen
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)
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)
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)
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)
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)
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)
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)
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)
Figure B-7-16 AquaLush Persistent Store Failure Screen
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)
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)
Figure B-7-17 AquaLush Unable to Start Screen
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)
Figure B-7-18 AquaLush Simulation User Interface
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)
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)
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)
Figure B-7-19 Simulated Failed Devices Controls
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)
Figure B-7-20 Simulated Irrigation Site Display
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)
Figure B-7-21 Simulated Time Controls
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)
Figure B-7-22 Simulated Evaporation Controls