CS 4311

Flight Planning and Management System Software Requirements Specification Version <1.0> 2/20/2015

 2001 CS 4311

Software Requirements Specification

Document Control

Approval The Guidance Team and the customer shall approve this document.

Document Change Control

Initial Release: 1.0 Current Release: 1.0 Indicator of Last Page in Document: * Date of Last Review: 2/16//2015 Date of Next Review: 3/16/2015 Target Date for Next Update: 3/16/2015

Distribution List This following list of people shall receive a copy of this document every time a new version of this document becomes available: Guidance Team Members: Dr. Ann Gates Elsa Tai Yadira Jacquez Customer: Dr. Calvin Han Software Team Members: CS 4311

Change Summary The following table details changes made between versions of this document

Version Date Modifier Description 1.0 1/13/2015 Yadira Jacquez Initial version

Software Requirements Specification Date Page 2/20/2015 10:07 AM ii

Software Requirements Specification

TABLE OF CONTENTSDOCUMENT CONTROL ...... II

APPROVAL ...... II DOCUMENT CHANGE CONTROL ...... II DISTRIBUTION LIST ...... II CHANGE SUMMARY ...... II 1. INTRODUCTION ...... 4

1.1. PURPOSE AND INTENDED AUDIENCE ...... 4 1.2. SCOPE OF PRODUCT ...... 4 1.3. DEFINITIONS , ACRONYMS , AND ABBREVIATIONS ...... 4 1.3.1. Definitions ...... 4 1.3.1. Acronyms ...... 7 1.3.2. Abbreviations ...... 7 1.4. OVERVIEW ...... 7 1.5. REFERENCES ...... 8 2. GENERAL DESCRIPTION ...... 8

2.1. PRODUCT PERSPECTIVE ...... 8 2.2. PRODUCT FEATURES ...... 9 2.3. USER CHARACTERISTICS ...... 10 2.4. GENERAL CONSTRAINTS ...... 10 2.5. ASSUMPTIONS AND DEPENDENCIES ...... 10 3. SPECIFIC REQUIREMENTS ...... 11

3.1. EXTERNAL INTERFACE REQUIREMENTS ...... 11 3.1.1. User Interfaces ...... 11 3.1.2. Manage Flight Plans Screen ...... 14 3.1.3. Manage Resources ...... 14 3.1.4. Start Flight ...... 17 3.1.5. Google Glass Screen ...... 17 3.1.6. Hardware Interfaces ...... 18 3.1.7. Software Interfaces ...... 18 3.1.8. Communications Interfaces ...... 18 3.2. BEHAVIORAL REQUIREMENTS ...... 18 3.2.1. Same Class of User ...... 18 3.2.2. Related Real-world Objects ...... 18 3.2.3. Stimulus ...... 21 3.2.4. Related Features ...... 26 3.2.5. Functional ...... 26 3.3. NON -BEHAVIORAL REQUIREMENTS ...... 26 3.3.1. Performance Requirements ...... 26 3.3.2. Qualitative Requirements ...... 26 3.4. OTHER REQUIREMENTS ...... 26

Software Requirements Specification Date Page 2/20/2015 10:07 AM iii

Software Requirements Specification

1. Introduction

1.1. Purpose and Intended Audience The purpose of this document is to outline the requirements, both functional and non-functional, of the and Management System. The document serves as a communication medium and a contract between the developers and the stakeholders; the system must adhere to all the requirements that are listed. The intended audience for this document includes Dr. Han, the guidance team, the software engineering team, and all other entities who may have an interest in the FPMS.

1.2. Scope of Product The software product to be developed is the Flight Planning and Management System (FPMS). The software is intended to address the pilot’s problem of having to look away from the trajectory to view information that can help guide him or her during flights on the iPad. The customer identified an additional need for the system to assist in flight planning and management of an aircraft from a departure airport to an arrival airport. The FPMS has the potential to improve safety by displaying in-flight information on the Google Glass directly to the pilot’s sight. The Google Glass is a device that can communicate with the iPad; therefore, there is no need to create new hardware or develop an interface for communication between the iPad and the Google Glass. The software will provide the following capabilities to the pilot: • create and edit flight plans prior to a flight • support decision-making in case of a reroute during flight • track in-flight status of relevant information in real-time • maintain a repository with information that can be used in defining new flight plans or rerouting during flights. Ultimately, the system only provides decision making support to the pilot. It is capable of suggesting flight plans and generating alerts if it detects that a reroute is needed, but the pilot decides which to use and whether or not to reroute. However, the system will ensure that any decision made by the pilot does not conflict with other flight plans created by different pilots by utilizing an external system to approve flight plans. In providing in-flight information or any information relevant to creating a flight plan, the system is not responsible for generating data. It will gather in-flight data, such as weather information and aircraft location, from other devices that are part of the larger system it is embedded into. Additional data that is taken into considered when creating a flight plan, such as aircraft characteristics and information, is acquired from external resources. The FPMS will only manipulate the data as needed to present the information in the correct format to the pilot.

1.3. Definitions, Acronyms, and Abbreviations

1.3.1. Definitions

Active Flight Plan A flight plan for which the departure date has not passed. Aircraft Performance The characteristics of different aircraft, including altitude, speed, and other relevant Characteristics information, typically stored in XML documents. The rate of the aircraft’s progress through the air. Altitude The height of an object or point in relation to sea level or ground level.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 4

Software Requirements Specification

