Root Package SAAMS
 
Diagrams
Package Diagram SAAMS
Sequence Diagram GOCAllocatesGate
Sequence Diagram MaintenanceFailCheck
Sequence Diagram RadarDetectsVisitingAircraft
State Diagram GateState
State Diagram MRState
Use Case Diagram AircraftUC
Use Case Diagram GateStaffUC
Use Case Diagram GroundOperCUC
Use Case Diagram GroundServicesUC
Use Case Diagram Introduction to SAAMS
Use Case Diagram LocalATCUC
Use Case Diagram PassengersAndPublic
Nodes
Class AircraftManagementDatabase
Class CleaningSupervisor
Class FlightDescriptor
Class Gate
Class GateConsole
Class GateInfoDatabase
Class GOC
Class Itinerary
Class LATC
Class Main
Class MaintenanceInspector
Class ManagementRecord
Class PassengerDetails
Class PassengerList
Class PublicInfo
Class RadarTransceiver
Class RefuellingSupervisor
Diagrams Detail
Package Diagram SAAMS
package:  
Visibility:
public
 
Hyperlinks to Elements:
Introduction to SAAMS

Sequence Diagram GOCAllocatesGate
package:  
The GOC allocates a FREE gate for an aircraft that has LANDED and is waiting to taxi to a gate.

Note: The messages following each "notifyObservers" are omitted, as they are (may be) 'broadcast' widely in the system.
Visibility:
public
 
Hyperlinks to Elements:
 
 
ManagementRecord
Gate
ReceivesAircraft
AircraftManagementDatabase
GateInfoDatabase
GOC

Sequence Diagram MaintenanceFailCheck
package:  
The Maintenance Inspector sees an aircraft ready for maintenance on his screen, and sends a team to carry out the safety check (this is not part of SAAMS). When the team returns they report that the aircraft has failed its check. The Inspector notifies SAAMS of this, entering a text description of the problem. Some time later the repair is complete, and the Inspector notifies SAAMS of this.

Note: The messages following each "notifyObservers" are omitted, as they are (may be) 'broadcast' widely in the system.
Visibility:
public
 
Hyperlinks to Elements:
 
ManagementRecord
AircraftManagementDatabase
OrganizesFailCheck
MaintenanceInspector

Sequence Diagram RadarDetectsVisitingAircraft
package:  
The aircraft is detected entering local airspace by the (simulated) Radar/Transceiver, downloads its flight descriptor, and a radarDetect event occurs. A ManagementRecord is set up for the aircraft.

Note: The messages following "notifyObservers" are omitted, as they are (may be) 'broadcast' widely in the system.
Visibility:
public
 
Hyperlinks to Elements:
 
FlightDescriptor
ManagementRecord
Itinerary
AircraftManagementDatabase
AircraftUC
RadarTransceiver

State Diagram GateState
package:  
This state diagram shows the life cycle of a single Gate (right-click this note or the diagram background for hyperlinks)
Visibility:
public
 
Hyperlinks to Elements:
Gate
GateInfoDatabase
GateConsole
GOC
PassengerList
PassengerDetails

State Diagram MRState
package:  
This state diagram shows the life cycle of a single ManagementRecord. One cycle corresponds to one aircraft passing through "in transit" or landing, reloading and departing again (right click this note or the diagram background for hyperlinks).
Visibility:
public
 
Hyperlinks to Elements:
CleaningSupervisor
GOC
MaintenanceInspector
RefuellingSupervisor
LATC
RadarTransceiver
PublicInfo
AircraftManagementDatabase
ManagementRecord
FlightDescriptor
PassengerDetails

Use Case Diagram AircraftUC
package:  
This use case diagram shows the different interactions that an aircraft (or aircraft's staff, or on-board computer) has with SAAMS. Note that aircraft is an ACTOR and NOT a part of SAAMS, so no implementation is required for the aircraft itself!
Visibility:
public
 
Hyperlinks to Elements:
LATC
RadarTransceiver
AircraftManagementDatabase
Itinerary
 
RadarDetectsVisitingAircraft

Use Case Diagram GateStaffUC
package:  
This use case diagram shows the ways that gate staff interact with SAAMS.
Visibility:
public
 
Hyperlinks to Elements:
Gate
GateInfoDatabase
GateConsole
PassengerList
PassengerDetails
 
 

Use Case Diagram GroundOperCUC
package:  
This use case diagram shows the ways that a Ground Operations Controller interacts with SAAMS: indicating to SAAMS the different status changes that occur. Note that the Ground Operations Controller will, as a separate activity, be in radio contact with the aircraft - SAAMS is only concerned with RECORDING the status and providing information for decision making.
Visibility:
public
 
Hyperlinks to Elements:
GOC
AircraftManagementDatabase
 

Use Case Diagram GroundServicesUC
package:  
This use case diagram shows the ways in which Ground Services support staff interact with SAAMS.
Visibility:
public
 
Hyperlinks to Elements:
CleaningSupervisor
MaintenanceInspector
RefuellingSupervisor
 
Maintenance Inspector

Use Case Diagram Introduction to SAAMS
package:  
Visibility:
public
 
Hyperlinks to Elements:
SAAMS

Use Case Diagram LocalATCUC
package:  
This use case diagram shows the ways in which a Local Air Traffic Controller interacts with SAAMS. Note that the Local Air Traffic Controller will, as a separate activity, be in radio contact with the aircraft - SAAMS is only concerned with RECORDING the status and providing information for decision making.
Visibility:
public
 
Hyperlinks to Elements:
LATC
AircraftManagementDatabase
Itinerary
 

Use Case Diagram PassengersAndPublic
package:  
This use case diagram shows the ways in which ordinary members of the public interact with SAAMS.
Visibility:
public
 
Hyperlinks to Elements:
PublicInfo
AircraftManagementDatabase

Classes Detail
Class AircraftManagementDatabase
public class AircraftManagementDatabase      
A central database ("model" class):
It is intended that there will be only one instance of this class.
Maintains an array of ManagementRecords (MRs), one per potential visiting aircraft. Some MRs hold information about aircraft currently being managed by SAAMS, and some may have the status "Free".
The index of each ManagementRecord in the array is its "management code" ("mCode"), and the mCode of any particular visiting aircraft's ManagementRecord must remain fixed once it is allocated.
Many classes register as observers of this class, and are notified whenever any aircraft's (MR's) state changes.
Stereotype:
model
 
