[go: up one dir, main page]

0% found this document useful (0 votes)
58 views3 pages

Case Study Using Waterfall Model

The document outlines a case study for designing a Railway Reservation System using the Waterfall Model, detailing phases such as Requirement Analysis, System Design, Implementation, Testing, Deployment, and Maintenance. Key functionalities include user registration, train search, ticket booking, and admin management, with a focus on user-friendliness and data security. The implementation utilizes technologies like HTML, CSS, JavaScript, and MySQL, while emphasizing scalability, efficiency, and reliability in the solution benefits.

Uploaded by

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

Case Study Using Waterfall Model

The document outlines a case study for designing a Railway Reservation System using the Waterfall Model, detailing phases such as Requirement Analysis, System Design, Implementation, Testing, Deployment, and Maintenance. Key functionalities include user registration, train search, ticket booking, and admin management, with a focus on user-friendliness and data security. The implementation utilizes technologies like HTML, CSS, JavaScript, and MySQL, while emphasizing scalability, efficiency, and reliability in the solution benefits.

Uploaded by

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

Assignment (Software Engineering)

Question: Conduct a case study of your preferred choice by applying the Waterfall
Model.

NOTE: For your reference, please review the case study provided below.

Case Study: Railway Reservation System Using Waterfall Model

Objective

To design and implement a Railway Reservation System using the Waterfall Model, covering
the phases of software development: Requirement Analysis, System Design, Implementation,
Testing, Deployment, and Maintenance.

Phase 1: Requirement Analysis

Functional Requirements

1. User Registration and Login


o Users can register with personal details and create an account.
o Users log in with their credentials.
2. Search for Trains
o Search trains by source, destination, and date of travel.
3. Reservation and Ticket Booking
o Book tickets by selecting the train and class (AC, Sleeper, etc.).
o Generate a unique ticket ID.
4. Cancellation
o Users can cancel booked tickets and get a refund based on cancellation rules.
5. Admin Functions
o Admin can add, update, or remove train schedules.
o View reports on bookings and revenue.

Non-Functional Requirements

• System should be user-friendly.


• Ensure data security for user credentials and transactions.
• High availability and reliability of the system.

Phase 2: System Design


Architectural Design

• Use a three-tier architecture:


1. Presentation Layer: User Interface (web or app).
2. Business Logic Layer: Handles booking logic, train searches, etc.
3. Database Layer: Stores user data, train schedules, and booking details.

Modules and Flow

1. User Module: Register, Login, Profile.


2. Train Module: Search trains, View schedules.
3. Booking Module: Reserve, Cancel, View ticket.
4. Admin Module: Manage trains, View reports.

ER Diagram

• Entities: User, Train, Booking, Admin.


• Relationships:
o A User books multiple Tickets.
o A Train has multiple Schedules.
o Admin manages Trains and Reports.

Phase 3: Implementation

Tools and Technologies

• Frontend: HTML, CSS, JavaScript (for web-based interface).


• Backend: Python/Java/C++.
• Database: MySQL.

Sample Code for Booking Functionality (Python) ………….(Optional)

import sqlite3

def book_ticket(user_id, train_id, travel_date, class_type):


conn = sqlite3.connect('railway.db')
cursor = conn.cursor()

# Check seat availability


cursor.execute("SELECT available_seats FROM trains WHERE train_id=? AND
travel_date=?", (train_id, travel_date))
seats = cursor.fetchone()

if seats and seats[0] > 0:


# Book ticket
cursor.execute("INSERT INTO bookings (user_id, train_id,
travel_date, class_type) VALUES (?, ?, ?, ?)",
(user_id, train_id, travel_date, class_type))

# Update seat availability


cursor.execute("UPDATE trains SET available_seats = available_seats
- 1 WHERE train_id=? AND travel_date=?",
(train_id, travel_date))
conn.commit()
print("Ticket booked successfully!")
else:
print("No seats available.")

conn.close()

Phase 4: Testing

Test Cases

1. User Registration
o Verify if new users can register successfully.
o Validate form inputs (e.g., email format, password strength).
2. Train Search
o Test searching trains by various criteria (source, destination, date).
3. Booking
o Check booking process for available seats.
o Validate ticket generation.
4. Cancellation
o Verify if cancelled tickets update the seat availability.

Phase 5: Deployment

• Deploy the system on a web server or host it on the cloud (e.g., AWS, Azure).
• Ensure proper configuration for database and server communication.

Phase 6: Maintenance

• Regularly update train schedules.


• Perform database backups and monitor system performance.
• Fix bugs reported by users and add new features (e.g., mobile app integration).

Solution Benefits

• Scalability: Supports large user base and train schedules.


• Efficiency: Automates ticketing and reduces manual effort.
• Reliability: Ensures data consistency and security.

You might also like