Bluetooth Short-range wireless interconnection of cellular phones, computers, and other electronic devices. Coordinates Latitude and longitude. Card A rectangular interface in the Google Glass device that displays relevant information. Flight mode The mode in which the system displays flight-support information to the user; this is the mode where the Google Glass system is used with the tablet application. Flight mode takes place while the user is piloting their aircraft and ends when they reach their destination. Flight Plan A document that is filed by the pilot to the FAA. The document contains information such as departure location, , estimated time of arrival, destination location, alternate airports, aircraft information, and the pilot’s information. ForeFlight An application that includes moving maps with VFR/IFR charts, approach charts, provides information on weather maps, complete airport data, flight plan filing, includes a document view feature that lets the pilot include any PDF or image to view in flight or on the ground and a whole lot more that is used for pilots on the iPad. Garmin GDL 39 The device provides real time subscription free weather, updates for the pilot via Bluetooth and works for either Android or iOS. The device does not require a network connection and receives weather updates through a WAAS GPS receiver. The device provides GPS coordinates weather information NEXRAD radar, METARs, TAFs, winds and temperatures, PIREPs, and . Garmin Pilot An application specifically for general aviation and corporate pilots. This comprehensive app includes all digital charts, flight, en-route charts to approach plates, plus detailed airport data, flight planning, interactive maps, weather briefing resources and navigation capabilities. GoGo Inc. It is a provider of in-flight Internet connectivity and wireless in-cabin digital entertainment solutions in the United States and internationally for commercial and business aircraft. The company uses a variety of advanced technologies to keep connected in the air such as ATG network and satellite-based technologies that offer a suite of connectivity solutions and other services. Google Glass A wearable, voice-controlled device that resembles a pair of eyeglasses and displays information directly in the user’s field of vision. The device can be connected to other devices such as smart phones, and tablets that offer many features. Ground Speed The rate of the aircraft’s flight mode progress over the ground. Knowledge Base A repository or database that is stored within the FPMS. Pre-flight mode The mode in which the system gathers information necessary to enter flight mode. Pre-flight mode takes place after the user logs into the system and before the user pilots their aircraft. Post-flight mode The mode in which information gathered during flight mode is displayed to the user, in addition to information regarding future flights. Post-flight mode takes place after the user reaches their destination and ends when the user logs out.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 5

Software Requirements Specification

Smart Device Any device running iOS or Android operating systems. GPS Satellite navigation system that provides location and time information in all weather conditions. iFlightPlanner Provides IFR/VFR aviation charts to plan and explore flight routes, and true route rubber banding on Google Maps interface. They also provide en-route aviation weather, including RADAR, colored-coded, translated graphical views (METARs and TAFs formats). IFR Flight rules will be through instruments rather than visual reference. iOS An operating system used for mobile devices manufactured by Apple Inc. iPad A mobile device that is bigger than a smart phone but smaller than a laptop for entertainment multimedia. Latitude The angular distance of a place north or south of the earth's equator, or of a celestial object north or south of the celestial equator. Latitude is stored as a decimal. Longitude The angular distance of a place east or west of the meridian at Greenwich, England, or west of the standard meridian of a celestial object. Longitude is stored as a decimal. Military time A method of measuring the time based on the full twenty-four hours of the day rather than two groups of twelve hours; the twenty-four-hour clock. Nautical miles A unit of distance that is approximately one minute of arc measured along any meridian. Radar A system for detecting the presence, direction, distance, and speed of aircraft, ships, and other objects, by sending out pulses of high-frequency electromagnetic waves that are reflected off the object back to the source. Resources Waypoints, maps, and routes. Route Collection of waypoints with a departure and a destination airport. Stratus ADS-B The device provides air-to-air ADS-R, and TIS-B traffic information, as well as subscription free ADS-B weather information. The weather service includes the following features METARs, TAFs, animated regional Next Generation Radars (NEXRAD and CONUS NEXRAD), NOTAMs, AIRMETs, SIGMETs, TFRs, wind and temperature, and PIREPs. Target Generation FAA supplied simulator that provides information about current flights or Facility registered flight plans. Time zones Pacific, Mountain, Central, and Eastern Topological Map A georeferenced map that displays only vital elements. Topographic Map A type of map that shows details including natural and man-made features. True Course The intended path of an aircraft over the ground. Universal Time Primary time standard by which the world regulates clocks and times. Coordinated Use Case The use case describes interactions between an actor (s) and a system, to achieve a goal. Waypoint A stopping point that is along a route in which a set of coordinates identify a point

Software Requirements Specification Date Page 2/20/2015 10:07 AM 6

Software Requirements Specification

in physical space. The coordinates are usually given by longitude and latitude. WingX It is a valuable tool for both pre-flight planning and in-flight situational awareness.

1.3.1. Acronyms This section lists the acronyms used in this document and their associated definitions.

TERM DEFINITION ADS-B Automatic Dependent Surveillance – Broadcast ATC ID Identification IFR Instruments Flight Rules ETA Estimated Time of Arrival ETD Estimated Departure Time ETE Estimated Time Enroute FAA Federal Aviation Administration FPMS Flight Planning and Management System GPS Geographic Positioning System GUI Graphical User Interface METAR Meteorological Terminal Aviation Routine Weather Report MPG Miles per gallon PIC Pilot In Command TGF Target Generation Facility RTA Require Time of Arrival RTD Required Time of Departure SRS Software Requirements Specification TCP/IP Transfer Control Protocol/ Internet Protocol XML Extensible Markup Language. UTS University Time Coordinated

1.3.2. Abbreviations

TERM DEFINITION e.g. for example i.e. that is

1.4. Overview The information presented in the Software Requirements Specification is organized into five sections. A brief description of each section is provided below:

Software Requirements Specification Date Page 2/20/2015 10:07 AM 7

Software Requirements Specification