Hyperlinks to Elements:
MaintenanceFailCheck
aircraftDB
GroundOperCUC
AircraftUC
aircraftDB
GOCAllocatesGate
aircraftDB
LocalATCUC
PassengersAndPublic
 
MRState
RadarDetectsVisitingAircraft
 
Links Summary
Association Link contains to Class ManagementRecord
Field Summary
public int
   The size of the array MRs holding ManagementRecords.
 
   The array of ManagementRecords.
 
Method Summary
public void
addPassenger(int mCode, PassengerDetails details)
   The given passenger is boarding the aircraft with the given mCode.
 
public void
faultsFound(int mCode, String description)
   The Maintenance Supervisor has reported faults with the given description in the aircraft with the given mCode.
 
public String
getFlightCode(int mCode)
   Return the flight code from the given MR supplied as a parameter.
 
public Itinerary
getItinerary(int mCode)
   Return the Itinerary of the aircraft with the given mCode.
 
public PassengerList
getPassengerList(int mCode)
   Return the PassengerList of the aircraft with the given mCode.
 
public int
getStatus(int mCode)
   Return the status of the MR with the given mCode supplied as a parameter.
 
public int[]
getWithStatus(int statusCode)
   Returns an array of mCodes:
Just the mCodes of those MRs with the given status supplied as a parameter.
 
public void
radarDetect(FlightDescriptor fd)
   The radar has detected a new aircraft, and has obtained flight descriptor fd from it.
 
public void
radarLostContact(int mCode)
   The aircraft in the MR given by mCode supplied as a parameter has departed from the local airspace.
 
public void
setStatus(int mCode, int newStatus)
   Forward a status change request to the MR given by the mCode supplied as a parameter.
 
public void
taxiTo(int mCode, int gateNumber)
   A GOC has allocated the given gate to the aircraft with the given mCode supplied as a parameter for unloading passengers.
 
Links Detail
Association Link
contains to Class ManagementRecord
All Properties
Client cardinality:
1
Directed:
true
Supplier cardinality:
0..*
Type:
association
Field Detail
maxMRs
public int maxMRs = 10
The size of the array MRs holding ManagementRecords.

In this simple system 10 will do!
Initial value:
10
Multiplicity:
1
 

MRs
private ManagementRecord[] MRs
The array of ManagementRecords. Attribute maxMRs specifies how large this array should be.
Initialize to a collection of MRs each in the FREE state.
Note: This array could be replaced by another other suitable collection data structure.
Multiplicity:
1
 
Method Detail
addPassenger
public void addPassenger(int mCode, PassengerDetails details)
The given passenger is boarding the aircraft with the given mCode. Forward the message to the given MR for recording in the passenger list.
 

faultsFound
public void faultsFound(int mCode, String description)
The Maintenance Supervisor has reported faults with the given description in the aircraft with the given mCode. The message is forwarded to the given MR for status update.
 

getFlightCode
public String getFlightCode(int mCode)
Return the flight code from the given MR supplied as a parameter.
The request is forwarded to the MR.
 

getItinerary
public Itinerary getItinerary(int mCode)
Return the Itinerary of the aircraft with the given mCode.
 

getPassengerList
public PassengerList getPassengerList(int mCode)
Return the PassengerList of the aircraft with the given mCode.
 

getStatus
public int getStatus(int mCode)
Return the status of the MR with the given mCode supplied as a parameter.
 

getWithStatus
public int[] getWithStatus(int statusCode)
Returns an array of mCodes:
Just the mCodes of those MRs with the given status supplied as a parameter.
Principally for call by the various interface screens.
 

radarDetect
public void radarDetect(FlightDescriptor fd)
The radar has detected a new aircraft, and has obtained flight descriptor fd from it.

This operation finds a currently FREE MR and forwards the radarDetect request to it for recording.
 

