| Id | Requirement | Related Use Case | Fullfilled By | Description | Tested By |
|---|---|---|---|---|---|
| 01 | Elevator responds to external floor buttons | Passenger uses elevator | Elevator::requestFloor(int Floor, Direction d) |
Allows the elevator to respond to external floor buttons | Pressing an external button and seeing if the elevator comes to that floor |
| 02 | Elevator responds to internal floor buttons | Passenger uses elevator | Elevator::requestFloor(int Floor) |
Allows the elevator to respond to floor buttons in the elevator | Pressing a button on the elevator panel and seeing if the elevator goes to that floor |
| 03 | Elevator moves between floors | Passenger uses elevator | Elevator::fulfillRequest() |
This ensures the elevator car can move between one floor to another by handling the requests | Engage with the elevator by calling it and go to a different floor to see if it moves |
| 04 | Elevator can open its doors | Passenger uses elevator | Elevator::openDoors() |
Ensures elevator can open its doors | - Call an elevator by pressing an external floor button. - Use the door open button. |
| 05 | Elevator can close its doors | Passenger uses elevator | Elevator::closeDoors() |
Ensures elevator can close its doors | - Engage with the elevator and see if the door closes after. - Use the door close button. |
| 06 | Elevator goes to ground floor during fire alarm | Fire alarm from building | ElevatorControlSystem::activateFireSafetySequence() |
Allows for proper safety protocol during a fire alarm | - Press the fire button inside the elevator. - Trigger the building fire alarm through the ECS admin panel |
| 07 | Elevator goes to ground floor during power outage | Power outage in the building | ElevatorControlSystem::activateOutageSafetySequence() |
Allows for proper safety protocol during a fire outage | Trigger building power outage through the ECS admin panel |
| 08 | Help button triggers emergency response | Control system receives Help signal | ElevatorControlSystem::helpSafetySequence() |
Allows the system to respond to help calls | Help button is pressed in the elevator panel. - Can test it by not responding to the call and seeing if the ECS dials 911. - You can also test it by responding to the call from the ECS panel to address the emergency |
| 09 | Door obstacle prevents door from closing | Door obstacle detected | Elevator::closeDoors() |
Ensures doors don't close when there is something obstructing the door from closing | Engage with any operation that closes the elevator doors, i.e press door close button. - Trigger a simulated door obstacle in the ECS Admin Panel to see if doors don't close and the panel shows the error |
| 10 | Overload limit in elevator | Overload detected | Elevator::underLimit() |
Ensures the elevator doesn't move when it surpasses the load limit | Engage in any elevator operation where the door closes. - Trigger a simulated overload in the ECS Admin Panel to see if the elevator responds accordingly and shows the error |
| 11 | Update display floor number | Many | QElevatorPanel::updateFloor(int floor) |
Ensures the elevator's display shows the according floor number | Engage with the elevator in any way that moves it up or down and see if the floor updates in the panel |
| 12 | Show warnings on the display | many | QErrorIndicator::setErrorCode(int error) |
Ensures elevator's display shows the appropriate warning to the car passengers | Trigger each of the different emergency scenarios in the ECS admin panel or from the elevator panel and see if the error shows in the elevator car |
| 13 | Ring bell | many | Elevator::fulfillRequest() |
Allows the elevator to ring a bell upon floor arrival | Have the elevator move to any floor and see if it dings |
| 14 | Illuminate floor buttons when pressed | Passenger uses elevator | QElevatorButton::on() and QElevatorButton::off() |
Allows for the system to indicate the request has been put in | Interact with any floor button and see if it illuminates |
| 15 | Turn off Illuminated floor buttons when request is fulfilled | Passenger uses elevator | Elevator::updateElevatorButtons() and Elevator::updateFloorIndicators() |
Allows for the system to clear fulfilled requests | Have the elevator go to the floor of the pressed button and see if the button illumination turns off |