• Section 1: states the purpose of the Software Requirements Specification document and defines the scope of the product. The scope is described in terms of what the system is intended to do in order to fulfill the customer’s requirements. This section also includes a list of definitions and acronyms used within the document that may be unclear to the reader. • Section 2: provides a top-level description and the main features of the system. A description of the different external entities that interact with the system, including the main user, is also included in this section. Additionally, any assumptions that are made, or any dependencies and constraints that have identified, by the development team can be found in this section. • Section 3: lists the requirements of the FPMS. These requirements guide the development team in designing, implementing, and testing the system. They also serve as a contract between the development team and the customer, Dr. Han. The requirements are organized by type: interface, behavioral, non-behavioral, and other (those requirements that do not fit under the other categories).

1.5. References [1] Elsa Tai. (2014). FPM Need Statement . Retrieved from CS 4310 Software Engineering I: Requirements Engineering Smart Cloud. [2] Elsa Tai. (2014). Project Memo . Retrieved from CS 4310 Software Engineering I: Requirements Engineering Smart Cloud. [3] Elsa Tai. (2014). Requirements Definition Document . Retrieved from CS 4310 Software Engineering I: Requirements Engineering Smart Cloud. [4] About latitude and longitude. (2015, January 1). Retrieved February 11, 2015, from https://msdn.microsoft.com/en-us/library/aa578799.aspx [5] Darby, G. (2005, February 5). . Retrieved February 12, 2015, from http://www.delphiforfun.org/programs/math [6] Williams, E. (n.d.). Aviation Formulary V1.46. Retrieved February 12, 2015, from http://williams.best.vwh.net/avform.htm#Crs [7] Navigation. (2008). In Pilot's handbook of aeronautical knowledge . Washington, D.C.: U.S. Dept. of Transportation, Federal Aviation Administration. Retrieved February 12, 2015, from http://www.faa.gov/regulations_policies/handbooks_manuals/aviation/pilot_handbook/media/PHAK%20- %20Chapter%2015.pdf [8] (2014). ForeFlight Intelligent, Apps for Pilots. Retrieved September 10, 2014, from http://www.foreflight.com [9] (2014). WingX Stol. Retrieved November 18, 2014, from http://www.wingxstol.com

2. General Description

2.1. Product Perspective The FPMS will be implemented as an application that has similarities with other applications, such as ForeFlight [8] and WingX [9], and additional features. It will assist the pilot with flight planning activities, provide the pilot with real-time flight status information, and alert the pilot when critical conditions are detected. The information will be processed on a tablet and displayed on the Google Glass. The user commands will be issued to the application through the tablet’s user interface or through the touchpad on the Google Glass. The application will conform to the API for the Google Glass and to the API for the tablet of interest, and it will be independent of the operating system running on the tablet.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 8

Software Requirements Specification

The system will work in conjunction with other systems and the aircraft’s surroundings in order to assist a pilot during in-flight navigation. Table 1 presents a list of the external sources that the system will be cooperating with, along with the respective data or functions they provide.

Table 1: External Sources of Information Source Data Function GPS Distance and location relevant information Situation awareness

TGF traffic simulation Flight plan validation

Garmin GDL 39 GPS coordinates weather information, Weather information via winds and temperatures Bluetooth

2.2. Product Features The Use-Case Diagram (shown in Fig. 1) depicts the main features of the FPMS and the interactions between the system and the external environment. A “use case,” which is depicted by an oval, represents a specific function of the system. The stick figures represent the external entities, or “actors,” with which the system interacts. A more detailed, textual description of the main features is also provided. The actors are as follows: • Pilot- the individual who will be flying the plane and setting the flight plan; the pilot is the main user of the system. • Weather System- the system that will be providing updates of the weather in the areas along the flight plan • Target Generation Facility-the system that will simulate air traffic control and validate a flight plan The use cases are as follows: • Create flight plan- The pilot uses the system to create new flight plans that includes defining the route. The flight plans are submitted to the Target Generation Facility for validation. • Track Status- The pilot can track real-time status regarding trajectory relevant information during flight. The system provides location, RTA, ETA, heading, time, fuel, altitude, route, speed, and weather status. • Reroute- The pilot is able to modify the flight’s route. • Update Knowledge System- The pilot can choose to update the knowledge system with up-to-date information that can be used to create flight plans regarding valid waypoints, airports, aircraft, and weather forecast information.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 9

Software Requirements Specification

Fig. 1: Use Case Diagram for the FPMS

2.3. User Characteristics There is only one user of the system, i.e., the pilot. The user is expected to have the appropriate knowledge needed to file a flight plan and interpret the information that is provided to him or her during the flight.

2.4. General Constraints The general constraints of the system are as follows: 1. The system will only update resources while it is not in flight-mode. 2. The information displayed on the Google Glass is limited by the size of the screen. 3. The Google Glass will not accept verbal commands due to the high noise levels inside the cockpit. 4. The system will use TGF to validate flight plans. 5. Every route must be composed of a minimum of three waypoints. Note: we are assuming the simplest restriction on waypoints.

2.5. Assumptions and Dependencies The SRS is presenting the basic requirements for the system. The document notes the areas that the Software Engineering development teams should extend with the requirements from their documents. The development team should assume the following:

Software Requirements Specification Date Page 2/20/2015 10:07 AM 10

Software Requirements Specification

° Flight plans are filed as type IFR only. ° The system will have access to the GPS in order to update aircraft position during flight. ° The development team will have access to the TGF simulator. ° The GPS will report the estimated time to waypoint, , distance, and location in real-time during flight. ° The system has been initialized with a database tables that contain predefined waypoints along with the location and a description of whether the waypoint is a beacon or an airport; valid airports along with the attributes of name, identifier and location in the form of latitude and longitude; and aircrafts of interest along with relevant attributes and characteristics. ° There will be reliable communication between the tablet and Google Glass. ° The user will not be able to add new waypoints. ° The characteristics of the aircraft are using general parameters and the algorithms are simplified based on this. It is important to note that there are many factors that impact fuel consumption, e.g., altitude. ° The development team will design for change, in particular considering the next version will extend the functionality such as being able to add waypoints and view a variety of maps.

