0% found this document useful (0 votes)
8 views2 pages

Functional & Non-Functional System Requirements

Uploaded by

quancaominh203
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views2 pages

Functional & Non-Functional System Requirements

Uploaded by

quancaominh203
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

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 | |

Common questions

Powered by AI

User stories serve as a crucial tool in guiding the development and personalization of the system by capturing specific user needs and expectations . They help developers understand the user perspective, ensuring that features align with real-world use cases, such as students accessing schedules online or professors grading assignments using rubrics. This leads to a more user-centric design and functionality .

Handling 1000 concurrent users presents challenges such as ensuring server robustness, network bandwidth allocation, and system resource optimization to maintain performance under load . Developing a scalable architecture that anticipates peak usage times and integrates effective load-balancing mechanisms is essential to address these challenges. Failure to do so could result in performance bottlenecks and degraded user experience, undermining the system's reliability .

The system's functional requirements cater to students by allowing them to register for courses, view their grades and personal information, and use a messaging system to communicate with professors . For professors, the system enables them to upload course materials, grade assignments, and provide feedback, facilitating efficient teaching and administrative tasks .

The non-functional requirements aimed at high performance ensure the system loads quickly and provides 24/7 availability, thereby minimizing downtime and maintaining user satisfaction . Security practices protect user data privacy, essential in safeguarding sensitive information typically involved in educational systems . Together, these requirements ensure a reliable and secure user experience, which is foundational for system credibility and trustworthiness.

Using Agile methodology positively impacts team dynamics by promoting collaboration among developers, testers, and designers, ensuring continuous communication and alignment with the client's needs . It fosters a dynamic environment where team members are actively involved in decision-making, improving morale and productivity. Agile's iterative development process also allows teams to adapt quickly to changes, enhancing overall project efficiency and team synergy .

The system enhances user engagement by generating notifications for various actions such as receiving new messages or following a new user . Additionally, it provides a messaging system for communication between students and professors, facilitating timely and effective interaction within the community .

The system's functionalities for user posts, following, and unfollowing contribute significantly to community interaction and knowledge sharing by enabling users to actively engage with one another, share insights, and exchange feedback on academic content . These features mimic social networking elements that foster a sense of community, allowing users to build networks based on shared interests and academic pursuits, which is vital for collaborative learning .

Agile methodology supports handling changes in requirements by breaking the development process into stages, allowing for frequent iterations and client feedback . This flexibility is particularly beneficial for educational systems where requirements might frequently change, as it allows for easy adaptation and continuous integration of new requirements as they arise .

Usability and accessibility are crucial in ensuring that all users, including individuals with disabilities, can effectively interact with the system. The requirements address these needs by emphasizing a user-friendly design that is accessible, thus meeting diverse user needs and complying with best practices in technology inclusivity . Ensuring usability and accessibility enhances the system's reach and effectiveness in an educational setup.

The system facilitates academic planning and management for students by providing functionalities such as access to course schedules, the ability to register in or out of courses, and a calendar that displays important academic events . These features allow students to organize their study time effectively and stay informed about key deadlines, contributing to better academic planning and management .

You might also like