radarLostContact
public void radarLostContact(int mCode)
The aircraft in the MR given by mCode supplied as a parameter has departed from the local airspace. The message is forwarded to the MR, which can then delete/archive its contents and become FREE.
 

setStatus
public void setStatus(int mCode, int newStatus)
Forward a status change request to the MR given by the mCode supplied as a parameter. Parameter newStatus is the requested new status. No effect is expected if the current status is not a valid preceding status. This operation is appropriate when the status change does not need any additional information to be noted. It is present instead of a large collection of public operations for requesting specific status changes.
 

taxiTo
public void taxiTo(int mCode, int gateNumber)
A GOC has allocated the given gate to the aircraft with the given mCode supplied as a parameter for unloading passengers. The message is forwarded to the given MR for status update.
 

Class CleaningSupervisor
public class CleaningSupervisor      
An interface to SAAMS:
Cleaning Supervisor Screen:
Inputs events from the Cleaning Supervisor, and displays aircraft information.
This class is a controller for the AircraftManagementDatabase: sending it messages to change the aircraft status information.
This class also registers as an observer of the AircraftManagementDatabase, and is notified whenever any change occurs in that <> element.
See written documentation.
Stereotype:
boundary/view/controller
 
Hyperlinks to Elements:
GroundServicesUC
 
MRState
 
Links Summary
Association Link accesses/observes to Class AircraftManagementDatabase
Field Summary
   The Cleaning Supervisor Screen interface has access to the AircraftManagementDatabase.
 
Links Detail
Association Link
accesses/observes to Class AircraftManagementDatabase
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
association
Field Detail
lnkUnnamed
private AircraftManagementDatabase lnkUnnamed
The Cleaning Supervisor Screen interface has access to the AircraftManagementDatabase.
Multiplicity:
1
 

Class FlightDescriptor
public class FlightDescriptor      
Contains all details of a flight: the flight code, itinerary and passenger list.
This is the package of information downloaded from an aircraft by the RadarTransceiver as the aircraft enters Stirling Airport's airspace.
Not obvious from the class diagram is that the RadarTransceiver boundary class should construct a FlightDescriptor when it "detects" an aircraft, and passes that object to the AircraftManagementDatabase as the parameter of a radarDetect message. (Since this will probably/possibly be local to an event handler method in RadarTransceiver, there is no attribute association from RadarTransceiver to FlightDescriptor.)
Stereotype:
entity
 
Hyperlinks to Elements:
fD
RadarDetectsVisitingAircraft
MRState
 
Links Summary
Association Link contains to Class Itinerary
Association Link contains to Class PassengerList
Field Summary
private String
   A short string identifying the flight:

Usually airline abbreviation plus number, e.g.
 
private Itinerary
   Each Flight Descriptor contains a flight Itinerary..
 
   Each Flight Descriptor contains a list of passengers on the flight.
 
Constructor Summary
public void
FlightDescriptor(String flightCode, Itinerary itinerary, PassengerList list)
   Constructor: A new FlightDescriptor must be given a flightCode (String), an Itinerary,
and the current PassengerList.
 
Links Detail
Association Link
contains to Class PassengerList
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
aggregation
Association Link
contains to Class Itinerary
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
aggregation
Field Detail
flightCode
private String flightCode
A short string identifying the flight:

Usually airline abbreviation plus number, e.g. BA127.
Obtained from flight descriptor when aircraft is first detected.

This is the code used in timetables, and is useful to show on public information screens.
Multiplicity:
1
 

lnkUnnamed
private Itinerary lnkUnnamed
Each Flight Descriptor contains a flight Itinerary..
Multiplicity:
1
 

lnkUnnamed1
private PassengerList lnkUnnamed1
Each Flight Descriptor contains a list of passengers on the flight.
Multiplicity:
1
 
Constructor Detail
FlightDescriptor
public void FlightDescriptor(String flightCode, Itinerary itinerary, PassengerList list)
Constructor: A new FlightDescriptor must be given a flightCode (String), an Itinerary,
and the current PassengerList.
 

Class Gate
public class Gate      
An individual gate's status.
See GateState diagram for operational details. This class has public static int identifiers for the
individual status codes.
An instance of GateInfoDatabase holds a collection of Gates, and sends the Gates messages to control/fetch their status.
Stereotype:
entity
 
Hyperlinks to Elements:
GateState
 
GOCAllocatesGate
GateStaffUC
 
Field Summary
public static int
   Status code representing the situation when the gate is currently allocated to no aircraft.
 
private int
   If the gate is reserved or occupied, the mCode of the MR of the aircraft which is expected/present.
 
public static int
   Status code representing the situation when an aircraft is currently at the gate - either unloading passengers, being cleaned and maintained, loading new passengers or finished loading but no permission to taxi to the runway has yet been granted.
 
public static int
   Status code representing the situation when the gate has been allocated to an aircraft that has just landed, but the aircraft has not yet docked at the gate.
 
private int
   Holds the code indicating the current status of this gate.
 
Method Summary
public void
allocate(int mCode)
   The gate has been allocated to the given aircraft, identified by mCode: Change status from FREE to RESERVED and note the mCode.
 
public void
   Change status from OCCUPIED to FREE as the docked aircraft has now departed.
 
