Вы находитесь на странице: 1из 24

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

Plane
Controller 1 * * 1 Runway
-PlaneID : String
Invoke -Destinaion : String -Name : String
methods -Status : String -Location : String
-Location : String +Clear() : Boolean
+GoNorth () +CountNumberOfPlanes () : Integer
+GoEast ()
+GoWest ()
+GoSouth ()

Incoming Plane Outgoing Plane


-Status : String = ProceedToLanding -Status : String = ProceedToTake -Off
+WaitInLandingQueue () +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.
(Assumption 3)
R2 - Planes should travel in straight line, unless instructed otherwise by the
controller. (Assumption 13)
R3 - Incoming planes should proceed directly to landing, unless instructed
otherwise by the controller. (Assumption 8)
R4 - Outgoing planes should proceed directly to take-off, unless instructed
otherwise by the controller. (Assumption 10)
R5 - Planes in the landing queue should move in a circle. (Assumption 16)
R6 - 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.
(Own Assumption 6)
R7 - 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
Assumption 7)
R9 - 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,
proceed to land and proceed to take-off. (Assumption 4)
R11 - 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 take-
off). (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 take-
off 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

D2 Landing
Queue
Zone 1 D1
A2

Runway

Zone 2

A1

A3

Arriving planes Departing planes

18
CSC8005 Group Project

Plane ID Status Plane ID Status


A1 Proceed to landing D1 Proceed to take-off
A2 Wait in the landing queue D2 Wait in the take-off queue
A3 Proceed to landing D3 Wait in the take-off queue
▼ List of instructions ▼ 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.

Arriving planes
Plane ID Status
A1 Proceed to landing
Plane ID Status
A2 Wait in the landing queue
D1 Proceed to take-off
A3 Proceed to landing
D2 Wait in the take-off queue
▼ List of instructions
D3 Wait in the take-off queue
Go North ▼ List of instructions
Go South Go North
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] [control]


Generate Outgoing Plane Proceed to Take
-off Select Instruction

[else] [not]
[entering zone1]

Wait in the Take


-off Queue

[else]

Plane Disappear

21
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

Похожие интересы