200 likes | 313 Views
E911 Provisioning System. Software Engineering Senior Project. Introductions. Software Engineering Team: Kevin Francis • Derrick Hudson • Mike O’Connor Jason Plaisted • Jessica St Croix Corporate Sponsor: Jon Templin, PAETEC Communications Faculty Advisor: Professor Judy Englert.
E N D
E911 Provisioning System Software Engineering Senior Project
Introductions Software Engineering Team: Kevin Francis • Derrick Hudson • Mike O’Connor Jason Plaisted • Jessica St Croix Corporate Sponsor: Jon Templin, PAETEC Communications Faculty Advisor: Professor Judy Englert
Agenda • E911 • Problem Domain • Motivation • Goals • E911 Provisioning System • Technologies • Process • Risks • Results • Lessons Learned • Demo • Future Work
E911 Background • Enhanced 911 upgraded original 911 system in early 1970s • Automatically retrieves caller information (Name, Telephone #, Address) • Routes call to proper dispatcher based on location • Requires constant updating of database
Issues Addressed by E911 • Your mailing address does not always match the actual location of your business or residence • A location may reside in a combination of different fire, police, and emergency districts • Inaccurate information can waste time or have catastrophic consequences
Problem Domain • PAETEC is required to provide & maintain E911 data for all their customers • Internal E911 Provisioning System enables employees to add/edit customers, addresses, and telephone numbers • Program runs each night to gather changes and send them to Incumbent Local Exchange Carriers (ILECs)
Motivation • Existing system is inefficient and cumbersome to users • Parts of system do not logically model real world • Software difficult to maintain due to discontinued third party tool • Current employees have expertise in newer languages
Goals • Rewrite E911 Provisioning software using up-to-date technologies • Improve maintainability of software • Increase usability of the user interface • Fix data model problems stemming from initial design
E911 Provisioning System • PAETEC employees maintain customer E911 information through user interface • Information stored in local database • Data extraction program creates individual record files from local database in each ILEC’s required format.
Technologies • Resin Enterprise Application Server • Currently used by PAETEC • Java 2 Enterprise Edition Specification • Enterprise Java Beans • Improves scalability and maintainability • Java Server Pages • Replaces obsolete Oracle Web Design • Oracle Relational Database Management System (RDBMS) • Currently used by PAETEC
Process • Incorporate software development process with project management techniques • Assign roles to team members • Document requirements, architecture, design, and testing phases • Plan Tasks • Use MS Project and Excel • Track time invested per task • Project progress based on current work rate
Risks • Correct operation is critical - malfunction could indirectly lead to injury or loss of life • Able to directly compare output to old system • Development team unfamiliar with Resin application server • Delays impacted schedule • Team lacked expertise with Oracle • Sought help from PAETEC database administrator • 20 Week time constraint • Uneven distribution of workload late in project
Results • Statistics • 139 Requirements • 7934 lines of code • 146 Test cases, 18 initial failures (12%) • 0 Known remaining bugs • ~800 Hours of work during second quarter • New E911 Provisioning system is fully functional • Goals of project have been met
Lessons Learned • Separate development and test teams would have been more efficient • Gain required expertise with tools at beginning of project • Support from experienced Oracle DBA was invaluable • Better enforce separation of responsibilities between roles
Lessons Learned (cont.) • Distribute more work towards beginning of project • Project tracking provided some warning signs of potentially falling behind schedule • Parallel work allowed functionality of system to quickly come together
Future Work • PAETEC will take over control of the project • They will perform independent testing in production environment • Will review product and make any additions and/or changes • Roll product out for use within company