public void
   Change gate status from RESERVED to OCCUPIED to indicate that aircraft has now docked.
 
public int
   Return the status code for this gate.
 
Field Detail
FREE
public static int FREE = 0
Status code representing the situation when the gate is currently allocated to no aircraft.
Initial value:
0
Multiplicity:
1
Static.
 

mCode
private int mCode
If the gate is reserved or occupied, the mCode of the MR of the aircraft which is expected/present.
Multiplicity:
1
 

OCCUPIED
public static int OCCUPIED = 2
Status code representing the situation when an aircraft is currently at the gate - either unloading passengers, being cleaned and maintained, loading new passengers or finished loading but no permission to taxi to the runway has yet been granted.
Initial value:
2
Multiplicity:
1
Static.
 

RESERVED
public static int RESERVED = 1
Status code representing the situation when the gate has been allocated to an aircraft that has just landed, but the aircraft has not yet docked at the gate.
Initial value:
1
Multiplicity:
1
Static.
 

status
private int status = FREE
Holds the code indicating the current status of this gate.
Initial value:
FREE
Multiplicity:
1
 
Method Detail
allocate
public void allocate(int mCode)
The gate has been allocated to the given aircraft, identified by mCode: Change status from FREE to RESERVED and note the mCode.
Preconditions:
Status must be Free
 

departed
public void departed()
Change status from OCCUPIED to FREE as the docked aircraft has now departed.
Preconditions:
Status must be Occupied
 

docked
public void docked()
Change gate status from RESERVED to OCCUPIED to indicate that aircraft has now docked.
Preconditions:
Status must be Reserved
 

getStatus
public int getStatus()
Return the status code for this gate.
 

Class GateConsole
public class GateConsole      
An interface to SAAMS:
Gate Control Console:
Inputs events from gate staff, and displays aircraft and gate information.
This class is a controller for the GateInfoDatabase and the AircraftManagementDatabase: sends messages when aircraft dock, have finished disembarking, and are fully emarked and ready to depart.
This class also registers as an observer of the GateInfoDatabase and the
AircraftManagementDatabase, and is notified whenever any change occurs in those <> elements.
See written documentation.
Stereotype:
boundary/view/controller
 
Hyperlinks to Elements:
GateState
GateStaffUC
 
 
Links Summary
Association Link accesses/observes to Class AircraftManagementDatabase
Association Link accesses/observes to Class GateInfoDatabase
Field Summary
private int
   This gate's gateNumber
- for identifying this gate's information in the GateInfoDatabase.
 
   The GateConsole interface has access to the GateInfoDatabase.
 
   The GateConsole interface has access to the AircraftManagementDatabase.
 
Links Detail
Association Link
accesses/observes to Class GateInfoDatabase
All Properties
Client cardinality:
0..*
Supplier cardinality:
1
Type:
association
Association Link
accesses/observes to Class AircraftManagementDatabase
All Properties
Client cardinality:
0..*
Supplier cardinality:
1
Type:
association
Field Detail
gateNumber
private int gateNumber
This gate's gateNumber
- for identifying this gate's information in the GateInfoDatabase.
Multiplicity:
1
 

lnkUnnamed
GateInfoDatabase lnkUnnamed
The GateConsole interface has access to the GateInfoDatabase.
Multiplicity:
1
 

lnkUnnamed1
private AircraftManagementDatabase lnkUnnamed1
The GateConsole interface has access to the AircraftManagementDatabase.
Multiplicity:
1
 

Class GateInfoDatabase
public class GateInfoDatabase      
A central database ("model" class):
It is intended that there will be only one instance of this class.
Maintains an array of Gates.
Each gate's number is its index in the array (0..)
GateConsoles and GroundOperationsControllers are controllers of this class: sending it messages when the gate status is to be changed.
GateConsoles and GroundOperationsControllers also register as observers of this class. Whenever a change occurs to any gate, the obervers are notified.
Stereotype:
model
 
Hyperlinks to Elements:
GOCAllocatesGate
GateStaffUC
 
GateState
 
Links Summary
Association Link contains to Class Gate
Field Summary
private Gate[]
   Holds one gate object per gate in the airport.
 
public int
   A constant: the number of aircraft gates at the airport.
 
Method Summary
public void
allocate(int gateNumber, int mCode)
   Forward a status change request to the given gate identified by the gateNumber parameter.
 
public void
departed(int gateNumber)
   Forward a status change request to the given gate identified by the gateNumber parameter.
 
public void
docked(int gateNumber)
   Forward a status change request to the given gate identified by the gateNumber parameter.
 
public int
getStatus(int gateNumber)
   Obtain and return the status of the given gate identified by the gateNumber parameter.
 
public int[]
   Returns an array containing the status of all gates.
 
Links Detail
Association Link
contains to Class Gate
All Properties
Client cardinality:
1
Directed:
true
Supplier cardinality:
0..*
Type:
aggregationByValue
Field Detail
gates
private Gate[] gates
Holds one gate object per gate in the airport.
Multiplicity:
1
 

maxGateNumber
public int maxGateNumber = 2
A constant: the number of aircraft gates at the airport.
Initial value:
2
Multiplicity:
1
 
