Академический Документы
Профессиональный Документы
Культура Документы
Assume that you are a part of a 3 person team, you are the Business Analyst, and
you have a Programmer, and a Software Tester working with you as well. A Building
Manager has hired you and your team to write the Software to handle the Elevator
System for his building which has 100 Floors and 2 Elevators.
Please write the requirements for this Elevator software solution, so the Programmer
can code the functionality correctly, and the Software Tester can write the proper
test cases.
You may not be able to write the requirements for the entire system in the allotted
time, so focus first on the requirements for the optimization and
prioritization portion of the problem, to optimize which elevator should pick up
the person requesting the elevator under different scenarios.
Assume the Building Manager has asked you not to worry about energy
consumption, but rather to focus on optimizing for minimal total wait time for the
people requesting elevators, from the time of requesting an elevator to delivering
them to their destination.
Feel free to use whatever methods you would like to communicate clearly to your
team how the software needs to work.
The requirements will be graded on:
1. Clarity and Relevance of Logic
2. Communication
3. Overall, how well would the elevator software perform if your
requirements were handed to a programmer to code the software exactly to
your specifications?
Requirements:
I will be using system and user story and acceptance criteria to jot down the
requirements (Agile/Scrum Methodology)
System Story: As an Elevator, I want to decide if I should go to a floor or let other
elevator respond to the user request so that the user spends the least amount of
waiting time to board the elevator
Acceptance Criteria:
1. Let Elevator 1 current floor be X, Elevator 2 floor be Y and User requesting
the Elevator be at floor Z
2. If Both elevators is at rest AND Modulus (X-Z) > Modulus (Y-Z) i.e. Number of
floors between Elevator 1 and user is greater than number of floor between
Elevator 2 and user, then Elevator 2 should respond to the user request
3. If Both elevators is at rest AND Modulus (X-Z) < Modulus (Y-Z) i.e. Number of
floors between Elevator 1 and user is Lesser than number of floor between
Elevator 2 and user, then Elevator 1 should respond to the user request
4. If both elevators is at rest AND Modulus (X-Z) = Modulus (Y-Z) i.e Both
Elevators are on the same floor, then any one of the elevators should respond
to the user request (Open Question: Do we need a priority to be
defined within elevators?)
5. Other scenarios are described below in the table:
Elevator 2 User Floor as
Elevator 1
Direction
compared to both
Direction of
of
the Elevator's
Elevator to respond to
Movement
Movement current floor
user request
Up
Up
Up
Up
Down
Down
Down
Down
Up
Down
Elevator 2
Up
Down
Elevator 1
Down
Up
Elevator 1
Down
Up
Elevator 2
Down
Up
Down
Up
User Story 5: As a User of the system, I want to be notified about the floor
numbers so that I can know which floor the elevator is crossing/stopped at