Se PR Pra
Se PR Pra
PRACTICAL-1
❖ WATERFALL MODEL
The Waterfall model is a linear, sequential software development methodology consisting of the
following phases:
1
Software Engineering(3510711) 220090107117
1. Simple and Easy to Understand: Its linear and structured approach is straightforward,
making it easy to manage and follow.
2. Well-Defined Stages: Each phase has specific deliverables and deadlines, which can help
in clear project planning and tracking.
Disadvantages:
1. Inflexibility: Once a phase is completed, going back to make changes is difficult and can
be costly. This rigidity makes it challenging to adapt to new requirements or changes.
2. Late Testing: Testing occurs only after the development phase is completed, which means
issues may not be identified until late in the project.
❖ RAD MODEL
2
Software Engineering(3510711) 220090107117
●
The Rapid Application Development (RAD) model is a software development approach focused
on quick delivery and iterative refinement.
Rapid Prototyping: Develops prototypes quickly for user feedback.
● User Involvement: Continuous engagement with users throughout the development
process.
● Iterative Development: Iterates on designs based on feedback, allowing for adjustments
and improvements.
● Time-Boxed Phases: Phases are completed within fixed time periods for faster progress.
Advantages:
Disadvantages:
1. Less Formal Documentation: Focus on speed can lead to less thorough documentation.
2. Scope Creep: Continuous changes can lead to expanding project scope.
3. Resource Intensive: Requires active and ongoing user participation.
3
Software Engineering(3510711) 220090107117
The Spiral model is an iterative software development approach that focuses on risk management
and continuous refinement.
● Iterative Cycles: Involves repeated phases of planning, risk analysis, engineering, and
evaluation.
● Risk Management: Emphasizes identifying and mitigating risks early in each cycle.
● Prototyping: Builds prototypes to refine requirements and design based on user
feedback.
Advantages:
Disadvantages:
4
Software Engineering(3510711) 220090107117
●
2. Research and Development (R&D): Ideal for projects focused on new
technologies or innovative solutions, where iterative development and frequent
adjustments based on findings are necessary.
❖ V-MODEL:
Phases:
● Requirements Analysis: Define and document what the software should do.
● System Design: Create high-level design and architecture.
● Detailed Design: Develop detailed design specifications.
● Implementation: Code the software according to design specifications.
● Unit Testing: Test individual components or units.
● Integration Testing: Test the integration of components.
● System Testing: Test the entire system against the requirements.
● Acceptance Testing: Validate the system with end-users to ensure it meets their needs.
Advantages:
1. Early Testing: Ensures issues are identified early through integrated testing.
2. Structured Approach: Provides clear, systematic development and testing processes.
5
Software Engineering(3510711) 220090107117
Disadvantages:
❖ INCREMENTAL MODEL
The Incremental model is a software development approach where the system is built in small,
manageable sections or increments. Each increment adds functionality to the existing system
until the complete system is developed.
Incremental Development: The project is divided into smaller parts or increments, each
delivering a portion of the complete system.
● Iterative Refinement: Each increment is developed, tested, and integrated into the
existing system.
6
Software Engineering(3510711) 220090107117
●
● User Feedback: Early increments provide basic functionality that allows for user
feedback and refinement in subsequent increments.
Advantages:
1. Early Delivery: Functional parts of the system are delivered early and can be used or
tested by users.
2. Flexibility: Allows for changes and adjustments based on feedback from each increment.
3. Risk Management: Issues can be identified and addressed in smaller increments,
reducing overall risk.
Disadvantages:
7
Software Engineering(3510711) 220090107117
The Agile model is an iterative and flexible software development approach that focuses on
delivering small, incremental improvements through regular cycles.
Advantages:
Disadvantages:
8
Software Engineering(3510711) 220090107161
1. Software Development Projects: Agile is widely used for developing software where
requirements frequently change, such as web and mobile applications. It allows teams to
adapt to evolving user needs and deliver incremental improvements quickly.
2. Product Management and Design: Agile is applied in product development and design
processes where iterative feedback and rapid prototyping are essential.
❖ ITERATIVE MODEL
The Iterative model is a software development approach that builds the system through repeated
cycles or iterations.
● Repeated Cycles: Develops the software in iterative phases, each adding functionality.
● Incremental Refinement: Each iteration involves planning, development, and testing,
refining the software based on feedback.
● User Feedback: Incorporates feedback from users to improve and adjust the software in
each cycle.
Advantages:
1. Early Deliverables: Provides working software early and allows for user feedback.
2. Flexibility: Adapts to changes and new requirements throughout development.
3. Continuous Improvement: Each iteration refines and enhances the product.
Disadvantages:
9
Software Engineering(3510711) 220090107161
➢ This iterative and flexible approach makes the Agile model well-suited for developing a
RESTAURANT MANAGEMENT SYSTEM.
10
Software Engineering(3510711) 220090107161
PRACTICAL-2
● FUNCTIONAL REQUIREMENTS:
Functional requirements define a function that a system or system element must be qualified to
perform and must be documented in different forms. The functional requirements describe the
behavior of the system as it correlates to the system's functionality.
● NON-FUNCTIONAL REQUIREMENTS:
Non-functional requirements are not related to the software's functional aspect. They can be the
necessities that specify the criteria that can be used to decide the operation instead of specific
behaviors of the system. Basic non-functional requirements are - usability, reliability, security,
storage, cost, flexibility, configuration, performance, legal or regulatory requirements, etc.
1.Online Reservations:
● Booking Form: Provide a user-friendly online form for customers to select date, time,
party size, and contact information.
● Real-Time Availability: Show real-time table availability to avoid overbooking.
● Special Requests: Allow customers to enter special requests or preferences (e.g., window
seat, high chair).
2.Walk-In Management:
● Waitlist System: Manage a digital waitlist with estimated wait times and notifications for
available tables.
3.Reservation Analytics:
11
Software Engineering(3510711) 220090107161
● Booking Trends: Analyze peak booking times and days to optimize staffing and seating
arrangements.
Cancellation Rates: Track and analyze cancellation rates to
improve reservation policies.
4. Table-side Ordering:
● Digital Menus: Provide tablets or mobile devices for staff to take orders at the table.
● Order Modification: Allow staff to modify orders in real-time if customers make
changes.
5.Order History:
● Detailed Logs: Maintain detailed logs of past orders, including timestamps and staff
involved.
● Reorder Capability: Allow quick reordering of previous orders for repeat customers.
6.Split Bills:
7.Integrated Tipping:
● Tip Suggestions: Offer suggested tip amounts based on a percentage of the total bill.
● Custom Tips: Allow customers to enter custom tip amounts.
● Transaction Management: Process refunds and voids with appropriate authorization and
documentation.
● Receipt Updates: Update receipts to reflect refunds or voided transactions.
9.Inventory Valuation:
● Cost Tracking: Track the cost of inventory items and calculate total inventory value.
● Profit Margins: Analyze profit margins based on inventory costs and sales prices.
10.Payroll Integration:
12
Software Engineering(3510711) 220090107161
● Hours Tracking: Sync employee hours with payroll systems for accurate calculations.
● Tax Calculations: Automate tax calculations and deductions based on employee
earnings.
11.Training Modules:
Onboarding Materials: Provide new staff with training materials and resources.
● Skills Development: Offer training modules for skills development and role-specific
knowledge.
12.Personalized Marketing:
● Targeted Campaigns: Create and send targeted marketing campaigns based on customer
preferences and behavior.
● Promotional Offers: Deliver personalized promotional offers and discounts to loyal
customers.
● Automated Messages: Send automated messages or special offers for birthdays and
anniversaries.
● Customer Preferences: Record customer preferences for personalized celebratory
messages.
14.Customer Segmentation:
15.Revenue Forecasting:
● Historical Data Analysis: Use historical sales data to predict future revenue trends.
● Seasonal Trends: Analyze seasonal trends to adjust forecasts and business strategies.
16.Cost Analysis:
● Food Cost Percentage: Calculate food cost percentages to monitor and control costs.
● Labor Cost Analysis: Analyze labor costs in relation to sales to optimize staffing levels.
13
Software Engineering(3510711) 220090107161
17.Customer Insights:
● Purchase History: Analyze customer purchase history to identify popular items and
trends.
● Feedback Analysis: Review customer feedback to improve service and offerings.
18.Table management:
Table Configuration: Adjust table configurations for different group sizes and event
types.
● Occupancy Monitoring: Monitor table occupancy and status in real-time to manage
seating efficiently.
● Order Display: Display incoming orders on screens in the kitchen for efficient
processing.
● Order Status Updates: Update order statuses on the KDS as they progress through
preparation.
20.Cloud Backup:
● Automated Backups: Schedule automated backups to the cloud to ensure data safety.
● Disaster Recovery: Implement disaster recovery plans for data restoration in case of
system failure.
21.Event Booking:
● Reservation System: Manage bookings for private events, including catering and venue
rental.
● Event Details: Record and manage event details such as date, time, and requirements.
14
Software Engineering(3510711) 220090107161
1.Response Time:
● Order Entry: Orders should be processed and displayed within 2 seconds to ensure quick
service.
● Report Generation: Reports should be generated within 5 seconds to minimize wait time for
managers.
2.Throughput:
● Concurrent Users: Support at least 100 simultaneous users (staff and customers) without
performance degradation.
● Transaction Volume: Handle a high volume of transactions, such as 500 orders per hour,
during peak times.
3.Redundancy:
4.Error Handling:
● Graceful Degradation: Ensure that the system continues to operate in a limited capacity if
certain components fail.
● Error Notifications: Provide real-time notifications to administrators for critical errors or
failures.
5.User Interface:
● Intuitiveness: Design interfaces to be intuitive for staff with minimal training required.
● Customization: Allow users to customize dashboards and interface layouts based on their role
and preferences.
6.Data Protection:
● Encryption: Use AES-256 encryption for data at rest and TLS for data in transit to protect
sensitive information.
● Data Masking: Mask sensitive data in logs and reports to prevent unauthorized access.
7.Audit Trails:
● Detailed Logging: Maintain logs of all user activities, including login attempts, data changes,
and system access.
15
Software Engineering(3510711) 220090107161
● Audit Reports: Provide tools to generate and review audit reports for compliance and security
monitoring.
8.Platform Support:
● Operating Systems: Ensure compatibility with major operating systems such as Windows,
macOS, and Linux.
● Web Browsers: Support modern web browsers, including Chrome, Firefox, Safari, and Edge.
9.Integration:
● Third-Party Systems: Provide APIs and integration points for connecting with third-party
applications (e.g., accounting software, payment gateways).
● Data Formats: Support common data formats like CSV, XML, and JSON for importing and
exporting data.
10.Reporting:
11.Localization:
● Regional Settings: Adapt system settings for different regions, including date formats,
currency, and measurement units.
● Cultural Adaptations: Ensure that the system accommodates cultural differences and local
customs.
16
Software Engineering(3510711) 220090107161
PRACTICAL:3
Table of Contents
1. Introduction
1.1 Purpose
1.2 Document Conventions
1.3 Intended Audience and Reading Suggestions
1.4 Project Scope
1.5 References
2. Overall Description
2.1 Product Perspective
2.2 Product Features
2.3 User Classes and Characteristics
2.4 Operating Environment
2.5 Design and Implementation Constraints
2.6 User Documentation
2.7 Assumptions and Dependencies
3. System Features
3.1 System Feature 1
3.2 System Feature 2 (and so on)
17
Software Engineering(3510711) 220090107161
6. Other Requirements
Appendix A: Glossary
18
Software Engineering(3510711) 220090107161
1. INTRODUCTION
1.1 Purpose
This document presents a detailed explanation of the objectives, features, users, interfaces, and
applications of the Banking Management System in real life. It will also describe how the system will
perform and under which conditions it must operate. The document will also include user interfaces.
The main purpose of this SRS is to outline both the functional and non-functional requirements of the
Banking Management System. The primary audience of this SRS document will be the developers, and
the secondary audience will be the stakeholders and bank staff.
convey and confirm the required functionality and represent a contractual agreement between the
involved parties.
1.4 Project Scope
In modern banking environments, customers often face challenges with traditional banking methods
such as long queues and manual processes for transactions and account management. The Banking
Management System aims to replace these outdated methods with an electronic platform that
streamlines operations, enhances customer experience, and provides real-time access to banking
services. The system will facilitate account management, transaction processing, loan management, and
reporting, thereby modernizing banking operations.
1.5 References
IEEE Xplore: Banking Management System
ResearchGate: Software Requirements Specification for Banking System
(PDF) Software Requirements Specification for Banking Management System | John
Doe - Academia.edu
2. OVERALL DESCRIPTION
20
Software Engineering(3510711) 220090107161
The system should operate on various platforms, including Windows, Linux, and macOS.
A reliable internet connection is essential for all users to access banking services.
Users should have up-to-date antivirus software installed for enhanced security.
The application should be available as a mobile app for both iOS and Android devices, providing a
user-friendly experience.
● Javascript, web
server, remote
database, Php,
Python, Django.
● ❖ Using the API’s for
several purposes like
order tracking, e.t.c..
● ❖ 3D modeling for
representing 3D
menus
● 2.5 Design and
Implementation
Constraints
23
Software Engineering(3510711) 220090107161
● ❖ This can be
implemented either
as a web application
or a mobile
● application .
● ❖ To develop as a
web application, the
primary requirements
are Html, Css,
● Javascript, web
server, remote
database, Php,
Python, Django.
24
Software Engineering(3510711) 220090107161
Dependencies:
Integration with secure payment gateways for online transactions.
25
Software Engineering(3510711) 220090107161
A robust database management system for storing user and transaction data.
Compliance with financial regulations and security standards.
Reliable internet service providers to ensure continuous access.
User feedback and testing will be crucial for system refinement and updates.
Training for bank staff to utilize the system effectively.
3. SYSTEM FEATURES
Customer-Facing UI: The frontend interface that users interact with to access banking services,
including account management, fund transfers, loan applications, and transaction history. It should
be intuitive, secure, and responsive across devices.
Bank Employee UI: A dashboard for bank employees to manage customer accounts, process
transactions, and assist users with their inquiries.
Admin UI: An administrative interface for system administrators to oversee user accounts, manage
security settings, and generate system reports.
Servers and Data Centers: Hosting for web applications, databases, and backup systems.
Network Interfaces: Routers, switches, and firewalls to ensure secure and efficient network
connectivity.
User Devices: Desktops, laptops, smartphones, and tablets for customers to access banking services.
27
Software Engineering(3510711) 220090107161
Payment Processing Hardware: Secure terminals and card readers for processing payments and
transfers.
Printers and Displays: For printing statements, transaction receipts, and internal reports.
ATM Interfaces: Connections to ATMs for cash withdrawal and deposit functions.
Mobile Devices for Bank Staff: Tablets or smartphones for staff to manage operations and customer
support on-the-go.
Internet Connection: Reliable high-speed internet for real-time access to banking services.
Security Hardware: Surveillance cameras and access control systems for securing physical
locations.
Emergency Power Supplies: Uninterruptible Power Supply (UPS) for maintaining operations during
power outages.
Environmental Control Systems: Systems for regulating temperature and humidity in server rooms.
APIs: Facilitate integration with third-party services for payment gateways, identity verification,
and financial analytics.
Database Interface: Manages data storage and retrieval through a Database Management System
(DBMS).
Integration Interfaces: Connects with external services such as credit bureaus and financial data
providers.
Communication Interfaces: Handle email notifications, SMS alerts, and internal messaging
between users and bank representatives.
Analytics and Reporting Interfaces: Generate insights and reports on customer transactions and
system performance.
Security Interfaces: Ensure secure user authentication, data encryption, and compliance with
regulations.
Mobile App Interfaces: Enable communication between mobile banking applications and backend
systems.
The Banking Management System will utilize a Local Area Network (LAN) for communication
between devices. To ensure compatibility and reliability, the system will employ standard IP protocols,
such as TCP/IP. All devices, including desktops, tablets, ATMs, and payment terminals, will be
equipped with standard Ethernet-compatible network cards for seamless communication with the
server.
For wireless devices, devices will adhere to the IEEE 802.11b/g standards, employing WPA2-PSK
encryption for secure data transmission. This approach guarantees that all interactions within the
system are secure and efficient.
28
Software Engineering(3510711) 220090107161
Database Performance: Define expected query response times (e.g., under 1 second) and efficiency
metrics.
Reservation Confirmation Time: Set limits for sending reservation confirmations (e.g., within 30
seconds).
Table Availability Updates: Ensure real-time updates to table availability with minimal latency.
Mobile Responsiveness: Specify performance benchmarks for mobile devices (e.g., load times
under 3 seconds).
Search and Filter Responsiveness: Set expectations for search and filtering speed (e.g., under 2
seconds).
Data Retrieval Efficiency: Define acceptable retrieval times for customer data (e.g., under 1
second).
Payment Processing Speed: Specify transaction processing times (e.g., under 5 seconds).
Error Handling: Describe acceptable error response times (e.g., under 2 seconds for user-facing
errors).
Integration Performance: Set expectations for performance when interacting with external services
(e.g., response time under 3 seconds).
Backup and Recovery: Set expectations for data backup and recovery times (e.g., backups every 24
hours, recovery within 4 hours).
Backup and Recovery: Ensure regular backups and establish a recovery plan to restore operations
after incidents.
Vulnerability Management: Continuously identify, assess, and manage system vulnerabilities.
Regulatory Compliance: Ensure adherence to relevant data protection regulations and industry
standards.
API Security: Implement security measures for APIs, including authentication and monitoring
usage.
User Training: Educate staff on best practices for maintaining security and safeguarding data.
Physical Security: Protect hardware and data centers with restricted access and monitoring.
6. OTHER REQUIREMENTS
User Roles: Define user roles such as customer, staff, and admin, along with their respective
permissions to ensure appropriate access control and functionality.
Reservation Workflow: Describe the detailed processes for making reservations, including the steps
for confirmation and notification to users.
Table Management: Specify how tables will be allocated and the arrangement of seating to optimize
restaurant capacity and customer experience.
Menu Integration: Detail how menu items will be integrated into the system, including pricing
updates and item descriptions.
Notifications: Define the types of notifications that will be sent to users, including reservation
confirmations and alerts for changes or updates.
Payment Processing: Specify the payment methods supported (e.g., credit/debit cards, digital
wallets) and outline security measures for handling transactions.
Feedback and Reviews: Explain the mechanism for collecting user feedback and reviews, including
how they will be displayed and managed.
Reporting: Describe the system’s capabilities for generating reports related to reservation statistics
and other relevant analytics.
Availability Calendar: Outline how the system will display open and reserved times to users for
better planning.
Appendix A: Glossary
Booking Form: An online form that customers fill out to make reservations.
KDS (Kitchen Display System): A digital display system used for managing orders in the kitchen.
Real-Time Availability: The current status of table availability at any given moment.
30
Software Engineering(3510711) 220090107161
Waitlist System: A digital queue management system for managing walk-in customers.
Order History: A record of past customer orders for reference and analysis.
Split Bills: A feature that allows the total bill to be divided among multiple payers.
Integrated Tipping: A feature that enables customers to add tips during the payment process.
Inventory Valuation: The process of assessing the value of inventory and calculating profit margins.
Personalized Marketing: Targeted marketing efforts based on customer behavior and preferences.
Cloud Backup: Automated data backup to cloud storage for enhanced security and recovery.
Data Flow Diagram (DFD): A visual representation showing the movement of data through the
system, illustrating inputs, processes, and outputs.
Entity-Relationship Diagram (ERD): A diagram that outlines the relationships between different
entities within the system, detailing how they interact.
Class Diagram: A diagram that outlines the classes within the system and their relationships,
showcasing the system architecture.
TBD: Define the specific user interface elements needed for making reservations.
Pending Decision: Determine how to handle situations involving overbooked tables effectively.
Information Needed: Clarify the requirements for integrating the payroll system with the restaurant
management system.
31
Software Engineering(3510711) 220090107161
Use-case diagram:
32
Software Engineering(3510711) 220090107161
ACTIVITY DIAGRAM:
33
Software Engineering(3510711) 220090107161
SWIMLANE DIAGRAM:
34
Software Engineering(3510711) 220090107161
CLASS DIAGRAM:
35
Software Engineering(3510711) 220090107161
● ER Diagram:
● STATE DIAGRAM:
37
Software Engineering(3510711) 220090107161
SEQUENCE DIAGRAM:
PRACTICAL-5
38
Software Engineering(3510711) 220090107161
5.1 Implementation:
Here customer can scan the barcode and view menu of the restaurant. Then if customer want to give
an order he should enter his details and login in the application.
Here customer can select any items he want to order and can add more items in it.
39
Software Engineering(3510711) 220090107161
Here customer can view their final order and can change the order. Here one more facility of add
note if customer want to add something in it.
This is the page layout for the chef and managers system so they can view customers order and
make food according to it.
40
Software Engineering(3510711) 220090107161
5.2 Study various code review tools and prepare a comparative analysis for the same (for at least
two).
1. Raxis:
Raxis does one better than automated tools that often discover false findings that waste time and effort.
Raxis scopes an amount of time that works best for your company’s code and assigns a security
focused former developer to analyze your code for both general security and business-logic
vulnerabilities.
Raxis communicates throughout to be sure your input is used within the code review, and they provide
a report that details each finding with screenshots and remediation advice. A high-level summary that
can be provided to management and a debriefing call are also included.
Advantages:
Specialized Security Focus: In-depth penetration testing and vulnerability assessments.
Expert Team: Access to experienced security professionals for insights.
Compliance Support: Aids in meeting regulatory requirements.
Disadvantages:
Narrow Scope: Limited emphasis on overall code quality.
Requires Expertise: Needs skilled professionals to interpret results.
Higher Cost: Typically more expensive due to service-based model.
2) SonarQube:
SonarQube is a household name in Code Quality and Code Security, empowering all developers to
write cleaner and safer code. With thousands of automated Static Code Analysis rules in more than 25
programming languages, while integrating directly with your DevOps platform, SonarQube is your
teammate to enhance your development workflow and guide your teams.
SonarQube fits with your existing tools and proactively raises a hand when the quality or security of
your codebase is at risk.
Advantages:
Continuous Code Quality: Integrates easily into CI/CD pipelines for real-time feedback.
Comprehensive Analysis: Supports multiple languages and offers detailed reports.
Strong Community: Large user base and extensive plugin support.
Disadvantages:
Limited Security Depth: May not cover all security vulnerabilities as thoroughly as dedicated tools.
Complex Setup: Initial configuration can be challenging.
False Positives: May produce false positives requiring manual review
41
Software Engineering(3510711) 220090107161
42
Software Engineering(3510711) 220090107161
PRACTICAL-6:
6.1 Write perform testing for your project and prepare test cases along with results (at least for
two modules) (As per the format attached)
43
Software Engineering(3510711) 220090107161
44
Software Engineering(3510711) 220090107161
6.2 Study various testing tools (Eg: Win runner, Load runner) and prepare a comparative
analysis.
1. Load Runner
LoadRunner is a software testing tool from Micro Focus. It is used to test applications, measuring
system behaviour and performance under load. LoadRunner can simulate thousands of users
concurrently using application software, recording and later analyzing the performance of key
components of the application.
LoadRunner simulates user activity by generating messages between application components or by
simulating interactions with the user interface such as keypresses or mouse movements.
Features of LoadRunner:
1. Interactive User Transaction Simulation.
2. Interactive User Transaction Simulation.
3. Mobile Testing.
Advantages:
1. Determines root cause of application performance issues
2. Accurate detection of system, end user, and code-level bottlenecks
3. Minimizes cost of application downtime stemmed from performance issues
4. Allows performance testing of existing legacy applications with new technologies
Disadvantages:
1. Debugging capability needs improvement
2. Extremely expensive
3. Uses a lot of memory and crashes if the system cannot meet its computing requirements
4. May have compatibility issues
2. WinRunner:
HP WinRunner software was an automated functional GUI testing tool that allowed a user to record
and play back user interface (UI) interactions as test scripts.
As a functional test suite, it worked with HP QuickTest Professional and supported enterprise quality
assurance. It captured, verified and replayed user interactions automatically, in order to identify defects
and determine whether business processes worked as designed.
Features of WinRunner:
1. Functionality testing tool
45
Software Engineering(3510711) 220090107161
2. Supports C/s and web technologies such as (VB, VC++, D2K, Java, HTML, Power Builder,
Delphe, Cibell (ERP))
3. To Support .net, xml, SAP, Peoplesoft, Oracle applications, Multimedia we can use QTP.
Advantages:
1. Reduces time consumption and tediousness.
2. Reduces the amount of investment in human resources.
3. Roots out most of the serious bugs.
Disadvantages:
1. Doesn't apply for stress, load, or scalability testing.
2. Doesn't support .NET programming.
Requires testers to have programming knowledge/experience
46