3. Specific Requirements

3.1. External Interface Requirements

3.1.1. User Interfaces This section presents the general requirements for the main features of the interface for the proposed system. The FPMS system is made up of two components: a tablet component and a Google Glass component. The requirements listed under sections 3.1.1 through 3.1.4 include those related to tablet component. The tablet will serve as a platform for creating and managing flight plans, managing resources, setting preferences, and starting a flight. Section 3.1.5 includes the requirements for the Google Glass display. The Google Glass will display real-time flight status information and alert the pilot when critical conditions are detected. The development teams should include their personalized look-and-feel based on the feedback that they received during the review of their prototypes.

3.1.1.1. General [Req 1] The “Home” screen shall include the title “FPMS System.” [Req 2] The “Home” screen shall display the set of buttons presented in Table 1. Table 1: Buttons and functions presented in the main screen of FPMS. Button label Function Create Flight Plan Navigate to the screen that allows the user to create, save, and submit a flight plan to the TGF. Manage Flight Plans Navigate to the screen that allows the user to manage and submit flight plans to the TGF. Navigate to the screen that allows the user to view and manage aircraft, routes, and waypoints Manage Resources information. Set Preferences Navigate to the screen that allows the user to set flight preferences and map view preferences. Start Flight Navigate to the screen that prepares the Google Glass for the selected flight.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 11

Software Requirements Specification

[Req 3] All screens shall have the title of the screen that corresponds to the button labels given in Table 1 and other pages launched by the system.

3.1.1.2. Create Flight Plan Screen [Req 4] The “Create Flight Plan” screen shall display the labels and GUI elements as described in Table 2. Table 2: GUI Elements for the Create Flight Plan screen Label GUI Element Type Comment Name Textbox Unique name of the flight plan Type of flight plan. IFR will be the default type Type Non-modifiable textbox

Aircraft ID The tail number of the aircraft. The menu will be Drop-down menu populated by the aircraft stored in the FPMS. Aircraft Type and Special Equipment Non-modifiable textbox The type of aircraft and how it is equipped.

True airspeed in Textbox The planned cruise true airspeed of the aircraft in knots. knots

The identifier of the airport from which the aircraft is Departure Point Drop-down menu departing. Destination Point of intended landing given as an identifier of the Drop-down menu destination airport Textbox with a calendar Date of Flight The date of the flight using the mm/dd/yyyy icon option Textbox Time will be entered using military time Departure Time Drop-down menu (time Times will be stored as Universal Time Coordinated. zones) The planned cruising altitude or . The Cruising Altitude Textbox textbox will be populated based on the Aircraft ID and normal cruising altitude for this aircraft. Radio buttons labeled as follows: Shortest Route Proposed route of flight. The route will be made up of a Route Fastest Route set of waypoints. Archived Routes Custom Route Estimated Time Planned elapsed time between departure and arrival at Enroute Textbox the destination. Time will be calculated based on routes and airspeed The amount of fuel on board the aircraft, in hours and minutes of flight time. The textbox will be populated Fuel on Board Non-modifiable textbox based on the Aircraft ID and characteristics such as normal speed, and fuel consumption rate. Airports of intended landing as an alternate of the Alternate Airports Three dropdown menus destination airport. Pilot's Name Textbox Name of the pilot

Contact Information Textbox Contact information for search and rescue purposes. Number Onboard Total number of people on board the aircraft with a Dropdown menu maximum of ten Color of Aircraft Non-modifiable textbox The color helps identify the aircraft to search and

Software Requirements Specification Date Page 2/20/2015 10:07 AM 12

Software Requirements Specification

rescue personnel. Contact Information Textbox Means of contacting the pilot at Destination Any information the PIC believes is necessary to be Remarks Textbox provided to ATC.

[Req 5] The “Create Flight Plan” screen shall display buttons labeled “Home,” “Save,” “Submit,” “Clear” at the bottom of the page. [Req 6] The “Archived Routes” screen shall display all unique stored routes that match the departure point and destination as shown in Fig. 2.

Fig. 2: Display for Archived Routes [Req 7] The “Archived Routes” screen shall display button labeled “Back.” [Req 8] The “Route Details” screen shall display the routes content as shown in Fig. 3. [Req 9] The “Route Details” screen shall display a button labeled “Back.”

Fig. 3: Display for a Route’s Details. [Req 10] The screen content for the “Custom Routes” screen shall be as shown in Fig. 4.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 13

Software Requirements Specification

Fig. 4: Display for Custom Routes. [Req 11] The “Custom Routes” screen shall display buttons labeled “Save,” “Back,” and “Clear.”

NOTE: The map graphical screen for “Custom Routes” is not specified. Please adopt your team’s method for specifying routes through maps.

3.1.2. Manage Flight Plans Screen [Req 12] The content for the “Manage Flight Plans” screen shall be as shown in Fig. 5.

Fig. 5: Content of the “Manage Flight Plans” screen.

[Req 13] The “Manage Flight Plans” screen shall display buttons labeled “Home,” “Edit,” “Delete,” and “Submit” at the bottom of the page. [Req 14] The “View Details” screen shall display the information from the flight plan as described in Table 2. [Req 15] The “View Details” screen shall display buttons labeled “Home,” “Save,” “Delete,” and “Submit” at the bottom of the page.

3.1.3. Manage Resources [Req 16] The “Manage Resources” screen shall display the set of buttons presented in Table 3. Table 3: Buttons and functions presented in the main screen of the “Manage Resources” interface. Button label Function Aircraft View and manage the aircraft characteristics that are stored in the system. Routes View and manage the stored routes.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 14

