T4EXP3

You might also like

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

EXP.NO.

EXAM REGISTRATION SYSTEM


DATE:

AIM:

To design the Exam Registration System, do testing and generate code using Argo UML Tools.

PROBLEM ANALYSIS AND PROJECT PLANNING:

The Exam Registration is an application in which applicant can register themselves for the exam. The

details of the students who have registered for the examination will be stored in a database and will

be maintained. The registered details can then be verified for any fraudulent or duplication and can

be removed if found so. The database which is verified can be used to issue hall tickets and other

necessary materials to the eligible students.

PROBLEM STATEMENT:

The process of students accessing the registration application and applying for the examination by

filling out the form with proper details and then the authorities verify those details given for truth and

correctness are sequenced through steps

• The students access exam registration application.

• They fill out the form with correct and eligible details.

• They complete the payment process.

• The authorities verify or check the details.

• After all verification the exam registration database is finalized.

TABLE OF CONTENTS:
1.Introductio
n
1.1.
Purpose
1.2
Scope
1.3 Overview

2. General description
2.1 User manual

3.Functional Requirements

3.1
Description
3.2 Criticalty

3.3 Technical issue

3.4 Cost and


schedule
3.5 Risks

3.6 Dependencies

4. Interface
Requirements
4.1 User
Interface(UI)
4.1.1
GUI
4.1.2
CLI
4.1.3 API

4.2 Hardware
Interface
4.3 Communication
Interface
4.4 Software Interface

5. Performance
Requirements
6. Design constraints

7. Non functional Attributes

7.1 security requirements

7.2 reliability requirements

7.3 availability requirements

7.4 maintability requirements

7.5 portability
requirements
7.6 binary
compatibility
7.7 application compatibility

7.8
extensibility
7.9 resource
utilization
7.10
serviceability
7.11 reusability

8. Operation
scenario
9. Preliminary Schedule

10. Appendices

1. Introduction:
The Exam Registration System is designed to streamline the process of registering for examinations.
This system provides a user-friendly interface for students to register for exams, view exam schedules,
make payments, and receive confirmation of registration.

1.1 Purpose:
The purpose of the above Software Requirements Specification (SRS) document for the Exam
Registration System is to clearly define the functionalities, constraints, and quality attributes of the
system, serving as a communication tool between stakeholders, guiding development, and ensuring the
final product meets expectations.

1.2 Scope

The Exam Registration System will allow students to:

1.Create and manage their profiles.

2.View available exams and their schedules.

3.Register for exams.

4.Make payments for exam registration fees.

5.Receive confirmation of registration.


1.3 Overview:
The Software Requirements Specification (SRS) document outlines key features, constraints, and
quality attributes for an Exam Registration System. It guides development by detailing user
functionalities, authentication, exam viewing, registration, payment processing, and confirmation.
Additionally, it specifies non-functional requirements such as performance, security, usability, and
reliability to ensure a high-quality system that complies with regulations and meets user needs.

2. General description:
The SRS document outlines requirements for an Exam Registration System, detailing user functions,
authentication, payment processing, and quality attributes to ensure a secure, efficient, and user-
friendly system compliant with regulations.
2.1 User manual:
The user manual guides users through the Exam Registration System, explaining how to register for
exams, view schedules, make payments securely, and receive confirmation, ensuring a smooth and
efficient registration process.

3. Functional Requirements:
Functional requirements specify the expected behaviour of the system-which outputs should be
produced from the given inputs. They describe the relationship between the input and output of the
system.

3.1 Description: Users can register for exams they choose.

3.2 Criticality: High, as it's a core function of the system.

3.3 Technical Issue: Ensuring validation of prerequisites and availability.

3.4 Cost and Schedule: High, involving interface development and database integration.

3.5 Risks: Overlapping exam registrations or system errors during registration.

3.6 Dependencies: Requires integration with payment processing and database


management.

4. Interface Requirements: Software interfaces which mean how software program communicates
with each other or users either in form of any language, code, or message are fully described and
explained.

4.1 UI (User Interface): Intuitive web interface allowing users to easily navigate, register
for exams, and view schedules.

4.1.1 GUI (Graphical User Interface): Visual interface with interactive


elements for seamless user interaction during exam registration.

4.1.2 CLI (Command Line Interface): Command-based interface for


administrative tasks such as database management and system configuration.

4.1.3 API (Application Programming Interface): RESTful API providing


endpoints for integration with external systems, enabling functionalities such as
payment processing and email notifications.

4.2 Hardware Interface: Compatibility with standard web browsers and mobile devices
for accessing the exam registration system.

4.3.Communication Interface: Integration with email services for sending registration


confirmations and reminders.
4. 4.Software Interface: Integration with database management systems for storing user data and
exam information securely.

5. Performance Requirements:
• The system should respond to user interactions within 3 seconds.
• It should support concurrent user sessions without degradation in performance.

