System Requirements Specification - Team-SwAG/Course-Organizer GitHub Wiki
System Requirements Specification
External Interface Requirements
Individual Functional Requirements of the System
Dependencies with other requirements
Dependencies with other requirements
Dependencies with other requirements
Security and Safety Requirements
Personnel and Training Requirements
This document includes software requirements for Class Organizer app(release 1.0). The application gives the users an easy way to calculate their grades and GPA. This document outlines the aspects that are required of this application in order for it to be considered for deployment. With the aid of this document, users can easily see what is expected from the application and developers know what to implement. Upon successful completion, users will be able to easily track their grades and GPA using this application.
Course Organizer is an Android application that can be downloaded to compatible Android devices via the Google Play store. Its purpose is to allow students to easily keep track of grades for each course they are enrolled using predefined criteria supplied by instructors. The application is primarily designed to allow students to keep track of their progress throughout the semester; however, users will also be able to track their grades across multiple semesters and can save this data for each year the user attends school. Ultimately, the Course Organizer has the functionality to both track course progress, and predict the total Grade Point Average for all courses taken.
The following links are intended to provide the reader with information about how the project will be implemented.
The Official Android website - Contains API documentation and training material
http://developer.android.com/develop/index.html
TheNewBoston Education website - Hosts training videos for learning the Android API
http://thenewboston.org/list.php?cat=6
GitHub website - Hosts the Course Organizer as an open source project and acts as a VCS
This document is intended to be read from two perspectives. System developers are likely to be more interested in Section 3, Specific Requirements, as it details the specific feature sets of the system. Upon project completion, these feature sets will be tested against this document to ensure their implementation and correct functionality. Other interested parties are encouraged to read Section 2, General Description, to have a firm grasp of this application’s feature sets, who it is intended for, and how this application is intended for use.
Team SwAG’s Course Organizer consists of an integrated database that stores information related the user’s coursework making it easier for the user to track assignments, course grades, and GPA in an organized and easy to use interface. The database will be stored for further editing or user deletion.
The product is designed for students to calculate their grades and GPA. Students are able to put their exam grades, attendance, assignment grades and final exam grade into the calculator by points or percentage. The application is then able to calculate and display the the course grade. The GPA is then able to be calculated from the final letter grades of all completed courses entered into the system.
This application was originally designed for college students; however, students at any level may find the application to be useful. Specifically, the grade calculator is intended for students who are currently attending classes so that the user can easily predict the final grade for each course. The GPA calculator is intended for all users engaged in a curriculum that accumulates grade points that determines the user’s class standing.
The Course Organizer application will only be available from the Google Play Store. Furthermore, the application will only be supported on Android devices running Android version 2.3 (Gingerbread) or higher.
It is assumed that the majority of users that this application will serve are entering freshmen in highschool to top level graduate students. The usefulness of this application is dependent on data input by the user. Therefore, the amount and quality of data can have a major impact on how useful the application will be to the user.
The user interface will remain minimalistic, in which activities will consist of buttons and text views that are easy to read and understand. The application will present a title screen introducing the name of the application and crediting the developers. Across the application, a plus sign (+ symbol) button will indicate the ability to create a new data entry(year, semester, criteria, etc) thus launching the appropriate activity. Additionally, the user interface colors and feel will encourage a comfortable and easy to use environment.
This program will be available to any device running Android 2.3 (Gingerbread) and above. The touch and swipe features that are embedded in Android devices will be inherent to the program. These touch and swipe features will primarily be used to navigate between the program activities. Additionally, the program will support orientation changing, also embedded in these devices, and will maintain continuity in the program theme.
This application will save data in a SQLite database. This database will be created upon installation of the program which will then interface with the rest of the application and its related functions. The Course Organizer project is built using the Eclipse Integrated Development Environment using the Android Development Tools plugin. Additionally, Team SwAG will use the Git software tool, a Distributed Version Control System, to store and collaborate on the project which is hosted on the GitHub website.
The SQLite database is where the system will store the user’s data. Calls to the database will return the stored data to perform the functions and calculations provided by the application.
The SQLite database will be used to store user data vital to the Course Organizer for it to perform any useful function. Without a functional database, a user would have to continuously enter their information every time he/she desires to use a function of the application. Thus, the database can be considered the most critical component is regards to improving user experience and should be considered for implementation and/or maintenance before most other features.
The database must have sufficient storage space to accommodate the user’s data. The database should use Android’s built-in version of SQLite to be able to integrate well with all the supported versions of Android. Database queries should be checked and authenticated to ensure its stability and security for errant or malicious processes.
Improper implementation or use could incorrectly send or receive data. The database is a crucial element for most functions and must be strictly protected from misuse. To mitigate the chance of failure, Team SwAG will continuously test the database against the other features as they are implemented or as changes are made.
The database operates independent of all other functions. Other function however are highly dependent upon the database. It sends and receives data to most functions relating to user’s data.
The Grade Calculator tracks course information and the scores of all graded material related to each course. It will also calculate and display the grade for each course that is being tracked based on the most recent changes made to the database.
The Grade Calculator can be considered the root of the application because users are likely to spend the majority of their time interfacing with this activity. This feature should be started before secondary features are implemented or in concurrence with related features.
The Grade Calculator must properly interface with the database in order for it to do any useful work. Since this is the foundation for major features of the application, interfaces with the grade calculator should easily accommodate new code without breaking any existing functionality. Also, for the Grade Calculator to produce correct outputs, the SQLite Database must also properly send and receive data from storage.
Interfacing this activity with a database will be a challenge for Team SwAG as the majority of team members have had little experience with the Android API and SQLite. To mitigate the risk of producing a less than functional Grade Calculator, Team SwAG will begin formal training of the Android API from the official Android Developer website.
The Grade Calculator is dependent upon the database to perform its useful functions. Although the Grade Calculator’s functions are at the deepest level, it is the root activity around which other functions will be built. Also, the Grade Calculator must produce accurate course grades for the GPA Calculator to work correctly.
GPA Calculator shalll accurately caluclate a cummulative GPA based upon grades calculated from the Grade Calculator for all classes across all semesters.
The GPA Calculator is considered a secondary function because users are less likely to use it as often in comparison to other functions. Given the GPA Calculator’s dependency upon the Grade Calculator, it should be given a lesser priority to most other functions and should be implemented after or concurrently with higher priorities.
Implementing the GPA Calculator requires a proper interface to the SQLite database and should implement its calculating methods appropriately from all pertinent information.
Team SwAG has little experience with the the Android API and SQLite which could result in improper implementation of the GPA Calculator. Team SwAG will undergo formal training from the Android API from the official Android Developer website.
The GPA Calculator is dependent upon the SQLite Database and the accuracy of the Grade Calculator. The GPA Calculator must be able to send and receive data properly from the database to run its subroutine that calculates the weighted GPA based on stored grades across multiple semesters.
Any Android system that has Android 2.3 (Gingerbread) or above installed on their device can download this program. As such, any device running the supported versions of Android are expected to perform fluidly to some general form of acceptable use. For example, the application should not lock, freeze, or crash frequently, if at all, due to code written for this application.
The Course Organizer will be implemented for Android devices. Thus, design constraints revolve around the use of the Android API and Java. Mostly this application will use the activities, views, objects, etc, that are allowed by the Android API. The primary features must be implemented in such a way that they are supported Android 2.3 API through the latest version.
This project boasts an easy to use interface with display buttons large enough for users to easily click and navigate through the application system. There will be a hierarchical design that will allow users to know which section of the application they are active. There will also be reliable backtracking that will allow users to return to a previous level in order to perform relevant actions without having to restart the application or return to the main screen. Easy utilization of these features is a key quality requirement of our product and as such will be optimized with respect to button size and screen usage as seen fit. A novice user of the application and/or touchscreen devices should feel comfortable when using the Course Organizer system.
The application database should be secure from other applications in order to prevent misuse and/or editing of data. Furthermore, the application is not intended to be used while operating any other devices or machinery in order to prevent any harm to the user. In a more general sense, the application should be used responsibly as Team SwAG does not take responsibility for anything good or bad that happens in association to the Course Organizer application.
Understanding the fundamentals of the Android API is crucial to the development of the Course Organizer application. As such, Team SwAG has mandated all personnel develop their skills and understanding of this API using the following resources:
a. https://developer.android.com/training/basics/firstapp/creating-project.html
b. http://thenewboston.org/list.php?cat=6
In addition to these, Team SwAG members are encouraged to use other resources to fulfill this training requirement.
This program is designed for students. It is intended to calculate grades and GPA. The grade calculator system is intended to help students, currently engaged in classes, to calculate their grades. The GPA calculator is designed for all students interested in tracking their GPA. This application is not intended to replace any system instituted by a place of learning to calculate grades and/or GPA. Since the application is driven by user input, users should be aware that grade/GPA calculation should only be considered a best guess.
Team SwAG - Software Application Group is commonly referred to as team SwAG. They are the development team.
Android - Android is a mobile operating system developed by Google. It is used by smartphones and tablets. It is based on the open Linux Kernel. Android is open-source, meaning developers can modify and customize the OS for each particular product. This provides for several different GUIs and functions across the same platform.
OS (Operating System) - The underlying software that executes and runs programs on devices.
GUI (Graphical User Interface) - The part of a software progam the user sees and interacts with. Usually contains components (buttons, text, images, input fields, etc.) to convey information and make a program useful.
Activity - An Android component that provides a screen with which users can interact.
Views - Android’s basic building blocks for user interface components (buttons, textfields, etc.)
Android Manifest - An .xml file in every Android application. The manifest presents essential information about the application to the Android system, information the system must have before it can run any of the application's code.