Aviation Maintenance System Software Requirements and
Resource Estimation
Presented by Loai Naamani & Mazen
Manasseh (September ’02)
Posted on December 24, 2002
Static
component (incuding DHTML) of AviaSafe,
Inc. website is available at: http://www.Loai-Naamani.com/AviaSafe/index.htm
Comlete
database-driven AviaSafe, Inc. website might be available at: http://arlington2.mit.edu/AviaSafe
Outline
Data Management: Aircrafts, Models, Engines,
& Clients
Data Management: Categories & Sub Tasks
Data Management: Company Info & Website
Settings
Data Management: Order
Addition/Tracking/Modification
List of Services
Provided by AviaSafe, Inc.
Preliminary
Database Relationships
[Top]
Introduction | General Assumption | Website
Walkthrough | Project Characteristics
| Resource Estimation | Appendix
This document is a preliminary description of the requirements,
processes, interfaces, and resources necessary to develop a web-based
management system to support AviaSafe,
Inc., an aircraft maintenance company in
A hybrid format containing textual description, charts, and sample scenarios (when relevant) was used to better convey the system requirements, processes, and interfaces. A preliminary sketch of the database tables and their interrelationships has also been included to support the justification of some of the system’s underlying assumptions and processes.
Finally, a detailed estimation of the resources (team size and schedule months) is outlined using two methods. The complexity levels assigned to different program characteristics are justified in brief descriptions of the different queries, input forms, and output forms. The results obtained using both methods are finally compared, and a confidence range is accordingly assigned to the final estimates.
[Top]
Introduction | General
Assumption | Website Walkthrough
| Project Characteristics | Resource Estimation | Appendix
o
AviaSafe, Inc.
maintains up to date data on existing aircraft models, engine models, and
aircraft ownerships in
o
Clients cannot
register new planes; ownership registration is catered for by AviaSafe’s
updated database.
o
A client can own
more than one aircraft; whereas a single aircraft is owned by only one client (see preliminary database structure and
relationships in Fig 1)
o
The week is the time unit for scheduling,
parts ordering, and task durations. All duration-related entries in database
constitute multiples of the week
unit.
o
The number of
mechanics is AviaSafe’s only finite resource. All mechanics qualify to work
in all supported services, and are considered available for a given task if they count towards AviaSafe’s total number of employed
mechanics and are not occupied on that given week.
o
The only
hindrance to placing an order is mechanics availability (sufficient to
accommodate all tasks in a given order) on a desired time slot or week. Parts
are assumed readily available during the week after that in which order was
placed.
o
An order
consisting of many tasks takes the duration of its longest task before its
status changes to complete.
o
An order will not
be processed/scheduled unless all of its sub tasks can
be accommodated; since client is assumed to be more willing to schedule all
tasks on a suitable date rather than fly in his aircraft a number of times for
different tasks.
o
An order of
multiple tasks will be treated as a single order with as many task instances.
However, a multiple of the same task will be treated as a single instance of
the task with a frequency attribute
that is greater that one. For example, the task of overhauling two engines will be considered complete only after both engines are served.
o
An order, once
placed (paid for), cannot be deleted/modified by the client. This can be
managed only by an internal user upon receipt of a formal request from client
describing desired modifications (applies only to scheduled orders).
o
AviaSafe’s website serves visitors,
clients, and internal users. Visitors can browse through AviaSafe
services and other general pages, but cannot place/track orders. Orders can
only be made by aircraft owners registered at AviaSafe, hence becoming AviaSafe clients. Orders can also be made by AviaSafe internal users on the behalf of AviaSafe clients.
[Top]
Introduction | General
Assumption | Website Walkthrough
| Project Characteristics | Resource Estimation | Appendix
The AviaSafe website is database-driven, content and form-wise. That is, internal users have virtually total control over most style elements and contents of the website. This will enable the company to keep all online data (from coverage of supported services to the company’s logo and address) up to date and customized to its dynamic taste on all website pages.
The in-depth description of the various website components below is meant to elaborate on the function, logical process, and initial interface design of each component. It is recommended that the reader uses Fig. 2, the components diagram, to explore the processes therein, as it contains hotspots (in softcopy version) linking the reader to the corresponding textual descriptions.
This is the front door to the web site and is accessible to site visitors, clients, and internal users. It contains links to the services catalogue and the login/registration page.
Other possible pages to which the homepage can link a visitor are the Terms of Use, What’s New?, News, and an FAQ.
[Top]
A visitor is prompted to login in order to place/track an order, manage his/her personal profile, and/or assume internal user’s role. Only owners of supported aircraft/engine models (recognized from updated ownerships database) can register as AviaSafe clients, and choose a username/password for future login. Any invalid login attempt will prompt the user to either register as a new client or have his possibly forgotten password automatically sent to him via email (using IIS) upon validation.
[Top]
The services catalogue can be browsed by all website visitors, irrespective of their registration status. It contains up to date textual/graphic descriptions of the services provided by AviaSafe. A list box containing all supported service categories will be available on the homepage, and will auto-navigate to the category of preference.
Services in AviaSafe are grouped under eight distinct categories (see appendix). The proposed database structure allows for a detailed description (in HTML content) for each of the categories. Upon accessing the category page, a hyperlinked listing of sub tasks with their attributes (price, duration, etc…) will be tabulated. Clicking on any of the sub tasks takes the client to the corresponding bookmark on the sub tasks page.
A listing of task-specific descriptions and attributes is presented herein. The visitor can also start defining the desired tasks in an order from this page. Some tasks have a ‘RequiresParts(?)’ attribute, which would force an order to be delayed one week before acquiring the necessary part(s). If the visitor status is client or internal user (a registered visitor who has successfully logged in) with an active login session, he is taken to the order placement page with the task automatically selected (checked). Otherwise, the unrecognized visitor will be redirected and prompted to login/register before placing an order.
(Note that the ‘TaskDescription’ table contains information that pre-characterizes each available service, whereas the ‘Tasks’ table contains all instances of the tasks placed through orders. While ‘CategoryDescription’ and ‘TaskDescription’ tables are pre-defined by internal users and remain intact during order placement, the ‘Tasks’ table is populated with new records whenever a new order is placed.)
[Top]
Upon successful login, a client is taken to a welcome page containing a list/menu of utilities:
The client is presented with a tabulated listing of supported services (grouped by category) with their details summary, along with a checkbox next to each and a dropdown list for specifying service frequency when appropriate (as in the case of overhauling two engines, for example).
The client then proceeds to an itemized summary of the services he selected with the overall duration, sub total, tax, and total price of his order. Along with the summary, the website automatically searches for the soonest time slot at which the order can be accommodated and displays it to the client. The client is then prompted to confirm the order summary and proposed schedule or specify a new time slot if the soonest possible does not suit him. The system will always return the order summary along with the client’s desired time slot (if unreserved) or the closest possible, and ask him/her to confirm.
Upon confirmation, the system searches for this specific client’s last payment method and displays it accordingly (with accompanying details in case of credit card), with the option of selecting an alternative method of payment. This is processed by joining the ‘CreditCards’, ‘Orders’, ‘Aircrafts’, and ‘Clients’ tables and retrieving this client’s last payment method/info. Otherwise, the system prompts the user to select a payment method. A comprehensive order summary (services, total price, desired schedule, and payment info) are finally presented to the client for confirmation.
The client is provided with a tabulated history of orders he/she has placed at AviaSafe, along with their status, placement date, and other details. The status of a placed order (paid for) can be scheduled, in progress, or complete. Selecting an order would take the client a list of its sub tasks and their corresponding details.
An order, once placed (paid for), cannot be deleted/modified by the client. This can be managed only by an internal user upon receipt of a formal request from client describing desired modifications (applies only to scheduled orders). To facilitate the process, while tracking an order, an extra ‘Modify’ option is added next to records (with scheduled status) in the client’s order history table. Once the client elects to modify an order, a ‘mailto:’ hyperlink triggers a customized email with the specific order tracking number as subject and AviaSafe’s contact address as recipient. The client can directly fill the body with his desired alterations and notes to AviaSafe.
This constitutes other minor pages/utilities the client can access, such as logging out, contacting AviaSafe webmaster, or accessing an FAQ page.
[Top]
Upon successful login (as internal user), an internal user is taken to a welcome page containing a list/menu of utilities:
Data Management:
Aircrafts, Models, Engines, & Clients
In datasheet view (facilitated through converting to ‘Data Access Pages’ via MS-Access), internal users can navigate, sort, filter, update, delete, and add any aircraft, model, engine, and client-related data. A memo data type field, ‘NotesByDBA’, in the ‘Clients’ table can be used by internal users (inaccessible to clients) to add any special notes/info about certain clients.
Data
Management: Categories & Sub Tasks
In addition to the capabilities described above, AviaSafe service categories and sub tasks will be described in larger text fields/areas, where internal users can use HTML tags to stylize the descriptions, custom-add hyperlinks, and provide references to picture files or other web content to describe their supported services.
Data
Management: Company Info & Website Settings
Most fields in the ‘CompanyInfo’ table will serve as session or application variables retrieved from the database upon entering the site, and passed on from page to page. Those would include parameters such as the company logo file (among other style elements), the webmaster’s email address, total number of mechanics employed, etc… all of which can be updated in all pages by internal users from the database with no HTML or web authoring know-how required.
Data
Management: Order Addition/Tracking/Modification
Order deletions/modifications will be administered using a Data Access Page, as described above. An order, once deleted, deletes along all related sub tasks. If individual sub tasks need to be deleted/modified, the internal user has to manage that from a similar sub tasks Data Access Page.
Order additions and tracking, however, is managed using the same order placement/tracking process a client goes through in order to force/preserve referential integrity among new orders and their subtasks. An internal user places/tracks an order on the behalf of a certain client by indicating the client’s name (or username) in a conditionally added list box (only during internal user session) to the order placement and order tracking pages.

