Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 33

ASSIGNMENT 2 FRONT SHEET

Qualification BTEC Level 4 HND Diploma in Computing

Unit number and title Unit 7: Software Development Life Cycle

Submission date 04/04/2024 Date Received 1st submission 04/04/2024

Re-submission Date 14/04/2024 Date Received 2nd submission 14/04/2024

Student Name LE HOANG GIANG Student ID BS00606

Class SE06201 Assessor name Mr. Khanh

Student declaration

I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.

Student’s signature GIANG

Grading grid

P5 P6 P7 M3 M4 M5 M6 D3 D4
❒ Summative Feedback: ❒ Resubmission Feedback:

Grade: Assessor Signature: Date:


Internal Verifier’s Comments:

Signature & Date:


Contents
INTRODUCTION.......................................................................................................................................2
(P5) Undertake a software investigation to meet a business need................................................................2
(P6) Analyze the requirements that you identified in Task 1 using a combination of structural and behavioral
modelling techniques that you have learnt.................................................................................................12
(P7) Discuss, using examples, the suitability of software behavioural design techniques..................19
Conclusion.................................................................................................................................................32
References.................................................................................................................................................32

INTRODUCTION
I'm excited to join NEI as a Systems Analyst for the Office Management project. This initiative aims to automate
key functions in Timekeeping and Student Administration, enhancing efficiency and improving the educational
experience for students. With innovative technology and design, we aim to propel NEI forward and create a
seamless learning environment. I look forward to contributing my skills to this project and helping NEI achieve its
mission of providing quality education.

(P5) Undertake a software investigation to meet a business need.


a) Identify the stakeholders, theirs roles and interests in the case study.

Introduction
In the realm of software development, meeting the needs of various stakeholders is paramount for the success of any
project. This holds especially true for endeavors such as implementing a software system for managing student
records within a university setting. In this introduction, i will lay the groundwork for understanding the importance
of stakeholder identification, their roles, and interests in the context of the student management system project.
The efficient management of student records not only streamlines administrative processes but also enhances the
overall academic experience for students and faculty alike. However, achieving this goal requires a deep
understanding of the diverse set of stakeholders involved in the project, ranging from university administrators to
regulatory bodies, and everyone in between.
By identifying these stakeholders, delineating their roles, and discerning their interests, i can ensure that the
developed software system caters to the specific needs and expectations of each party involved. Moreover,
understanding the requirements of the project, both functional and non-functional, is imperative for delivering a
robust and user-friendly solution that meets the overarching business need.
This analysis will delve into the stakeholder landscape of the student management system project, elucidating the
roles and interests of each stakeholder group. Furthermore, it will outline the functional and non-functional
requirements of the project, providing a comprehensive understanding of the project's scope and objectives. Finally,
the techniques employed to gather these requirements will be discussed, shedding light on the methodology used to
ensure that the developed system aligns with the needs and expectations of all stakeholders involved.
Identify the stakeholders, theirs roles and interests

Dèinition: A stakeholder is an individual, group, or organization that has an interest or concern in a particular
project, initiative, or organization. Stakeholders can be directly or indirectly affected by the outcomes of the project
or organization, and they may have varying degrees of influence over its success or failure. Examples of
stakeholders include employees, customers, investors, suppliers, government agencies, regulatory bodies,
community members, and advocacy groups. Identifying and understanding stakeholders' interests, roles, and
expectations is essential for effective project management and decision-making.

University Administration:

Role: The university administration encompasses various departments responsible for overseeing academic and
administrative functions. This includes registrars, academic affairs, finance, and institutional research.

Interests: University administrators seek efficient solutions to manage student records, enrollment data, and
academic progress. They require accurate and reliable reporting for strategic planning, budget allocation, and
accreditation purposes. Compliance with regulatory standards, such as FERPA, GDPR, and institutional policies, is
crucial to safeguard student privacy and maintain institutional integrity. Administrators are also interested in
leveraging technology to enhance administrative processes, improve data analytics capabilities, and provide better
support services for students.

Academic Staff (Faculty):

Role: Faculty members are educators, researchers, and mentors responsible for delivering quality instruction and
fostering academic growth among students.

Interests: Faculty members rely on student management systems to access course rosters, track attendance,
record grades, and communicate with students. They value user-friendly interfaces that streamline administrative
tasks, such as uploading course materials, scheduling exams, and submitting grades. Additionally, faculty seek
tools for monitoring student progress, identifying at-risk students, and providing timely interventions or academic
support. Integration with learning management systems (LMS) and academic tools enhances the teaching and
learning experience, enabling faculty to deliver engaging and interactive courses.

Students:

Role: Students are the primary stakeholders in the educational process, seeking to achieve their academic and
career goals.

Interests: Students expect intuitive and accessible student management systems that facilitate self-service
functionalities, such as course registration, degree planning, and financial aid management. They prioritize
features that enhance academic engagement, such as access to course materials, online collaboration tools, and
personalized learning resources. Timely notifications about important dates, deadlines, and campus events are
essential for staying organized and informed. Students also value privacy and data security, expecting robust
measures to protect their personal information and academic records from unauthorized access or breaches.

IT Department:
Role: The IT department provides technical expertise and support for implementing and maintaining the student
management system.

Interests: IT professionals focus on system architecture, database management, software development, and
cybersecurity. They seek scalable and secure solutions that meet the university's functional requirements while
adhering to industry standards and best practices. Technical considerations include system integration with
existing infrastructure, data migration strategies, and disaster recovery planning. IT professionals also prioritize
user experience, conducting usability testing and gathering feedback to optimize system performance and
accessibility for all stakeholders.

Regulatory Bodies:

Role: Regulatory bodies set guidelines, standards, and policies to ensure the integrity, quality, and equity of
education.

Interests: Regulatory compliance is paramount for higher education institutions to maintain accreditation status,
eligibility for federal funding, and legal standing. Regulatory bodies establish guidelines for data privacy, student
rights, academic integrity, and institutional accountability. Compliance efforts encompass data governance, risk
management, audit processes, and reporting requirements. Educational institutions must demonstrate
transparency and accountability in their operations, implementing safeguards to protect student data and uphold
ethical principles in research and academic practices.

Parents and Guardians:

Role: Parents and guardians play a supportive role in students' educational journeys, providing guidance,
encouragement, and financial support.

Interests: Parents seek access to information about their child's academic progress, including grades, attendance,
and course schedules. They value communication channels with faculty and university staff to address concerns,
discuss academic goals, and provide feedback on their child's educational experience. Parental involvement
fosters collaboration between home and school, facilitating student success and well-being. Data security and
privacy are important considerations for parents, who entrust educational institutions to safeguard their child's
personal information and academic records.[1]

Requirement definition of the project ( FRs and NFRs)


Dèinition:
Functional Requirements (FRs): These are specific requirements that describe the functions that a software system
must perform. They define what the system needs to do to meet the needs of the users. FRs are often described by
explaining what the system needs to do in terms of specific features, functions, or behaviors.

Non-Functional Requirements (NFRs): These are requirements that a system or software must adhere to regarding
attributes that are not directly functions of the system. These requirements often relate to performance, security,
availability, scalability, reliability, and compliance with regulations and standards. NFRs typically address how the
system or software must operate rather than what it does.
Functional Requirements (FRs):
1. Teacher Management:
 View Teacher Information: Users should be able to view detailed information about teachers,
including their ID, name, email, and phone number.
2. Student Management:
 View Student Information: Users should have access to student profiles, displaying information
such as student ID, name, email, phone number, and hometown.
3. Show List of Students:
 Students and Parents: Students and parents should be able to view a list of enrolled students.
 Teachers: Teachers should have access to a list of students enrolled in their courses.
4. Add New Student:
 Teachers: Teachers should have the capability to add new student profiles to the system.
5. Send Feedback:
 Teacher, Student, and Parent: Users should be able to submit feedback to the school management
system regarding various aspects of the system's functionality and usability.
Non-Functional Requirements (NFRs):
1. Performance:
 Response Time: The system should respond to user interactions, such as page loads and search
queries, within 2 seconds under normal load conditions.
2. Scalability:
 Concurrent Users: The system should support at least 1000 concurrent users without significant
performance degradation.
3. Security:
 Data Encryption: All data should be encrypted both at rest and in transit to ensure confidentiality
and integrity.
 Access Control: Access controls should be implemented to restrict data access based on user roles
(e.g., student, faculty, admin).
4. Usability:
 User Interface: The user interface should be intuitive and easy to navigate, with clear labeling and
instructions.
 Training Requirements: Training requirements for using the system should be minimal to ensure
user adoption and efficiency.
5. Reliability:
 System Uptime: The system should have an uptime of at least 99.5%, with scheduled maintenance
communicated to users in advance.
 Data Backup: Regular backups of system data should be performed to prevent data loss in case of
system failures or disasters.
6. Compliance:
 Regulatory Compliance: The system should comply with relevant data protection regulations (e.g.,
GDPR, HIPAA) and educational standards (if applicable).
7. Backup and Recovery:
 Backup Procedures: Regular backups of the system data should be performed, and a recovery plan
should be in place to restore data in case of system failures or disasters. [2]

List out FRs and NFRs in NEI project


Functional Requirements (FRs):
1. User Authentication and Authorization:
 User registration should enable account creation with a unique email address and password.
 Confirmation emails should be sent upon registration for account verification.
 Password recovery options such as security questions or email verification should be supported.
 Different user roles (administrators, faculty, students) should have distinct permissions and access
levels within the system.
2. Student Registration for Courses:
 Students should be able to search for courses based on criteria such as course code, title, instructor,
or department.
 Course details should include prerequisites, credits, schedule, location, and available seats.
 During registration, students should be able to add or drop courses, with real-time updates on seat
availability and conflicts with existing schedules.
 Waitlisting functionality should automatically enroll students from the waitlist as seats become
available, notifying them via email or system alerts.
3. Grade Recording and Calculation:
 Faculty should be able to enter grades for individual assignments, exams, quizzes, and other
assessments within the system.
 The gradebook should support weighted or points-based grading systems, allowing faculty to assign
weights to different assessment components.
 Final grades should be calculated based on the grading criteria defined for each course, including
weights for assignments, exams, participation, and other factors.
 Grade calculation should consider any grade adjustments or curves applied by the instructor, with a
transparent breakdown of how the final grade was derived.
4. Attendance Tracking:
 Faculty should have the ability to record student attendance for each class session, marking students
as present, absent, or tardy.
 Attendance records should be timestamped and linked to the corresponding class sessions.
 The system should generate attendance reports for individual students, showing their attendance
history for each course and overall attendance percentage.
 Automated alerts should notify faculty of students with a pattern of absences, prompting follow-up
actions such as outreach or intervention.
5. Generate Reports:
 The system should offer a range of pre-defined reports, including class rosters, grade distribution
summaries, attendance summaries, and student transcripts.
 Custom report generation should allow users to select specific criteria, filters, and formatting
options to tailor reports to their needs.
 Reports should be available in multiple formats (e.g., PDF, Excel) and accessible for printing,
sharing, or exporting to other systems.
 Scheduled report generation should enable administrators to automate report delivery to
stakeholders on a recurring basis, such as weekly grade reports or monthly attendance summaries.
6. Communication Features:
 Users should be able to communicate within the system through messaging, discussion forums, or
announcements.
 Faculty should have the ability to send broadcast messages to students or specific class sections
regarding course updates, reminders, or announcements.
 Notifications should be configurable, allowing users to receive alerts via email, SMS, or in-app
notifications for important events such as assignment due dates, exam schedules, or system
maintenance.
7. Integration with Other Systems:
 The student management system should integrate seamlessly with other university systems such as
finance, learning management, and library systems.
 Data synchronization should ensure consistency and accuracy across integrated systems,
minimizing data duplication and discrepancies.
 Single sign-on (SSO) functionality should allow users to access multiple systems with a single set
of credentials, enhancing user experience and security.
 APIs should be provided for interoperability with third-party applications, enabling custom
integrations and data exchange.
Non-Functional Requirements (NFRs):
1. Security:
 The system should implement encryption for data transmission and storage using industry-standard
protocols (e.g., TLS/SSL).
 Role-based access control (RBAC) should be enforced, with granular permissions and access
restrictions based on user roles and responsibilities.
 Regular security assessments, penetration testing, and vulnerability scanning should be conducted
to identify and mitigate potential security risks.
2. Performance:
 The system should be designed to handle a large volume of concurrent users, with scalability
options to accommodate peak usage periods.
 Response times for user interactions should be optimized, with minimal latency for page loading,
search queries, and data retrieval.
 Performance monitoring tools should be implemented to track system performance metrics and
identify bottlenecks or areas for optimization.
3. Usability:
 The user interface should be intuitive, responsive, and accessible across different devices and
screen sizes.
 Usability testing should be conducted with representative users to identify and address usability
issues, incorporating feedback into iterative design improvements.
 Accessibility features should be implemented to comply with WCAG (Web Content Accessibility
Guidelines), ensuring that the system is usable by individuals with disabilities.
4. Reliability:
 The system should have high availability, with minimal downtime for scheduled maintenance or
unplanned outages.
 Redundancy measures such as failover clustering, load balancing, and data replication should be
implemented to ensure continuous service availability.
 Data integrity and backup mechanisms should be in place to prevent data loss and facilitate data
recovery in the event of system failures or disasters.
5. Compliance:
 The system should comply with relevant laws, regulations, and industry standards governing data
privacy, security, and accessibility.
 Regular compliance audits should be conducted to verify adherence to regulatory requirements and
institutional policies.
 Data retention policies should be established and enforced to ensure compliance with legal and
regulatory requirements for data storage and retention periods.

Relationships between the FRs and NFRs

1. Security (NFR) and User Authentication (FR):

 The security requirement ensures that user authentication mechanisms are robust and protect user
credentials from unauthorized access.

 User authentication functional requirement relies on security measures to authenticate users


securely, preventing unauthorized access to the system.
2. Performance (NFR) and Student Registration (FR):

 The performance requirement ensures that the system can handle a large volume of concurrent
users during peak registration periods without experiencing degradation in response times.

 Student registration functional requirement depends on performance optimizations to provide a


seamless user experience, particularly when processing registration requests and updating course
availability in real-time.

3. Usability (NFR) and Grade Recording (FR):

 The usability requirement ensures that the user interface is intuitive and user-friendly, facilitating
efficient navigation and data entry for faculty recording grades.

 Grade recording functional requirement benefits from usability enhancements, allowing faculty to
input grades accurately and efficiently, reducing errors and improving productivity.

4. Reliability (NFR) and Attendance Tracking (FR):

 The reliability requirement ensures that the system has high availability and minimal downtime,
ensuring that faculty can record student attendance without interruption.

 Attendance tracking functional requirement relies on system reliability to ensure that attendance
data is captured accurately and consistently, even during periods of high system usage.

5. Compliance (NFR) and Report Generation (FR):

 The compliance requirement ensures that the system adheres to regulatory standards and
institutional policies governing data privacy, security, and accessibility.

 Report generation functional requirement must comply with data privacy regulations by ensuring
that sensitive student information is appropriately protected in generated reports and accessible only
to authorized users.

6. Security (NFR) and Communication Features (FR):

 The security requirement ensures that communication features within the system, such as
messaging and announcements, are protected from unauthorized access and data breaches.

 Communication features functional requirement relies on security measures to safeguard user


communications and prevent interception or tampering by unauthorized parties.[3]

b) Discuss the technique (s) you did use to obtain the requirements.

Introduction
Requirement gathering is a fundamental aspect of software development, serving as the cornerstone for successful
project delivery. This phase involves identifying, analyzing, and documenting the needs, expectations, and
constraints of stakeholders to ensure that the final product meets their objectives effectively. Various techniques are
employed during requirement gathering to elicit, clarify, and prioritize requirements, each offering unique
advantages and challenges. In this discussion, we will explore some of the key requirement gathering techniques
utilized to obtain requirements for the NEI (Student Management) project. These techniques play a vital role in
facilitating communication, collaboration, and understanding among project stakeholders, ultimately shaping the
direction and scope of the project. By employing a structured and systematic approach to requirement gathering,
project teams can minimize misunderstandings, mitigate risks, and lay a solid foundation for the successful
implementation of the NEI project.
Requirement gathering techniques
Gathering requirements is a crucial step in the software development process, ensuring that the final product meets
the needs and expectations of stakeholders. Here are the steps for gathering requirements:
1. Identify Stakeholders:
 Purpose: This technique aims to identify all parties involved or impacted by the software project,
including end-users, clients, subject matter experts, and other relevant stakeholders.
 Steps:
 Create a comprehensive list of potential stakeholders based on their roles and
responsibilities within the project.
 Conduct interviews or surveys to gather input from stakeholders regarding their
involvement and interests in the project.
 Analyze organizational structures and communication channels to ensure all relevant
stakeholders are identified.
 Document stakeholder information, including their roles, responsibilities, interests, and
level of influence over project decisions.
2. Conduct Stakeholder Analysis:
 Purpose: Stakeholder analysis helps understand the interests, expectations, and influence of each
