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

 

 

 

Outline.. 1

Introduction.. 3

General Assumptions.. 4

Website Walkthrough.. 5

AviaSafe, Inc.’s Homepage. 5

Login/Registration.. 5

Services Catalogue. 6

Categories. 6

Sub Tasks. 6

Client Utilities. 6

Order Placement 7

Order Tracking. 7

Order Modification. 7

Other Utilities. 8

Internal User Utilities. 8

Data Management: Aircrafts, Models, Engines, & Clients. 8

Data Management: Categories & Sub Tasks. 8

Data Management: Company Info & Website Settings. 8

Data Management: Order Addition/Tracking/Modification. 8

Project Characteristics.. 10

Resource Estimation.. 14

Function Points. 14

Schedule Estimates. 14

Comparison of Methods. 16

Appendix.. 17

List of Services Provided by AviaSafe, Inc. 17

Preliminary Database Relationships. 19

 

[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 New England. AviaSafe clients will use this web outlet to browse the company’s catalogue of supported services, place/track aircraft maintenance orders, and update their personal profiles. AviaSafe internal users will be able to login with special privileges capacitating them to manage (update/add/delete) aircraft, engine, service, client, and order-related data. Internal users can also change website settings and style elements, as the website is completely database-driven, content and form-wise.

 

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 New England.

 

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.

 

 

AviaSafe, Inc.’s Homepage

 

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]

 

 

Login/Registration

 

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.

 

A new client registers by filling out a form containing his/her contact and login info. The validation process starts with confirming him/her as an owner of a supported aircraft/engine model, and then checks the integrity of the other fields (regular email, phone number, etc… validation). The client will be notified of any missing/invalid required fields.

 

(Note that a client’s profile management is catered for by the same form and validation schema provided above. He/she will be redirected to the same new client registration page with the input fields populated with their current profile data. Clients will not be able to modify critical fields such as name or username to keep them recognizable by the database and consistent with the ownerships data.)

[Top]

 

 

Services Catalogue

 

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.

 

Categories

       

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.

 

Sub Tasks

 

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]

 

 

Client Utilities

 

Upon successful login, a client is taken to a welcome page containing a list/menu of utilities:

 

Order Placement

 

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.

 

Order Tracking

 

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.

 

Order Modification

 

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.

 

Other Utilities

 

This constitutes other minor pages/utilities the client can access, such as logging out, contacting AviaSafe webmaster, or accessing an FAQ page.

[Top]

 

 

Internal User Utilities

 

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]

 

Table 2.  List of Input Items

 

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)

 

 

 

Table 3.  List of Output Items

 

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

 

 

 

 

Function Points

 

 

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]

 

Schedule Estimates

 

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

 

 

 

Table 8.  Lines of Code

 

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]

 

 

Comparison of Methods

 

        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 Schedule Range

 

 

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]