Since I haven't seen any suggested additions yet, I'm going to assume I'm the only one who is still up and call it a night. I filled in what I could.
%% LyX 1.3 created this file. For more info, see http://www.lyx.org/. %% Do not edit unless you really know what you are doing. \documentclass[12pt,oneside,english]{book} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \setcounter{secnumdepth}{3} \setcounter{tocdepth}{3} \usepackage{varioref} \usepackage{setspace} \onehalfspacing \makeatletter \usepackage{babel} \makeatother \begin{document} \title{Requirements Definition} \author{by Ghetto Software, Inc.% \footnote{Ghetto Software Core Team is: Nathan E. Moore, Cord Cornell Scott, Vicki Faulkner, B. Lee Adamson, Damian Christey% }} \maketitle \tableofcontents{} \part{Introduction} \chapter{Purpose} The purpose of this document, \char`\"{}Requirements Definition\char`\"{}, is to clarify the requirements as stated to Ghetto Software Inc. by the client Operations Manager Gregory Mundy for the West Virginia International Airport. This document will be the foundation for development of Clear Skys 1.0. The intended audience for this document are those stakeholders and owners of West Virginia International Airport. This will give WV International Airport an opportunity to clarify and ambiguous requirements and to correct any mistakes made on our part regarding the functionality of this system. \chapter{Scope} \section{Product name} The product being developed by Ghetto-Software Inc. is called Clear Skys 1.0.% \footnote{Yes, we spelled \char`\"{}skies\char`\"{} wrong on purpose.% } \section{What it will/will not do} The purpose of this software support system is to replace an existing software system at West Virginia International Airport which has been in existence for fifteen years. The current system in place supports: safety, security, efficiency, and compliance with FAA rules of the Airport. The new system will consist of four major subsystems: Air Space Manager, Ground Operations Manager, Gate and Schedule Manager, Emergency Management. This software, at a minimum, will: handle the simultaneous takeoff and departure schedules of multiple aircrafts, administer gate and runway assignments for aircrafts, provide an interface for a variety of users to view different types of information about aircraft schedules, and facilitate landing of unscheduled aircrafts in emergencies. This system is not intended to be an autopilot, nor is it intended to replace the air traffic control persons. It is our opinion that all crucial decisions should be made by humans in a critical system such as this. The system can suggest possible decisions, but these should always be able to be overridden. \section{Benefits, objectives, and goals} The goal of Ghetto Software is to provide our customers with the highest quality customized software, at the lowest possible price. This may seem like a contradiction, but by utilizing innovative techniques and cutting edge technology, we make it a reality. We were given the following specific objectives for our system: \begin{itemize} \item It must be reliable. \item It must be maintainable. \item It must be expandable. \item It must meet the new FAA requirements. \item It should make scheduling of flights more efficient. \item It must be fail safe. \end{itemize} Our plan for Clear Skys is to implement as much of the system as possible using existing Free / Open Source solutions. This will benefit the customer by reducing development time and cost, and will result in a more stable and secure system. \chapter{Definitions/Abbreviations} \begin{description} \item [AMS:]Airspace Management System \item [ATC:]Air Traffic Controller \item [EMS:]Emergency Management System \item [FAA:]Federal Aviation Administration \item [GSI:]Ghetto Software, Inc. \item [IEEE:]Institute of Electrical and Electronics Engineers \item [NWS:]National Weather Service \item [TRACON:]Terminal radar approach control \item [WVIA:]West Virginia International Airport \end{description} (more to be added as document develops) \chapter{References} See Bibliography.\vpageref{bibliography} \chapter{Overview} Part II of this document, entitled General Description, will place Clear Skys 1.0 in perspective with regard to integration of other systems. Part II will describe how the system will be developed and the intended installation method. It will provide a list of functions of the four major subsystems defined in this document. It will describe the intended user with regards to education level, experience, technical expertise, and user training. It will define the general constraints as put forth by the customer WVIA, which will limit the design/implementation of the system including: regulatory policies, hardware limitations, and interfaces to other applications. The General Description segment will also assess and evaluate risk and interdependency with external systems/sources. \part{General Description} \chapter{Perspective} \section{The big picture} Our product, Clear Skys, is intended to be an integrated part of a complete airport management system. Consequentially, it must interface with other systems within and outside of the airport, as well as with a variety of end users. In this section we will outline what those interfaces are, and what type information will be passed across them. \section{User interfaces} \begin{itemize} \item Air Traffic Controller (ATC) interface: This graphical interface will simplify the tasks of the air traffic controllers by bringing information from many different sources together. The main screen will show the real-time output of the radar system. All planes in the airspace will be represented by icons. Selecting a plane icon will bring up information from our Airspace Management System and Scheduling System that will include flight number, TRACON flight ticket, and scheduled landing time. Weather information will be shown in real-time. When the Airspace Management System detects that a plane is clear to land or takeoff, its icon will be highlighted in the radar window and the ATC will be prompted to establish radio communication with the plane. If the AMS detects that two planes' flight paths conflict, the ATC interface will show recommended corrective actions and automatically establish radio contact with both planes. Any alerts from the Emergency Management System will be displayed on the ATC interface, so that they can send warnings to aircrafts. \item Ground Operations interface: This graphical interface will mainly show information from the Scheduling System, in order to facilitate the assignment of ground crews to arriving flights. The interface will likely be a table of gates and scheduled arrival times, updated in real-time. The ground operations manager will also be responsible for updating the status of planes as they arrive and depart. Alerts from the Emergency Management System will be displayed on the Ground Operations interface, so that fire/rescue crews can be deployed if necessary. \item Gate interface: These computerized displays will be the passengers' primary source of information at the airport. Up to the minute information displayed at each gate will include flight numbers, scheduled arrival times, flights already arrived/departed, and any delays. A central display will direct passengers to the correct gates. \item Web interface: This will be a simple interface for passengers and their families to get up to the minute information about flights, arrival and departure times, and any delays. Information will be looked up by flight number. Links will be provided to weather services. \end{itemize} \section{Other Components} \begin{itemize} \item Radar: The airport has a radar system onsite, to which we have been told there is a software interface. Coordinate data for all planes within range of the radar will feed into our Airspace Management System and also directly to the air traffic controller interface. \item TRACON: Our Airspace Management System will have continuous two-way communication with TRACON using its flight strip protocol. As planes enter the airspace, the AMS will receive the flight strip data from TRACON, and will pass on an updated flight strip as the plane leaves the airspace. \item FAA: When a new flight is added through the Schedule Manager, the system will contact the FAA to verify the flight plan, and receive the information to generate a flight strip, which is then passed on to the Airspace Management System upon takeoff. \item Weather: Weather data is freely available from several online sources. This data will be analyzed by our Emergency Management System, which will generate alerts in the case of severe weather which would affect normal airport operations. Weather data is also streamed to the Air Traffic Controller interface. \item Planes: All communication between air traffic controllers and planes will be by radio. Our system will try to simplify communications with planes, by interfacing to software controlled two-way radio hardware, so that air traffic controllers can {}``point and click'' to contact a plane. \end{itemize} \chapter{System Evolution} \section{Life cycle model} The system will be brought into affect using a modified linear sequential model. Due to the inherent risks involved with the problem an incremental or component based approach lacked practicality. \section{Installation method} Modularity of each subsystem is still a priority as each will be deployed for parallel testing along side the current system sequentially to minimize risks and increase the comprehensiveness of testing. This style of deployment will ease integration issues while the subsystems are installed individually. Modules are to be developed separately each following the linear-sequential model until deployment. In this situation it is crucial that the responsibilities of the current system are not immediately handed off to the new system. Parallel testing will ensure that all functionalities are present before final installation occurs. \chapter{Functions} \section{Airspace functions} \begin{description} \item [clear\_for\_takeoff]This function takes into consideration the states of runways and locations of other planes and gives the air traffic control staff notice that another flight is clear to take off. \item [clear\_for\_landing]This function takes into consideration the states of runways and locations of other planes and gives the air traffic control staff notice that another flight is clear to land. \item [send\_to\_FAA]Function for communication with the FAA. This allows the flight plans and other pertinent data to be filed with the FAA. \item [get\_from\_FAA]Function for communication with the FAA. This allows data from the FAA to be received by the system and its users. \item [get\_radar]This is the systems interface with the existing radar system. The Radar data is processed for internal system usage. This is a prerequisite function for flight tracking and is used by other internal and external sources. \item [get\_weather]This function is for the acquisition of weather related data from the national weather service. This relies on externally available services from the NWS. \item [hold\_flight]This function makes recommendation to send a flight into a holding pattern. This is a system recommendation function to limit the risks of collision and other incidents. The actual final decision as always will be made by the ATC staff. \item [get\_flight\_ticket]The flight ticket is acquired for each flight as the plane enters the airports airspace. This service relies on the TRACON system. \item [increment\_flight\_ticket]The flight ticket is passed on for each flight as the plane leaves the airport's airspace. This service relies on the TRACON system. \item [near\_collision\_check]The purpose of this function is to check for appropriate spacing between flights. If this spacing is compromised the system will give notice to the ATC staff and offer a recommendation to solve the problem. The actual final decision as always will be made by the ATC staff. \end{description} \section{Ground functions} \begin{description} \item [gate\_clear]Checks the status of a gate to see if it clear or not. Also determines if the gate is usable based on scheduling requirements. \item [assign\_gate]The system will assign a gate to each flight based on flight-specific requirements and scheduling needs. \item [runway\_clear]Reports the status of a runway. Indicates usage by flights and also closures due to emergencies or weather. \item [clear\_runway]Initiates a system recommendation to clear the runway for emergencies and other incidents. Relies on communication with Emergency Management Subsystem. Allows for prioritized usage of the runway for emergency purposes. The function also communicates these needs to the scheduling subsystem. \item [clear\_taxiway]Initiates a system recommendation to clear the taxiway for emergencies and other incidents. Relies on communication with Emergency Management Subsystem. Allows for prioritized usage of the taxiway for emergency purposes. The function also communicates these needs to the scheduling subsystem. \item [clear\_gate]Reserves a gate for flights with emergency or priority status. \item [plane\_has\_arrived]This is a function designed to update the status of the flight by indicating whether or not the plane has landed. \item [plane\_has\_departed]This is a function designed to update the status of the flight by indicating whether or not the plane has taken off. \end{description} \section{Scheduling functions} \begin{description} \item [add\_flight]This adds a flight to the schedule. \item [delete\_flight]This Removes a flight from the schedule. \item [update\_schedule]This functions always for the modification of the schedule due to delays and other unforeseen factors. This may also include weather- related problems and emergencies. \item [update\_webserver]This allows for the web interface portion of the system to be updated with new information. \item [update\_log]This function adds any new information to the airports flight log database. \item [search\_log]Function allows access to the flight log database at such times when this information is required. \item [freeze\_schedule]This is dependent on other internal functions contained in the EMS. All flights on the schedule can be frozen in times of emergency or other incidents. \item [reset\_schedule]Resets the schedule manager after a schedule freeze. \end{description} \section{Emergency functions} \begin{description} \item [hold\_all\_flights]In the case of an emergency the system enable all flights to be held on the ground. Integration with the other subsystems allows for efficient management of emergencies. \item [reset\_all\_flights]This functions is integrated with other internal functions in the other subsystem to allow a smooth reactivation of airport activities follow an incident. \item [emergency\_landing]In the case that a flight requests an emergency landing this functions will allocate airport resources for that flight. This involves the clearing of runways, activation of the hold flight functions, and enabling functions in other subsystems to update the schedule and clear runways and gates. \end{description} \chapter{User Characteristics} \section{Organization} (Note: Add relational diagrams? before finish draft) \section{Technical expertise, experience, level of education} There are two groups that will require training on the new system. \begin{enumerate} \item Systems Technical \& Support Personnel \begin{enumerate} \item Needs a minimum Associate Degree, Bachelor's preferred, Computer Science or Information Systems. \item Knowledge of Hardware maintenance recommended. \end{enumerate} \item Air Traffic Control Personnel \begin{enumerate} \item required a minimum of a Bachelors of Science, Computer Science or Information Systems \item Strong Mathematics and Logic is recommended. \end{enumerate} \end{enumerate} \section{Training} The System User training will be completed in stages. The staff of Ghetto Software will train the Technical Support personnel, who will in turn train the Air Traffic Control staff. GSI will remain on hand to assist for one(1) year. \chapter{General Constraints} \section{General Constraints} \begin{itemize} \item WV International Airport will not sacrifice any part of their requirements to reduce the cost or time needed for implementation of Clear Skys 1.0. \item Clear Skys 1.0 must comply with FAA regulations regarding airport operations. \item Clear Skys 1.0 must be implemented with a failsafe backup service. \item The entire system, including all hardware and software, will be housed onsite at WV International Airport. \item The hardware will be limited to architectures which are compatible with the FAA systems, ground radar systems, and air radar systems. \item Clear Skys 1.0 will interface with FAA systems, ground radar systems, and air radar systems. It will also interface with a web-server hosted on site which will provide real-time schedule information for customers of the WV International Airport. \end{itemize} \section{Regulatory policies} This software must comply with all relevant FAA and local regulations. \section{Hardware limitations} WVIA has indicated that they are planning on replacing all their existing computing hardware, currently PDP11 architecture. We recommend that they purchase PC compatible hardware on which to run our system, as it is cheaply available, and will be easier to replace as hardware wears out. However, our software will be designed to be portable to other architectures, including but not limited to: Macintosh Power PC, and Sun Sparc. Portability will help us {}``future proof'' our software, to avoid the problem that WVIA now faces; dependency on an archaic hardware platform that is no longer produced. All critical systems will have redundant backup systems and automatic fail-over. \section{Interfaces to other applications} Clear Skys 1.0 is designed to run in a Unix environment, with GNU/Linux specifically in mind. All of our software will be portable to other Unix operating systems, including but not limited to: FreeBSD, Sun Solaris, IBM AIX, and Mac OS X. Standard Unix user accounts and groups will be used to provide the separation of user privileges that our system requires. We favor Linux as an operating system platform for several reasons. First is the cost savings to our customer. Linux is available for free under a non-restrictive licence that allows us to install it on as many computers as necessary. Commercial support is available, if needed, through many companies that provide Linux distributions. Second is reliability. Linux is the continuation of the heritage of Unix operating systems, which have been used in mission critical systems since the 1970s and noted for their stability. The final reason is security. The Open Source development model results in more secure software than closed source, because the more people looking at the source code, the faster bugs can be found and fixed. Regular security updates can be entirely automated in Linux. As security is a major concern of WVIA, the system we are building must have a secure operating system at its foundation. \chapter{Assumptions and dependencies} \section{General assumptions} Ghetto Software Inc. assumes that after one year of training involving the technical staff at WV International Airport, that those technical staff will be competent to train other users of the system and to track and correct errors found in Clear Skys 1.0. \section{Risk assessment} Clear Skys 1.0 will be implemented in a way which will minimize risk to the current systems operations of WV International Airport. Risk is not acceptable due to the human lives and nature of the property involved in daily operations. \begin{thebibliography}{1} \bibitem{IEEE830}\label{bibliography}IEEE 830 - Guideline for standard requirements definition documents. \bibitem{SEbook}Pressman, Roger. Software Engineering: A Practitioner's Approach. New York: McGraw-Hill, 2001.\end{thebibliography} \end{document}