This is a prototype for a runway redeclaration tool for air traffic control workers. It was coded using Java and JavaFX as a low-power, simple-to-use and accurate mathematical tool.
If you’d rather skip the reading part, I made a short demonstration video of the project!
Operation
The app, after entering key details about an airport runway, displays various distances for takeoff and landing. This is useful for quickly calculating when there are obstacles on the runway, such as other aircraft or vehicles. A quick calculation allows the pilots to know if it is safe to take off/land towards/away from an obstacle.
More specifically, it calculates the four Declared Distances:
- Take-Off Runway Available (TORA)
- Take-Off Distance Available (TODA)
- Accelerate-Stop Distance Available (ASDA)
- Landing Distance Available (LDA)
These parameters are calculated based on other specified measurements for the runway.
Our group had a team of 6 programmers of different skill levels. Since it was a program with many various “views” and user requirements, we split the work. Half worked on the model side, doing the mathematics and functions for accurate measurements. The other half worked on the user interface and experience, creating graphics and inputs intuitive to air traffic control workers.
I was involved in the backend, ensuring that the functions calculated the right measurements based on user inputs. However, as one of the more skilled developers on the team, I took a more “managerial” position ensuring that all elements of the application fit the specifications set out by our module leaders.
We aimed to create graphics similar to the example we found from the Heathrow runway calculator. Here is an early mockup our team created.
We required a main view to graphically show off the changes, supported by details of calculations for each of the four main output measurements. A panel on the left stores user input for runways, obstacle data, and settings for quickly loading/exporting data in XML.
After pressing Apply, the user can see all the relevant calculations and how they are arranged on the runway view.
There are also a few presets for obstacle and runway configurations for sample displays.
The runway view can also be changed to side-on, to see the minimum angle of ascent/descent for an aircraft to clear a potential obstacle.
Note that the measurement scales horizontally and vertically are different, so it may appear to be a much steeper angle than it is. This is due to how long runway measurements tend to be compared to obstacle heights.
A lot of work was done to enable free movement of the view, including in 3D, which was tough to do in JavaFX. Although not the one who initially implemented this change due to our roles, I rigorously tested each view to check it met our requirements. There were (unsurprisingly) many bugs to quash on to way to our demonstration prototype.
Review
Developing the runway recalculation application with six team members brought new challenges that previous coursework had not presented. Yet as a team, we managed to overcome most of these with ease, resulting in a well-documented and full-featured program.
In one of our in-person meetings at the beginning of the planning process, we each stated our strengths/weaknesses and which part of the program we would be most comfortable developing. This meant tasks could be assigned to the team member most knowledgeable in that area, speeding up development and allowing us to implement more extension user requirements.
Most of our inter-team communication occurred online on Discord, where many conversations were friendly, professional, and on topic. Additionally, because each team member was assigned to work on a particular area of the program (model, view, controller) if someone had a question or suggestion, they could ‘ping’ those working on the relevant area.
Conclusion
If you would like to check out the source code, check out my GitHub: https://github.com/Xpload334/COMP2211-Group5-RunwayRedeclaration