Team Everest Architectural Design Review September 15, 2011
description
Transcript of Team Everest Architectural Design Review September 15, 2011
Team Everest Architectural Design Review
September 15, 2011
From: http://www.flickr.com/photos/troyismad/89419822/
Team Members
Larry Battle (CSE) Chris Brown (SE)
Bikash Acharya (CS) Erica Llaca (SE)
Overview
7/7/11
1. * Product Summary2. * Requirements
* Layers / Sub-layers* Testing
1. * Motivation2. * Flexibility3. * Feasibility
Product Summary
Customer Requirements1) The product will run in real time and have the results without lag.
2) The software shall process little response time
Customer Requirements
3) The product shall have minimally invasive hardware
http://www.blogcdn.com/www.engadget.com/media/2010/09/neurosky-mindwave-01-top.jpg
Customer Requirements
4) The product shall track all ranges of concentration
http://static.guim.co.uk/sys-images/Guardian/About/General/2009/6/30/1246373469711/Customers-use-computers-a-001.jpg
Customer Requirements5) The product shall have little to no notification of concentration awareness
http://www.remove-virtumonde.com/wp-content/uploads/2009/04/virtumonde-pop-ups1.jpg
Customer Requirements6) Must run on an average computer system.
http://media.photobucket.com/image/cpu%20magazine%20mods/jordan23james/100_4271.jpg
7/7/11
Question: What are specs for an average computer system in 2011?
Image from: http://exonome.com/fj/phkl/open.jpg
Answer:
CPU: 2.0GHz dual-core or betterRAM: 2-4GBHard drive: 160GB+Video: 512MB - 1GBOS: Windows XP or better
http://au.answers.yahoo.com/question/index?qid=20100218213650AAFr5vA
7/7/11
Question: What are specs for an average computer system in 2011?
Image from: http://exonome.com/fj/phkl/open.jpg
http://hacknmod.com/wp-content/uploads/2009/04/messy-cables.jpg
ADS History
ADS History
ADS History
Overview of Layers
Server Image from: http://www.instablogsimages.com/images/2007/01/08/hp-mediasmart-server_48.jpg
Sub Layers
Input Sub-layer
Tasks* Communicate with the external devices* Simply the input data into categories.* Compress all the input into one object.
Database Sub-layer
Tasks* Allow our program to communicate with the database.
Manager Sub-layer
Tasks* Provide an API for interfacing with our program.
Event Handler Sub-layer
Tasks* Coordinate sub-layers communicate.
Analyzer Sub-layer
Tasks* Analyzes the user state and action history to determine if the an attention getter should be launched.
Check Sub-layer
Tasks* Does error checking for the sub-layers.* Calibrates the EEG.* Reports errors to the Manager sub-layers.
Browser Sub-layer
Tasks* Communicate with the web browser.* Controls when our program should be on and off.
7/7/11http://one7.files.wordpress.com/2010/06/browsers.jpg
Question: Which browser do you prefer?
Testing Driven Development
“Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle” – wikipedia.org
4 main stages of TDD.
1) Write a test case.2) Watch it fail.3) Program it to pass.4) Refactor
Testing for I/O Layer
1) Can the input sub-layer process the input from the external devices within a reasonable amount of time?
2) Can the database sub-layer add, update, deletedata from the database?
3) Does the input and database sub-layers sent data to the appropriate location?
4) Does the input simplify the data correctly?
Testing Logic Layer
1) Can the Check Sub-Layer find and report errors?
2) Does the Event Handler send data to the function of the assigned Destination?
3) Do all the sub-layers communicate with the Event Handler correctly?
4) Does the Analyzer sub-layer launch an attention getter event when the user isn’t concentrated for a certain time period?
Testing Controls
1) Can the Browser Sub-Layer communicate with the browser?
2) Are the attention getters appearing on the screen forthe designated time?
3) Can the Browser Sub-Layer turn off our program when the browser is closed?
Motivation/ Flexibility
Possible Changes:- Event Handler helps abstracts the functions calls to the sub-layers.- Any changes to the inputs devices is handled by the Input Sub-Layer
Alternative Architecture 1
Changes:- Move the Manager Sub-Layer to the Controls Layer- Integrate the Check sub-layer into the Event Handler sub-layer.
Alternative Architecture 2
Changes:- Try to make each sub-layer connect to only one sub-layer.- Eliminate the Check and Event Handler sub-layers.
Feasibility
http://tamsconcretecanvas.files.wordpress.com/2008/11/obama_yes_we_can.jpg
Possible Hardware alternative
+ =+
Any Questions?
http://committeeofpublicsafety.files.wordpress.com/2010/02/cute-sad-kitten06.jpg