Software Requirements Specification Outline

This document contains a template structure for a software requirements specification (SRS) document. To use this outline replace the description of each section with the information about your project. If a section is not applicable to your project, keep the heading in your document, and just state that it is not applicable.

Software Requirements Specification

Iphone Gradebook App

Andrew Varner
Version History with Revision Dates

1. Introduction

  • 1.1 Product Overview

    The Grade book app is being designed for Apples iOS and use with the iPhone, iPod touch, or iPad. The development environment will be Objective C. The App would be designed largely for use by professors and teachers. Other stakeholders would be any students that are tracked using the app. The app should provide a fully functional grade book capable of replacing a Paper grade book. It should have the ability to cover the grades for multiple classes and many students per class. It should keep track of individual assignments and calculate percentages for individual assignments, overall grades, and class averages.

    1.2 Human Resources

    The potential users would be aimed largely at professors and teachers rather than students themselves, which would only need to keep one set of grade for each class.

    1.3 Business Context
    This would be an independently developed project that would eventually be released on to the Apple Apps store.

2. User Requirements (written for customers)

    • 2.1 User Objectives
      They system should be setup to record grades for several different classes each with the possibility of many students. Under each student the grades would be recorded and statistical information would calculated. Class statistics would also be available.
    • 2.2 Similar System Information
      This product would be designed to work independently of another system. The ability to export the grades to an excel spreadsheet could be implemented and would greatly improve the usefulness of the product.
    • 2.3 User Characteristics
      The user community would be professors and teachers who owned mobile Apple devices. This would mean that most of the users would be moderately well acquainted with technology, however there would be some users that would have little knowledge.
    • 2.4 User Problem Statement
      The difficulty is to have app to be simple enough to be useable by people with all levels of tech knowledge and still have it be powerful enough to model as many grades scenarios as possible.

3. Functional Requirements

  1. A table that is capable of entering and storing grades for students.
  • Description
    This would be a basic spread sheet type page that would allow for students names and individual grades to be added and stored.
  • Inputs
    The system would be touch oriented with data entry being done by the on screen keyboard.
  • Outputs
    In this stage there would be no additional outputs.
  • Criticality
    Without this the entire system is non functional, this is the basis for the entire project.
  • Technical issues
    The most difficult part of this implementation will be the database storage for the implemented information
  • Risks
    If the database fails the whole thing is unworkable. Focusing on the database aspect of the project first will decrease the chances of this essential portion not functioning.
  • Dependencies with other requirements
    Other parts are dependent on this.
  1. Multiple class selection menu
  • Description
    This will be the place where classes can be added and accessed. This is what leads to the individual databases
  • Inputs
    It is a scrollable list that can be taped to move in the database from the class.
  • Outputs
    This is the section that creates new databases for each individual class.
  • Criticality
    This is essential if the app is to be truly usable for a professor or teacher as a main grading application.
  • Technical issues
    The implementation will be relatively simple for the list, the difficulty will be in adding new items to the list while using the app.
  • Risks
    If I was unable to create a list that would be updatable from within the app then this feature could not function. There are many apps however that use this particular function and guides available on line that should give the knowledge need to the complete the list.
  • Dependencies with other requirements
    This depends on the database function to create new classes for it to use.
  1. Statistics for individual students and classes
  • Description
    This is a set of functions that would calculate total grades, percentages, and averages for both the individual students and the class
  • Inputs
    This is an automatic feature that does not require input
  • Outputs
    There would be three numerical outputs for each student and class. Total grades, percentage, and average.
  • Criticality
    While the app would function without this feature it would severely hinder its usefulness.
  • Technical issues
    The functions should be relatively simple to calculate and display.
  • Risks
    This does not seem to be an area with many potential problems and should be one of the easier things to setup.
  • Dependencies with other requirements
    This relies directly on the database, without it there would be no data for it to compute.
  1. Attendance Database
  • Description
    This attendance tracker would be grouped with the classes’ grades on a separate tab. It would have the name of the students from the grades, and boxes for each student for every date. The box would be able to have three options which would be switched by tapping, Present, Absent, and Excused.
  • Inputs
    It would be touch controlled with the same onscreen keyboard for text and number entry.
  • Outputs
    it does not output anything.
  • Criticality
    This feature is not essential to the project but does make a very nice improvement to the feature set.
  • Technical issues
    Setting up the three setting check boxes could be difficult.
  • Risks
    If I cannot find a good way to set of the proper multiple option boxes then I would have to fall back on using just simple check boxes which would only provide the portions for Present or Absent.
  • Dependencies with other requirements
    This relies on the main database for its class list and connection to the class.
  1. A feature to export to Excel.
  • Description
    This would allow the entire grades and attendance databases for each class to be converted to an excel file that can be opened on a computer.
  • Inputs
    Only to select the button to export.
  • Outputs
    The data would be formatted similarly to the databases containing, the class name, student list, grades, attendance, and all of the calculated items.
  • Criticality
    This is a non critical feature that could be added at a later time.
  • Technical issues
    Formatting and Exporting are bother issues that could be particularly difficult.
  • Risks
    The big risk is the export of the file using iTunes app file share system. This is something that can be difficult to work with and would need research to be properly implemented.
  • Dependencies with other requirements
    This is dependent on the two databases.

4. Interface Requirements

This section describes how the software interfaces with other software products or users for input or output. Examples of such interfaces include library routines, token streams, shared memory, graphical I/O, and so forth.

  • 4.1 User Interfaces
    Describes how this product interfaces with the user.

    • 4.1.1 GUI

      There are two separate tables; you switch between them by clicking the Class/Attendance. The plus at the top right adds new students. The plus on the table is for adding either new day for the attendance, or a new assignment for the student Class page. The back button takes it back to the class list.



  • 4.2 Hardware Interfaces

    The touch screen of the Apple Mobile device.

  • 4.3 Communications Interfaces
    This does not have network access.

  • 4.4 Software Interfaces
    Describes any remaining software interfaces, such as a database interface, not included above.

5. Non-Functional Requirements

    • 5.1 Hardware Constraints
      This is meant to run on Apple Mobile devices including, the iphone, ipod touch, and ipad.
    • 5.2 Performance Requirements
      Specifies time and memory constraints that must be satisfied for the system be effective.
    • 5.3 System Environment Constraints
      Describes any standards for which compliance is required, or standard data or application formats that must be supported.
    • 5.4 Security Requirements
There will be no direct security for this application. There nothing that protects against changes made directly from the device.
    • 5.5 Reliability
Reliability is hugely important as a problem that would alter data could potential harm a student’s grade.
    • 5.6 Maintainability
Updates can be regularly pushed out through apple’s app store when problems are found or features are added.
    • 5.7 Portability
      Currently this is only going to provide support for iOS
    • 5.8 Extensibility
      Since this system is based on a custom design it is not compatible with other projects.
    • 5.9 Development Process Constraints
      Objective C is the language that is being used for the programming of the app, in Apple’s X-Code environment. SQLite will be used for the databases.

6. System Models
This section includes diagrams showing relationships between major software components and the system environment. It may include one or more of the following:


Topic attachments
I Attachment Action Size Date Who Comment
Pngpng Untitled.png manage 16.6 K 2011-12-10 - 06:13 AndrewVarner  
Pngpng class.png manage 29.5 K 2011-12-10 - 06:13 AndrewVarner  
Pngpng student.png manage 31.4 K 2011-12-10 - 06:13 AndrewVarner  
Topic revision: r2 - 2011-12-10 - AndrewVarner
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback