ID: 1

1 Use Case Model


ID: 2

1.1 Actors


ID: 3

Sensor—A moisture sensor device.

This object is linked to:
Sensor
(18)
(OUT)


ID: 4

Valve—An irrigation valve device.

This object is linked to:
Valve
(27)
(OUT)


ID: 5

Operator—A user operating AquaLush on a day-to-day basis.

This object is linked to:
Operator
(15)
(OUT)


ID: 6

Maintainer—A user performing maintenance tasks on AquaLush.

This object is linked to:
Maintainer
(14)
(OUT)


ID: 7

Simulation User—A person using the Web-based AquaLush simulation.

This object is linked to:
Simulation User
(24)
(OUT)


ID: 8

1.2 Use Case Diagram

This object is linked to:
AquaLush Use Case Model
(3)
(OUT)


ID: 74

Figure B-6-1 AquaLush Use Case Diagram


ID: 9

1.3 Use Case Descriptions


ID: 10

1.3.1 Use Case 1: Toggle Irrigation

This object is linked to:
Toggle Irrigation
(61)
(OUT)


ID: 11

Actors: Operator, Valve


ID: 12

Stakeholders and Needs:
Operators—To control irrigation times, to continue operating as normally as possible in the face of Valve and Sensor failures.
Managers, Marketers—To achieve 5% market share.
Maintainers—To detect and record Valve failures, to recover from power failures without Maintainer intervention.


ID: 13

Preconditions: None.


ID: 14

Postconditions:
AquaLush is set to irrigate either automatically or manually, and this setting is recorded in a persistent store.
All Valve failures are recorded.
Persistent store failures are reported.


ID: 15

Trigger: Operator sets the mode.

This object is linked to:
AquaLush must allow its mode (manual or
(6)
(IN)


ID: 16

Basic Flow:
1. Operator sets the mode from manual to automatic.
2. AquaLush turns off any Valves that may be on.
3. AquaLush records the mode as automatic, confirms the change, and waits for the next irrigation time.

This object is linked to:
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)
Valves must be openable and closable.
(212)
(IN)
Setting the mode to a different value mu
(11)
(IN)
AquaLush must display the current mode t
(12)
(IN)
Users must be able to set the mode.
(9)
(IN)
All parameters set by users must remain
(7)
(IN)
AquaLush must record its system paramete
(144)
(IN)
System parameters include the following
(145)
(IN)

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


ID: 17

Extensions:
1a Operator sets the mode from automatic to manual:
1a1. AquaLush closes all Valves.
1a2. AquaLush records the mode as manual and confirms the change, and the use case ends.
1b Operator sets the mode to its current setting:
1b1. AquaLush confirms the current mode and the use case ends.
2a A Valve fails:
2a1. AquaLush tries twice more to close the Valve, and if it succeeds the use case continues. 2a2. AquaLush alerts the Operator of the failure and records that this Valve failed in its persistent store; then the use case continues.
1a2a, 3a, 2a2a AquaLush cannot write to its persistent store:
3a1. AquaLush alerts the Operator of the failure and the use case continues.