Software Requirements Specification

Waypoints View waypoints.

3.1.3.1. Aircraft Screen [Req 17] The “Aircraft” screen interface shall display a checkbox followed by the following summary of the aircraft: Name, Aircraft ID, Aircraft Model number, Aircraft Color. [Req 18] The “Aircraft” screen shall display the following buttons display at the bottom of the page: “Home,” “Back,” “Add,” “Edit,” “Delete.” [Req 19] The “Add” screen shall display the fields shown in Table 4. [Req 20] The “Add” screen shall display the following buttons display at the bottom of the page: “Home,” “Back,” and “Save.” [Req 21] The “View Details” screen shall display the fields shown in Table 4, which are populated with the aircraft details from the knowledge base. [Req 22] The “View Details” screen shall display buttons have the following buttons display at the bottom of the page: “Home,” “Back,” and “Save.” Table 4: GUI Elements for the “Aircraft” screen LABEL GUI ELEMENT TYPE Name Textbox Aircraft ID Textbox Aircraft Model Textbox Aircraft Color Textbox Minimum Cruising Speed Textbox Normal Cruising Speed Textbox Maximum Cruising Speed Textbox Minimum Cruising Altitude Textbox Normal Cruising Altitude Textbox Maximum Cruising Altitude Textbox Fuel Consumption Textbox Fuel Consumption Rate Textbox

3.1.3.2. Routes Screen [Req 23] The “Routes” screen interface shall display a summary of the route as shown in Fig. 2 for “Archived Routes.” [Req 24] The “Routes” screen shall display the following buttons display at the bottom of the page: “Home,” “Add,” “Edit,” and “Delete.” [Req 25] The “View Route Details” screen shall display as shown in Fig. 6.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 15

Software Requirements Specification

Fig 6: “View Route Details” screen.

[Req 26] The “View Route Details” screen shall display the following buttons display at the bottom of the page: “Home,” “Save,” “Delete,” and “Back.”

NOTE: The more detailed interface for the “Routes” screen is not included. You should consider including distance between waypoints if you are not doing so already.

3.1.3.3. Set Preferences Screen [Req 27] The “Set Preferences” screen shall display the labels and GUI elements as described in Table 5. Table 5 : Input fields for the “User Preferences” screen. Label GUI Element Type Comment Flight Preferences Label for the first group of preferences Checkbox with the following options:

□ Avoid terrain above altitude Airport dropdown box should provide the [textbox] feet. ability to select multiple entries. □ Avoid flying over water. □ Avoid the following airports: [Dropdown box]

Map View Preferences Label for the second group of preferences Checkbox with the following options:

□ Display waypoints. □ Display topographical map. Software Requirements Specification Date Page 2/20/2015 10:07 AM 16

Software Requirements Specification

□ Display topological map.

3.1.4. Start Flight [Req 28] The “Start Flight” screen shall display the flight plan(s) scheduled for the current date using the interface as shown in Fig. 7.

Fig 7: “Start Flight” screen.

[Req 29] The “Start Flight” screen shall display the buttons “Home” and “Start,” at the bottom of the screen.

3.1.5. Google Glass Screen The Google Glass screen is divided into three cards. The requirements for each are provided next.

3.1.5.1. Card 1 [Req 30] Card 1 of the Google Glass screen shall display the user’s map based on the User’s Preferences, where the displayed map is centered on the area showing the route between the waypoint the pilot has just passed and the next waypoint on the route. [Req 31] Card 1 of the Google Glass screen shall display the text “RTA: “directly to the right of the next waypoint that the pilot is approaching, followed by a number value that represents the RTA value for that waypoint. [Req 32] Card 1 of the Google Glass screen shall display the text “ETA: “directly below the text “RTA; “of the next waypoint that the pilot is approaching, followed by a number value that represents the real-time ETA value for that waypoint.

3.1.5.2. Card 2 [Req 33] Card 2 of the Google Glass screen shall display a geo-referenced weather map, where the displayed map is centered on the area showing the route between the waypoint the pilot has just passed and the next waypoint on the route. [Req 34] Card 2 of the Google Glass screen shall display the text “RTA: “directly to the right of the next waypoint that the pilot is approaching, followed by a number value that represents the RTA value for that waypoint. [Req 35] Card 2 of the Google Glass screen shall display the text “ETA: “directly below the text “RTA; “of the next waypoint that the pilot is approaching, followed by a number value that represents the real-time ETA value for that waypoint.

3.1.5.3. Card 3 [Req 36] Card 3 of the Google Glass screen shall display the text “RTA:” followed by a number value that represents the RTA value in minutes to the next waypoint. Software Requirements Specification Date Page 2/20/2015 10:07 AM 17

Software Requirements Specification

[Req 37] Card 3 of the Google Glass screen shall display the text “ETA:” followed by a number value that represents the real-time ETA value in minutes, to the next waypoint.

3.1.5.4. All Cards: [Req 38] Each card shall display the text “Speed;” followed by the number value the represents the real-time airspeed, in knots. [Req 39] Each card shall display the text “Altitude;” followed by the number value the represents the real-time altitude. [Req 40] Each card shall display the text “Remaining Fuel;” followed by the number value represents real-time amount of remaining fuel, in gallons. [Req 41] Each card shall display the current heading in degrees relative to true north.

3.1.6. Hardware Interfaces There are no hardware interface requirements.

3.1.7. Software Interfaces [Req 42] The FPMS shall interface with the TGF simulator as follows: TBD

3.1.8. Communications Interfaces [Req 43] The system shall use the National Marine Electronics Association protocol to communicate with the GPS receiver.

