Software Requirements Specification
Software Requirements Specification
Registration Service
Version 1.0
Myles Lopez
This report covers a project foundation for administrators and students to interact with a
database storing data consisting of registration records. The scope of this specification focuses on
the addition of students to a registry as well as the enrollment of those students into courses. The
database described in this specification does also cover columns within tables which are defined
for further specifications that exceed the functional requirements, but are included for assumed
further detail the specifications in conjunction with explanations, functional and non-functional
some controllers.
The diagram above provides a visual representation of the functionality the created
service currently provides. The Registration Service has two actors and one database connection.
The actor of Student is able to enroll in courses, drop courses, and view all courses they are
currently enrolled in. The Administrator actor is able to add students to the database. When a
Student enrolls in a course, data from the Registration Database is the passed to the Gradebook
Service and stored in the Gradebook database. The data that is sent to the Gradebook Service is
the course ID and student ID from the Registration database. If faulty information is used in the
case of enrolling in a course, there is an output error generated by the Registration Service; The
student to the system. Each case of enrolling in a course, adding a student to the database, and
viewing all current enrolled courses, call a case of finding a student by their unique email value.
When we look at the Gradebook Service actor that is receiving data from the Registration
Service, there is data being passed between the databases as well. For the Gradebook Service,
there is implied cases with which that service interacts with the database tables described in
section 3.4 of this specification. It is also important to note that in the UML diagram there are
other functions within the cases illustrated. Those functions are not illustrated because they are
imported from libraries that are not created within the Registration Service described here.
It is important to note that when referencing any element from section 3.4, I am implying
that the functional services is directly interacting with that table from the database described in
section 3.4.
Basic Path 2. The student selects which semester and year they want.
Basic Path 2. The student selects which semester and year they want.
XRef Output Error (3.2.2), Find Student By Email (3.2.3), Student (3.4)
3. The Administrator fills out the “Student Name” and “Student Email”
Basic Path
Field.
3. The Student inputs a course number that does not exist in the database
OR
Alternative Paths
Step 2. The Student clicks the “Get Schedule” button.
OR
Alternative Paths
Step 2. The Administrator clicks on the “Add Student” button.
3. The Administrator fills out the “Student Name” and “Student Email”
Field.
The Registration System can execute all of these programs rapidly since the database
architecture is quite small, requiring only a few milliseconds at most to execute a command.
Each individual using the system will be required to be logged in, if they are not then none of the
interfaces for the system will load. This is the main implemented security feature, along with the
built-in security of the Spring Boot server operating the service. To use this system a user must
be operating a Chrome browser with at version 112 installed. Other versions have not been tested
on this service, and further compatibility will require further implementation. For each actor
(Student and Administrator), each homepage and access to functions in the service will be
Course
Enrollment
Student
For the Diagram above it is important to note that for the Enrollment table there is only
one student ID and course ID for each row. This table acts as the intermediary with which each
student can have a specific grade for each course they are enrolled in. This grade is set to be
retrieved from a Gradebook Service that is beyond the scope of this paper. The Enrollment table
passes information to the Gradebook Service as well each time a student is enrolled in a course.
This is achieved through a REST or RabbitMQ controller within the Registration Service. The
Student table does implement a student ID as the primary key. However, throughout the service
itself, the email field of the Student table acts as the key for retrieving information from the
Student table. When looking at the table for Course, the reason why the room number can be
empty is because some courses can be held online or in the library, which eliminates the need for