1 / 14

Nutlog Design

February 26, 2008 Andy Chang · Osei Simba Hinds · Rachal Royce. Nutlog Design. From the Requirements:. Personal accounts Registration Login Manage account settings Log functionality Exercise activity entry Food item entry Item entry assistance Field selection Goal functionality

bandrew
Download Presentation

Nutlog Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. February 26, 2008 Andy Chang· Osei Simba Hinds · Rachal Royce Nutlog Design

  2. From the Requirements: • Personal accounts • Registration • Login • Manage account settings • Log functionality • Exercise activity entry • Food item entry • Item entry assistance • Field selection • Goal functionality • Goal entry • Goal progress tracking • Reporting functionality • Tables • Graphs • Other • Web-based • Database • Specific pages, i.e. User Homepage (Summary Page) and Welcome/Help Page

  3. System Architecture • Multi-tier, not Model-View-Controller architecture • User interface tier (presentation layer) • Processing tier (application layer) • Data storage and access (data layer) Model-View-Controller Three-tier

  4. Presentation Layer • User interface • Accepts requests from the user • Displays page contents and its layout • Renders output to the screen • Passes requests to the application layer

  5. Application Layer • Handles requests • Processes input from presentation layer • Checks for validity • Converts to system format • Performs calculations • Calls data layer to retrieve data if necessary • Returns output to presentation layer

  6. Data Layer • Accepts calls from application layer • Generates database queries to retrieve the necessary data or to update the necessary tables • Returns requested output or errors to the application layer

  7. Class Design • Use of Abstract Factory Pattern • Each layer divided up so that the classes correspond to the main pages/functions from the requirements • Presentation Layer • Dispatcher • ControllerFactory • AbstractController • HomepageController • AccountController • GoalsController • ReportsController • Application Layer • ApplicationFactory • HomepageApplication • AccountApplication • GoalsApplication • ReportsApplication • Data Layer • DataAccessFactory • AccountDAO • ExerciseLogDAO • FoodLogDAO • ExerciseDAO • NutritionDAO • GoalsDAO • SessionDAO

  8. Database Design

  9. Request Cycle

  10. Request Cycle

  11. Request Cycle Client Navigates to www.nutlog.com. inputs an invalid username and password combination and presses <<GO>> Slams keyboard and mutters “nutlog is a piece of $@#%!” Presentation Layer Sends the inputted information to Application Layer and requests for login validation Generates to the output conveying the result of the request, i.e. “Invalid username or password” Application Layer Calls account data access object in the data layer to retrieve login information pertaining to the inputted username Compares the user input with the retrieved information and returns an error signal to the presentation layer Data Layer Sends a query to the database to retrieve the username’s data from the accounts table Returns the query result to the application layer

  12. Testing Plan • Tools • Mock Database • Store initial state information • Strategies • Unit Testing • Test each subsystem in isolation • Integration Testing • Top-down integration strategy • Performance Testing • Simulate stress situations through automation • Regression Testing • Regular compilation and running of tests • Manual Testing • Customers as testers

  13. Implementation Plan • Six builds, incrementally adding features • Build 1: Shell System • Build 2: Log System for Single User • Build 3: User Accounts/Multiple Logs • Build 4: User Guide and Help System • Build 5: Goals • Build 6: Reports • Build n: More features

  14. Problems • Design • Not specific and comprehensive enough • Cannot know exact design until implementation • Implementation Plan • Dividing work equally • How to calculate time units accurately • Security • Password encryption • Storing sessions

More Related