360 likes | 373 Views
This architectural design review discusses the requirements, layers, testing, motivation, flexibility, and feasibility of a real-time software with minimal hardware requirements. It also presents alternative architecture options and possible changes.
E N D
Team Everest Architectural Design Review September 15, 2011 From: http://www.flickr.com/photos/troyismad/89419822/
Team Members Larry Battle (CSE) Chris Brown (SE) Erica Llaca (SE) Bikash Acharya (CS)
* Product Summary * Requirements * Layers / Sub-layers * Testing * Motivation * Flexibility * Feasibility Overview
Customer Requirements 1) 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 Requirements 5) 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 Requirements 6) Must run on an average computer system. http://media.photobucket.com/image/cpu%20magazine%20mods/jordan23james/100_4271.jpg
Question: What are specs for an average computer system in 2011? Image from: http://exonome.com/fj/phkl/open.jpg
Question: What are specs for an average computer system in 2011? Answer:CPU: 2.0GHz dual-core or betterRAM: 2-4GBHard drive: 160GB+Video: 512MB - 1GBOS: Windows XP or betterhttp://au.answers.yahoo.com/question/index?qid=20100218213650AAFr5vA Image from: http://exonome.com/fj/phkl/open.jpg
http://hacknmod.com/wp-content/uploads/2009/04/messy-cables.jpghttp://hacknmod.com/wp-content/uploads/2009/04/messy-cables.jpg
Server Image from: http://www.instablogsimages.com/images/ 2007/01/08/hp-mediasmart-server_48.jpg
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.
Question: Which browser do you prefer? http://one7.files.wordpress.com/2010/06/browsers.jpg
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, delete data 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 for the 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
Any Questions? http://committeeofpublicsafety.files.wordpress.com/2010/02/cute-sad-kitten06.jpg