3.2. Behavioral Requirements

3.2.1. Same Class of User There is only one class of user. As a result, there are no requirements specified for this section.

3.2.2. Related Real-world Objects

3.2.2.1. Flight Plan [Req 44] The types and constraints for the attributes of a flight plan shall conform to those given in Table 6. Table 6: Types for the attributes for the flight plan. Label Type Constraints Name String

Type Constant: IFR

Aircraft ID Char

Aircraft Type and Special Equipment String 120 characters

True airspeed in knots Integer

Software Requirements Specification Date Page 2/20/2015 10:07 AM 18

Software Requirements Specification

Departure Point String Three characters Destination String Three characters

Date of Flight Date Format: mm/dd/yyyy Departure Time Integer 0001-2400 Cruising Altitude Integer Tuple represents: route name, waypoint, latitude, longitude, true course, distance to next waypoint, speed, RTA to next waypoint The “true course” is measured in 0 to 360 degrees clockwise from true north. Ordered list of 8-tuples, where the Latitude: The “latitude” is elements of the tuple are of the following measured in degrees from 0 to Route types: string, string, float, float, integer, (+/-)90 degrees. The longitude is integer, integer, integer) preceded by a minus sign if it is west of the prime meridian (a positive number implies east). Longitu de: The “longitude” is measured in degrees from 0 to (+/-)180 degrees. The longitude is preceded by a minus sign if it is west of the prime meridian (a positive number implies east). Estimated Time Enroute Integer

Fuel on Board Integer Alternate Airports Ordered list of airports of type string Pilot’s Name String

Contact Information String Number Onboard Integer

Color of Aircraft String Contact Information at String Destination Remarks String 100 characters TGF Approval Boolean Default: False

[Req 45] The FPMS shall not allow the departure airport to be the same as the destination airport. [Req 46] The time of departure from the departure point shall be within the operational hours of the selected airport. [Req 47] The time of arrival to a destination shall be within the operational hours of the selected airport.

3.2.2.2. Waypoints [Req 48] The FPMS shall obtain the set of waypoints from the waypoint.xml file upon initialization of the system.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 19

Software Requirements Specification

[Req 49] Each waypoint shall be identified with a unique name consisting of five letters beginning with the characters “VP.” [Req 50] Each airport shall be associated with a waypoint. [Req 51] TBD Description of the waypoint data.

3.2.2.3. Routes [Req 52] A route shall consist of a list of waypoints. [Req 53] A route shall have a minimum of three waypoints.

3.2.2.4. User Preferences [Req 54] The types of the attributes for User Preferences shall conform to those given in Table 7. [Req 55] The user shall be able to display either topographical maps or topological maps, but not both. Table 7: Type for attributes of User Preferences

Attribute Type

Avoid Terrain Above Boolean

Altitude Integer

Avoid Flight Over Water Boolean

Airports to Avoid Boolean

Airports List of airports of type string Display Waypoints Boolean Display Topographical Maps Boolean Display Topological Maps Boolean

3.2.2.5. Weather Forecast Note: The wind direction and predicted weather will be taken from the weather forecast. This version of the system will not be parsing the information to be used in the calculations for the route.

3.2.2.6. Airport [Req 56] The FPMS shall obtain the list of airports from the airport.xml file upon initialization of the system. [Req 57] The types for attributes for an airport shall be as defined in Table 8. Table 8: Attributes for the Airport file. Attribute Type Comments Name String Runway closures String Operational hours Integer 0001 to 2400 hours

3.2.2.7. Aircraft [Req 58] The FPMS shall obtain a list of aircraft from the AircraftCharacteristic.xml file upon initialization of the system. Software Requirements Specification Date Page 2/20/2015 10:07 AM 20

Software Requirements Specification

[Req 59] The attributes stored from the AircraftCharacteristics..xml file shall be as defined in Table 9. Table 9: Attributes of the Aircraft file. ATTRIBUTE TYPE Name String Aircraft ID String Aircraft Model String Aircraft Color String Minimum Cruising Speed Integer Normal Cruising Speed Integer Maximum Cruising Speed Integer Minimum Cruising Altitude Integer Normal Cruising Altitude Integer Maximum Cruising Altitude Integer Fuel Consumption Integer Consumption Rate Integer

3.2.2.8. Real-Time Data [Req 60] The FPMS system shall obtain GPS data as described in Table 10 during the flight. Table 10: Attributes and types of real-time data Attribute Type Valid Values Current time Integer ETA Integer Distance Float 0.0 to 200.0 nautical miles

3.2.3. Stimulus [Req 61] When the user selects “Home” on any screen, FPMS shall redirect the user to the “Home” screen. [Req 62] When the user selects “Back” on any screen, the FPMS shall return to the previous screen.

3.2.3.1. Home [Req 63] When user starts the FPMS, the system shall display the “Home” screen. [Req 64] If the user selects the “Create Flight Plan” button, the system shall display the “Create Flight Plan” screen with a form for data entry as noted in Table 2. [Req 65] If the user selects the “Manage Flight Plans” button, the system shall display the “Manage Flight Plans” screen with all active flight plans. [Req 66] If the user selects the “Manage Resources” button, the system shall display the “Manage Resources” screen. [Req 67] If the user selects the “Set Preferences” button, the system shall display the “Set Preferences” screen. [Req 68] If the user selects the “Start Flight” button, the system shall display the “Start Flight” screen.

3.2.3.2. Create Flight Plan [Req 69] When the user enters information via a textbox or pull-down menu and selects the “Save” button, the FPMS shall store the information. [Req 70] When the user enters Aircraft ID in the Flight Plan form, the FPMS shall populate the following fields from the information stored in FPMS for that aircraft:

Software Requirements Specification Date Page 2/20/2015 10:07 AM 21

