System Requirements Specification - Team-SwAG/Course-Organizer GitHub Wiki

<title>Course Organizer SRS v1</title><style type="text/css">@import url('https://themes.googleusercontent.com/fonts/css?kit=-ou4pOz2rBQXdlj5C-P57A');ol{margin:0;padding:0}.c18{max-width:468pt;background-color:#ffffff;padding:72pt 72pt 72pt 72pt}.c7{color:#1155cc;text-decoration:underline}.c10{color:inherit;text-decoration:inherit}.c15{color:#222222;background-color:#f9f9f9}.c3{height:12pt}.c16{font-size:12pt}.c13{margin-left:18pt}.c5{margin-left:72pt}.c19{font-size:14pt}.c12{height:14pt}.c8{margin-left:54pt}.c1{font-family:"Ubuntu"}.c4{margin-left:36pt}.c14{height:18pt}.c11{font-weight:bold}.c2{font-size:18pt}.c0{direction:ltr}.c17{font-size:30pt}.c9{text-align:center}.c6{height:11pt}.title{padding-top:24pt;line-height:1.15;text-align:left;color:#000000;font-size:36pt;font-family:"Arial";font-weight:bold;padding-bottom:6pt}.subtitle{padding-top:18pt;line-height:1.15;text-align:left;color:#666666;font-style:italic;font-size:24pt;font-family:"Georgia";padding-bottom:4pt}li{color:#000000;font-size:11pt;font-family:"Arial"}p{color:#000000;font-size:11pt;margin:0;font-family:"Arial"}h1{padding-top:24pt;line-height:1.15;text-align:left;color:#000000;font-size:18pt;font-family:"Arial";font-weight:bold;padding-bottom:6pt}h2{padding-top:18pt;line-height:1.15;text-align:left;color:#000000;font-size:14pt;font-family:"Arial";font-weight:bold;padding-bottom:4pt}h3{padding-top:14pt;line-height:1.15;text-align:left;color:#666666;font-size:12pt;font-family:"Arial";font-weight:bold;padding-bottom:4pt}h4{padding-top:12pt;line-height:1.15;text-align:left;color:#666666;font-style:italic;font-size:11pt;font-family:"Arial";padding-bottom:2pt}h5{padding-top:11pt;line-height:1.15;text-align:left;color:#666666;font-size:10pt;font-family:"Arial";font-weight:bold;padding-bottom:2pt}h6{padding-top:10pt;line-height:1.15;text-align:left;color:#666666;font-style:italic;font-size:10pt;font-family:"Arial";padding-bottom:2pt}</style>

Course Organizer

By Team SwAG

(Software Application Group)

System Requirements Specification

Version 1

January 30, 2013

Introduction

Purpose

Scope

References

Outline SRS

General Description

Context

Product Functions

User Characteristics

Constraints

Assumptions and Dependencies

Specific Requirements

External Interface Requirements

User Interfaces

Hardware Interfaces

Software Interfaces

Individual Functional Requirements of the System

Database

Description

Criticality and Schedule

Technical issues

Risks

Dependencies with other requirements

Grade calculator

Description

Criticality and Schedule

Technical issues

Risks

Dependencies with other requirements

GPA Calculator

Description

Criticality and Schedule

Technical issues

Risks

Dependencies with other requirements

Performance Requirements

Design Constraints

Quality Requirements

Security and Safety Requirements

Personnel and Training Requirements

Notes

Intended Use

Abbreviations and Definition

Introduction

Purpose

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.

Scope

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.

References

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

https://github.com/

Outline SRS

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.


General Description

Context

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.

Product Functions

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.

User Characteristics

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.

Constraints

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.

Assumptions and Dependencies

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.


Specific Requirements

External Interface Requirements

User Interfaces

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.

Hardware Interfaces

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.

Software Interfaces

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.


Individual Functional Requirements of the System

Database

Description

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.

Criticality and Schedule

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.

Technical issues

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.

Risks

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.

Dependencies with other requirements

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.


Grade calculator

Description

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.

Criticality and Schedule

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.

Technical issues

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.

Risks

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.

Dependencies with other requirements

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

Description

GPA Calculator shalll accurately caluclate a cummulative GPA based upon grades calculated from the Grade Calculator for all classes across all semesters.

Criticality and Schedule

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.

Technical issues

Implementing the GPA Calculator requires a proper interface to the SQLite database and should implement its calculating methods appropriately from all pertinent information.

Risks

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.

Dependencies with other requirements

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.


Performance Requirements

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.

Design Constraints

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.

Quality Requirements

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.

Security and Safety Requirements

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.

Personnel and Training Requirements

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.

Notes

Intended Use

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.

Abbreviations and Definition

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.

⚠️ **GitHub.com Fallback** ⚠️