Software Requirements Specification
Software Requirements Specification
Version 1.0
04/02/2024
GradeMe
Bitwise #1
Table of Contents
1.0 Introduction.............................................................................................................................4
2.0 The Overall Description......................................................................................................... 5
2.1 System Environment...........................................................................................................5
2.1.1 System Environment UML Summary.............................................................................6
3.0 Specific Requirements............................................................................................................ 7
3.2 Functional Requirements.................................................................................................... 7
3.2.1 Login.......................................................................................................................... 7
3.2.2 Student - View Enrolled Courses...............................................................................7
3.2.3 Student - Drop Enrolled Courses............................................................................... 8
3.2.4 Student - View Open Courses.................................................................................... 8
3.2.5 Student - Enroll in Courses........................................................................................ 9
3.2.6 Student - View Assignments....................................................................................10
3.2.7 Student - View Transcripts.......................................................................................10
3.2.8 Instructor - View Sections........................................................................................11
3.2.9 Instructor - View Enrollments..................................................................................12
3.2.10 Instructor - Enter Final Grades.............................................................................. 12
3.2.11 Instructor - View Assignments...............................................................................13
3.2.12 Instructor - View Assignment Grades....................................................................13
3.2.13 Instructor - Edit Assignment Grades......................................................................14
3.2.14 Instructor - Edit Assignment..................................................................................14
3.2.15 Instructor - Delete Assignment.............................................................................. 15
3.2.16 Instructor - Add Assignment..................................................................................16
3.2.17 Administrator - View Users................................................................................... 16
3.2.18 Administrator - Edit Users..................................................................................... 17
3.2.19 Administrator - Delete Users................................................................................. 18
3.2.20 Administrator - Add Users.....................................................................................18
3.2.21 Administrator - View Courses............................................................................... 19
3.2.22 Administrator - Edit Courses................................................................................. 19
3.2.23 Administrator - Delete Courses............................................................................. 20
3.2.24 Administrator - Add Courses................................................................................. 21
3.2.25 Administrator - View Sections...............................................................................21
3.2.26 Administrator - Edit Sections.................................................................................22
3.2.27 Administrator - Delete Sections.............................................................................23
3.2.28 Administrator - Add Sections................................................................................ 24
3.3 Non-Functional Requirements.......................................................................................... 25
3.3.1 Performance............................................................................................................. 25
Page 2 of 30 04/02/2024 f
Software Requirements Specifications Document
3.3.2 Security.................................................................................................................... 25
3.3.3 Reliability................................................................................................................25
3.3.4 Usability................................................................................................................. 25
3.3.5 Maintainability........................................................................................................ 25
3.3.6 Portability............................................................................................................... 25
3.4 Logical Database Requirements....................................................................................... 27
3.4.1 Figure of Database Schema........................................................................................... 27
3.4.2 Description of Database Schema.................................................................................... 27
3.4.2.1 Assignment Data Entity........................................................................................ 28
3.4.2.2 Course Data Entity................................................................................................28
3.4.2.3 Enrollment Data Entity......................................................................................... 28
3.4.2.4 Grade Data Entity................................................................................................. 28
3.4.2.5 Section Data Entity............................................................................................... 29
3.4.2.6 Term Data Entity...................................................................................................29
3.4.2.7 User Data Entity....................................................................................................30
Page 3 of 30 04/02/2024 f
Software Requirements Specifications Document
1.0 Introduction
Page 4 of 30 04/02/2024 f
Software Requirements Specifications Document
Page 5 of 30 04/02/2024 f
Software Requirements Specifications Document
GradeMe has three active actors. The Admin, Instructor, and Student all access the
program through the Internet. Admins have three main pages where they can view
courses, sections, and users – all of which have use cases for editing, adding, and deleting
their respective items. Instructors have a single home page that extends to use cases
regarding the management of sections, assignments, and enrollments. Finally, Students
have use cases for managing and viewing their courses, enrollments, and grades.
Page 6 of 30 04/02/2024 f
Software Requirements Specifications Document
3.2.1 Login
Title Login
Description The system shall provide a secure login mechanism for students,
instructors, and administrators to access academic records
Basic Path 1. The system prompts the user to enter a Username and Password
2. The user enters their login credentials
3. The system validates the credentials
Description The system shall allow students to view their enrolled courses
Basic Path 1. The system prompts the user to enter a Year and Semester
2. The user enters a Year and Semester
3. The user clicks Query
4. The system queries the database for information about the student’s
enrolled courses for the given Year and Semester
Postcondition The system displays a table with the following information for all the
courses in which the student is enrolled and that match the specified Year
and Semester
Page 7 of 30 04/02/2024 f
Software Requirements Specifications Document
● Section Number
● Course ID
● Section ID
● Title
● Credits
● Grade
● Drop (button)
Exception Path In step 3, if the Year / Semester field holds invalid data
● The system displays a relevant error message
In step 4, if the database returns an error
● The system displays a relevant error message
Trigger The student clicks Drop for one of the displayed courses
Basic Path 1. The system deletes the enrollment entry corresponding to the
student and the dropped course from the database
Postcondition The enrollment entry corresponding to the student and the dropped course
is deleted
Exception Path In step 1, if the database returns an error, such as the course not being
droppable at the current time
● The system displays a relevant error message
● The database is not updated
Description The system shall allow students to view all currently open courses
Page 8 of 30 04/02/2024 f
Software Requirements Specifications Document
Basic Path 1. The system queries the database for information about any
currently open courses
Postcondition The system displays a table with the following information for all the
currently open courses
● Semester
● Section Number
● Course ID
● Section ID
● Room
● Times
● Instructor Name
● Instructor Email
● Enroll (button)
Description The system shall allow students to enroll in open courses within specified
registration periods
Trigger The student clicks Enroll for one of the displayed courses
Basic Path 1. The system displays a popup confirming that the student wants to
enroll in the course
2. The student clicks Enroll
3. The system adds a new enrollment for the student and the
enrolled-in course to the database
Postcondition A new enrollment for the student and the enrolled-in course is added to the
database
Exception Path In step 3, if the database returns an error, such as the student already being
enrolled in the course
● The system displays a relevant error message
Page 9 of 30 04/02/2024 f
Software Requirements Specifications Document
Basic Path 1. The system prompts the user to enter a Year and Semester
2. The student enters a Year and Semester
3. The student clicks Search
4. The system queries the database for information about the student’s
assignments for the given Year and Semester
Postcondition The system displays a table with the following information for all the
student’s assignments which match the specified Year and Semester
● Course ID
● Assignment Title
● Due Date
● Score
Exception Path In step 3, if the Year / Semester field holds invalid data
● The system displays a relevant error message
In step 4, if the database returns an error, such as no assignments being
found for the given Year and Semester
● The system displays a relevant error message
Basic Path 1. The system queries the database for information about the student’s
enrollments (past and current)
Page 10 of 30 04/02/2024 f
Software Requirements Specifications Document
Postcondition The system displays a table with the following information for all the
student’s enrollments (past and current)
● Year
● Semester
● Course ID
● Section ID
● Title
● Credits
● Grade
Basic Path 1. The system prompts the instructor to input a Year and Semester
2. The instructor enters a Year and Semester
3. The instructor clicks Show Sections
4. The system queries the database for information about the
instructor’s sections for the given Year and Semester
Postcondition The system displays a table with the following information for all of the
instructor’s sections that match the specified Year and Semester
● Section Number
● Course ID
● Section ID
● Year
● Semester
● Building
● Room
● Times
● Enrollments (link to view enrollments)
● Assignments (link to view assignments)
Exception Path In step 3, if the Year / Semester field holds invalid data
Page 11 of 30 04/02/2024 f
Software Requirements Specifications Document
Description The system shall allow instructors to view enrollments in their sections
Trigger The instructor clicks Enrollments for one of the displayed sections
Basic Path 1. The system queries the database for information about enrollments
in the corresponding section
Postcondition The system displays a table with the following information for all of the
enrollments in the corresponding section
● Enrollment ID
● Student ID
● Student Name
● Student Email
● Final Grade (editable)
Description The system shall allow instructors to enter final grades for enrollments in
their sections
Trigger The instructor modifies the Grade field for one or more of the displayed
enrollments
Page 12 of 30 04/02/2024 f
Software Requirements Specifications Document
Description The system shall allow instructors to view all assignments in each of their
sections
Trigger The instructor clicks Assignments for one of the displayed sections
Basic Path 1. The system queries the database for information about assignments
in the corresponding section
Postcondition The system displays a table with the following information for all of the
assignments in the corresponding section
● Assignment ID
● Title
● Due Date
● Grade (link to view assignment grades)
● Edit (link to edit assignment)
● Delete (link to delete assignment)
Description The system shall allow instructors to view assignment grades for their
sections
Page 13 of 30 04/02/2024 f
Software Requirements Specifications Document
Trigger The instructor clicks Grade for one of the displayed assignments
Basic Path 1. The system queries the database for information about grades of
the corresponding assignment
Postcondition The system displays a table with the following information for all of the
grades of the corresponding assignment
● Grade ID
● Student Name
● Student Email
● Score (editable)
Description The system shall allow instructors to edit assignment grades for their
sections
Trigger The instructor modifies the Score field for one or more of the displayed
grades
Page 14 of 30 04/02/2024 f
Software Requirements Specifications Document
Description The system shall allow instructors to edit assignments from their sections
Trigger The instructor clicks Edit for one of the displayed assignments
Basic Path 1. The system displays a popup allowing the instructor to edit the
assignment’s Title and Due Date
2. The instructor makes the desired modifications
3. The instructor clicks Save
4. The system updates the database with the assignment’s new Title
and Due Date
Exception Path In step 3, if the Title / Due Date field holds invalid data
● The system displays a relevant error message
● The database is not updated
In step 4, if the database returns an error
● The system displays a relevant error message
● The database is not updated
Description The system shall allow instructors to delete assignments from their
sections
Trigger The instructor clicks Delete for one of the displayed assignments
Basic Path 1. The system displays a popup confirming that the instructor wants
to delete the assignment
2. The instructor clicks Yes
3. The system deletes the corresponding assignment from the
database
Page 15 of 30 04/02/2024 f
Software Requirements Specifications Document
Exception Path In step 3, if the database returns an error, such as the assignment having
associated grades
● The system displays a relevant error message
● The database is not updated
Description The system shall allow instructors to add assignments to their sections
Basic Path 1. The system displays a popup that prompts the instructor to enter a
Title and Due Date
2. The administrator enters a Title and Due Date
3. The administrator clicks Save
4. The system adds the new assignment to the database
Exception Path In step 3, if the Title / Due Date field holds an invalid value
● The system displays a relevant error message
● The database is not updated
In step 3, if the database returns an error
● The system displays a relevant error message
● The database is not updated
Page 16 of 30 04/02/2024 f
Software Requirements Specifications Document
Basic Path 1. The system queries the database for information about existing
user accounts
Postcondition The system displays a table with the following information for all of the
users in the system
● User ID
● User Name
● User Email
● User Type
● Edit (link to edit user)
● Delete (link to delete user)
Trigger The administrator clicks Edit for one of the displayed users
Basic Path 1. The system displays a popup allowing the administrator to edit the
user’s Name, Email, and Type
2. The administrator makes the desired modifications
3. The administrator clicks Save
4. The system updates the database with the user’s new Name,
Email, and Type
Page 17 of 30 04/02/2024 f
Software Requirements Specifications Document
Exception Path In step 3, if the Name / Email / Type field holds invalid data
● The system displays a relevant error message
● The database is not updated
In step 4, if the database returns an error
● The system displays a relevant error message
● The database is not updated
Trigger The administrator clicks Delete for one of the displayed users
Basic Path 1. The system displays a popup confirming that the administrator
wants to delete the user
2. The administrator clicks Yes
3. The system deletes the corresponding user from the database
Exception Path In step 3, if the database returns an error, such as the user having
associated courses
● The system displays a relevant error message
● The database is not updated
Basic Path 1. The system displays a popup that prompts the instructor to enter a
Page 18 of 30 04/02/2024 f
Software Requirements Specifications Document
Exception Path In step 3, if the Name / Email / Type field holds an invalid value
● The system displays a relevant error message
● The database is not updated
In step 4, if the database returns an error
● The system displays a relevant error message
● The database is not updated
Basic Path 1. The system queries the database for information about existing
courses
Postcondition The system displays a table with the following information for all of the
courses in the system
● Course ID
● Course Title
● Course Credits
● Edit (link to edit course)
● Delete (link to delete course)
Page 19 of 30 04/02/2024 f
Software Requirements Specifications Document
Trigger The administrator clicks Edit for one of the displayed courses
Basic Path 1. The system displays a popup allowing the administrator to edit the
course’s Title and Credits
2. The administrator makes the desired modifications
3. The administrator clicks Save
4. The system updates the database with the course’s new Title and
Credits
Exception Path In step 3, if the Title / Credits field holds invalid data
● The system displays a relevant error message
● The database is not updated
In step 4, if the database returns an error
● The system displays a relevant error message
● The database is not updated
Trigger The administrator clicks Delete for one of the displayed courses
Basic Path 1. The system displays a popup confirming that the administrator
wants to delete the course
2. The administrator clicks Yes
3. The system deletes the corresponding course from the database
Page 20 of 30 04/02/2024 f
Software Requirements Specifications Document
Exception Path In step 3, if the database returns an error, such as the course having
associated sections
● The system displays a relevant error message
● The database is not updated
Basic Path 1. The system displays a popup that prompts the instructor to enter a
Course ID, Title, and Credits
2. The administrator enters a Course ID, Title, and Credits
3. The administrator clicks Save
4. The system adds the new course to the database
Exception Path In step 3, if the Course ID / Title / Credits field holds an invalid value
● The system displays a relevant error message
● The database is not updated
In step 4, if the database returns an error
● The system displays a relevant error message
● The database is not updated
Page 21 of 30 04/02/2024 f
Software Requirements Specifications Document
Basic Path 1. The system prompts the administrator to enter a Course Prefix,
Year, and Semester
2. The administrator enters a Course Prefix, Year, and Semester
3. The administrator clicks Search for Sections
4. The system queries the database for information about existing
sections that match the given Course Prefix, Year, and Semester
Postcondition The system displays a table with the following information for all the
sections that match the given Course Prefix, Year, and Semester
● Section Number
● Course ID
● Section ID
● Year
● Semester
● Building Number
● Room Number
● Times
● Edit (link to edit section)
● Delete (link to delete section)
Exception Path In step 3, if the Course Prefix / Year / Semester field holds an invalid
value
● The system displays a relevant error message
In step 4, if the database returns an error, such as there being no sections
that match the given Course Prefix, Year, and Semester
● The system displays a relevant error message
Trigger The administrator clicks Edit for one of the displayed sections
Page 22 of 30 04/02/2024 f
Software Requirements Specifications Document
Basic Path 1. The system displays a popup allowing the administrator to edit the
section’s Section ID, Building Number, Room Number, Times,
and Instructor Email
2. The administrator makes the desired modifications
3. The administrator clicks Save
4. The system updates the database with the section’s new Section
ID, Building, Room, Times, and Instructor Email
Exception Path In step 3, if the Section ID / Building Number / Room Number / Times /
Instructor Email field holds invalid data
● The system displays a relevant error message
● The database is not updated
In step 4, if the database returns an error
● The system displays a relevant error message
● The database is not updated
Trigger The administrator clicks Delete for one of the displayed sections
Basic Path 1. The system displays a popup confirming that the administrator
wants to delete the section
2. The administrator clicks Yes
3. The system deletes the corresponding section from the database
Exception Path In step 3, if the database returns an error, such as the section having
associated enrollments
Page 23 of 30 04/02/2024 f
Software Requirements Specifications Document
Basic Path 1. The system displays a popup that prompts the instructor to enter a
Course ID, Section ID, Year, Semester, Building Number, Room
Number, Times, and Instructor Email
2. The administrator enters a Course ID, Section ID, Year, Semester,
Building Number, Room Number, Times, and Instructor Email
3. The administrator clicks Save
4. The system adds the new section to the database
Page 24 of 30 04/02/2024 f
Software Requirements Specifications Document
Non-functional requirements are those that do not pertain to a single function of the
system, but that span its entirety. This includes many important attributes of the system,
such as:
● Performance – How quickly the system responds to input, and how the system
scales to increasing demand.
● Security – How secure the system is to external factors and malicious actors.
● Reliability – How precisely the system replicates the same behaviors.
● Usability – How easy the system is for the relevant actors to use.
● Maintainability – How feasible it is to keep the system operating over time.
● Portability – How viable it is for the system to run in different environments.
3.3.1 Performance
1. The system shall, on average, respond to user interactions that do not require a
database operation within 0.1 seconds.
2. The system shall, on average, respond to user interactions that require a
computationally inexpensive database operation within 1 second.
3. The system shall, on average, respond to user interactions that require a
computationally expensive database operation within 10 seconds.
3.3.2 Security
1. The system shall maintain the integrity of sensitive information by employing
secure communication protocols, such as HTTPS.
2. The system shall preserve the confidentiality of sensitive information, such as
transcripts, through role-based authentication.
3.3.3 Reliability
1. The system shall undergo strict unit / system test procedures before updates are
pushed to production. This ensures that unintended, and potentially disruptive
regressions are caught before they can influence the deployed system.
3.3.4 Usability
1. The system shall implement familiar UI schemas to ensure that the end-user
experience is predictable, pleasant to navigate, and functional.
3.3.5 Maintainability
1. The system shall include a robust set of documentation, so as to allow future
maintainers to better understand, and potentially update the system. Additionally,
best practices will be utilized to ensure that the system is built in a way that aids
in future maintenance tasks.
3.3.6 Portability
Page 25 of 30 04/02/2024 f
Software Requirements Specifications Document
1. The system shall use technologies known for their portability, such as Java and
Spring Boot, to facilitate its operation in a flexible set of environments.
Page 26 of 30 04/02/2024 f
Software Requirements Specifications Document
A relational database shall be used to store the various entities tracked by the system,
including assignments, courses, enrollments, grades, sections, terms, and users. Logical
details about the database can be found below.
Page 27 of 30 04/02/2024 f
Software Requirements Specifications Document
Page 28 of 30 04/02/2024 f
Software Requirements Specifications Document
Page 29 of 30 04/02/2024 f
Software Requirements Specifications Document
Page 30 of 30 04/02/2024 f