440 likes | 643 Views
Autism-Genetic Database autism-genetic-db.net. IT490/IT492: Capstone Project Department of Electrical Engineering and Computer Science Client: Dr. Zohreh Talebizadeh Advisor: Dr. Hossein Saiedian James Byars April 25, 2014. Agenda. Acknowledgements Project objectives
E N D
Autism-Genetic Databaseautism-genetic-db.net IT490/IT492: Capstone Project Department of Electrical Engineering and Computer Science Client: Dr. Zohreh Talebizadeh Advisor: Dr. Hossein Saiedian James Byars April 25, 2014
Agenda • Acknowledgements • Project objectives • Development process • Deliverables • Observations (lessons learned) • Concluding remarks • Product demo
Acknowledgements • Advisor: Dr. Saiedian • Client: Dr. Talebizadeh (CMH) • Wife: Molly Byars • Faculty • Professor Tetmeyer and Professor Johnson • Thank you for being here
Agenda • Acknowledgements • Project objectives • Development process • Deliverables • Observations (lessons learned) • Concluding remarks • Product demo
Project Objectives [1/5] • Project for: • IT490 & 492: IT Capstone 1 & 2 • Develop autism genetic database web application • Provides bioinformatics researchers with a database of autism related genetic information
Project Objectives [2/5] • AGDB comprises a comprehensive list of susceptibility genes and will facilitate the evaluation of autism susceptibility factors in relation to known human noncoding RNAs • It is a valuable tool for the research community to evaluate genetic findings for this complex multifactorial disorder in an integrated format • AGDB provides a genome browser and a web based query client for conveniently selecting features of interest
Project Objectives [3/5] • Features • Query database for know genetic features • Allow researchers to upload data to detect similarities and differences • Updates to data as new discoveries are made • Make announcements to research community about new features/data • Use content management system (CMS) to make updates easier
Project Objectives [4/5] • User-friendly interface • Ease of navigation • Query data based on URL • Cross-device compatibility • Help files • Tools • Upload user data • Data manipulation • Extensible, maintainable code to allow future development
Project Objectives [5/5] • To apply knowledge and skills (from various courses) during analysis, design and implementation • Software engineering • Computer networking • Web technologies • Database systems • System administration • Project management • Web security
Agenda • Acknowledgements • Project objectives • Development process • Deliverables • Observations (lessons learned) • Concluding remarks • Product demo
Development Process • Development environment • Development does not affect end users • Creation of new features • Testing can be executed • Production environment • Updates applied only after testing has been completed
Agile Development [1/2] • Allows requirements to accurately reflect customer needs • User stories and acceptance criteria are constantly refined • Example: • I met with Dr. Talebi-Zadeh in person at Children’s Mercy Hospital in downtown Kansas City to gather requirements for the application
Agile Development [2/2] • Provides customer with working software early • With the ability to make changes • Example: • I hold regular review meetings with Zohreh at the end of each development cycle to gather feedback. Zohreh has the ability to make changes to her requirements. • Encourages continuous improvement • Retrospective of previous development cycle • Example: • Following the completion of the first development cycle I noticed I was underestimating the time required to develop test cases. In following cycles I will now allocate more time to that particular task.
Agenda • Acknowledgements • Project objectives • Development process • Deliverables • Observations (lessons learned) • Concluding remarks • Product demo
Deliverables [1/2] • Monthly deliverables • 11/22, 12/21, 1/25, 2/22, 3/22, 4/26 • Schedule meetings to • Demo application • Collect feedback • Refine requirements • Review documentation
Deliverables [2/2] • Final product due 5/9/2014 • Project artifacts (available for review) • User’s requirements • Architecture and design • Source code • Test documents • User manual
Agenda • Acknowledgements • Project objectives • Development process • Deliverables • Observations • Concluding remarks • Product demo
Database challenge • Problem • Very large data files • Unable to import database into development environment • Issue encountered • Processing error
Database challenge - Continued • Resolution • Break each table into smaller sets that could be imported within maximum time limit • Modify configuration file to increase time limit • Lessons learned • The importance of understanding server-side DBMS and reading documentation
Development challenge [1/3] • Problem • Difference in web-server hosts un-noticed until attempt made to put first iteration on production server • Issue encountered • Application would not run (error logs provided very little details)
Development challenge [1/3] - Continued • Resolution • Re-wrote major application modules • Modified development environment to match production environment • Lesson learned • Test integration early and often • Document integration testing procedures for repeatability • Ensure the development environment replicates production environment
Development challenge [2/3] • Problem • PHP programming language does not support function overloading • Issue encountered • Application uses RESTful architecture, sometimes requiring methods to call themselves with additional parameters • Not possible in PHP using traditional overloading
Development challenge [2/3] - Continued • Resolution • Define function with 0 parameters and pull arguments from URI • Lessons learned • There are multiple ways to accomplish a task • It is very helpful to understand system documentation to resolve unforeseen errors
Development challenge [3/3] • Problem • Microsoft’s Internet Explorer browser contains security measures to prevent XSS (cross-site scripting), even if the URL the user is being redirected to is an address in the same domain • Issue encountered • Internet Explorer prevented users from being able to register or sign in to accounts
Development challenge [3/3] - Continued • Resolution • Form submission process refactored so the user no longer redirected to a fully qualified URI • Lesson learned • Test applications in as many operating environments as possible to ensure compatibility • Consider as many operating environments as possible when designing a system
Project management challenge [1/2] • Problem • Effort estimation errors in sprint planning • Issue encountered • Story effort estimations incorrect, many times vastly underestimated, resulting in over-commitment
Project management challenge [1/2] - Continued • Resolution • Work to understand tasks and development abilities • Lesson learned • Understand a task before estimating work • Break large tasks down into smaller pieces • Estimation skills improve with time (as long as you can reflect on and understand mistakes)
Project management challenge [2/2] • Problem • Incorrectly understanding client requirements • Issue encountered • Prioritized work to my understanding of the requirements instead of actual client needs
Project management challenge [2/2] - Continued • Resolution • Met with client regularly for feedback • Increased communication with client to resolve requirements questions • Lesson learned • Prototypes are very useful in communicating requirements • Constant communication required, do not assume you understand the project without client verification
Knowledge Areas Required • Software Engineering • Architecture • Project Management • Computer Networking • Information Security • Database Management • User Interface Design • Human Communication
Knowledge Area – Software Engineering • UML modeling • Writing maintainable code • Applying software engineering best practices • Documenting processes • Iterative development process
Knowledge Area – Architecture • RESTful Architecture web architecture • Model-View-Controller (MVC) pattern • System integration and communication
Knowledge Area – Project Management • Requirements gathering • Stakeholder involvement • Agile (SCRUM) process • Effort estimation • Iteration & sprint planning
Knowledge Area – Computer Networking • Network connection between client and server • Network connection between web server and database server • Minimization of network load
Knowledge Area – Information Security • SQL injection protection • Storing passwords as hash values • No plaintext • Authentication logic • Example: Members page • Authorization logic • Example: Administrator page
Knowledge Area – Database Management • Database design • Conceptual modeling (ER diagram) • Normalization • SQL query construction • SQL update scripts
Knowledge Area – User Interface Design • Usability • Intuitive UI adhering to web standards • Navigation tools • Breadcrumbs allowing users to view and navigate to previous steps
Knowledge Area – Human Communication • Interacting with stakeholders to gather and verify requirements • Facilitate client interaction with the prototype and incremental work to clarify needs and minimize ambiguities
Agenda • Acknowledgements • Project objectives • Development process • Deliverables • Observations (lessons learned) • Concluding remarks • Product demo
Concluding remarks [1/3] • Contributions • Educational background • Software, project management, system administration, Information Technology management • Objective of capstone course • Integrate knowledge from course work to create a product • Client needs • Web-based interface enabling genetic researchers to interact with a database
Concluding remarks [2/3] • Future work • Implementation of tool allowing database updates to be made without technical knowledge • Admin panel for viewing of usage statistics • Expand project to be deployable for all researchers to present data stored in a database using a web interface
Concluding remarks [3/3] • Thank you for your time • I welcome questions, comments, feedback • Next: demonstration of some AGDB features
Agenda • Acknowledgements • Project objectives • Development process • Deliverables • Observations (lessons learned) • Concluding remarks • Product demo