This object is linked to:
AquaLush must allow its mode (manual or
(6)
(IN)
AquaLush must allow operation in either
(12)
(IN)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must continue operating as norm
(43)
(IN)
Valve failures must be detectable when a
(213)
(IN)
Setting the mode to a different value mu
(11)
(IN)
Setting the mode to its current value mu
(10)
(IN)
The Persistent Store Failure state must
(393)
(IN)
The Device Failure state must be entered
(385)
(IN)
If a valve cannot be manipulated after t
(72)
(IN)
If a valve can be manipulated within thr
(71)
(IN)
If a valve cannot be manipulated (opened
(70)
(IN)
AquaLush must detect valve and sensor fa
(38)
(IN)
If AquaLush cannot write to its persiste
(74)
(IN)
The following data must be recorded for
(123)
(IN)
AquaLush must set the total water used i
(48)
(IN)
AquaLush must display the current mode t
(12)
(IN)
Users must be able to set the mode.
(9)
(IN)
The control panel must conform to the di
(255)
(IN)

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


ID: 18

1.3.2 Use Case 2: Set Irrigation Parameters

This object is linked to:
Set Irrigation Parameters
(34)
(OUT)


ID: 19

Actors: Operator


ID: 20

Stakeholders and Needs:
Operators, Purchasers—To schedule irrigation for certain times, to set the moisture levels that control irrigation, to set the maximum amount of water used in irrigation.


ID: 21

Preconditions: None.


ID: 22

Postconditions:
AquaLush automatic irrigation parameters are set, and these settings are recorded in a persistent store.
All Valve failures are recorded.
Persistent store failures are reported.


ID: 23

Postconditions:
AquaLush automatic irrigation parameters are set, and these settings are recorded in a persistent store. All Valve failures are recorded. Persistent store failures are reported.


ID: 24

Trigger: Operator sets automatic irrigation parameters.


ID: 25

Basic Flow:
1. Operator sets the irrigation time, water allocation, or critical moisture levels.
2. AquaLush validates the new setting(s).
3. AquaLush records and confirms the new setting(s).

This object is linked to:
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 record the following data
(77)
(IN)
AquaLush must either not allow an invali
(20)
(IN)
AquaLush must allow the days and time of
(19)
(IN)
AquaLush must allow moisture levels that
(24)
(IN)
AquaLush must allow the maximum amount o
(29)
(IN)
AquaLush must either not allow an invali
(30)
(IN)
AquaLush must either not allow an invali
(25)
(IN)
The Set Moisture Levels state must allow
(358)
(IN)
The Set Up Auto Irrigation state must al
(330)
(IN)
The Set Irrigation Times state must allo
(332)
(IN)
The Set Water Allocation state must allo
(378)
(IN)
All parameters set by users must remain
(7)
(IN)
AquaLush must record its system paramete
(144)
(IN)
System parameters include the following
(145)
(IN)

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


ID: 26

Extensions:
2a A setting is invalid:
2a1. AquaLush notifies the Operator of the invalid setting.
2a2. Operator adjusts the setting.
2a3 AquaLush checks the setting and either resumes the basic flow or returns to step 2a1.
3a AquaLush cannot write to its persistent store:
3a1. AquaLush alerts the Operator of the failure and the use case continues.
3b Irrigation is in progress when the irrigation time is set:
3b1. AquaLush completes the current irrigation cycle, and the new irrigation time takes effect upon completion of the cycle.
3c Irrigation is in progress when the water allocation is set:
3c1. AquaLush recomputes the allocations for each irrigation zone, and they take effect
immediately.
3d Irrigation is in progress when the critical moisture levels are set:
3d1. AquaLush uses the new critical moisture levels to control irrigation immediately.

This object is linked to:
AquaLush must record the following data
(77)
(IN)
AquaLush must either not allow an invali
(20)
(IN)
The Persistent Store Failure state must
(393)
(IN)
If a new irrigation time setting fails v
(21)
(IN)
If AquaLush cannot write to its persiste
(74)
(IN)
If a new critical moisture level setting
(26)
(IN)
If the water allocation is set when auto
(32)
(IN)
If a new water allocation setting fails
(31)
(IN)
AquaLush must either not allow an invali
(30)
(IN)
If the critical moisture level is set wh
(27)
(IN)
If the irrigation time is set when autom
(22)
(IN)
AquaLush must either not allow an invali
(25)
(IN)
The control panel must conform to the di
(255)
(IN)

This object has external links to:
UseCaseTwoTestExtension2aCriticalLevel.java(EXT OUT)
UseCaseTwoTestExtension2aIrrigationTime.java(EXT OUT)
UseCaseTwoTestExtension2aWaterAllocation.java(EXT OUT)
UseCaseTwoTestRunningCycleCriticalLevel.java(EXT OUT)
UseCaseTwoTestRunningCycleIrrigationTime.java(EXT OUT)
UseCaseTwoTestRunningCycleWaterAllocation.java(EXT OUT)


ID: 27

1.3.3 Use Case 3: Manually Control Irrigation

This object is linked to:
Manually Control Irrigation
(21)
(OUT)


ID: 28

Actors: Operator, Valve, Sensor


ID: 29

Stakeholders and Needs:
Operators—To schedule irrigation for certain times, to continue operating as normally as possible in the face of Valve and Sensor failures, to irrigate the site.
Maintainers—To detect and record Valve failures, to recover from power failures without Maintainer intervention.


ID: 30

Preconditions: AquaLush is in manual mode.


ID: 31

Postconditions: All Valve and Sensor failures are recorded.
Persistent store failures are reported.


ID: 32

Trigger: Operator selects a non-empty set of closed Valves and directs that they be opened.


ID: 33

Basic Flow:
1. Operator selects a non-empty set of closed Valves and directs that they be opened.
2. AquaLush opens each Valve in the set and displays to the Operator for each open Valve: its
location, how long it has been open, how much water it has used, and the moisture level of its
associated Sensor. AquaLush also shows the total water used since the start of the use case.
The following Operator action and AquaLush responses may be done in any order, and they may be done repeatedly.
3. Operator selects a set of open Valves and directs that they be closed.
4. AquaLush closes the indicated Valves and removes them from the Valve status display.
5. Operator selects a set of closed Valves and directs that they be opened.
6. AquaLush opens the selected Valves and adds them to the Valve status display.
The following steps are taken to end the use case.
7. The Operator indicates that he or she is finished.
8. AquaLush acknowledges that manual irrigation is finished and closes all Valves.

This object is linked to:
AquaLush must allow operation in either
(12)
(IN)
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)
Valves must be openable and closable.
(212)
(IN)
AquaLush must run in one of two modes: m
(8)
(IN)
AquaLush must monitor the amount of wate
(37)
(IN)
In manual-mode operation, AquaLush must
(40)
(IN)
AquaLush must allow operation in either
(36)
(IN)
AquaLush must display the total water us
(47)
(IN)
The following data must be displayed for
(158)
(IN)
AquaLush must set the total water used i
(48)
(IN)
When no valve is open in manual irrigati
(49)
(IN)
The total water used during manual irrig
(168)
(IN)
The Manual Irrigation (Location) state m
(288)
(IN)
The Manual Irrigation (Data) state must
(268)
(IN)
AquaLush must display the following data
(41)
(IN)

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


ID: 34

Extensions:
2a,4a,6a,8a A Valve fails:
2a1. AquaLush tries twice more to manipulate the Valve, and if it succeeds, the use case continues.
2a2. AquaLush alerts the Operator of the failure and records that this Valve failed in its persistent store; then the use case continues.
2b A Sensor fails:
2b1. AquaLush tries twice more to read the Sensor, and if it succeeds, the use case continues.
2b2. AquaLush alerts the Operator of the failure and records that this Sensor failed in its persistent store; then the use case continues.
2*2a AquaLush cannot write to its persistent store:
2a2a1. AquaLush alerts the Operator of the failure, and the use case continues.

This object is linked to:
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must continue operating as norm
(43)
(IN)
Sensor failures must be detectable when
(211)
(IN)
Valve failures must be detectable when a
(213)
(IN)
The Persistent Store Failure state must
(393)
(IN)
The Device Failure state must be entered
(385)
(IN)
If a valve cannot be manipulated after t
(72)
(IN)
If a sensor cannot be read, then AquaLus
(65)
(IN)
If a valve can be manipulated within thr
(71)
(IN)
If a valve cannot be manipulated (opened
(70)
(IN)
If a sensor cannot be read after three t
(67)
(IN)
If a sensor can be read within three tri
(66)
(IN)
AquaLush must detect valve and sensor fa
(38)
(IN)
If AquaLush cannot write to its persiste
(74)
(IN)
If a valve cannot be manipulated after t
(73)
(IN)
The following data must be recorded for
(115)
(IN)
The following data must be recorded for
(123)
(IN)
If a sensor cannot be read after three t
(68)
(IN)
The control panel must conform to the di
(255)
(IN)

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


ID: 35

1.3.4 Use Case 4: Make Repairs

This object is linked to:
Make Repairs
(17)
(OUT)


ID: 36

Actors: Maintainer


ID: 37

Stakeholders and Needs:
Maintainers—To fix problems easily.


ID: 38

Preconditions: None.


ID: 39

Postconditions: The clock is reset or AquaLush is notified of repaired Valves and Sensors.
The persistent store is updated when hardware is repaired.
Persistent store failures are reported.


ID: 40

Trigger: Maintainer begins a repair session


ID: 41

Basic Flow:
1. Maintainer begins a repair session.
2. AquaLush displays the set of failed Valves and Sensors.
The following Maintainer actions and AquaLush responses may be done (as pairs) in any order, and they may be done repeatedly.
3. Maintainer sets the current time.
4. AquaLush resets its clock and confirms it to the Maintainer. The current time is used to control automatic irrigation immediately.
5. Maintainer indicates which of the failed Valves and Sensors are now repaired.
6. AquaLush adjusts its persistent store to record the repairs. AquaLush begins using the repaired Sensors and Valves for irrigation immediately.
7. The use case ends when the Maintainer indicates that repairs are complete.

This object is linked to:
AquaLush must allow the current time to
(7)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)
Sensor failures must be detectable when
(211)
(IN)
Valve failures must be detectable when a
(213)
(IN)
The Set Clock state must allow users to
(296)
(IN)
AquaLush must either not allow an invali
(15)
(IN)
AquaLush must allow users to set the cur
(13)
(IN)
The current time is recorded in the syst
(154)
(IN)
If a new time setting fails validation,
(16)
(IN)
If no valves have failed, then AquaLush
(79)
(IN)
AquaLush must provide reports of failed
(78)
(IN)
The following data must be recorded for
(115)
(IN)
The following data must be recorded for
(123)
(IN)
When told that a failed valve or sensor
(85)
(IN)
When told that a failed valve or sensor
(86)
(IN)
If no sensors have failed, then AquaLush
(80)
(IN)
Failure reports must display the followi
(171)
(IN)
The failed sensor or valve identifier
(172)
(IN)
The Fix Failures state must allow users
(314)
(IN)
AquaLush must allow users to indicate th
(84)
(IN)

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


ID: 42

Extensions:
6a AquaLush cannot write to its persistent store:
6a1. AquaLush alerts the Maintainer of the failure and the use case continues.

This object is linked to:
The Persistent Store Failure state must
(393)
(IN)
If AquaLush cannot write to its persiste
(74)
(IN)
The control panel must conform to the di
(255)
(IN)


ID: 43

1.3.5 Use Case 5: Report Failures

This object is linked to:
Report Failures
(33)
(OUT)


ID: 44

Actors: Maintainer


ID: 45

Stakeholders and Needs:
Maintainers—To fix problems easily.


ID: 46

Preconditions: None.


ID: 47

Postconditions: Failed Valves and Sensors are reported.


ID: 48

Trigger: Maintainer requests a failure report.


ID: 49

Basic Flow:
1. Maintainer requests a failure report.
2. AquaLush displays the failed Valves and Sensors and their locations, or indicates that there are no failures.
3. Maintainer ends the use case.

This object is linked to:
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must report failed components,
(44)
(IN)
AquaLush must continue operating as norm
(43)
(IN)
Sensor failures must be detectable when
(211)
(IN)
Valve failures must be detectable when a
(213)
(IN)
If no valves have failed, then AquaLush
(79)
(IN)
AquaLush must provide reports of failed
(78)
(IN)
If valves or sensors have failed, then A
(81)
(IN)
If no sensors have failed, then AquaLush
(80)
(IN)
Failure reports must display the followi
(171)
(IN)
The failed sensor or valve identifier
(172)
(IN)
The Fix Failures state must allow users
(314)
(IN)
The failed sensor or valve location
(173)
(IN)

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


ID: 50

Extensions:
None.


ID: 51

1.3.6 Use Case 6: Start Up

This object is linked to:
Start Up
(56)
(OUT)


ID: 52

Actors: Valve


ID: 53

Stakeholders and Needs:
Maintainers—To recover from power failures without Maintainer intervention.
Operators—To continue operating as normally as possible in the face of Valve and Sensor failures.


ID: 54

Preconditions: AquaLush was powered down


ID: 55

Postconditions: If persistent storage is intact and readable, then AquaLush is restored to its state prior to shutdown, except that all Valves are closed.
All Valve failures are recorded or persistent store failure is reported.


ID: 56

Trigger: The system is powered up and AquaLush is restarted.


ID: 57

Basic Flow:
1. AquaLush reads its persistent store and establishes its configuration.
2. AquaLush reads its persistent store and restores all its parameters.
3. AquaLush reads its persistent store and closes all working Valves. If AquaLush is in automatic
mode, it waits for the irrigation time.

This object is linked to:
AquaLush must record the following data
(77)
(IN)
Valves must be openable and closable.
(212)
(IN)
AquaLush must make no attempt to resume
(92)
(IN)
When power is applied to the system, the
(88)
(IN)
After establishing its configuration, Aqu
(90)
(IN)
A configuration file must be prepared at i
(35)
(IN)
After starting, AquaLush must close all
(91)
(IN)
When it starts, AquaLush must first read
(89)
(IN)
AquaLush must record its system paramete
(144)
(IN)
System parameters include the following
(145)
(IN)
The default sensor and valve operational
(188)
(IN)
The default irrigation time must be 0200
(185)
(IN)
The default water allocation must be 100
(186)
(IN)
The default irrigation day must be the s
(184)
(IN)
The default mode must be automatic.
(183)
(IN)
The default zone critical moisture level
(187)
(IN)


ID: 58

Extensions:
*a AquaLush cannot read its persistent store:
*a1. AquaLush displays a failure message and suspends operation.
3a A Valve fails:
3a1. AquaLush tries twice more to close the Valve, and if it succeeds the use case continues.
3a2. AquaLush records that this Valve failed in its persistent store.
3a3. AquaLush goes on with its processing.
3a2a AquaLush cannot write to its persistent store: The use case continues.

This object is linked to:
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must continue operating as norm
(43)
(IN)
If AquaLush cannot read its persistent s
(396)
(IN)
Valve failures must be detectable when a
(213)
(IN)
The Device Failure state must be entered
(385)
(IN)
If a valve cannot be manipulated after t
(72)
(IN)
If AquaLush cannot read its persistent s
(75)
(IN)
If a valve can be manipulated within thr
(71)
(IN)
If a valve cannot be manipulated (opened
(70)
(IN)
AquaLush must detect valve and sensor fa
(38)
(IN)
If AquaLush cannot write to its persiste
(74)
(IN)
The following data must be recorded for
(123)
(IN)
If AquaLush cannot read its persistent s
(76)
(IN)
The control panel must conform to the di
(255)
(IN)
If AquaLush cannot read its persistent s
(77)
(IN)


ID: 59

1.3.7 Use Case 7: Irrigate

This object is linked to:
Irrigate
(13)
(OUT)


ID: 60

Actors: Valve, Sensor


ID: 61

Stakeholders and Needs:
Management, Developers, Marketers, Operators, Purchasers—To irrigate only until the desired
moisture level is achieved.
Operators, Purchasers—To monitor the amount of water used in irrigation and to stop irrigation when the maximum allocated amount of water is reached.
Maintainers—To detect Valve and Sensor failures, to recover from power failures without Maintainer intervention.
Operators—To continue operating as normally as possible in the face of Valve and Sensor failures


ID: 62

Preconditions: AquaLush is in automatic irrigation mode.


ID: 63

Postconditions: All irrigation zones have been irrigated until either their Sensors indicate that the
critical moisture level has been reached or the water allocated for the zone is used up.
All Valve and Sensor failures are recorded.
All persistent store failures are reported.


ID: 64

Trigger: The current time is the irrigation time.

This object is linked to:
AquaLush must irrigate only during irrig
(49)
(IN)
If the current time is set so that an ir
(18)
(IN)
In automatic-mode operation, AquaLush mu
(51)
(IN)


ID: 65

Basic Flow:
1. AquaLush reads each (working) Sensor. If a Sensor reports moisture below its zone’s critical
moisture level, then AquaLush places that zone on an active zone list.
2. AquaLush counts the (working) Valves in the active zones and divides the water allocation by this count to get a Valve allocation. Each zone is assigned a zone allocation, which is the Valve
allocation multiplied by the number of Valves in the zone.
For each active zone:
3. AquaLush opens all the (working) Valves in the zone, and marks the time when it does so.
4. Every minute, AquaLush reads the zone Sensor and also computes the zone water usage by
multiplying the total flow rate for all Valves in the zone by the time that the Valves have been open.
5. If the zone’s critical moisture level is reached, or the zone allocation is reached, then AquaLush closes all the Valves in the zone.
The use case ends when all zones in the active zone list have been irrigated.

This object is linked to:
AquaLush must allow operation in either
(12)
(IN)
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)
Valves must be openable and closable.
(212)
(IN)
If the current time is set so that an ir
(18)
(IN)
AquaLush must run in one of two modes: m
(8)
(IN)
AquaLush must do the following during an
(53)
(IN)
AquaLush must monitor the amount of wate
(37)
(IN)
AquaLush must allow operation in either
(36)
(IN)
In automatic-mode operation, AquaLush mu
(52)
(IN)
When told that a failed valve or sensor
(86)
(IN)

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


ID: 66

Extensions:
1a A Sensor fails:
1a1. AquaLush tries twice more to read the Sensor, and if it succeeds goes on as before.
1a2. AquaLush records that this Sensor failed in its persistent store.
1a3. AquaLush continues with the next Sensor.
3a,4a2a,5a A Valve fails:
3a1. AquaLush tries twice more to manipulate the Valve, and if it succeeds the use case continues.
3a2. AquaLush records that this Valve failed in its persistent store.
3a3. AquaLush goes on with its processing.
4a A Sensor fails:
4a1. AquaLush tries twice more to read the Sensor, and if it succeeds the use case continues.
4a2. AquaLush closes all Valves in the zone.
4a3. AquaLush records that this Sensor failed in its persistent store.
4a4. AquaLush continues with step 5 as if the Sensor had reached the zone’s critical moisture level.
5b The zone allocation is not exhausted:
5b1. AquaLush adds the remainder of the zone allocation to the zone allocations of the unirrigated active zones and divides this sum by the number of Valves in the unirrigated active zones to compute a new Valve allocation.
5b2. AquaLush recomputes the zone allocations for each active unirrigated zone by multiplying the new Valve allocation by the number of Valves in the zone.
1a2a,3a2a,4a3a AquaLush cannot write to its persistent store: AquaLush alerts the Operator of the failure and the use case continues

This object is linked to:
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must continue operating as norm
(43)
(IN)
Sensor failures must be detectable when
(211)
(IN)
Valve failures must be detectable when a
(213)
(IN)
The Persistent Store Failure state must
(393)
(IN)
The Device Failure state must be entered
(385)
(IN)
If a valve cannot be manipulated after t
(72)
(IN)
If a sensor cannot be read, then AquaLus
(65)
(IN)
AquaLush must do the following during an
(53)
(IN)
If a valve can be manipulated within thr
(71)
(IN)
If a valve cannot be manipulated (opened
(70)
(IN)
If a sensor cannot be read after three t
(67)
(IN)
If a sensor can be read within three tri
(66)
(IN)
AquaLush must detect valve and sensor fa
(38)
(IN)
If AquaLush cannot write to its persiste
(74)
(IN)
If a sensor cannot be read after three t
(69)
(IN)
The following data must be recorded for
(115)
(IN)
The following data must be recorded for
(123)
(IN)
The control panel must conform to the di
(255)
(IN)

This object has external links to:
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)


ID: 67

1.3.8 Use Case 8: Simulate AquaLush

This object is linked to:
Simulate AquaLush
(51)
(OUT)


ID: 68

Actors: Simulation User


ID: 69

Stakeholders and Needs:
Purchasers, Management, Developers, Marketers—To have a Web-based simulation providing an accurate representation of the actual product and its use.


ID: 70

Preconditions: None.


ID: 71

Postconditions: Simulators have interacted with an accurate simulation.


ID: 72

Trigger: The simulation Web page is loaded.


ID: 73

Basic Flow:
Any of the following Simulator actions may be done in any order, and they may be done repeatedly.
1. Simulator uses the simulated control panel to Toggle Irrigation, Set Irrigation Parameters, Manually Control Irrigation, Make Repairs, or Report Failures.
2. AquaLush Simulator displays the simulated effects on the representation of a site with irrigation zones containing Sensors and Valves. AquaLush Simulator also displays the simulated time, simulation speed, Sensor readings, Valve flows, water evaporation rate, and failed Valves and Sensors.
3. AquaLush Simulator speeds up or slows down the simulation, sets the simulated time, sets the simulated water evaporation rate, or makes Valves or Sensors fail or be repaired.
4. AquaLush Simulator alters the simulation in response to the new parameter settings.
The use case ends when the simulation Web page is exited.

This object is linked to:
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 irrigate only until the wa
(51)
(IN)
AquaLush must allow moisture levels that
(9)
(IN)
AquaLush must allow the maximum amount o
(10)
(IN)
AquaLush must irrigate only until the se
(50)
(IN)
AquaLush must allow the current time to
(7)
(IN)
AquaLush must irrigate only during irrig
(49)
(IN)
AquaLush must detect valve and sensor fa
(42)
(IN)
AquaLush must monitor the amount of wate
(13)
(IN)
AquaLush must not fail when a sensor or
(66)
(IN)
AquaLush must record the following data
(77)
(IN)
AquaLush must report failed components,
(44)
(IN)
AquaLush must continue operating as norm
(43)
(IN)
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 Web-based AquaLush simulation must p
(54)
(IN)
The simulation must provide a realistic
(95)
(IN)
The simulation must simulate valve and s
(104)
(IN)
The simulation must provide controls to
(105)
(IN)
The simulation must display the simulate
(100)
(IN)
The Web-based AquaLush simulation must r
(94)
(IN)
The simulation must provide controls to
(101)
(IN)
The simulation must simulate water evapo
(102)
(IN)
Each simulated irrigation zone must simu
(98)
(IN)
Each simulated irrigation zone must simu
(97)
(IN)
The simulation must provide controls to
(103)
(IN)
The simulation must provide a representa
(96)
(IN)
The simulation must provide means for co
(99)
(IN)
At least 70% of users must agree that th
(203)
(IN)
Sensor failures must be detectable when
(211)
(IN)
Valves must be openable and closable.
(212)
(IN)
AquaLush must be operated from a single
(196)
(IN)
If AquaLush cannot read its persistent s
(396)
(IN)
Valve failures must be detectable when a
(213)
(IN)
AquaLush must either not allow an invali
(20)
(IN)
If the current time is set so that an ir
(18)
(IN)
Setting the mode to a different value mu
(11)
(IN)
Setting the mode to its current value mu
(10)
(IN)
The Persistent Store Failure state must
(393)
(IN)
The Set Clock state must allow users to
(296)
(IN)
AquaLush must allow the days and time of
(19)
(IN)
If a new irrigation time setting fails v
(21)
(IN)
The Device Failure state must be entered
(385)
(IN)
AquaLush must run in one of two modes: m
(8)
(IN)
AquaLush must either not allow an invali
(15)
(IN)
If a valve cannot be manipulated after t
(72)
(IN)
If a sensor cannot be read, then AquaLus
(65)
(IN)
AquaLush must allow users to set the cur
(13)
(IN)
AquaLush must do the following during an
(53)
(IN)
The current time is recorded in the syst
(154)
(IN)
If AquaLush cannot read its persistent s
(75)
(IN)
If a valve can be manipulated within thr
(71)
(IN)
If a valve cannot be manipulated (opened
(70)
(IN)
If a sensor cannot be read after three t
(67)
(IN)
If a sensor can be read within three tri
(66)
(IN)
If a new time setting fails validation,
(16)
(IN)
AquaLush must detect valve and sensor fa
(38)
(IN)
If AquaLush cannot write to its persiste
(74)
(IN)
AquaLush must allow moisture levels that
(24)
(IN)
If a new critical moisture level setting
(26)
(IN)
AquaLush must monitor the amount of wate
(37)
(IN)
In manual-mode operation, AquaLush must
(40)
(IN)
AquaLush must allow operation in either
(36)
(IN)
If a sensor cannot be read after three t
(69)
(IN)
AquaLush must display the total water us
(47)
(IN)
If the water allocation is set when auto
(32)
(IN)
If a new water allocation setting fails
(31)
(IN)
If a valve cannot be manipulated after t
(73)
(IN)
If no valves have failed, then AquaLush
(79)
(IN)
AquaLush must provide reports of failed
(78)
(IN)
AquaLush must allow the maximum amount o
(29)
(IN)
AquaLush must either not allow an invali
(30)
(IN)
If the critical moisture level is set wh
(27)
(IN)
If the irrigation time is set when autom
(22)
(IN)
AquaLush must either not allow an invali
(25)
(IN)
The following data must be displayed for
(158)
(IN)
The following data must be recorded for
(115)
(IN)
The following data must be recorded for
(123)
(IN)
In automatic-mode operation, AquaLush mu
(51)
(IN)
AquaLush must set the total water used i
(48)
(IN)
When no valve is open in manual irrigati
(49)
(IN)
In automatic-mode operation, AquaLush mu
(52)
(IN)
AquaLush must make no attempt to resume
(92)
(IN)
If valves or sensors have failed, then A
(81)
(IN)
When told that a failed valve or sensor
(85)
(IN)
When told that a failed valve or sensor
(86)
(IN)
If no sensors have failed, then AquaLush
(80)
(IN)
If AquaLush cannot read its persistent s
(76)
(IN)
If a sensor cannot be read after three t
(68)
(IN)
Failure reports must display the followi
(171)
(IN)
The failed sensor or valve identifier
(172)
(IN)
The Set Moisture Levels state must allow
(358)
(IN)
The total water used during manual irrig
(168)
(IN)
The Fix Failures state must allow users
(314)
(IN)
The Manual Irrigation (Location) state m
(288)
(IN)
The failed sensor or valve location
(173)
(IN)
The Set Up Auto Irrigation state must al
(330)
(IN)
The Set Irrigation Times state must allo
(332)
(IN)
The Manual Irrigation (Data) state must
(268)
(IN)
AquaLush must display the current mode t
(12)
(IN)
Users must be able to set the mode.
(9)
(IN)
AquaLush must display the following data
(41)
(IN)
AquaLush must allow users to indicate th
(84)
(IN)
The Set Water Allocation state must allo
(378)
(IN)
The control panel must conform to the di
(255)
(IN)
If AquaLush cannot read its persistent s
(77)
(IN)
All parameters set by users must remain
(7)
(IN)
After starting, AquaLush must close all
(91)
(IN)
AquaLush must record its system paramete
(144)
(IN)
System parameters include the following
(145)
(IN)
The default sensor and valve operational
(188)
(IN)
The default irrigation time must be 0200
(185)
(IN)
The default water allocation must be 100
(186)
(IN)
The default irrigation day must be the s
(184)
(IN)
The default mode must be automatic.
(183)
(IN)
The default zone critical moisture level
(187)
(IN)

This object has external links to:
UseCaseFiveBasicFlowTest.java(EXT OUT)
UseCaseFourBasicFlowTest.java(EXT OUT)
UseCaseOneBasicFlowTest.java(EXT OUT)
UseCaseOneExtension1ATest.java(EXT OUT)
UseCaseOneExtension2ABasicFlowTest.java(EXT OUT)
UseCaseSevenBasicFlowTest.java(EXT OUT)
UseCaseSevenExtension1aTest.java(EXT OUT)
UseCaseSevenExtension3aTest.java(EXT OUT)
UseCaseSevenExtension4a2aTest.java(EXT OUT)
UseCaseSevenExtension4aTest.java(EXT OUT)
UseCaseSevenExtension5aTest.java(EXT OUT)
UseCaseThreeBasicFlowTest.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)
UseCaseTwoTestBasicFlowCriticalLevel.java(EXT OUT)
UseCaseTwoTestBasicFlowIrrigationTime.java(EXT OUT)
UseCaseTwoTestBasicFlowWaterAllocation.java(EXT OUT)
UseCaseTwoTestRunningCycleCriticalLevel.java(EXT OUT)
UseCaseTwoTestRunningCycleIrrigationTime.java(EXT OUT)
UseCaseTwoTestRunningCycleWaterAllocation.java(EXT OUT)

Produced by DOORS 9.3.0.2