Software Requirements Specification

a) Aircraft Type and Special Equipment b) True Airspeed in Knots c) Cruising Altitude d) Color of Aircraft [Req 71] When the user enters Aircraft ID in the Flight Plan form, the FPMS shall calculate the following fields using the formulas given in Table 11 (Note: the True Airspeed and the Route fields are required prior to calculating these values). a) Estimated Time Enroute: Formula 12 b) Fuel on Board: Formula 13 Table 11: Formulas Attribute Formula Notes 1 WCA - Wind Correction WCA = arcSin(sinWCA) Angle n/a 2 sinWCA - sinWCA = WindSpeed The WindSpeed value is SinWindCorrectionAngle *sin(WTA)/Airspeed obtained from the weather information. 3 WTA - Wind Track WTA = TrueCourse - The WindDirection value is Angle WindDirection obtained from the weather information. 4 GS - Ground Speed GS = Airspeed*cos(WCA)+ WindSpeed*cos(WTA) n/a 5 EF - Estimated Fuel EF = AvailableFuel-FC The AvailableFuel value is obtained from the aircraft characteristics informaion. 6 FC - Fuel Consumption FC = TIF*ConsumptionRate The ConsumptionRate value is obtained from the aircraft characteristics information. 7 H – Heading H = TC+WCA n/a 8 TIF - Time In Flight TIF = CurrentTime-StartTime n/a 9 RTA - Required Time of RTA = Distance/GS Arrival n/a 10 TC - True Course TC = mod(atan2(sin(lon1-lon2)* lat1, lat2, lon1, and lon2 are cos(lat2), cos(lat1)*sin(lat2)- waypoint coordinates sin(lat1)*cos(lat2)*cos(lon1- lon2)), 2*pi) 11 D – Distance D = lat1, lat2, lon1, and lon2 are acos(sin(lat1)*sin(lat2)+cos(lat1)* waypoint coordinates cos(lat2)*cos(lon1-lon2))

12 ETE- Estimated Time ETE = DestinationRTA – time of Assumption that the time of departure arrival is on the same date Enroute

13 Fuel on Board Fuel on Board = ETE * The ConsumptionRate value is ConsumptionRate obtained from the aircraft characteristics information.

[Req 72] When the user selects “Shortest Route” for “Route,” the FPMS shall calculate the shortest route from the Departure Point to the Destination i.e., the set of waypoints that constitute the shortest distance.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 22

Software Requirements Specification

[Req 73] When the user selects “Fastest Route” for “Route,” the FPMS shall calculate the fastest route from the Departure Point to the Destination i.e., the set of waypoints that constitute the fastest distance. [Req 74] When the user selects “Archived Routes,” the FPMS shall display the “Archived Routes” screen that is populated with the routes that are stored in the system. [Req 75] When the user selects a route on the “Archived Routes” screen and clicks on “Back,” the FPMS shall return to the “Flight Plan” screen and add the route summary, i.e., the selected line as shown in Fig. 2, to the form. [Req 76] When the user selects “View Details” on the “Archived Routes” or the “Start Flight” screen, the FPMS shall display the route details as shown in Fig. 3, where the Speed and Estimated Time Enroute is based on the entries in the flight plan. [Req 77] When the user selects “Custom Route,” the FPMS shall display the “Custom Route” screen, as shown in Fig. 4, with the following fields populated from the flight plan data entries: a) Departure time b) Speed c) Departure point city, latitude, and longitude d) Departure point true course and distance are blank e) Destination city, latitude and longitude [Req 78] When the user selects “Add” on the “Custom Route” screen, the FPMS shall insert a new set of waypoint data-entry fields. [Req 79] When the user selects “Delete” on the “Custom Route” screen, the FPMS shall remove the previous waypoint and associated fields. [Req 80] When the user selects a waypoint on the pull-down menu on the “Custom Route” screen, the FPMS shall populate the latitude and longitude. [Req 81] When the user selects a waypoint on the pull-down menu on the “Custom Route” screen, the FPMS shall populate the latitude and longitude. [Req 82] When the user selects a waypoint on the pull-down menu on the “Custom Route” screen, the FPMS shall calculate the true course and distance based on the formulas given in Table 11. [Req 83] When the user selects “Save” on the “Custom Route” screen, the FPMS shall calculate Total Distance, Total Time Enroute, and the Destination Distance and RTA. [Req 84] When the user selects “Back” on the “Custom Route” screen, the FPMS shall return to the “Flight Plan” screen and add the route summary that has been saved, if any. [Req 85] When the user selects “Clear” on the “Custom Route” screen, the FPMS shall clear all fields other than the prepopulated fields. [Req 86] When the user selects “Save” on the “Create Flight Plan” screen, the FPMS shall save the flight plan in the knowledge base. [Req 87] When the user selects “Submit” on the “Create Flight Plan” screen, the FPMS shall do the following: a. Check that all entries are valid according to any constraints given in Table 2; b. Save the flight plan in the knowledge base, and c. Submit the flight plan file to the TGF for approval. [Req 88] When the user selects “Cancel” on the “Create Flight Plan” screen, the system shall clear all fields of the Flight Plan form.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 23

Software Requirements Specification

