List of Functional Requirements:
The system should allow users to register for an account.
The system should allow users to log in and out of their accounts.
The system should provide a search functionality for users.
The system should allow users to create new posts.
The system should allow users to edit or delete their own posts.
The system should allow users to follow or unfollow other users.
The system should generate notifications for the users for different actions like
receiving new messages or following a new user.
List of Non-Functional Requirements:
The system's response time should be less than 2 seconds.
The system should be available 24/7 with minimal downtime.
The system should be able to handle at least 1000 concurrent users.
Functional and Non-functional Requirements for a new System
Functional Requirements
Allow students to register in courses
Allow professors to upload course materials and assignments
Allow professors to grade and leave feedback on student submissions
Provide a calendar that shows important academic events such as midterm exams,
finals, and holidays
Allow students to view their grades, schedule, and personal information
Provide a messaging system for communication between students and professors
Allow administrators to add, remove, or edit courses and update student records
Non-functional Requirements
The system must be user-friendly and accessible for individuals with disabilities
The system must load quickly and have high availability
The system should adhere to best security practices to protect the privacy of the
users’ data.
User Stories
Student Role
User Story 1
As an undergraduate student, I want to be able to access my course schedule online
so that I can easily plan my study time.
User Story 2
As a graduate student, I want to be able to message my professor directly from the
course page so that I can quickly ask questions about course materials or
assignments when I need help.
Professor Role
User Story 1
As a computer science professor, I want to be able to grade student assignments and
provide feedback using a rubric so that grading is more consistent and less time-
consuming.
User Story 2
As a physics professor, I want to be able to upload lecture notes in PDF format
from my desktop computer rather than having to physically bring printed copies to
the classroom.
As a student
I want to log into the system with my username and password.
I want to view my courses on the dashboard screen.
I want to be able to enroll/unenroll in any course easily.
I want to submit an assignment in any course before the deadline.
I want to view my completed and pending assigned work.
As a professor
I want to log in to the system with my username and password.
I want to view all of the courses I am teaching on one screen.
I want to add/delete/modify course content as necessary.
I want to set deadlines for assignments and homework for each course.
I want to be notified when a student submits their work.
Suggested Software Development Model:
The most suitable software development model for this system is Agile methodology.
Here are the reasons why it would be a good fit based on the following criteria:
Requirements characteristics
Reliability: One of the main advantages of using Agile is that it includes regular
testing throughout the development process, which makes the system more reliable.
Types and number of requirements: Agile is flexible enough to handle many types of
requirements for this system (both functional and non-functional).
How often the requirements can change: Agile is designed to manage changes in
requirements easily, which is perfect given that requirements for an education
system could be ever-changing.
Can the requirements be defined at an early stage? Yes, Agile provides the
opportunity to define requirements at an early stage by breaking development
processes into stages.
Development Team
Team size: Agile is structured to work well with teams of programmers, designers,
testers.
Level of understanding of user requirements by the developers: Agile methodology
emphasizes collaboration between clients and developers, which means clear
communication and understanding of requirements are made a top priority.
User involvement in the project
This refers to the level of participation expected from users during the software
development process. For this system, user involvement is considered average - it
is not too low, nor too high. Accordingly, Agile's focus on client interaction,
continuous deployment, and frequent updates makes it an ideal choice.
level 1: As a student,
As a student, As a professor,
I want to be able
I want to view I want to manage
to select courses
my schedule course details
level 2: Select course modal | Course details |Current semester courses
| Suggested Courses| View Schedule | Manage Schedule |
View/manage courses
level 3: Pagination option | Ability to search |Ability to filter courses
| Ability to save | Print schedule | Ability to add or | Ability to edit |
Add/update | Assign TA | Message students
| for specific courses |by professor, time or day
| selected courses | | remove courses from | the schedule |
course | to course | taking my courses
| the schedule | | information | |