Method Detail
allocate
public void allocate(int gateNumber, int mCode)
Forward a status change request to the given gate identified by the gateNumber parameter. Called to allocate a free gate to the aircraft identified by mCode.
 

departed
public void departed(int gateNumber)
Forward a status change request to the given gate identified by the gateNumber parameter. Called to indicate that the aircraft has departed and that the gate is now free.
 

docked
public void docked(int gateNumber)
Forward a status change request to the given gate identified by the gateNumber parameter. Called to indicate that the expected aircraft has arrived at the gate.
 

getStatus
public int getStatus(int gateNumber)
Obtain and return the status of the given gate identified by the gateNumber parameter.
 

getStatuses
public int[] getStatuses()
Returns an array containing the status of all gates.
For data collection by the GOC.
 

Class GOC
public class GOC      
An interface to SAAMS:
A Ground Operations Controller Screen:
Inputs events from GOC (a person), and displays aircraft and gate information.
This class is a controller for the GateInfoDatabase and the AircraftManagementDatabase: sending them messages to change the gate or aircraft status information.
This class also registers as an observer of the GateInfoDatabase and the AircraftManagementDatabase, and is notified whenever any change occurs in those <> elements.
See written documentation.
Stereotype:
boundary/view/controller
 
Hyperlinks to Elements:
GOC interface
GOCAllocatesGate
GateState
GroundOperCUC
MRState
 
 
Links Summary
Association Link accesses/observes to Class AircraftManagementDatabase
Association Link accesses/observes to Class GateInfoDatabase
Field Summary
   The Ground Operations Controller Screen interface has access to the GateInfoDatabase.
 
   The Ground Operations Controller Screen interface has access to the AircraftManagementDatabase.
 
Links Detail
Association Link
accesses/observes to Class GateInfoDatabase
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
association
Association Link
accesses/observes to Class AircraftManagementDatabase
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
association
Field Detail
lnkUnnamed
private GateInfoDatabase lnkUnnamed
The Ground Operations Controller Screen interface has access to the GateInfoDatabase.
Multiplicity:
1
 

lnkUnnamed1
private AircraftManagementDatabase lnkUnnamed1
The Ground Operations Controller Screen interface has access to the AircraftManagementDatabase.
Multiplicity:
1
 

Class Itinerary
public class Itinerary      
Describes an aircraft's flight plan.
An aircraft entering an airport's airspace has come from the "from" airport, and wishes to land at the "to" airport, before travelling on to the "next" airport.
So, an aircraft whose flight descriptor contains an itinerary with "Stirling" as the "to" attribute wishes to land at Stirling now, otherwise it is just passing through local airspace on its way to its destination.
Incoming flights supply their Itinerary in their flight descriptor, and the ManagementRecord for the flight extracts the Itinerary and holds it separately.
Outbound flights have their Itineraries uploaded to the aircraft as it departs in a newly built FlightDescriptor.
Stereotype:
entity
 
Hyperlinks to Elements:
RadarDetectsVisitingAircraft
AircraftUC
LocalATCUC
 
Field Summary
private String
   See Itinerary class description.
 
private String
   See Itinerary class description.
 
private String
   See Itinerary class description.
 
Constructor Summary
public void
Itinerary(String from, String to, String next)
   Constructor: Requires names of where the flight is coming from,
where it is going to now, and where next after that.
 
Method Summary
public String
   Return the from attribute.
 
public String
   Return the next attribute.
 
public String
   Return the to attribute.
 
Field Detail
from
private String from
See Itinerary class description.
Multiplicity:
1
 

next
private String next
See Itinerary class description.
Multiplicity:
1
 

to
private String to
See Itinerary class description.
Multiplicity:
1
 
Constructor Detail
Itinerary
public void Itinerary(String from, String to, String next)
Constructor: Requires names of where the flight is coming from,
where it is going to now, and where next after that.
 
Method Detail
getFrom
public String getFrom()
Return the from attribute.
 

getNext
public String getNext()
Return the next attribute.
 

getTo
public String getTo()
Return the to attribute.
 

Class LATC
public class LATC      
An interface to SAAMS:
Local Air Traffic Controller Screen:
Inputs events from LATC (a person), and displays aircraft information.
This class is a controller for the AircraftManagementDatabase: sending it messages to change the aircraft status information.
This class also registers as an observer of the AircraftManagementDatabase, and is notified whenever any change occurs in that <> element.
See written documentation.
Stereotype:
boundary/view/controller
 
Hyperlinks to Elements:
MRState
LocalATCUC
 
AircraftUC
 
Links Summary
Association Link accesses/observes to Class AircraftManagementDatabase
Field Summary
   The Local Air Traffic Controller Screen interface has access to the AircraftManagementDatabase.
 
Links Detail
Association Link
accesses/observes to Class AircraftManagementDatabase
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
association
Field Detail
lnkUnnamed
private AircraftManagementDatabase lnkUnnamed
The Local Air Traffic Controller Screen interface has access to the AircraftManagementDatabase.
Multiplicity:
1
 

Class Main
public class Main      
The Main class.

The principal component is the usual main method required by Java application to launch the application.