3.2.3.3. Manage Flight Plans The requirements in this section are related to the “Manage Flight Plans” screen unless otherwise noted. [Req 89] When the user clicks on the checkbox, FPMS shall highlight the flight plan associated with the checkbox and de-emphasize any other flight plan that may have previously been selected. [Req 90] When the user selects the “View Details” button, FPMS shall display the corresponding flight plan as shown in Table 2. [Req 91] When the user selects “Submit,” the FPMS shall do the following: d. Check that all entries are valid according to any constraints given in Table 2; e. Save the flight plan file in the knowledge base, and f. Submit the flight plan file to the TGF for approval. [Req 92] When the user selects “Edit” and a flight plan has not been selected, FPMS shall display a standard OK message box that states “Flight plan has not been selected.” [Req 93] When the user selects “Edit” and a flight plan has been selected, FPMS shall display the “View Details” screen. [Req 94] When the user selects “Save” on the “View Details” screen, FPMS shall save the flight plan in the knowledge base. [Req 95] When the user selects “Delete” and a flight plan has not been selected, FPMS shall display a standard OK message box that states “Flight plan has not been selected.” [Req 96] When the user selects “Delete” and a flight plan has been selected, FPMS shall display a standard Yes- No message box that states “Are you sure that you want to delete this flight plan?” [Req 97] When the user clicks on “Yes” in the “Delete” message box, FPMS shall delete the flight plan from the knowledge base.

3.2.3.4. Manage Resources [Req 98] When the user selects “Aircraft” on the “Manage Resources” page, FPMS shall display the “Aircraft” screen as described in Section 3.1.3.1, which is populated with the summary of all aircraft in the knowledge base. [Req 99] When the user selects “View Details” on the “Aircraft” screen, FPMS shall display the screen, as described in Table 4, which is populated with the information from the knowledge base. [Req 100] When the user selects “Add,” FPMS shall display the “Aircraft” screen as described in Table 4 with blank fields. [Req 101] When the user selects “Edit” and an aircraft has not been selected, FPMS shall display a standard OK message box that states “Aircraft has not been selected.” [Req 102] When the user selects “Edit” and an aircraft has been selected, FPMS shall display the “View Details” screen. [Req 103] When the user selects “Save” on the “View Details” screen for an aircraft, FPMS shall save the aircraft information in the knowledge base. [Req 104] When the user selects “Delete” and an aircraft has not been selected, FPMS shall display a standard OK message box that states “Aircraft has not been selected.” [Req 105] When the user selects “Delete” and an aircraft has been selected, FPMS shall display a standard Yes- No message box that states “Are you sure that you want to delete this aircraft?” [Req 106] When the user clicks on “Yes” in the “Delete” message box, FPMS shall delete the aircraft.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 24

Software Requirements Specification

[Req 107] When the user selects “Routes” on the “Manage Resources” page, FPMS shall display the “Routes” screen as described in Fig. 2, which is populated with the summary of all routes stored in the knowledge base. [Req 108] When the user selects “View Details” on the “Routes” screen, FPMS shall display the screen, as described in Fig. 3, which is populated with the information from the knowledge base. [Req 109] When the user selects “Add,” FPMS shall display the “Custom Routes” screen as described in Fig. 4 with blank fields. [Req 110] When the user selects “Edit” and a route has not been selected, FPMS shall display a standard OK message box that states “Route has not been selected.” [Req 111] When the user selects “Edit” and a route has been selected, FPMS shall display the “Custom Route” screen for the route. [Req 112] When the user selects “Save” on the “Custom Route” screen for a route, FPMS shall save the route information in the knowledge base. [Req 113] When the user selects “Delete” and a route has not been selected, FPMS shall display a standard OK message box that states “Route has not been selected.” [Req 114] When the user selects “Delete” and a route has been selected, FPMS shall display a standard Yes-No message box that states “Are you sure that you want to delete this route?” [Req 115] When the user clicks on “Yes” in the “Delete” message box, FPMS shall delete the route from the knowledge base. [Req 116] When the user selects “Waypoints,” FPMS shall display all waypoints that are stored in the knowledge base, sorted by latitude and longitude.

3.2.3.5. Set Preferences [Req 117] When the user selects “Avoid terrain above altitude,” FPMS shall not generate any routes in which the terrain is above the specified altitude. [Req 118] When the user selects “Avoid flying over water,” FPMS shall not generate any routes that fly over water. [Req 119] When the user selects airports from the “Avoid the following airports” dropdown box, the system shall save the list of airports in the knowledge base. [Req 120] The FPMS shall display a warning message when a destination airport is selected that is on the list of airports to avoid. [Req 121] If the user selects “Display waypoints,” the FPMS shall display waypoints on all maps that are displayed. [Req 122] If the user selects “Display topographical map,” the FPMS shall display all maps as topographical maps. [Req 123] If the user selects “Display topological map,” the FPMS shall display all maps as topological maps.

3.2.3.6. Start Flight

[Req 124] When the user selects “Start Flight” on the “Home Screen,” the FPMS shall display all TGF-approved flights that are scheduled for the current date, as shown in Fig. 7. [Req 125] When the user selects “Start Flight” and there are no flights scheduled, FPMS shall display the message, “No flights scheduled for today.” Software Requirements Specification Date Page 2/20/2015 10:07 AM 25

Software Requirements Specification

[Req 126] When the user selects, “View Details” on the “Start Flight” screen, FPMS shall display the route details as shown in Fig. 3. [Req 127] If the user selects a flight plan and selects the “Start” button, the FPMS shall initiate the communication with the Google Glass.

3.2.4. Related Features [Req 128] If the TGF simulator approves a flight plan, the FPMS shall update the flight plan record to indicate that it has been approved, i.e., the field “TGF Approval” shall be set to true.

3.2.5. Functional The functional requirements are integrated into other sections of the SRS.

3.3. Non-behavioral Requirements

3.3.1. Performance Requirements No performance requirements specified at this time.

3.3.2. Qualitative Requirements No qualitative requirements are specified at this time.

3.4. Other Requirements Note: There are no constraints on the programming language used to implement the system, the operating system that the application runs on, or on the version of the operating system.

Software Requirements Specification Date Page 2/20/2015 10:07 AM 26