stakeholder, determining their level of involvement in the project and their role in decision-making.
 Steps:
 Identify the primary objectives and goals of each stakeholder.
 Assess the level of influence each stakeholder has over project decisions and outcomes.
 Determine the potential impact of stakeholders' interests and expectations on the project
scope and requirements.
 Categorize stakeholders based on their level of influence and their attitude toward the
project (supportive, neutral, or resistant).
3. Define the Purpose and Scope:
 Purpose: This step aims to clearly define the objectives and goals of the software project,
determining the scope of the project, including functionalities, features, and constraints.
 Steps:
 Collaborate with stakeholders to establish project objectives and success criteria.
 Conduct a thorough analysis of project requirements, constraints, and dependencies.
 Define the scope of the project by outlining the desired functionalities and features of the
software system.
 Document project scope using appropriate documentation formats such as project charters,
scope statements, or vision documents.
4. Select Requirement Gathering Techniques:
 Purpose: Choose appropriate techniques for gathering requirements based on the project's context,
stakeholders, and objectives.
 Steps:
 Evaluate various requirement gathering techniques such as interviews, surveys, workshops,
observation, prototyping, and document analysis.
 Select techniques that best suit the project's goals, timeline, budget, and stakeholder
preferences.
 Consider combining multiple techniques to gather comprehensive and diverse perspectives
from stakeholders.
5. Plan Requirement Gathering Activities:
 Purpose: Develop a plan outlining the timeline, resources, and activities for gathering
requirements, determining responsible parties for conducting requirement gathering activities and
coordinating communication with stakeholders.
 Steps:
 Create a detailed plan for requirement gathering activities, including schedules, milestones,
and deliverables.
 Allocate resources such as personnel, tools, and facilities for conducting requirement
gathering sessions.
 Identify stakeholders' roles and responsibilities in the requirement gathering process.
 Establish communication channels and protocols for sharing information and updates with
stakeholders.
6. Conduct Requirement Gathering Sessions:
 Purpose: Schedule and conduct sessions according to the plan, using selected techniques to elicit,
clarify, and document requirements from stakeholders.
 Steps:
 Facilitate requirement gathering sessions, ensuring active participation and engagement
from all relevant stakeholders.
 Use selected techniques such as interviews, focus groups, or brainstorming sessions to
gather input from stakeholders.
 Document requirements systematically, capturing key insights, preferences, and priorities
expressed by stakeholders.
 Clarify any ambiguities or uncertainties regarding requirements through follow-up
discussions and feedback loops.
7. Document Requirements:
 Purpose: Record and document all gathered requirements systematically, organizing them based on
categories such as functional, non-functional, and technical requirements.
 Steps:
 Compile all documented requirements into a centralized repository or requirements
management tool.
 Organize requirements based on their relevance, priority, and interdependencies.
 Use appropriate documentation formats such as requirement specifications, user stories, or
use cases to describe requirements in detail.
 Ensure that requirements are traceable, measurable, and testable, facilitating their
implementation and validation.
8. Review and Validate Requirements:
 Purpose: Review documented requirements with stakeholders to ensure accuracy, completeness,
and alignment with their expectations, validating requirements by obtaining feedback and
consensus.
 Steps:
 Schedule review sessions with stakeholders to present and discuss documented
requirements.
 Solicit feedback and clarification on requirements, addressing any discrepancies or
concerns raised by stakeholders.
 Verify that requirements meet predefined acceptance criteria and are feasible within project
constraints.
 Obtain formal approval or sign-off from stakeholders to confirm their agreement with
documented requirements.
9. Prioritize Requirements:
 Purpose: Prioritize requirements based on their importance, urgency, and impact on the project's
success, using techniques such as MoSCoW prioritization or ranking.
 Steps:
 Evaluate requirements against predefined criteria such as business value, technical
feasibility, and stakeholder preferences.
 Assign priority levels to requirements based on their criticality to project objectives and
constraints.
 Use prioritization techniques to categorize requirements into must-have, should-have,
could-have, and won't-have categories.
 Communicate prioritized requirements to project stakeholders, ensuring alignment and
consensus on their relative importance.
10. Manage Changes:
 Purpose: Establish a process for managing changes to requirements throughout the project
lifecycle, documenting and tracking changes systematically to ensure transparency and
accountability.
 Steps:
 Implement a change control process to capture, evaluate, and prioritize proposed changes to
requirements.
 Document changes using a standardized change request form or tracking system, including
details such as the rationale for the change, impact analysis, and approval status.
 Review and approve changes in accordance with established change management
procedures, involving relevant stakeholders in decision-making.
 Communicate approved changes to project team members and affected stakeholders,
updating project documentation and plans as necessary.
11. Communicate Requirements:
 Purpose: Communicate the finalized requirements to all project stakeholders, including developers,
testers, and project managers, ensuring clear and consistent communication channels.
 Steps:
 Prepare comprehensive requirement documentation packages for distribution to project
stakeholders.
 Schedule meetings or workshops to present and discuss requirements with development and
testing teams.
 Establish communication channels for addressing questions, concerns, or clarifications
related to requirements.
 Encourage ongoing dialogue and collaboration among stakeholders to ensure shared
understanding and alignment on project objectives and deliverables.

In this project, the most suitable step could be "Conduct Stakeholder Analysis." The reasons are:

Understanding Stakeholder Interests and Expectations: Managing student information requires a deep understanding
of stakeholders such as teachers, students, parents, and school administrators. Analysis will help identify the
requirements and desires of each stakeholder, thereby clearly shaping the project's objectives.
Level of Involvement and Decision-making Role: Determining the level of involvement and decision-making roles
of each stakeholder will dictate how requirements are gathered. For example, teachers may have a higher level of
involvement in determining functional requirements, while parent s may be concerned about system safety
and security.
Building Trust and Engagement: Analyzing stakeholders helps create a positive work environment and build trust.
Understanding their perspectives and concerns fosters a collaborative environment, increasing their willingness to
provide information and participate in requirement discussions.
Minimizing Conflicts and Challenges: By understanding the desires and viewpoints of each stakeholder, conflicts
and challenges can be identified and addressed early, avoiding disagreements and the need for requirement
adjustments later on.

