Final Project CS-421 section 002/3- Spring 2006 Final Project Dr Ali Obaidi Aviation Data Analysis General Purpose: Aviation Data Analysis Corp (ADAC) is a company that provides daily analysis of aviation data to the aviation community. ADAC receives periodic data from various sources. Using the data, ADAC produces daily analysis reports; then shares them with the aviation community. Currently, ADAC has one department that both receives and analyzes the data. They wish to split this department into two. The new proposed department will be responsible for receiving the data; where the old department will be in charge of analyzing the data. For the new department, the company wishes to hire a team of 5 or 6 software developers. The new department responsibility will be to provide a timely, accurate, and easy-to-use data for the old department. Description: The new department will determine the challenges that aviation analysts face and act upon them. One of the main targets the new department decided to do in order to achieve these requirements is to build a central data repository system to store all the necessary raw aviation data in a database and provide easy access and intelligent interface for the analysts to acquire the data. The raw aviation data is coming from different outside resources. Part of the analyst’s job is to identify the needed data and ask the new department team to add it to the list of current available data sets. What you need to do? The project will be divided into phases. After the successful completion of three or four phases, a demo of the progress will be required (as indicated in the tentative schedule on the website). All will be required to give and attend these demos. Below are the phases (more phases will be added incrementally): Phase 1 Step 1 Study the requirements above and write down questions that the new team should ask the analysts (from old department) the analysts should ask the team © Dr Ali Obaidi 1 Ch. 1 & 2 Final Project CS-421 section 002/3- Spring 2006 Step 2 Step 1 Step 2 Step 1 Step 1 Step 1 the analysts should ask about the software product that is to be built the team should ask themselves about the software product that is going to be built Identify all the processes that are going to be built as part of the above requirements Phase 2 Provide a comparative study of applying the following prescriptive models on your design. You study should takes into account the assumptions that you have done in phase I above: 1. Waterfall model 2. Incremental process model 3. RAD model 4. Prototyping 5. Spiral Your study should include the advantages and disadvantages for each process flow and the impact of your choice on speed and quality Arrange 30 min meeting with your customer to elicit his requirements. Email your customer at the following address (aobaidi@gmu.edu). Please indicate your group number, the name of the facilitator for the meeting and the available dates and times. If arrangement can not be made in person (preferable), then a telephone conference meeting may be arranged. The outcome of the meeting should be fully documented. Phase 3 Please download the zip file CS421.zip. The zip file contains the schema design for two data sets: oooi and ncwd (file cs421.sql), the data for the two data sets (oooi and ncwd txt files) and the data loading procedures (oooi and ncwd ctl files). During the next class, I will explain the procedure for constructing the database in greater details. Phase 4 Mid term – You need to provide 1. A maximum of five slides to explain the project phases 2. I may choose any member from a group to present the slides or I may choose more than one member 3. Full documentation on phases one, two and three. Do not forget to include a copy of the presentation slides 4. This is a 20 percent of your final grade. Five percent will be given to presentation and slides and 15 percent to the organization and content of your report. 5. All must attend. No excuses. Phase 5 Identify a set of common process. The customer provides the list of processes and your job is to document them in more details © Dr Ali Obaidi 2 Ch. 1 & 2 Ch. 3 & 4 Ch 5 Ch 7,8 Final Project CS-421 section 002/3- Spring 2006 Answer the following questions on each process: a. Name of activity you are responsible for (e.g. New capability process): b. c. Does activity currently exist [Yes/No]: d. Identify when activity ends: Example: when the new feature is deployed, tested and released e. Specify work areas that this activity spans [management, planning, development, testing, architecture, customer relation, process improvements, configuration management, quality assurance, other]: f. List the inputs to this activity (in an ordered list i.e. 1., 2., etc) : g. List the outputs from this activity (in an ordered list i.e. 1., 2., etc): h. How often does this activity occur[once, on going, as needed, daily, weekly , monthly, upon request]: i. List any tools used to aid in this activity such as HW, SW and/or resources. Examples: cvs, Msoffice, UML: j. Rank the process(es) you are following for this activity[add hoc, well defined, well defined and documented, well defined and measurable]: k. Describe the level of impact of activity on Management/Developers and customers[high, medium, low, variable, none]: l. Is this survey completed[Yes/No]: List triggers for this activity (entry point) in an ordered list (i.e. 1., 2., etc): Examples: request for a new feature Process list: 1. New capability to a) Obtain, store and track request for new feature b) Gather and store requirements for new feature c) Implement new feature or capability Example of a capability is new dataset, adding new feature to existing one, new web page, etc 2. Bug fixes a. Initiate a bug b. Assign bugs to developers c. Implementing a fix for a bug d. Close a bug 3. Data loading – management and reporting a. Managing daily loads b. Daily data acquisition reports 4. System metrics a. Monthly downtimes b. Daily loads c. Monthly trends d. Usage © Dr Ali Obaidi 3 Final Project CS-421 section 002/3- Spring 2006 Example is distinct users based on time of day or week or month etc. Machines downtime, system downtime (e.g. web server, Oracle server). 5. Software release a. Announcing the release b. Regression testing i. Development system ii. Production system c. Configuration management and tagging 6. Backups and restore a. Backup the system i. Database level ii. OS level b. Restore procedure when necessary i. Database Level ii. OS level 7. Training plans for customers and new developers a. Instructor led training b. Help menus c. Other training and seminars Step 2 Draw swim lane diagram for each of the processes above indicating the stakeholders, the activities and the time span. Phase 6 Step 1 This phase will demonstrate an added feature to your system. We would like to enhance the OOOI data by creating a new table from current oooi_common_stage table. The new table has the following fields OOOIDATAID[link it to the oooidataid from oooistage table] GMTDATE [date format], TAXIOUTTIME [offtime – outtime] in minutes, TAXIINTIME [intime-ontime] in minutes, AIRBORNETIME [ontime – offtime], BLOCKTIME [ sum of [TAXIOUTTIME, TAXIINTIME, AIRBORNETIME] To create the table use the following command CREATE TABLE OOOIfinal ( OOOIDATAID NUMBER(16) PRIMARY KEY GMTDATE DATE, TAXIOUTTIME number, TAXIINTIME number, AIRBORNETIME number, BLOCKTIME number ); © Dr Ali Obaidi 4 NOT NULL, Final Project CS-421 section 002/3- Spring 2006 In order to populate the new table use the following Insert into oooifinal Select oooidataid, to_date(gmtdate,'YYYYMMDD'), (to_date(gmtdate||offtime,'YYYYMMDDHH24MI')to_date(gmtdate||outtime,'YYYYMMDDHH24MI'))*24*60, (to_date(gmtdate||intime,'YYYYMMDDHH24MI')- to_date(gmtdate||ontime,'YYYYMMDDHH24MI'))*24*60, (to_date(gmtdate||ontime,'YYYYMMDDHH24MI')- to_date(gmtdate||offtime,'YYYYMMDDHH24MI'))*24*60, (to_date(gmtdate||ontime,'YYYYMMDDHH24MI')- to_date(gmtdate||outtime,'YYYYMMDDHH24MI'))*24*60 From oooi_common_stage Where substr(offtime,1,1)<>'*' and substr(outtime,1,1)<> '*' and substr(ontime,1,1) <>'*' and substr(intime,1,1)<> '*'; Phase 7 Step 1 1. Goto OPENSVN.csie.org 2. Under the “Create a New Project” tab, fill in the “Project Name”, “Email” and “Another Email”. Make sure to allow anonymous checkout then click the “GO!” button 3. You will receive an email that will confirm your project name. The email contains your project password too. 4. The repository will take around six hours to be created. Once created goto OPENSVN.csie.org and click on the “Manage Your Project” tab. a. Insert project name b. Insert your password c. Click on the “Login” button 5. Click on “Access Control” tab and create new users for your self and the rest of your project team. All team members will receive a notification of the new username and password. 6. At this stage you have completely created your configuration management repository. 7. DO NOT proceed to item 8 unless you have finished all the above items. 8. Go to tortoisesvn.tigris.org 9. On the left hand side under “project tools” click download. You will see a table. On row three under “Version 1.3. for win2k/XP or higher click “Dowbload Page” link. 10. Download the subversion (tortoisesvn-1.3.36219-svn1.3.1.msi) and save the file on your hard disk 11. Run the file and follow the instruction. 12. Restart your computer. Step 2 1. Create a new folder on your desktop and give it a name (e.g. ADAC) 2. Open the new folder (ADAC) 3. Create a directory structure for all the project files. For example, lets say your files are classified into database files, documentation, front end files and common files. a. Database: you can have subdirectories such as i. Bin: to hold binaries. For example a shell script that control the loading © Dr Ali Obaidi 5 Final Project CS-421 section 002/3- Spring 2006 ii. Ctl: control files etc.. b. Documentations: you can have subdirectories such as i. Process: to hold process documentation ii. Operation: to hold operational manual etc. c. Front end files: you can have subdirectories to hold your web server docs d. Common files: such files that are common like cronjobs etc.. 4. Once your directory structure is completed, transfer all your project files to the appropriate directories. 5. Go to the top directories on your new folder (e.g. ADAC) and click the right hand mouse button. 6. Click on “SVN Checkout” 7. On the dialogue box insert your URL for the repository. The URL should be something like http://OpenSVN.csie.org/<yourprojectname> . click OK 8. Now you can commit your directories into the repository by highlighting all the directories on your ADAC folder and then click the right hand mouse button and choose SVN Commit 9. Once this is done, go to your project repository and check that all files are committed. 10. After that you can update and commit any new files. Rules 1. The project is implemented in teams of 5 or 6 students 2. Use GMU ORACLE server only 3. The project should have a front page and include your names, student numbers and the following statement: HONOR CODE PLEDGE: "On my honor I have neither given nor received aid on this report" Signature: © Dr Ali Obaidi __________________________________ 6