Instantiates the databases.
Instantiates and shows all the system interfaces as Frames.
Stereotype:
control
 
 
Method Summary
public static void
main(String args)
   Launch SAAMS.
 
Method Detail
main
public static void main(String args)
Launch SAAMS.
Static.
 

Class MaintenanceInspector
public class MaintenanceInspector      
An interface to SAAMS:
Maintenance Inspector Screen:
Inputs events from the Maintenance Inspector, and displays aircraft information.
This class is a controller for the AircraftManagementDatabase: sending it messages to change the aircraft status information.
This class also registers as an observer of the AircraftManagementDatabase, and is notified whenever any change occurs in that <> element.
See written documentation.
Stereotype:
boundary/view/controller
 
Hyperlinks to Elements:
Maintenance Inspector interface
MRState
MaintenanceFailCheck
 
GroundServicesUC
 
Links Summary
Association Link accesses/observes to Class AircraftManagementDatabase
Field Summary
   The Maintenance Inspector Screen interface has access to the AircraftManagementDatabase.
 
Links Detail
Association Link
accesses/observes to Class AircraftManagementDatabase
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
association
Field Detail
lnkUnnamed
private AircraftManagementDatabase lnkUnnamed
The Maintenance Inspector Screen interface has access to the AircraftManagementDatabase.
Multiplicity:
1
 

Class ManagementRecord
public class ManagementRecord      
An individual aircraft management record:
Either FREE or models an aircraft currently known to SAAMS.
See MRState diagram for operational details, and written documentation.
This class has public static int identifiers for the individual status codes.
An MR may be "FREE", or may contain a record of the status of an individual aircraft under the management of SAAMS.
An instance of AircraftManagementDatabase holds a collection of ManagementRecords, and sends the ManagementRecords messages to control/fetch their status.
Stereotype:
entity
 
Hyperlinks to Elements:
 
RadarDetectsVisitingAircraft
MaintenanceFailCheck
MR
MR
GOCAllocatesGate
MRState
MR
 
Links Summary
Association Link contains to Class PassengerList
Association Link contains to Class Itinerary
Field Summary
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
private String
   Contains a description of what is wrong with the aircraft if it is found to be faulty during maintenance inspection.
 
public static int
   Status code

See MRState diagram.
 
private String
   A short string identifying the flight:

Usually airline abbreviation plus number, e.g.
 
public static int
   Status code: This MR is currently not managing any aircraft information

See MRState diagram.
 
private int
   The gate number allocated to this aircraft, when there is one.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
private Itinerary
   Holds the aircraft's itinerary.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
   The list of passengers on the aircraft.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
private int
   The status code for this ManagementRecord.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
public static int
   Status code

See MRState diagram.
 
Method Summary
public void
addPassenger(PassengerDetails details)
   The given passenger is boarding this aircraft.
 
public void
faultsFound(String description)
   The Maintenance Supervisor has reported faults.
 
public String
   Return the flight code of this MR.
 
public Itinerary
   Return the aircraft's Itinerary.
 
public PassengerList
   Return the entire current PassengerList.
 
public int
   Return the status code of this MR.
 
public void
radarDetect(FlightDescriptor fd)
   Sets up the MR with details of newly detected flight

Status must be FREE now, and becomes either IN_TRANSIT or WANTING_TO_LAND depending on the details in the flight descriptor.
 
public void
   This aircraft has departed from local airspace.
 
public void
setStatus(int newStatus)
   Request to set the MR into a new status.
 
public void
taxiTo(int gateNumber)
   GOC has allocated the given gate for unloading passengers.
 
Links Detail
Association Link
contains to Class Itinerary
All Properties
Client cardinality:
1
Directed:
true
Supplier cardinality:
1
Type:
association
Association Link
contains to Class PassengerList
All Properties
Client cardinality:
1
Directed:
true
Supplier cardinality:
1
Type:
association
Field Detail
AWAITING_TAKEOFF
public static int AWAITING_TAKEOFF = 17
Status code

See MRState diagram.
Initial value:
17
Multiplicity:
1
Static.
 

AWAITING_TAXI
public static int AWAITING_TAXI = 16
Status code

See MRState diagram.
Initial value:
16
Multiplicity:
1
Static.
 

AWAIT_REPAIR
public static int AWAIT_REPAIR = 12
Status code

See MRState diagram.
Initial value:
12
Multiplicity:
1
Static.
 

CLEAN_AWAIT_MAINT
public static int CLEAN_AWAIT_MAINT = 10
Status code

See MRState diagram.
Initial value:
10
Multiplicity:
1
Static.
 

DEPARTING_THROUGH_LOCAL_AIRSPACE
public static int DEPARTING_THROUGH_LOCAL_AIRSPACE = 18
Status code

See MRState diagram.
Initial value:
18
Multiplicity:
1
Static.
 

faultDescription
private String faultDescription
Contains a description of what is wrong with the aircraft if it is found to be faulty during maintenance inspection.
Multiplicity:
1
 

FAULTY_AWAIT_CLEAN
public static int FAULTY_AWAIT_CLEAN = 9
Status code

See MRState diagram.
Initial value:
9
Multiplicity:
1
Static.
 