Conclusion.

In software development, requirement gathering is crucial to understand stakeholders' needs and desires.
Techniques such as interviews, surveys, workshops, observation, prototyping, and document analysis play vital
roles in this process. By combining these methods effectively, project teams can efficiently collect, analyze, and
prioritize requirements, ensuring the software product meets stakeholders' expectations and delivers value to the
project.

(P6) Analyze the requirements that you identified in Task 1 using a combination of structural and
behavioral modelling techniques that you have learnt.
 Use Case Diagram for the whole system.

Explain:
 Students: Students can register and log in to the system. Once logged in, they can view a list of students,
which could be all students in the system or students in a specific class or program.
 Teachers: Teachers can add new students to the system. This is typically done by teachers who are
responsible for enrolling students in a class or program.
 Managers: Managers can also add new students to the system. They may have additional privileges, such
as editing student information or deleting student records.
 Main functions of the system:
o Display student list: Both students and teachers can view a list of students for all classes.
o Add new student: Teachers can add new students to their classes.
o Feedback: Students and teachers can provide feedback to the manager.
 Description of how the system works:
o Registration and Login: Students and teachers can sign up for the system and log in with their
credentials.
o Viewing Student Lists: They can access lists of students, potentially filtered by class or program.
o Adding Students: Teachers responsible for enrolling students can add them to the system.
o Feedback: Students and teachers can provide feedback to the manager.

 Use Case specification for 2 Use cases.

Use Case Name: View Student Information

Brief Description:
This use case involves viewing detailed information about a selected student in the
system. Users, including administrators, teachers, or students, can access this
functionality to retrieve specific details about a student, such as their personal
information, enrollment status, and academic records.
Actors: Administrator, Teacher, Student
Preconditions:
The user must be authenticated and logged into the student management system.
The system should have existing student records stored in the database.

Postconditions:
The user can successfully view detailed information about the selected student.
The system provides accurate and up-to-date student data.
Main Flow:
The user logs in to the student management system using their credentials.
Upon successful authentication, the user selects the "View Student Information"
function from the system interface.
The system navigates to the student information page.
The system retrieves and displays a list of available students.
The user selects the desired student from the list.
The system prompts the user to specify which information they want to view.
The user selects the specific information category (e.g., personal details, academic
records).
The system displays detailed information about the selected student, including their
name, student number, date of birth, address, email, enrollment status, and academic
performance.
The user can easily and quickly access the detailed information about the student.
Alternative Flows:
If there are no students available in the system, the system displays a message
indicating the absence of student records.
Use Case Name: Manage Class Lists

Brief Description:
This use case involves managing the lists of classes within the system. Authorized
users, including administrators or teachers, can perform various operations such as
adding, editing, or deleting existing classes. Additionally, users can view detailed
information about each class, including details about the teacher and the number of
students enrolled.
Actors: Administrator, Teacher.
Preconditions:
The user must be authenticated and logged into the student management system with
appropriate permissions.
The system should have existing class records stored in the database.

Postconditions:
The user can successfully manage the list of classes in the system.
Any changes made to class records during this process are accurately reflected in the
system.
Main Flow:
The user logs in to the student management system using their credentials.
After successful authentication, the user selects the "Classroom Management" function
from the system interface.
The system navigates to the class management page.
The system retrieves and displays a list of available students.
The system retrieves and displays a list of classes currently available in the system.
The user is presented with options to add, edit, or delete existing classes.
The user selects the desired action (e.g., adding a new class).
If adding a new class:
The system provides a form for entering class details, including the class name, teacher
information, and maximum capacity.
The user fills out the required fields and optionally any additional details.
The system validates the entered data for correctness and completeness.
Upon successful validation, the system adds the new class to the database and
confirms the action to the user.
If editing or deleting an existing class:
The user selects the specific class from the list.
The system provides options to edit class details or delete the class.
The user performs the desired action, and the system updates the class records
accordingly.
The user can also view detailed information about each class, including information
about the teacher, the number of students enrolled, and any additional details.
Alternative Flows:
If there are no classes available in the system, the system displays a message
indicating the absence of class records.

 Data Flow Diagram – Level 0 for the whole system.

 ERD for the whole system.


For each diagram, you will have to explain properly.

Use Case Diagram Explanation:

1. Student System:

 This is the main system under consideration, representing the entirety of the student management
system developed for NEI.

2. Use Cases:

 View Student Information:

 This use case allows users (administrators, teachers, or students) to view detailed
information about a student in the system.

 It involves steps such as logging in, navigating to the student information page, selecting a
student, and viewing their details.

 Manage Class Lists:

 This use case enables users (administrators or teachers) to manage the lists of classes within
the system.
 It includes actions such as logging in, accessing the class management page, performing
operations like adding, editing, or deleting classes, and viewing detailed class information.

3. Extensions:

 The "Manage Class Lists" use case is shown extending the functionality of the system to include
the "View Student Information" use case. This implies that managing class lists incorporates the
ability to view student information as a sub-functionality.

Use Case Specification: View Student Information

 This specification outlines the detailed steps involved in the "View Student Information" use case.

 It begins with the user logging into the system and ends with the user successfully viewing detailed
information about a selected student.

 Each step describes the action taken by the user or the system's response, ensuring clarity on the process
flow.

 The result column specifies the expected outcome or response at each step, ensuring that users can easily
and quickly access the desired student information.

Use Case Specification: Manage Class Lists

 This specification provides a step-by-step breakdown of the actions and outcomes involved in the "Manage
