Design Plan - Team-SwAG/Course-Organizer GitHub Wiki
Course Organizer
By Team SwAG
(Software Application Group)
System Design Document
Version 1
March 6, 2013
3.1 Selection of System Configuration
3.3 Other Critical Considerations
5.0 Requirements Traceability Matrix
This document details the design and concepts of the Course Organizer software application corresponding to the accompanying System Requirements Specification. This living document is expected to evolve when changes to the system design, and/or requirements are made.
The following sections describe the overall structure of the Course Organizer application and detailed descriptions of the system configuration, and its necessary functions. To facilitate the reader, some concepts are illustrated using UML Diagrams and Entity Relationship Diagrams to better convey the overall design of user interface and system activities.
Readers should familiarize themselves with the Course Organizer System Requirements Specification as this document sets out to satisfy the requirements laid out within. Additionally, this document utilizes the same terminology, which is better described in the requirements documentation. The role of this document is to act as a guide when implementing the final product to ensure all specified requirements are met.
Utilizing the database structure, what the user perceives as simple inputs are highly sorted queries and database inputs. These inputs are to be stored in memory and added to queries crossing multiple tables (what the user sees as “copies” of their input on different screens).
The time when users start the program, it will come up with a big plus button. When user click on it, it will call an activity and start a new layout. In this layout, the user are able to input the year and the system is going to save the users’ input into the database. After the user inputs the year, a list of [years] that users input is going to show up. When users click the [year], a new layout will come up where users can input the term. If the user clicks on the term, a new layout where users can input the course will show up with the year and term. In this course layout, users can input the courses they are currently taking and a new layout including the details of the course to be promoted for users to input the information about the course.
Users: The Users of this Application are defined as the primary person or persons entering information into this application.
Database: The Course Organizer is an Android based Application which is comprised of a single Database. This Database stores:
-Year - Year being considered for courses being taken
-Semester - Semester in which the courses are being taken
-Course - Courses which are being taken
-Course Grading Criteria - Grading criteria and weights for Course
-Grades - Scores achieved
Our approach for the system configuration was to keep it simple from the users Point-Of-View. The market has reflected that if an application is rather easy to navigate and understand, then the success of the application is nearly guaranteed. Granted, the flip-side of this approach is that the pliability of the program is low, leaving little room for drastic changes, but this is only shadowed by how convenient the application comes to the user. Additionally, the decision to support Android versions 2.3 (Gingerbread) and higher was made because the application would be available to 90.3% of active Android devices.
The application will only be supported on versions of Android 2.3 (Gingerbread) and higher. The constraints will be that users who have Android 2.2 and earlier versions will not be able to execute the Course Organizer application to its full abilities.
- Future versions of Android
- With future versions of android there will be further updates made (slight-not total) that will support our App. The android system is known for its backwards compatibility with versions via API that span over 10-13 different API levels, giving the team time to develop updates when necessary and when outdated.
- Future devices that use Android
- Future Course Organizer updates
- Calendar system is going to be added in the future where users are able to find the data related to the date.
- Supporting different languages is going to be a great feature in the future, languages like Chinese will be an option.
- Color schemes will be implemented in the future giving users multiple themes to choose from.
- Note taking will be found in our App as time goes on, where users are able to schedule their time.
The system is broken into eleven activities which are implemented through separate Java classes each extending the Activity class. Each of these activities has a corresponding XML layout defined in the resource folder. Additionally there is another class dedicated to the SQLite Database.
Startup Activity - This activity is only displayed upon initial setup of the Course Organizer application. There is only one button named button_setupYear, which when pressed prompts the user to enter a Year. No other operations can be completed until this initial setup is complete.
This activity should be developed from scratch.
InputYear Activity - This activity enables the user to populate a scrolling list view within the Year Activity. All years are passed as String values. This activity is called from the Startup Activity as well as when the addYear button on the Year Activity is activated. Pressing the confirmYear button at the bottom of the activity passes the new value to the database. From the database, the scrolling view is repopulated with the stored values.
This activity should be developed from scratch.
Year Activity - This activity is comprised of a scrolling view in the center of the screen which is dynamically populated from the database everytime the user inputs a new year in the InputYear Activity. The bottom of the view contains an addYear button which calls the InputYear Activity. Selecting a year within the scrolling view calls the Semester Activity. It also displays the cummlative GPA.
This activity should be developed from scratch.
Semester Activity - This activity is comprised of a scrolling view in the center of the screen which is dynamically populated from the database everytime the user inputs a new semester in the InputSemester Activity. The bottom of the view contains an addSemester button which calls the InputSemester Activity. Selecting a semester within the scrolling view calls the Course Activity.
The activity should be from reuse with change.
InputSemester Activity - This activity enables the user to populate a scrolling list view within the Semester Activity. All semesters are passed as string values. This activity is called from the Semester Activity by the addSemester button. Pressing the confirmSemester button at the bottom of the activity passes the new value to the database. From the database, the scrolling view is repopulated with the stored values.
This activity should be from reuse with change.
Course Activity - This activity is comprised of a scrolling view in the center of the screen which is dynamically populated from the database everytime the user inputs a new course in the InputCourse Activity. The bottom of the view contains an addCourse button which calls the InputCourse Activity. Selecting a Course within the scrolling view calls the Criteria Activity.
This activity should be from reuse with change.
InputCourse Activity - This activity enables the user to populate a scrolling list view within the Course Activity. All courses are passed as String Values. This activity is called from the Course Activity by the addCourse button. Pressing the confirmCourse button at the bottom of the activity passes the new value to the database. From the database, the scrolling view is repopulated with the stored values.
This activity should be from reuse with change.
Criteria Activity -This activity is comprised of a scrolling view in the center of the screen which is dynamically populated from the database everytime the user inputs a new criteria in the InputCriteria Activity. The bottom of the view contains an addCriteria button which calls the InputCriteria Activity. Selecting a Criteria within the scrolling view calls the Assignment Activity.
This activity should be from reuse with change.
InputCriteria Activity - This activity enables the user to populate a scrolling list view within the Criteria Activity. criteriaNames are passed as String Values and criteriaWeight is passed as a double value. This activity is called from the Criteria Activity by the addCriteria button. Pressing the confirmCriteria button at the bottom of the activity passes the new values to the database. From the database, the scrolling view is repopulated with the stored criteriaNames.
This activity should be from reuse with change.
Assignment Activity - This activity is comprised of a scrolling view in the center of the screen which is dynamically populated from the database everytime the user inputs a new assignment in the InputAssignment Activity. The bottom of the view contains and addAssignment button which calls InputAssignment Activity.
This activity should be from reuse with change.
InputAssignment Activity - This activity enables the user to populate a scrolling list view within the Assignment Activity. assignmentName are passed as String Values and assignmentScore is passed as a double value. This activity is called from the Assignment Activity by the addAssignment button. Pressing the confirmAssignment at the bottom of the activity passes the new values to the database. From the database, the scrolling view is repopulated with stored assignmentScore and assignmentName
This activity should be from reuse with change.
The following figure is an overview of the system showing the relationships of activities and the database.
- User interface
- Easily readable and understandable
- Support for different screen sizes
- Engineering interface
- Eclipse - ANDROID SDK
- GitHub - digital drop box
The following sections of the Course Organizer System Requirements Specification link to its related design plan in this document.