flightCode
private String flightCode
A short string identifying the flight:

Usually airline abbreviation plus number, e.g. BA127.
Obtained from the flight descriptor when the aircraft is first detected.

This is the code used in timetables, and is useful to show on public information screens.
Multiplicity:
1
 

FREE
public static int FREE = 0
Status code: This MR is currently not managing any aircraft information

See MRState diagram.
Initial value:
0
Multiplicity:
1
Static.
 

gateNumber
private int gateNumber
The gate number allocated to this aircraft, when there is one.
Multiplicity:
1
 

GROUND_CLEARANCE_GRANTED
public static int GROUND_CLEARANCE_GRANTED = 3
Status code

See MRState diagram.
Initial value:
3
Multiplicity:
1
Static.
 

IN_TRANSIT
public static int IN_TRANSIT = 1
Status code

See MRState diagram.
Initial value:
1
Multiplicity:
1
Static.
 

itinerary
private Itinerary itinerary
Holds the aircraft's itinerary.
Downloaded from the flight descriptor when the aircraft is first detected.
Multiplicity:
1
 

LANDED
public static int LANDED = 5
Status code

See MRState diagram.
Initial value:
5
Multiplicity:
1
Static.
 

LANDING
public static int LANDING = 4
Status code

See MRState diagram.
Initial value:
4
Multiplicity:
1
Static.
 

OK_AWAIT_CLEAN
public static int OK_AWAIT_CLEAN = 11
Status code

See MRState diagram.
Initial value:
11
Multiplicity:
1
Static.
 

passengerList
private PassengerList passengerList
The list of passengers on the aircraft.
Incoming flights supply their passenger list in their flight decsriptor.
Outbound flights have passenger lists built from passenger details supplied by the gate consoles.
Multiplicity:
1
 

READY_CLEAN_AND_MAINT
public static int READY_CLEAN_AND_MAINT = 8
Status code

See MRState diagram.
Initial value:
8
Multiplicity:
1
Static.
 

READY_DEPART
public static int READY_DEPART = 15
Status code

See MRState diagram.
Initial value:
15
Multiplicity:
1
Static.
 

READY_PASSENGERS
public static int READY_PASSENGERS = 14
Status code

See MRState diagram.
Initial value:
14
Multiplicity:
1
Static.
 

READY_REFUEL
public static int READY_REFUEL = 13
Status code

See MRState diagram.
Initial value:
13
Multiplicity:
1
Static.
 

status
private int status
The status code for this ManagementRecord.
Multiplicity:
1
 

TAXIING
public static int TAXIING = 6
Status code

See MRState diagram.
Initial value:
6
Multiplicity:
1
Static.
 

UNLOADING
public static int UNLOADING = 7
Status code

See MRState diagram.
Initial value:
7
Multiplicity:
1
Static.
 

WANTING_TO_LAND
public static int WANTING_TO_LAND = 2
Status code

See MRState diagram.
Initial value:
2
Multiplicity:
1
Static.
 
Method Detail
addPassenger
public void addPassenger(PassengerDetails details)
The given passenger is boarding this aircraft.

Their details are recorded in the passengerList.

For this operation to be applicable, the status must be READY_PASSENGERS, and it doesn't change.
Preconditions:
Status is READY_PASSENGERS
 

faultsFound
public void faultsFound(String description)
The Maintenance Supervisor has reported faults.

The problem description is recorded.

The status must have been READY_CLEAN_MAINT or CLEAN_AWAIT_MAINT and becomes FAULTY_AWAIT_CLEAN or AWAIT_REPAIR respectively.
Preconditions:
Status is READY_CLEAN_MAINT or CLEAN_AWAIT_MAINT
 

getFlightCode
public String getFlightCode()
Return the flight code of this MR.
 

getItinerary
public Itinerary getItinerary()
Return the aircraft's Itinerary.
 

getPassengerList
public PassengerList getPassengerList()
Return the entire current PassengerList.
 

getStatus
public int getStatus()
Return the status code of this MR.
 

radarDetect
public void radarDetect(FlightDescriptor fd)
Sets up the MR with details of newly detected flight

Status must be FREE now, and becomes either IN_TRANSIT or WANTING_TO_LAND depending on the details in the flight descriptor.
Preconditions:
Status is FREE
 

radarLostContact
public void radarLostContact()
This aircraft has departed from local airspace.

Status must have been either IN_TRANSIT or DEPARTING_THROUGH_LOCAL_AIRSPACE, and becomes FREE (and the flight details are cleared).
Preconditions:
Status is IN_TRANSIT or DEPARTING_THROUGH_LOCAL_AIRSPACE
 

setStatus
public void setStatus(int newStatus)
Request to set the MR into a new status.

Only succeeds if the state change conforms to the MRState diagram.

This is a general purpose state change request where no special details accompany the state change.
[Special status changers are, for example, "taxiTo", where a gate number is supplied.]
Preconditions:
Valid transition requested
 

taxiTo
public void taxiTo(int gateNumber)
GOC has allocated the given gate for unloading passengers.

The gate number is recorded.The status must have been LANDED and becomes TAXIING.
Preconditions:
Status is LANDED
 