Class Lists" use case.

 It covers actions such as logging into the system, accessing the class management functionality, and
performing operations on class lists.

 The result column details the expected outcomes, such as the successful display of class lists and the ability
to add, edit, or delete classes effectively.

 Additionally, it includes the feature for users to view detailed information about each class, enhancing the
usability and effectiveness of class management tasks.

Data Flow Diagram (DFD) - Level 0:

 NEI Student System: Represents the entire student management system as a single process or function.

 Data Flows: Represent the flow of data between the NEI Student System and external entities, such as
users, databases, or other systems.

 The Level 0 DFD provides an overview of the system's data flow and interactions with external entities,
serving as the starting point for creating more detailed DFDs.

Entity-Relationship Diagram (ERD):

 Entities: Represent the main objects or concepts within the system.

 Student: Represents students enrolled in courses.

 Course: Represents academic courses offered by NEI.

 Teacher: Represents instructors or faculty members teaching courses.


 Administrator: Represents system administrators responsible for managing the system.

 Relationships: Define how entities are related to each other.

 Manages: Indicates the relationship between administrators and courses, showing that
administrators manage courses.

 Teaches: Represents the relationship between teachers and courses, indicating which courses are
taught by which teachers.

 Enrolls: Illustrates the relationship between students and courses, showing which students are
enrolled in which courses.

(P7) Discuss, using examples, the suitability of software behavioural design techniques.
 You will explain how Mock-up, and Wireframe are used in the project. You can use Figma to design
at least 5 interfaces of the NEI project to justify that it matches users’ requirements.

1. Mock-ups:
 Mock-ups are detailed representations of the final product's user interface. They provide a visual
understanding of how the interface will look and function.
 In the NEI project, mock-ups can be used to design various screens such as the login page, student
dashboard, course enrollment form, class management interface, and student profile page.
 Mock-ups help stakeholders visualize the final product, gather feedback early in the development
process, and ensure that the design meets users' expectations.
2. Wireframes:
 Wireframes are simplified, schematic representations of a user interface, focusing on layout and
functionality without the distraction of visual design elements.
 In the NEI project, wireframes can be used to sketch out the basic structure and flow of screens
before adding detailed design elements.
 Wireframes help identify usability issues, refine the user experience, and facilitate collaboration
between designers, developers, and stakeholders.
Benefits of Mock-ups:
1. Visual Representation: Mock-ups provide a realistic visual representation of the final product, helping
stakeholders visualize the user interface and understand how it will look and function.
2. Early Feedback: By presenting mock-ups to stakeholders, including administrators, teachers, and students,
early in the development process, feedback can be gathered and incorporated before significant time and
resources are invested in development.
3. Alignment with User Requirements: Mock-ups ensure that the design of the NEI system meets the
specific requirements and expectations of users by incorporating their feedback and preferences into the
interface design.
4. Iterative Design: Mock-ups facilitate an iterative design process, allowing designers to quickly make
adjustments and refinements based on feedback, resulting in an improved user experience.
5. Reduced Development Costs: By identifying and addressing design issues early in the process, mock-ups
help minimize the risk of costly design changes and rework during the development phase.
Benefits of Wireframes:
1. Focused on Functionality: Wireframes prioritize functionality over visual design, allowing designers to
focus on the layout, structure, and flow of the user interface without being distracted by aesthetics.
2. Clarity and Simplicity: Wireframes provide a clear and simple representation of the user interface, making
it easier for stakeholders to understand and provide feedback on the overall layout and functionality.
3. Usability Testing: Wireframes can be used for usability testing, allowing designers to identify potential
usability issues and make necessary adjustments before proceeding to the visual design phase.
4. Cost-Effective: Creating wireframes is a cost-effective way to explore different design ideas and concepts,
as they require less time and resources compared to high-fidelity mock-ups or prototypes.
5. Collaboration: Wireframes facilitate collaboration between designers, developers, and stakeholders by
providing a common reference point for discussing and refining design concepts and requirements.[5]

Login page
Home page
Student management page
Add new students page
Point management page
Feedback page

 You will explain which architecture (client – server, n-tier, microservices, etc.) is suitable for the
project with clear illustrations and why.

1. Client-Server Architecture:
Explanation:
 In a client-server architecture, the system is divided into two primary components: clients (user
interfaces) and servers (backend systems).
 Clients, such as web browsers or mobile applications, interact with the server to request and receive
data or perform actions.
 Suitable for the NEI project if it involves centralized control and management of data and
resources.
 Provides a straightforward approach for handling user requests and managing data storage.
 Allows for easier scalability by adding more server resources to handle increasing user loads.
 May lack the flexibility needed for highly distributed systems or complex workflows.
2. N-Tier Architecture:
Explanation:
 N-tier architecture divides the system into multiple tiers or layers, each responsible for specific
functionalities.
 Common tiers include presentation (client), application logic (server), and data storage (database).
 Suitable for the NEI project if it requires separation of concerns and scalability.
 Provides better organization and maintainability by isolating different aspects of the system.
 Allows for easier deployment and scaling of individual tiers independently.
 Adds complexity compared to client-server architecture, potentially requiring more resources for
development and maintenance.
3. Microservices Architecture:
Explanation:
 Microservices architecture decomposes the system into a collection of loosely coupled,
independently deployable services.
 Each service focuses on a specific business function and communicates with other services via
APIs.
 Suitable for the NEI project if it requires high scalability, flexibility, and resilience.
 Allows for faster development and deployment of individual components.
 Facilitates easier scaling and maintenance by isolating services and minimizing dependencies.
 Adds complexity in terms of managing and orchestrating multiple services, potentially requiring
additional infrastructure and tooling.[6]
Suitability for the NEI Project:
After considering the requirements and characteristics of the Net Education Institute (NEI) project, selecting a
suitable software architecture is crucial to ensure the flexibility, scalability, and effectiveness of the system. Here
are some factors I've considered when proposing an architecture for NEI:

