SmartCal

High Level Design

COP4331, Fall, 2014

 

Modification history:

Version

Date

Who

Comment

v0.0

10/08/14

Paul Perdue

Template

v0.1

10/09/14

Paul Perdue

Added team information.

Added Sections for the high level design

Added Sections for High-Level Architecture

V0.2

10/10/14

Paul Perdue

Added High level architecture diagram

Added High level architecture description

V0.3

10/15/14

Paul Perdue

Added Template styling scheme

Added Additional high level architecture description

V0.4

10/16/14

Paul Perdue

Added Design issue categories and details

V0.9

10/17/14

Paul Perdue

Added Design issues descriptions

Fine Tune design

Added hyper links

V1.0

10/22/14

Paul Perdue

Final Revision

 

Team Name: Group 9

Team Members:

Salim Andraos andraos@knights.ucf.edu

Joseph Burfield jburfield@knights.ucf.edu

Sachin Nayee Sach@knights.ucf.edu

Paul Perdue perdue1@knights.ucf.edu

Carlos Pereda carloshpereda@knights.ucf.edu

James Choi jameschoi@knights.ucf.edu

Contents of this Document

High-Level Architecture

·         Design

·          The Front End Application

·         the Controller

·         The Database

Design Issues

·         Reliability

·         Portability

·         Maintainability

·         Performance

·         Database integrity

 

High-level Architecture:

Design

Drawing2

 

The Front End Application. 

The front end application is the main visual module of the software abstractions. The user will only interact with the front end application. The front end application is responsible for presenting information to the user, providing a usable interface for the user and allowing the user to input information. The front end application will present the user with information. The calendar is presented to the user in the front end application, the user will be able to select a day, time and update the desire event in the calendar. The front end application will present the user with planned events from the calendar, and also show the user the suggested activity for that calendar event. The front end application will communicate with the controller. If the user interacts with the front end application data will be sent to the controller and the controller will send data to the front end application updating the user interface.

 

The Controller. 

The controller represents a critical part of the abstraction in the software model. The controller is assigned many critical jobs, and the controller is responsible for the communication between other software modules. The user must not be able to interact with the controller directly. The controller will store and load user data into the local user directories upon startup of the application using the Windows Authentication API. The controller must communicate with the front end application, upon user interaction data will be sent from the front end application to the controller. The controller will send data back to the front end application and the front end application will update the presented information. The controller must also communicate with the database server, the controller will have access to queries and database transactions. The controller must be able to send data to the database server, and must be able to query data from the database server. The controller is the most critical part of the software abstraction and required for the software to operate.

 

The Database.

The database is the software abstraction required for easy and efficient storage for the program. The user will not be able to interact with the database directly. The data base is responsible for storing user events, the user profile, user calendar details, and user suggestions. The database will efficiently store and load data onto or from a storage device such as the hard-drive.  The database will also load user program calendar events after the startup of the application; the database must load calendar dates, user events, and suggested activities. The databases will load and store data only by the request of the controller. Upon controller request the data base will load data and send it to the controller. The controller will also send data to the data base, and the database will store the data to the database storage such as the hard drive. The database is only a load and storage container for the program.

 

Design Issues:       

Reliability

The Calendar application must display dates, and time accurately.

Must be able to maintain data integrity.

The application must have a low probability of failure.

The application must not fail during normal usage.

portability

The application must execute successfully on Microsoft windows.

The application targeted user platform is windows 7 and windows 8/8.1

The application must run on the targeted platform without error.

Maintainability

Isolating defects and correcting the defects.

Replacing faulty software components, and preventing unexpected break downs.

The software must be able to be optimized for efficiency.

The program must be able to meet new user requirements and must be tested for reliability.

Must be able to make future maintenance easier.

Must be able to cope with changed environments (Windows 8.1 to Windows 10)

Performance

The application must remain responsive to the user.

Must be able to remain stable under most workloads

Must be able to load and store data in a reasonable amount of time.

User must have responsive access to the application.

Database integrity

The database must maintain accuracy and efficiency.

The database must be free of data corruption.

Data base queries must be accurate and consistent.

User error must not interfere with database data.

 

Template created by G. Walton (GWalton@mail.ucf.edu) on October 8, 1999 and last modified on Aug 15, 2000

This page last modified by Paul Perdue (perdue1@knights.ucf.edu ) on 10/23/14