6. Design Constraints:
• The system must adhere to data protection regulations and implement robust security
measures to safeguard user information and payment data.
• Compatibility with various web browsers and mobile devices, along with stable internet
connectivity, are essential for seamless user interaction.

7. Non functional attributes:

7.1 Security Requirements:


• User authentication and authorization mechanisms must be in place.
• Data encryption for sensitive information such as passwords and payment details.
• Regular security audits and updates to protect against vulnerabilities.

7.2 Reliability Requirements:


• The system should be available 24/7 except during scheduled maintenance
windows.
• It should have backup and recovery mechanisms to prevent data loss.
7.3 Availability Requirements:
• The system should have an uptime of at least 99%.
• It should provide failover mechanisms to handle server failures.

7.4 Maintainability Requirements:


• The system should be modular and well-documented for ease of maintenance.
• It should support easy updates and enhancements without affecting existing
functionality.

7.5 Portability Requirements:


The system should be accessible from various devices and platforms without loss of
functionality.

7.6 Binary Compatibility:


The system should ensure binary compatibility across different operating systems to guarantee
consistent behavior and performance.

7.7 Application Compatibility:


The system should be compatible with various web browsers (Chrome, Firefox, Safari, etc.)
and mobile platforms (iOS, Android) to ensure accessibility for a wide range of users.

7.8 Extensibility:
The system architecture should allow for easy integration of new features, such as additional
exam types or payment methods, without significant modifications to the existing codebase.

7.9 Resource Utilization:


The system should optimize resource utilization, such as CPU, memory, and storage, to ensure
efficient operation and minimize hardware requirements.

7.10 Serviceability:
The system should include features for easy maintenance and troubleshooting, such as logging
mechanisms, error handling, and diagnostic tools, to facilitate rapid resolution of issues and minimize
downtime.

7.11 Reusability:
Implementing modular code architecture and reusable components to facilitate easy integration of
new features and system scalability.

8. Operational Scenario:
User registers for an exam, selects preferred exam date and time, completes payment, and
receives confirmation email.

9. Preliminary Schedule: Development of core functionalities, UI design, and testing estimated to


take 3 months, followed by deployment and user acceptance testing for 1 month.

• Create and manage their profiles.


• View available exams and their schedules.
• Register for exams.
• Make payments for exam registration fees.
• Receive confirmation of registration.

10. Appendices:

Appendix A: Definitions
• User: An individual who interacts with the system to register for exams or manage exam-
related tasks.
• Administrator: A user with privileged access rights responsible for managing exams, user
accounts, and payments within the system.

Appendix B: Abbreviations and Acronyms


• SRS: Software Requirements Specification
• UI: User Interface
• CPU: Central Processing Unit
• RAM: Random Access Memory
• OS: Operating System

UML DIAGRAMS
The following UML diagrams describe the process involved in the Exam registration system.

Use case diagram:


In the context of exam registration, the "Authorize and Capture" use case represents the process by
which a student's request to register for an exam is first authorized by their educational institution's
system. Upon approval, the requested exam registration is then captured and finalized. This involves
confirming the student's enrollment in the exam and reserving their seat. The funds required for exam
registration may be deducted from the student's account at this stage.

However, there are scenarios where only authorization is requested without proceeding to capture the
registration immediately. This could occur if the exam is not currently available or if further review is
necessary before finalizing the registration. In such cases, the authorization may expire after a certain
period if no further action is taken.

The "Capture" use case describes situations where a previously authorized exam registration needs to
be completed. This could happen through the system or via alternative methods, such as manual
confirmation. For example, if a student's exam registration was initially authorized but not
immediately captured, the capture process ensures that the registration is finalized and the student's
seat is secured.

In contrast, the "Credit" use case pertains to situations where a student requires a refund for a
registered exam. This could occur if the student decides to withdraw from the exam or if there are
exceptional circumstances that warrant a refund. The credit process ensures that the appropriate
amount is refunded to the student's account.

The "Void" use case involves canceling one or several exam registrations that have not yet been
finalized or settled. If possible, these registrations will be canceled before any funds are deducted or
transactions are processed. However, if the void transaction fails, it indicates that the registrations may
have already been settled, requiring further investigation.

Lastly, the "Verify" use case describes scenarios where verification transactions are conducted to
ensure the accuracy of exam registration details. This could involve verifying the student's personal
information, exam preferences, or payment details to prevent errors or discrepancies in the registration
process.
NOTATIONS:

Class diagram:
In the class diagram for exam registration, the key classes involved in the problem domain are:
Registrar

Student

Course

Each class represents a distinct entity within the exam registration system. The Registrar class
manages registration processes, the Student class represents individuals registering for exams, and the
Course class handles the available exam courses.
Notations:

Sequence diagram:

In the sequence diagram for exam registration, the sequence of ordered relationships involves the
student initiating the registration process, selecting exam courses, providing necessary information,
and confirming registration. The registration system then verifies the details, processes the payment
transaction, and generates a registration confirmation. If any errors occur during the process, the
student may need to provide additional information or adjust their registration accordingly. Finally,
upon successful completion, the system notifies the student and provides documentation for the
registered exams.

Notations:

Colloboration diagram:
In the collaboration diagram for exam registration, the collaboration between different entities
involved in the process is illustrated. The student collaborates with the registration system to select
exam courses, provide necessary information, and confirm registration. The system collaborates with
external components such as payment processing services to verify details and process transactions. If
errors occur, the collaboration between the student and system may involve providing or correcting
information. Finally, upon successful completion, the collaboration results in the system notifying the
student and providing necessary documentation for the registered exams.

Notations:

Statechart diagram:

In the statechart diagram for exam registration, the processor is the registration system itself,
while the devices are the actions performed within the system. These actions include initiating
registration, completing registration, verifying details, processing payment, and confirming
registration.
Notations:

Activity diagram:

In the activity for exam registration, the student initiates the process by selecting exam courses and
proceeding to register using the registration system. The system verifies the registration details and
processes the payment transaction. The student then checks the status of their registration to confirm if
it's completed. Once registration is confirmed, the system generates a registration confirmation
document for the student. If there are any discrepancies, the student may need to provide additional
information or make adjustments to their registration. Upon successful completion, the system notifies
the student and provides any necessary documentation for the registered exams.
Notations:

Deployment Diagram:
In the deployment diagram for exam registration, the configuration of runtime processing nodes and
components involved in the registration system are illustrated. Nodes may include servers, databases,
and client devices, while components represent the various software modules and services deployed on
these nodes, such as registration management, database storage, and user interface components. This
Notations:

diagram visualizes the physical aspects of the exam registration system, depicting how its components
are distributed across hardware infrastructure.

Code Generation:

STEPS TO GENERATE CODE USING ARGO UML:


Step 1: Draw Class diagram with all its notations.
Step 2: Select all the Classes.
Step 3: Choose Generation menu for code generation.
Step 4: Choose the required classes Step 5:
Browse the location to locate the code.
Step 6: Apply generate.
Software Testing:
Software testing is a process used to evaluate the functionality of a software application to ensure it
meets specified requirements. It involves executing the software to identify bugs, errors, or other
defects. The goal is to verify that the software is working correctly and is ready for release.

Types of Testing:
1.Unit Testing

2.Integration Testing

3.System Testing

4.Acceptance Testing

5.Regression Testing

6.Performance Testing

7.Load Testing

8.Security Testing

9.Usability Testing

10.Compatibility Testing
Integration Testing:
Integration testing verifies that individual units of the software work together as expected. It tests the
interactions between these units to ensure they communicate and function correctly when integrated.

White Box Testing:


Testing method that examines the internal structure/code of a software application to ensure
all code paths are functioning correctly.

Functional Testing:
Validates that each function of the software application operates in accordance with the
requirement specifications.

System Testing:
Evaluates the behavior of a complete, integrated system to ensure it meets specified
requirements.

Stress Testing:
Determines the robustness of a software application by subjecting it to extreme conditions,
such as high loads or resource exhaustion, to assess its stability and reliability under pressure.
Performance Testing:
Measures the responsiveness, throughput, reliability, and scalability of a software application
under various load conditions to ensure it meets performance expectations.

Acceptance testing :
Acceptance testing verifies if software meets user requirements. It's the final phase of testing
before deployment. Stakeholders assess if the system meets their needs. It validates real-world
scenarios and user expectations. Success indicates readiness for production.

Regression testing:
Regression testing ensures that recent code changes haven't adversely affected existing
functionality. It retests modified parts of the software to detect any unintended side effects. It helps
maintain software quality and stability across multiple iterations. Regression tests are typically
automated to save time and effort. Its goal is to catch defects introduced by code changes.

Beta testing:
Beta testing involves releasing a software product to a limited number of real users in a
realworld environment. It aims to gather feedback from users about usability, performance, reliability,
and any issues encountered. Beta testers provide valuable insights that help improve the product
before its official release. It occurs after alpha testing and before the final release, allowing developers
to address any last-minute issues. Beta testing helps ensure a smoother and more successful product
launch.
Unit Testing:
Unit testing involves testing individual units or components of a software application in
isolation from the rest of the system. The goal is to validate that each unit of the software performs as
designed.

Black Box Testing:


Black box testing is a method where the internal structure or implementation of the software is
not known to the tester. Testers focus on inputs and outputs to ensure the software meets its
requirements without knowledge of its internal workings.
Result:

Thus the Exam Registration System was designed, tested and the code was generated successfully
using Argo UML Tools.

You might also like