Meeting project requirements:

NEI focuses on automating key functions in Time Management and Student Management. This requires a flexible
and scalable architecture to integrate new features and expand the system over time.
Flexibility and scalability:

The architecture must allow for easy integration and development of new features while ensuring that the system
can scale to meet increasing user demands.
Maintenance and management:

Efficient source code management and maintenance are necessary to ensure the stability and security of the system.

Based on these factors, I propose using the N-Tier architecture for the NEI project. Here's why:
Layered structure: The N-Tier architecture divides the system into multiple tiers or layers, with each layer
responsible for specific functions. This helps in managing and maintaining source code efficiently.
Clear separation: This architecture helps separate different parts of the system, including the user interface,
application logic, and data storage, making management and development easier.
Scalability: The N-Tier architecture allows each tier to be scaled independently, enabling the system to easily
expand as needed without affecting other tiers.
Flexibility in development: This architecture provides a robust and flexible approach to development, allowing team
members to work independently on different tiers without conflicts.
In conclusion, the N-Tier architecture is the most suitable choice for the NEI project due to its clear layered
structure, flexible scalability, and ease of maintenance, helping to create a stable and flexible system to meet user
needs and project goals.
Benefits of Multi-Tier for NEI:
 Modularity: Each tier can be independently developed, maintained, and modified.
 Scalability: Tiers can scale as needed, like increasing the database server capacity for more students.
 Security: Data access layer isolation enhances security, protecting student information.
 Maintainability: Clear separation of concerns promotes easier maintenance and updates.
Illustration:
Tiers:
 Presentation Tier (Web Application): Interacts with users, manages student lists, courses, and feedback.
 Business Logic Tier: Handles core system logic and processes requests from the Presentation Tier.
 Data Access Tier: Interacts with the database for storage, retrieval, and manipulation of student and course
data.

Regarding the consideration of alternative architectures:


Client-Server Architecture: While a simple client-server architecture may suffice for basic systems, n-tier
architecture offers better scalability, maintainability, and security, making it more suitable for complex projects like
the student management system at NEI. A client-server architecture lacks the modularity and scalability needed to
efficiently handle the growing demands of the NEI project.
Microservices Architecture: While microservices architecture offers scalability and flexibility, it may introduce
unnecessary complexity for a system of the size and scope described for NEI. N-tier architecture provides a good
balance of modularity, maintainability, and performance without the overhead of managing numerous
microservices. Microservices, although powerful, may not be optimal for NEI due to the system's relatively smaller
scale and the potential complexity added by managing multiple independent services.
Why not Client-Server? While a client-server architecture may be sufficient for a basic system, choosing a multi-
tier architecture such as n-tier offers several advantages as the student management system at NEI grows and
expands:
1. Scalability: As the system grows and more users interact with it, a multi-tier architecture provides better
scalability than a simple client-server model. Each tier can be scaled independently based on its specific
needs, allowing efficient resource allocation and handling increased user load without sacrificing
performance.
2. Modularity and maintainability: With a multi-tier architecture, the system is divided into distinct layers,
such as presentation layers, business logic, and data access layers. This modular approach enhances
maintainability because changes or updates to one tier can be made without affecting other tiers. It also
simplifies debugging, testing, and troubleshooting because problems are isolated to specific levels.
Why not Microservices? While microservices architecture offers scalability and flexibility, opting for a multi-tier
architecture like n-tier for the student information system at NEI presents several advantages:
1. Simplicity and manageability: Microservices introduce additional complexity due to the need to manage
numerous independent services. In contrast, a multi-tier architecture simplifies development, deployment,
and maintenance by organizing the system into distinct layers, each with specific responsibilities. This
simplicity enhances manageability, especially for smaller-scale systems like a student information system.
2. Modularity and cohesion: While microservices promote modularity by breaking down applications into
smaller components, they can also lead to fragmentation and reduced cohesion, especially for systems with
interdependent functionalities. In contrast, a multi-tier architecture maintains a balance between modularity
and cohesion, allowing for well-defined layers with clear separation of concerns while ensuring that related
functionalities remain cohesive within each tier.
By considering these factors, it's evident that a multi-tier architecture like n-tier is the most suitable choice for the
NEI project, offering the right balance of scalability, maintainability, simplicity, and cohesion for its requirements
and goals.

Listing some software architectures


Monolithic Architecture:
 Description: In a monolithic architecture, the entire application is built as a single, indivisible unit,
typically deployed as a single package.
 Suitability: Suitable for small to medium-sized applications with low complexity and predictable
scalability requirements.
 Advantages: Simple in development and deployment, but may become difficult to maintain and scale as
the application grows.
Client-Server Architecture:
 Description: In a client-server architecture, the system is divided into two primary components: clients
(user interfaces) and servers (backend systems).
 Suitability: Suitable for distributed systems where clients and servers may run on different machines or
devices.
 Advantages: Provides a straightforward approach for handling user requests and managing data storage.
N-Tier Architecture:
 Description: N-tier architecture divides the system into multiple tiers or layers, each responsible for
specific functionalities.
 Suitability: Suitable for complex applications that require separation of concerns, scalability, and
maintainability.
 Advantages: Offers better organization and flexibility but may add complexity and overhead in terms of
development and deployment.
Microservices Architecture:
 Description: Microservices architecture decomposes the system into a collection of loosely coupled,
independently deployable services.
 Suitability: Suitable for large-scale applications with high scalability, flexibility, and resilience
requirements.
 Advantages: Offers faster development and deployment of individual components but may introduce
challenges in terms of managing and orchestrating multiple services.
Serverless Architecture:
 Description: In serverless architecture, the underlying infrastructure is abstracted away, allowing
