Autism-Genetic Database
Download
Report
Transcript Autism-Genetic Database
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