Figure 2. AviaSafe,
Inc.’s Website Components Diagram
All textual entries constitute
hyperlinks to component descriptions in Website
Walkthrough
Dashed connectors (- - -) constitute hotspots to component
descriptions in Website Walkthrough
[Top]
Introduction | General
Assumption | Website Walkthrough | Project Characteristics
| Resource Estimation | Appendix
In order to provide an estimate of the project schedule and effort needed, a detailed analysis of the various tasks is carried out. The analysis is a twofold process for the web application and the database system:
i) Concerning the database system, the analysis study is conducted in two steps:
First, the main database structure has been designed to provide a better conception of the effort required in accessing and updating data. The proposed structure described in Fig. 1 is illustrated with relationships that define the data access process. Moreover, the design is intended to be efficient in terms of storage space and relationship methods.
Second, having developed a principle data structure, the number of queries entailed for the web application is determined for each page. Table 1 provides a list of all queries with a detailed explanation for the various query functions. In addition, a level of complexity for each query is determined based on the number of relations required for accessing the data. To illustrate, a query that provides direct access to information from a single table is assigned a low level of complexity. A higher level is assigned in cases where data taken from a particular table is recognized only by obtaining an ID defined in a related table.
ii) As to the web application, a thorough examination of the required services has been made and the components of the application have been determined. Tables 2 and 3 describe the various input and output pages to be provided. Each item is assigned a complexity level (1: low complexity; 2: medium complexity; 3: high complexity) based on the development effort entailed. Output pages that involve simple data presentation are assigned a low complexity level while dynamic pages that are linked to the database are assigned a higher complexity level. A similar approach is used for input pages where the method of data input is considered in relation to the user interface to be provided.
Table 1. List of Queries
|
Queries |
Complexity |
Notes |
|
CompanyInfo |
1 |
Retrieves
basic company data (address, contact email, etc…) and web site settings (logo
file, background, internal user login info, etc…) |
|
Login |
2 |
Confirms
registration status of visitor: client, internal user, or non-registered |
|
CategoryDescription |
1 |
Retrieves
the different service category descriptions and any related info |
|
TaskDescription |
1 |
Retrieves
the different task descriptions and any related info (price, duration, etc…) |
|
TaskListing |
1 |
Lists
the currently supported tasks with checkboxes for client to select from
during ordering |
|
QuoteSummary |
3 |
Calculates
the order sub-total, tax, and total while accounting for each task frequency |
|
Scheduling |
3 |
Searches
for the first available time slot that would accommodate all tasks in an
order; searches for the closest time slot to a desired client date in case the
one he specifies is reserved |
|
PaymentInfo |
3 |
Searches
for a previous credit card used by the user and gives him the option of using
it (without retyping information), or otherwise prompts to select/define his
desired method of payment |
|
PlaceOrder |
2 |
Adds
an order to the database upon client confirmation and updates/creates all
relevant fields |
|
OrdersTracking |
1 |
Lists
a client's order history with their status and other attributes |
|
TasksTracking |
2 |
Lists
an order's sub tasks with their status and other attributes |
|
ProfileMangement |
1 |
Retrieves
a client's profile for partial editing |
|
ProfileConfirmation |
2 |
Updates
a client’s profile in case of any changes |
|
Internal_Client |
3 |
Updates/adds/deletes
any client-related information (accessible to internal users only) |
|
Internal_Aircrafts |
3 |
Updates/adds/deletes
any aircraft-related information (accessible to internal users only) |
|
Internal_Models |
3 |
Updates/adds/deletes
any model-related information (accessible to internal users only) |
|
Internal_Engines |
3 |
Updates/adds/deletes
any engine-related information (accessible to internal users only) |
|
Internal_Orders |
2 |
Updates/deletes
any order-related information (accessible to internal users only); order
additions can be placed by user on behalf of client via the same client order
placement process |
|
Internal_Tasks |
3 |
Updates/adds/deletes
any task-related information (accessible to internal users only); tasks can
only be added under placed orders |
|
Internal_Company |
1 |
Updates
any company/settings-related information (accessible to internal users only) |
[Top]
|
Input Items |
Complexity |
Notes |
|
Login |
1 |
Login
form upon order placement and/or tracking for clients, and for internal user
access |
|
ProfileChanges |
3 |
Client/internal
user profile update form |
|
SelectingTasks |
2 |
Listing
of tasks upon order placement; client selects desired tasks and specifies
frequency when applicable |
|
Payment |
2 |
Form
displaying last payment method used (with credit card info) and allowing for any
modifications or payment method changes |
|
Confirm? |
1 |
Prompting
client to confirm order placement (with selected tasks, price totals,
schedule, and payment info) |
|
Internal_Client |
2 |
Data
access page for managing client data (accessible to internal users only) |
|
Internal_Aircrafts |
2 |
Data
access page for managing aircraft data (accessible to internal users only) |
|
Internal_Models |
2 |
Data
access page for managing model data (accessible to internal users only) |
|
Internal_Engines |
2 |
Data
access page for managing engine data (accessible to internal users only) |
|
Internal_Orders |
2 |
Data
access page for managing order data (accessible to internal users only);
order additions can be placed by user on behalf of client via the same client
order placement process |
|
Internal_Categories |
3 |
Data
access page for managing service categories data (accessible to internal
users only); text-area fields will be provided for extended category
description, stylized using HTML (stored as memo data type) |
|
Internal_Tasks |
3 |
Data
access page for managing tasks data (accessible to internal users only);
text-area fields will be provided for extended tasks description, stylized
using HTML (stored as memo data type) |
|
Internal_Company |
3 |
Data
access page for managing general company info and website settings
(accessible to internal users only) |
|
Output Items |
Complexity |
Notes |
|
Homepage |
3 |
Company
homepage is database-driven, form and content-wise, and provides access to supported
services and login pages (among others) |
|
CategoryDescription |
1 |
Displays
service categories description from database and a hyperlinked list of tasks
under this category |
|
TaskDescription |
1 |
A
bookmarked listing of tasks under a specific category |
|
Welcome/Menu |
1 |
Client
menu or welcome page upon successful login; serves as client's control panel
with links to order placement, order tracking, and profile management |
|
OrderSummary/Quote/Schedule |
3 |
Summary
of services, price totals and schedule upon order confirmation |
|
OrdersTracking |
2 |
Listing
of a client's order history with their status and other attributes; links to
order-specific tasks |
|
TasksTracking |
2 |
Listing
of a client's tasks' status for a given order |
|
ProfileConfirmation |
3 |
Validation
of client/internal user profile modifications and display of confirmed
attributes |
|
Internal_Welcome/Menu |
2 |
Internal
user menu or welcome page upon successful login; serves as user's control
panel with links to database management, user profile, and order placement on
the behalf of a given client |
[Top]
Introduction | General Assumption | Website Walkthrough | Project
Characteristics | Resource
Estimation | Appendix
Table 4 summarizes the number of items required at each level of complexity.
Table 4. Summary of
Project Items
|
|
Number of Items |
||
|
|
Low |
Medium |
High |
|
Inputs |
2 |
7 |
4 |
|
Outputs |
3 |
3 |
3 |
|
Queries |
7 |
5 |
8 |
|
Files |
|
20 |
|
Items in Table 4 are multiplied by corresponding factors to obtain a total of 335 function points for the whole project. An influence factor of 1 has been used as illustrated in Table 5.
Table
5. Function Points
|
|
Function Points |
|||
|
Low |
Medium |
High |
Total / Item |
|
|
Inputs |
6 |
28 |
24 |
58 |
|
Outputs |
12 |
15 |
21 |
48 |
|
Queries |
21 |
20 |
48 |
89 |
|
Files |
140 |
|
|
140 |
|
Unadjusted
function-point total |
335 |
|||
|
Influence
multiplier |
1 |
|||
|
Adjusted
function-point total |
335 |
|||
[Top]
Two methods are implemented in estimating a suitable time schedule for the development phase.
Method 1:
An assumed productivity rate of 15 function points per week is used for the estimation. Accordingly, using the function points given above, a man-month schedule of 7.4 is calculated. Equation 1 is then implemented to determine the schedule months.
Schedule in
months = 3.0 * man-months 1/3
As a result, six months are required for a one developer approach as show in Table 6.
Table 6. Method 1
(Schedule Estimate)
|
Assumed productivity (function points per week) |
15 |
|
Man-Months |
7.4 |
|
Schedule Months |
6 |
|
Number of developers |
1.2 |
Method 2:
The second method takes into account the technologies used in the process. Consequently, the function points for the database and web application are presented separately in Table 7. Lines of code are then associated for each tool where a multiplier of 40 is used for the database and 25 for the web application. The project is therefore estimated to consist of 10,500 lines of code.
Table 7. Function Points
by Language
|
Language Function Points |
|
|
Database
(Oracle) |
140 |
|
Web
Application (Perl) |
195 |
|
Total |
335 |
|
Lines of Code |
|
|
Database
(Oracle) |
5600 |
|
Web
Application (Perl) |
4875 |
|
Total |
10475 |
Applying the shortest possible schedule for the project requires 3.5 months for a 5 man-month resource.
Table 9. Method 2
(Schedule Estimate)
|
Shortest Schedule |
|
|
Schedule (months) |
3.5 |
|
Effort (man-months) |
5 |
|
Number of Developers |
1.4 |
[Top]
From Method 1, six months are needed for a team size of 1.2. Since there are two developers working on the project, a good estimation would be around 4 schedule months.
From Method 2, a 3.5-month schedule is based on a 1.4 team size. Again, having 2 developers suggests a 2.5 to 3 months reduced schedule. Estimating time schedule for two persons is not considered linear in relation to the aforementioned results since more time is needed for coordination between the two members.
Since we are restricted within the time frame of the current semester (~3.5 months) and the productivity rate is shared with other projects, the assumed work efficiency is expected to be less than a full time effort. Therefore, the first method yields an unachievable plan. However, the second method is more flexible in accommodating risks that are attributed to our involvement with other tasks. Consequently, a time schedule of 3 - 3.5 months is more realistic for completion of the proposed project.
Using estimate multipliers at the requirement specification stage yields the estimated ranges presented in Table 10.
Table 10. Estimated
|
|
Range |
|
Effort and Size |
3.5 - 7.5 man-months |
|
Schedule |
2.5 - 3.5 months |
[Top]
Introduction | General Assumption | Website Walkthrough | Project
Characteristics | Resource Estimation | Appendix
List
of Services Provided by AviaSafe, Inc
(Sorted by Category)
o
Avionics
Services
§ audio systems
§ communications equipment
§ navigation equipment: FMS, GPS, IRS, EGPWS
§ altimeter/airspeed
§ integrated flight systems
§ air traffic control (ATC)/ultra-high frequency (UHF) traffic collision and avoidance system (TCAS) and/or traffic collision alert device (TCAD) ultra-high frequency equipment (UHF)
§ enhanced ground proximity warning systems
§ weather or atmospheric (lightning) avoidance radar and/or detection systems
§ flight data recorders and cockpit voice recorders
§ cabin entertainment and in-flight television
o
Calibration
§ pressure/vacuum gauges -- all types, 0 to 10,000 psi
§ push/pull scale -- compression/tension measurement
§ torque wrenches -- click type, beam, dial
§ cable tensiometers -- American or British
§ dial indicators/micrometers
§ calipers
§ platform scales
§ protractors
§ multimeters
§ oscilloscopes
§ digital thermometers
§ thermometers -- contact, non-contact, surface sensors, mercury, infrared (+30°c to +250°c)
o
Composites
§ acrylic window services
§ complex shape composite parts
§ composite and bonded structure repairs
§ composite headliners, window ledges and side ledges
§ custom air conditioning ducts
§ custom component applications
§ SRM approved composite repair of radomes, fairings and gear doors
§ vacuum forming fabrication and repair of sheetmolded compound plastics
o
Component
& Accessory Services
§ actuators
§ brakes
§ gyro overhaul
§ hydraulic components
§ landing gear overhaul
§ limiters
§ linear load applicators
§ mechanical actuators
§ NICAD or lead acid battery service
§ pneumatic valves
§ regulators
§ rotating beacon service
§ screw jacks
§ servos
§ sheet metal repair and fabrication
§ shut-offs
§ wheels
o
Engines
§ engine overhaul
§ core zone inspections (CZI)
§ major period inspections (MPI)
§ hot section inspections
§ engine removal and reinstallation
§ component repair
§ shut-offs
o
Interiors
§ cabinetry
§ upholstery
§ cabin electrical
§ interior fabrication and installation
o
Non-Destructive
Testing
§ radiographic (x-ray)
§ eddy current
§ magnetic particle
§ dye penetrant
§ ultrasonic
o
Paint
§ etch and alodine preparation
§ bright work polishing
§ thorough detailing of the final product
§ customized paint color matching
[Top]
Data Model implemented in Visio

[Top]

[Top]