developers to focus on writing code without managing servers.
 Suitability: Suitable for event-driven applications with sporadic or unpredictable workloads.
 Advantages: Offers cost savings and simplified operations but may introduce limitations in terms of
execution environment and vendor lock-in.

 Then you will address which technical solution stack could be suitable to implement the project with
clear explanations.

Frontend Technologies:
HTML, CSS, JavaScript: These foundational web technologies are essential for building the frontend
components of the NEI system, including user interfaces, interactive elements, and visual styling.
React.js or Vue.js: These popular JavaScript frameworks are well-suited for developing dynamic, responsive
user interfaces. They provide component-based architecture, state management, and efficient rendering,
enabling a smooth user experience.
Bootstrap or Tailwind CSS: These frontend frameworks offer pre-designed components, layouts, and utility
classes for rapid prototyping and consistent styling across the application.
Backend Technologies:
Node.js or Python: These backend programming languages are widely used for building server-side
applications. Node.js offers non-blocking, event-driven I/O, making it suitable for handling asynchronous tasks,
while Python provides readability and versatility.
Express.js (for Node.js) or Flask/Django (for Python): These web frameworks provide a robust foundation for
building RESTful APIs and handling HTTP requests/responses. Express.js is lightweight and flexible, while
Flask and Django offer more features and conventions for rapid development.
GraphQL (optional): GraphQL can be considered for providing a more efficient and flexible alternative to
traditional REST APIs, enabling clients to request only the data they need.
Database Management:
MySQL or PostgreSQL: These relational database management systems (RDBMS) are widely used for storing
structured data in the NEI project. They offer ACID compliance, data integrity, and scalability, making them
suitable for managing student records, course information, and administrative data.
MongoDB (optional): For scenarios where flexible schema and scalability are prioritized over strict consistency,
MongoDB, a NoSQL database, can be considered. It is suitable for storing unstructured or semi-structured data,
such as user preferences or logging information.
Deployment and Hosting:
Docker: Docker containers provide a consistent and portable environment for deploying and running
applications across different platforms. They encapsulate dependencies and configurations, streamlining the
deployment process.
Amazon Web Services (AWS) or Microsoft Azure: These cloud computing platforms offer a wide range of
services for hosting, scaling, and managing web applications. They provide infrastructure-as-a-service (IaaS)
and platform-as-a-service (PaaS) offerings, including virtual machines, databases, and serverless computing.
Version Control and Collaboration:
Git: Git is a distributed version control system widely used for tracking changes in codebase, collaborating with
team members, and managing project history.
GitHub or GitLab: These platforms provide hosting for Git repositories, along with features for issue tracking,
code review, and continuous integration/continuous deployment (CI/CD).[7]

 Use the PHP & MySQL programming languages to implement those interfaces according to the
requirements of the specific use case (at least 2 use cases as described in P6).
Add new students

Show students
Conclusion
In conclusion, joining the Net Education Institute (NEI) team as a Systems Analyst for the Office
Management project is an exciting opportunity. This project focuses on automating critical functions in
Timekeeping and Student Administration, ultimately aiming to enhance efficiency and improve the
overall educational experience for students.

By leveraging innovative technology and creative design approaches, we aspire to develop a cutting-
edge solution that not only streamlines processes but also fosters a seamless learning environment at
NEI. This project aligns with NEI's mission of providing quality education and creating the best
learning environment for students.

I am eager to contribute my skills and expertise to this project, confident that it will not only showcase
my abilities but also play a significant role in advancing NEI's goals of growth and development.
Together with the NEI team, I am committed to delivering a solution that meets the needs of students
and supports NEI's mission of excellence in education.

References
[1] Love, H., Sarkhedi, B., Nadia Dehkordi, M., Siingh, S. K. and Jan Young, M.
Love, H., Sarkhedi, B., Nadia Dehkordi, M., Siingh, S. K. and Jan Young, M. (2023) How do you
identify stakeholder roles and interests?, How to Identify Stakeholder Roles and Interests.
www.linkedin.com. Available at: https://www.linkedin.com/advice/0/how-do-you-identify-stakeholder-
roles-interests (Accessed: 4 April 2024).

[2] Functional and non-functional requirements: Inwedo Blog (2023) Inwedo. Available at:
https://inwedo.com/blog/functional-and-non-functional-requirements/#:~:text=Basically%2C%20FRs
%20focus%20only%20on,characteristics%20in%20the%20table%20below. (Accessed: 4 April 2024).

[3] Functional and non-functional requirements: Inwedo Blog (2023) Inwedo. Available at:
https://inwedo.com/blog/functional-and-non-functional-requirements/#:~:text=Basically%2C%20FRs
%20focus%20only%20on,a%20given%20feature%20should%20work. (Accessed: 4 April 2024).

[4] Djekic, I.
Djekic, I. (2023) 14 Best Requirements Gathering Techniques Explained, Plaky Blog. Plaky. Available
at: https://plaky.com/blog/requirements-gathering-techniques/ (Accessed: 4 April 2024).

[5] Aha!
Aha! (2024) Wireframe vs. Mockup vs. Prototype: What Is the Difference?: Aha! software, Wireframe
vs. Mockup vs. Prototype: What Is the Difference? | Aha! software. Aha! Available at:
https://www.aha.io/roadmapping/guide/product-management/wireframe-mockup-prototype (Accessed:
4 April 2024).

[6] Altvater, A.
Altvater, A. (2023) What is N-Tier Architecture? Examples, Tutorials & More, Stackify. Available at:
https://stackify.com/n-tier-architecture/ (Accessed: 4 April 2024).

[7] Tantsiura, P.
Tantsiura, P. (2023) What Tech Stack to Choose for Your Project, The App Solutions. Available at:
https://theappsolutions.com/blog/development/project-tech-stack/ (Accessed: 4 April 2024).

You might also like