Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 Development process Deliverables Observations (lessons learned) Concluding remarks Product demo 2 Acknowledgements • • • • Advisor: Dr. Saiedian Client: Dr. Talebizadeh (CMH) Wife: Molly Byars Faculty – Professor Tetmeyer and Professor Johnson • Thank you for being here 3 Agenda • • • • • • • Acknowledgements Project objectives Development process Deliverables Observations (lessons learned) Concluding remarks Product demo 4 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 5 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 6 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 7 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 8 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 9 Agenda • • • • • • • Acknowledgements Project objectives Development process Deliverables Observations (lessons learned) Concluding remarks Product demo 10 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 11 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 12 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. 13 Sample Product Backlog ID Story Type Status Priority Estimate F1000 As an end user, I want to be able to see a navigation bar Feature In Progress at all times so I can easily navigate the application. High 5 F1001 As an end user, I want to see the formatting updated on Feature In Progress each webpage to make improve readability. High 5 F1002 As an end user, I want each webpage to be visually appealing to make it easier to focus on my research. Feature In Progress High 3 F1003 As an end user, I want to be able to find FAQ/How-to pages so I can find questions to my answers. Feature Not Started Medium 14 3 Agenda • • • • • • • Acknowledgements Project objectives Development process Deliverables Observations (lessons learned) Concluding remarks Product demo 15 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 16 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 17 Agenda • • • • • • • Acknowledgements Project objectives Development process Deliverables Observations Concluding remarks Product demo 18 Database challenge • Problem – Very large data files – Unable to import database into development environment • Issue encountered – Processing error 19 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 20 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) 21 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 22 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 23 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 24 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 25 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 26 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 27 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) 28 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 29 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 30 Knowledge Areas Required • • • • • • • • Software Engineering Architecture Project Management Computer Networking Information Security Database Management User Interface Design Human Communication 31 Knowledge Area – Software Engineering • • • • • UML modeling Writing maintainable code Applying software engineering best practices Documenting processes Iterative development process 32 Knowledge Area – Architecture • RESTful Architecture web architecture • Model-View-Controller (MVC) pattern • System integration and communication 33 Knowledge Area – Project Management • • • • • Requirements gathering Stakeholder involvement Agile (SCRUM) process Effort estimation Iteration & sprint planning 34 Knowledge Area – Computer Networking • Network connection between client and server • Network connection between web server and database server • Minimization of network load 35 Knowledge Area – Information Security • SQL injection protection • Storing passwords as hash values – No plaintext • Authentication logic – Example: Members page • Authorization logic – Example: Administrator page 36 Knowledge Area – Database Management • Database design – Conceptual modeling (ER diagram) – Normalization • SQL query construction • SQL update scripts 37 Knowledge Area – User Interface Design • Usability – Intuitive UI adhering to web standards • Navigation tools – Breadcrumbs allowing users to view and navigate to previous steps 38 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 39 Agenda • • • • • • • Acknowledgements Project objectives Development process Deliverables Observations (lessons learned) Concluding remarks Product demo 40 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 41 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 42 Concluding remarks [3/3] • Thank you for your time • I welcome questions, comments, feedback • Next: demonstration of some AGDB features 43 Agenda • • • • • • • Acknowledgements Project objectives Development process Deliverables Observations (lessons learned) Concluding remarks Product demo 44