Class PassengerDetails
public class PassengerDetails      
The details of an individual passenger: just a name for simplicity!
A PassengerList holds a collection of PassengerDetails.
Stereotype:
entity
 
Hyperlinks to Elements:
GateState
MRState
GateStaffUC
 
Field Summary
private String
   The passenger's name!
 
Constructor Summary
public void
PassengerDetails(String name)
   Constructor: Just a name required.
 
Method Summary
public String
   Return the name of this passenger.
 
Field Detail
name
private String name
The passenger's name!
Multiplicity:
1
 
Constructor Detail
PassengerDetails
public void PassengerDetails(String name)
Constructor: Just a name required.
 
Method Detail
getName
public String getName()
Return the name of this passenger.
 

Class PassengerList
public class PassengerList      
Contains an array of PassengerDetails objects - one per passenger on a flight.
Incoming flights supply their passenger list in their flight descriptor, and the ManagementRecord for the flight extracts the PassengerList and holds it separately.
Outbound flights have PassengerLists built from passenger details supplied by the gate consoles, and the list is uploaded to the aircraft as it departs in a newly built FlightDescriptor.
Stereotype:
entity
 
Hyperlinks to Elements:
GateState
GateStaffUC
 
Links Summary
Association Link contains to Class PassengerDetails
Field Summary
   The array of PassengerDetails objects.
 
Method Summary
public void
addPassenger(PassengerDetails details)
   The given passenger is boarding.
 
Links Detail
Association Link
contains to Class PassengerDetails
All Properties
Client cardinality:
1
Directed:
true
Supplier cardinality:
0..*
Type:
association
Field Detail
details
private PassengerDetails[] details
The array of PassengerDetails objects.
Multiplicity:
1
 
Method Detail
addPassenger
public void addPassenger(PassengerDetails details)
The given passenger is boarding.
Their details are recorded, in the passenger list.
Preconditions:
Status is READY_PASSENGERS
 

Class PublicInfo
public class PublicInfo      
An interface to SAAMS:
Public Information Screen:
Display of useful information about aircraft.
This class registers as an observer of the AircraftManagementDatabase, and is notified whenever any change occurs in that <> element.
See written documentation.
Stereotype:
boundary/view
 
Hyperlinks to Elements:
PassengersAndPublic
MRState
 
Links Summary
Association Link accesses/observes to Class AircraftManagementDatabase
Field Summary
   Each Public Information Screen interface has access to the AircraftManagementDatabase.
 
Links Detail
Association Link
accesses/observes to Class AircraftManagementDatabase
All Properties
Client cardinality:
0..*
Supplier cardinality:
1
Type:
association
Field Detail
lnkUnnamed
private AircraftManagementDatabase lnkUnnamed
Each Public Information Screen interface has access to the AircraftManagementDatabase.
Multiplicity:
1
 

Class RadarTransceiver
public class RadarTransceiver      
An interface to SAAMS:
Radar tracking of arriving and departing aircraft, and transceiver for downloading of flight descriptors
(by aircraft entering the local airspace) and uploading of passenger lists (to aircraft about to depart).
A screen simulation of the radar/transceiver system.
This class is a controller for the AircraftManagementDatabase: it sends messages to notify when a new aircraft is detected
(message contains a FlightDescriptor), and when radar contact with an aircraft is lost.
It also registers as an observer of the AircraftManagementDatabase, and is notified whenever any change occurs in that <> element.
See written documentation.
Stereotype:
boundary/view/controller
 
Hyperlinks to Elements:
AircraftUC
 
Radar/transceiver interface
RadarDetectsVisitingAircraft
MRState
 
Links Summary
Association Link accesses/observes to Class AircraftManagementDatabase
Field Summary
   The Radar Transceiver interface has access to the AircraftManagementDatabase.
 
Links Detail
Association Link
accesses/observes to Class AircraftManagementDatabase
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
association
Field Detail
lnkUnnamed
private AircraftManagementDatabase lnkUnnamed
The Radar Transceiver interface has access to the AircraftManagementDatabase.
Multiplicity:
1
 

Class RefuellingSupervisor
public class RefuellingSupervisor      
An interface to SAAMS:
Refuelling Supervisor Screen:
Inputs events from the Refuelling Supervisor, and displays aircraft information.
This class is a controller for the AircraftManagementDatabase: sending it messages to change the aircraft status information.
This class also registers as an observer of the AircraftManagementDatabase, and is notified whenever any change occurs in that <> element.
See written documentation.
Stereotype:
boundary/view/controller
 
Hyperlinks to Elements:
MRState
 
GroundServicesUC
 
Links Summary
Association Link accesses/observes to Class AircraftManagementDatabase
Field Summary
   The Refuelling Supervisor Screen interface has access to the AircraftManagementDatabase.
 
Links Detail
Association Link
accesses/observes to Class AircraftManagementDatabase
All Properties
Client cardinality:
1
Supplier cardinality:
1
Type:
association
Field Detail
lnkUnnamed
private AircraftManagementDatabase lnkUnnamed
The Refuelling Supervisor Screen interface has access to the AircraftManagementDatabase.
Multiplicity:
1