Title Air Traffic Control (ATC) Simulator Requirements and Specification
Authors Reem AL Ashaikh (089147582) Mohammad Algarni (089028971) Carl Baumgarten (053446800) Philip MacKay (061990212) Afnan Shah (099015417)
Revision History Friday, 11th – Dec – 2009
Table of Contents
CSC8005
Group Project
Content
Page No.
Problem Domain Description
2
Requirements
9
Specification
16
Data Dictionary
21
References
23
Problem Domain Description
2
CSC8005
Group Project
Overview of Air Traffic Control The Air Traffic Control (ATC) system is designed to ensure the secure flight of planes from their departure until their destination. The ATC system is particular important during landing and take-off of planes. ATC aims to prevent collisions and manage efficient traffic flow. Our ATC system is a simulation of planes that are landing and taking-off using a graphical user interface (GUI). The user is taking on the role of an air traffic controller. He has to use the graphical user interface to identify the current situation of planes landing and taking off. The user then needs to instruct the planes what to do using several instructions at his disposal. The goal of this simulator is to aid the training of an air traffic controller.
Air Traffic Control Sub-domains Navigation •
When any plane appears in the control area, it should proceed automatically to landing or take-off in a straight line, unless told otherwise by controller. (Assumption 8, 10 and 13)
•
Planes might change their direction by moving to the west, east, north, and south or might need to wait in queue, or proceed to landing/take-off. (Assumption 13)
3
CSC8005
Group Project
Runway
Figure 1: Planes travel in straight line
Control and communication of planes by the controller The controller gives instructions to planes (Assumption 4). These instructions are: • Go west • Go east • Go north • Go south • Wait in the departure queue • Wait in the landing queue • Proceed to land • Proceed to take-off In addition to these instructions, the controller must take planes safety into consideration; therefore, the controller must make sure that there is no plane on the runway before giving an instruction to land or take-off. (Assumption 12) 4
CSC8005
Group Project
North
West
East
South
Runway
Figure 2: Planes ability to change direction Incoming Planes • An incoming plane appears anywhere along the outer circle of the control area. (Assumption 7) • Zone 2 is an area in between the runway and the landing queue. Once the plane enters zone 2, it will take some time (few seconds) for the plane to land and disappear from the runway. (Assumption 14) • From entering zone 2 until landing of the plane the user can give no further instructions to the plane. (Own Assumption 1) • Incoming planes approach runway from the east when landing. (Assumption 11) • One queue exists for landing. Planes in landing queue should fly in a predefined path until further instructions are given by the controller. (Assumption 16) 5
CSC8005
Group Project
Landing Queue
Runway
Figure 3: Incoming planes joining the landing queue
Outgoing Planes • Outgoing planes appear at random within the queue for take-off. (Assumption 9 and 15) • Zone 1 is located in between the runway and the take-off queue. Planes that appear at random in the queue proceed to zone 1 and from zone 1 enter the runway. Planes that appear at random take some time (few seconds) before they reach zone 1 during which the controller can give instructions to the plane. (Own assumption 2) •
Once a plane has entered zone 1, no further instructions can be given. (Own Assumption 3) It will take some time for the plane to take-off (few seconds). (Assumption 14)
• Outgoing planes are departing towards the west on take-off. (Assumption 11) 6
CSC8005
Group Project
• One queue exists for outgoing planes. Planes assigned to the take-off queue should wait until further instructions are given by the controller. (Assumption 15)
Take-off Queue
Runway
Figure 4: Outgoing planes joining the take-off queue
Performance and Safety • Planes can appear at random anywhere around the control area or within the queue for take-off, making it difficult to maintain control over each one. (Assumption 7 and 9) • Incoming planes will proceed directly to landing which could cause a potential problem if there are many planes wanting to land at the same time. (Assumption 8) • Outgoing planes will proceed directly to take-off, which could cause a potential problem if there are other planes proceeding to land at the same time. They might crash. (Assumption 10) 7
CSC8005
Group Project
• Planes could be in danger of crashing if they become too close to each other. (Own Assumption 4) • When planes appear in the user interface they will need to be identified so the user knows which plane he/she is in control of. (Own Assumption 5)
Take-off Queue
Landing Queue Zone 1 Runway Zone 2
Figure 5: Problem domain explanation aid
8
CSC8005
Group Project
UML Class Diagram
Controller
*
1 Invoke methods
Plane -PlaneID : String -Destinaion : String -Status : String -Location : String +GoNorth () +GoEast () +GoWest () +GoSouth ()
Incoming Plane -Status : String = ProceedToLanding +WaitInLandingQueue ()
*
1
Runway -Name : String -Location : String +Clear() : Boolean +CountNumberOfPlanes () : Integer
Outgoing Plane -Status : String = ProceedToTake -Off +WaitInTake -OffQueue ()
*
*
1
1
Landing Queue
Take -off Queue
+ProceedToLanding ()
+ProceedToTake -Off ()
Queue -Name : String -Location : String +CountNumberOfPlanes () : Integer
Requirements 9
CSC8005
Group Project
Navigation Requirements R1 -
Movements of planes should be visible within the control area.
R2 -
(Assumption 3) Planes should travel in straight line, unless instructed otherwise by the
R3 -
controller. (Assumption 13) Incoming planes should proceed directly to landing, unless instructed
R4 -
otherwise by the controller. (Assumption 8) Outgoing planes should proceed directly to take-off, unless instructed
R5 R6 -
otherwise by the controller. (Assumption 10) Planes in the landing queue should move in a circle. (Assumption 16) Planes in the take-off queue should not move, until the first plane in queue proceeds to take-off, then they can/will move one-step forward.
R7 -
(Own Assumption 6) Given the instructions from the controller, planes should be able to change their direction, join to the queue or proceed to landing/take-off. (Assumption 13)
Control and communication Requirements R8 -
The controller will be able to communicate with planes in the control area until they successfully land or leave the control area. (Own
R9 -
Assumption 7) In order to communicate with one of the planes, the controller must select the plane first from a list before giving any instruction. (Own
Assumption 8) R10 - The controller can give the planes instructions to go east, go west, go north, go south, wait in landing queue, wait in the departure queue, R11 -
proceed to land and proceed to take-off. (Assumption 4) The controller must ensure that the runway is not used by any planes before giving any instruction to a plane to land or take-off. (Assumption 12) (Refer to use case ‘communication between controller and planes’.)
Incoming Planes Requirements R12 - Zone 2 is located just before the runway in the east. (Own Assumption 9) Outgoing Planes Requirements 10
CSC8005
Group Project
R13 - Zone 1 is located in between the runway and the take-off queue. (Own Assumption 10) Performance and Safety Requirements R14 - The system should be able to generate incoming and outgoing planes at random. (Assumption 2, 7 and 9) R15 - A maximum number of random planes in the control area will be set so that the controller does not become over run and is able to cope with a given number of planes at any time, i.e. 10 (for arrival and takeoff). (Assumption 7 and 9) R16 - Incoming planes will appear in time intervals (between 10 to 20 seconds). During this time, the user can determine an action for the planes currently in the area. (Own Assumption 11) R17 - An outgoing plane will take 20 seconds until it enters zone 1. During the time of appearance and entering zone 1, the controller can determine an action for the plane before it proceeds to take-off. (Own Assumption 12) R18 - The queue for outgoing planes as well as the queue for incoming planes has to be as large as the maximum number of planes that will be generated by the system. (Own Assumption 13) R19 - Warning notifications will be displayed in the message box (see user interface) for various scenarios: –
If planes become too close to each other, a safe distance of 2 miles (2cm on screen) will be set. Once the warning message appears, such as “Planes about to breach safe distance parameter”, the controller will then have to navigate the planes to safety. (Own Assumption 14)
–
If a new plane enters the control area a warning message will be displayed. (Own Assumption 15)
–
If there are several planes attempting to use the runway at the same time, a warning message will be displayed. (Own
Assumption 16) R20 - Planes travel at the same speed which allows the user to navigate the planes without having to worry about planes travelling faster to landing or take-off. (Assumption 6) R21 - Landing and take offs will require 15 seconds on the run way each allowing the user to calculate whether planes will need to queue up or 11
CSC8005
Group Project
will be able to simply go straight to the runway knowing how soon a previous plane will take. (Assumption 14) R23 - Whenever a plane appears in the user interface it will be assigned a letter, either A or D (depending on whether it is arriving or departing) and also a number, giving it a unique ID String. (Own Assumption 17) User Interface Requirements R24 - The system will display the area to be controlled as a circle. (Assumption 1) R25 - Two dimensions will be used to design the air space. (Assumption 5) R26 - The runway will be a rectangular shape located in the centre of the control area. (Assumption 1 and Own Assumption 18) R27 - The control area will show the movement of outgoing and incoming planes. (Assumption 3) R28 - All planes are the same size (Assumption 6) and are represented as a small coloured circle (possibly red for outgoing and green for incoming planes). (Own Assumption 19) R29 - Each plane within the control area is labelled with its identification number. (Own Assumption 20) R30 - The system will show two communication boxes. One of them will display arrivals, the other departures. Both boxes allow selecting a plane, seeing the plane status and giving instructions to the plane. (Own Assumption 21) R31 - There will be a third message box which will display warning/status messages to the controller. (Own Assumption 22) R32 - The system shows information about planes, which include plane name and last instruction given to them. (Own Assumption 23) R33 - The landing queue will appear in the control area as a circle at the eastern region of the air space. (Assumption 16) The take-off queue will appear in the control area as a rectangle located in the north eastern region of the runway. (Assumption 15). R34 - Zone 1 will be a visible half-circle in the control area between the runway and the take-off queue. (Own Assumption 24) R35 - Zone 2 will be a visible half-circle in the control area between the runway and the landing queue. (Own Assumption 25)
12
CSC8005
Group Project
Assumptions
Assumptions provided Assumption 1: Simulator with animated graphical interface, which displays the area to be controlled as a circle with the runway in the centre. Assumption 2: Simulator with animated graphical interface, which generates incoming and outgoing planes. Assumption 3: Simulator with animated graphical interface, which shows the movements of airplanes within the control area. Assumption 4: Simulator with animated graphical interface, which allows the controller to give instructions to pilot, e.g. ‘turn left’. ‘wait in queue’, ‘proceed to landing’, etc., and shows the resulting changes in movement. Assumption 5: The air space is two-dimensional, i.e. the height above ground is ignored. Assumption 6: All planes are the same size and travel at the same speed.
13
CSC8005
Group Project
Assumption 7: Incoming planes arrive at random and may appear anywhere around the circumference of the control area. Make your own assumptions about the sequence of arrival instants. Assumption 8: Incoming planes proceed directly to landing, unless told otherwise. Assumption 9: Outgoing planes appear in the vicinity of the runway, at either random or regular intervals. Assumption 10: Outgoing planes proceed directly to take-off, unless told otherwise. Assumption 11: The runway is approached from the east for landing and is departed towards the west on take-off. Assumption 12: The runway can accommodate only one landing or one takeoff at a time. Assumption 13: Planes travel normally in a straight line, but may need to change direction before landing, or after take-off, or when directed to do so by the controller. Assumption 14: Landings and take-offs require a fixed amount of time, and therefore delay subsequent planes. Assumption 15: Queuing for take-off takes place near the runway. Assumption 16: Queuing for landing takes place at the eastern region of the air space, and is implemented by flying in a circle. Own Assumptions Own Assumption 1: From entering zone 2 until landing of the plane the user can give no further instructions to the plane. Own Assumption 2: Zone 1 is located in between the runway and the take-off queue. Planes that appear at random in the queue proceed to zone 1 and from zone 1 enter the runway. Planes that appear at random take some time (few seconds) before they reach zone 1 during which the controller can give instructions to the plane. Own Assumption 3: Once a plane has entered zone 1, no further instructions can be given. Own Assumption 4: Planes could be in danger of crashing if they become too close to each other. 14
CSC8005
Group Project
Own Assumption 5: When planes appear in the user interface they will need to be identified so the user knows which plane he/she is in control of. Own Assumption 6: Planes in the take-off queue should not move until the first plane in queue proceeds to take-off. Once the first plane took-off the other planes will move one-step forward. Own Assumption 7: The controller will be able to communicate with planes in the control area until they successfully land or leave the control area. Own Assumption 8: In order to communicate with one of the planes, the controller must select the plane first from a list before giving any instruction. Own Assumption 9: Zone 2 is located just before the runway in the east. Own Assumption 10: Zone 1 is located in between the runway and the take-off queue. Own Assumption 11: Incoming planes will appear in time intervals (between 10 to 20 seconds). During this time, the user can determine an action for the planes currently in the area. Own Assumption 12: An outgoing plane will take 20 seconds until it enters zone 1. During the time of appearance and entering zone 1, the controller can determine an action for the plane before it proceeds to take-off. Own Assumption 13: The queue for outgoing planes as well as the queue for incoming planes has to be as large as the maximum number of planes that will be generated by the system. Own Assumption 14: If planes become too close to each other, a warning message will be displayed in the message box. The safe distance between two planes is said to be 2 miles (2cm on screen). Own Assumption 15: If a new plane enters the control area a warning message will be displayed in the message box. Own Assumption 16: If there are several planes attempting to use the runway at the same time, a warning message will be displayed in the message box. Own Assumption 17: Whenever a plane appears in the user interface it will be assigned a letter, either A or D (depending on whether it is arriving or departing) and also a number, giving it a unique ID String. Own Assumption 18: The runway will be a rectangular shape. Own Assumption 19: All planes are the same size (Assumption 6) and are represented as a small coloured circle (possibly red for outgoing and green for incoming planes). 15
CSC8005
Group Project
Own Assumption 20: Each plane within the control area is labelled with its identification number. Own Assumption 21: The system will show two communication boxes. One of them will display arrivals, the other departures. Both boxes allow selecting a plane, seeing the plane status and giving instructions to the plane. Own Assumption 22: There will be a third message box, which will display warning/status messages to the controller. Own Assumption 23: The system shows information about planes, which include plane name and last instruction given to them. Own Assumption 24: Zone 1 will be a visible half-circle in the control area between the runway and the take-off queue. Own Assumption 25: Zone 2 will be a visible half-circle in the control area between the runway and the landing queue.
Specification
Introduction The simulator is designed to support an air traffic controller as a training aid. The simulator generates outgoing and incoming planes. Upon appearing of planes on the screen, the controller’s task is to control the efficient flow of air traffic and avoid collisions. The controller can do this using communication boxes which are designed to allow communication between individual planes and the controller. To further the controller’s knowledge about the current circumstances, there is a message box which will show warning messages in case there is a situation that demands immediate action. It is a single user system and will operate using Java. A description of the problem domain and a list of requirements can be found in the ATC requirements document. The User Interface
16
CSC8005
Group Project
There is only one interface to the user. The interface adopts a WIMP style. In interface there is the control area including runway, zone1, zone2, landing queue, take-off queue and two communication boxes and one message box. Each communication box displays the plane ID, individual plane status and a list of instructions via a drop down list. The message box displays warning messages to the controller.
Graphical User Interface
17
CSC8005
Group Project
Take-off Queue D3
Landing Queue
D2
Zone 1
D1 A2
Runway Zone 2 A1
A3
Arriving planes
Departing planes
18
CSC8005
Group Project
Plane ID Status A1 Proceed to landing A2 Wait in the landing queue A3 Proceed to landing ▼ List of instructions
Plane ID Status D1 Proceed to take-off D2 Wait in the take-off queue D3 Wait in the take-off queue ▼ List of instructions Message box
Planes about to breach safe distance parameter New plane appears in the control area Option Navigation • The user can give an instruction to a plane by selecting the plane from the communication box for arriving planes or the communication box for departing planes. This will enable the drop-down list below the communication box, which has all the instructions that the user can give to the selected plane. • The two drop-down lists are: incoming plane instructions and outgoing plane instructions. • The options in incoming plane instructions drop-down list are: go east, go west, go north, go west, proceed to land, and wait in the landing queue. • The options in outgoing plane instructions drop-down list are: go east, go west, go north, go west, proceed to take-off, and wait in the take-off queue.
Plane ID Status A1 Proceed to landing A2 Wait in the landing queue A3 Proceed to landing ▼ List of instructions Go North
Arriving planes Plane ID Status D1 Proceed to take-off D2 Wait in the take-off queue D3 Wait in the take-off queue ▼ List of instructions Go North
Go South Go East
Go South
Go West
Go East
Proceed to landing
Go West
Wait in the landing queue
Proceed to take-off
Departing planes
Wait in the take-off queue 19
CSC8005
Group Project
ATC Use Cases
COMMUNICATION BETWEEN CONTROLLER AND PLANES Allow the controller to give instructions to planes. Actor: Controller Flow of events: 1. The controller selects a plane from the communication box. 2. The controller selects an instruction from a drop down list below the communication box. 3. The status of the selected plane changes to the given instruction. “Hold the runway” is not an instruction but refers to a task of the controller. The controller has to instruct planes so that only one plane uses the runway at any one time. Hence why it is marked differently. 20
CSC8005
Group Project
ATC Activity Diagrams Activity diagram for incoming plane
[not]
Generate Incoming Plane
Proceed to Landing
Plane Disappear
[control] [select Proceed to Landing ] Select Instruction [else]
Activity diagram for outgoing plane
[entering zone1] Generate Outgoing Plane
[control]
Proceed to Take -off [else]
[entering zone1]
[not]
Wait in the Take -off Queue [else] Plane Disappear
21
Select Instruction
CSC8005
Group Project
Data Dictionary
Controller •
Invokes following methods
Give instruction for directions (see “Plane” below) Give Proceed to Land/Take-off and Wait in Queue instructions (see “Plane” below)
Hold the runway – Makes sure that at the current time no other planes are able to access the runway Plane •
PlaneID – uniquely identifies each plane
•
Destination – informs the controller of the destination of the plane (arriving or departing)
•
Status – The current status of the plane e.g. waiting in queue, proceeding to landing etc.
•
Location – Where the plane has appeared in the user interface
•
Instruction for directions GoNorth() – Method to make the plane move in a northerly direction GoEast() – Method to make the plane move in a easterly direction GoWest() – Method to make the plane move in a westerly direction GoWest() – Method to make the plane move in a southerly direction
22
CSC8005
Group Project
Runway •
Name – The name of the runway
•
Location – The location of the runway
•
Clear() – Method to establish if the runway is available for use
•
CountNumberOfPlane() – Method to count the number of planes currently in the user interface
Incoming Plane •
WaitInLandingQueue() – Method making a plane wait in the landing queue
•
Status – The current status of the plane, default “Proceed to Landing”
Outgoing Plane •
WaitInTake-OffQueue() – Method making a plane wait in the take-off queue
•
Status – The current status of the plane, default “Proceed to Take-Off”
Landing Queue •
ProceedToLanding() – Method making a plane proceed to runway for landing
Take-Off Queue •
ProceedToTake-Off() – Method making a plane proceed to runway for take-off
Queue •
Name – The name of the queue
•
Location – The location of the queue
•
CountNumberOfPlane() – Method to count the number of planes currently in the queue
23
CSC8005
Group Project
References –
http://www.airport-technology.com/glossary/air-traffic-control.html
24