0% found this document useful (0 votes)
9 views47 pages

All Practical

The document describes various software development models, including the Waterfall, Incremental, Iterative, Spiral, Prototype, and Agile models, highlighting their phases, advantages, and disadvantages. Each model offers a unique approach to software development, catering to different project complexities and requirements. The Waterfall model is linear and sequential, while the Agile model emphasizes adaptability and customer satisfaction through iterative and incremental development.

Uploaded by

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

All Practical

The document describes various software development models, including the Waterfall, Incremental, Iterative, Spiral, Prototype, and Agile models, highlighting their phases, advantages, and disadvantages. Each model offers a unique approach to software development, catering to different project complexities and requirements. The Waterfall model is linear and sequential, while the Agile model emphasizes adaptability and customer satisfaction through iterative and incremental development.

Uploaded by

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

PRACTICAL-1

AIM:Describe various software development models with appropriate diagram.

Waterfall Model

 The Waterfall Model is a classical software development methodology. It was first introduced by Winston
W. Royce in 1970.
It is a linear and sequential approach to software development that consists of several phases. It must be completed
in a specific order. This classical waterfall model is simple and idealistic.

 It was once very popular. Today, it is not that popularly used. However, it is important because most other
types of software development life cycle models are a derivative of this.

 The waterfall model is a software development model used in the context of large, complex projects,
typically in the field of information technology. It is characterized by a structured, sequential approach
to project management and software development.

Phases of Waterfall Model:-

Software engineering(4340702) Enrollment No : 239830331082


The Waterfall Model has six phases which are:

1. Requirements: The first phase involves gathering requirements from stakeholders and analyzing them to
understand the scope and objectives of the project.

2. Design: Once the requirements are understood, the design phase begins. This involves creating a detailed
design document that outlines the software architecture, user interface, and system components.

3. Development: The Development phase include implementation involves coding the software based on the
design specifications. This phase also includes unit testing to ensure that each component of the software is
working as expected.

4. Testing: In the testing phase, the software is tested as a whole to ensure that it meets the requirements and is
free from defects.

5. Deployment: Once the software has been tested and approved, it is deployed to the production
environment.

6. Maintenance: The final phase of the Waterfall Model is maintenance, which involves fixing any issues that
arise after the software has been deployed and ensuring that it continues to meet the requirements over
time.

Advantages of Waterfall Model:-

 Easy to Understand
 Individual Processing
 Properly Defined
 Clear Milestones
 Properly Documented
 Reinforces Good

Disadvantages of Waterfall Model:-

Software engineering(4340702) Enrollment No : 239830331082


 No Feedback Path.
 Difficult to accommodate Change Requests:
 No Overlapping of Phases
 Limited Flexibility
 Limited Stakeholder Involvement
 Late Defect Detection
 Lengthy Development Cycle

Incremental Model
In Incremental Model, the software development process is divided into several increments and the same phases are
followed in each increment. In simple language, under this model a complex project is developed in many modules
or builds.

 For example, we collect the customer's requirements, now instead of making the entire software at once, we
first take some requirements and based on them create a module or function of the software and deliver it to
the customer. Then we take some more requirements and based on them add another module to that
software.

 Similarly, modules are added to the software in each increment until the complete system is created.
However, the requirements for making a complex project in multiple iterations/parts should be clear.

 If we understand the entire principle of Incremental methodology, then it starts by developing an initial
implementation, then user feedback is taken on it, and it is developed through several versions until an
accepted system is developed. Important functionalities of the software are developed in the initial
iterations.

Each subsequent release of a software module adds functions to the previous release. This process continues until
the final software is obtained.

Software engineering(4340702) Enrollment No : 239830331082


Phases of Incremental Model :-
 Communication: In the first phase, we talk face to face with the customer and collect his mandatory
requirements. Like what functionalities does the customer want in his software, etc.

 Planning: In this phase the requirements are divided into multiple modules and planning is done on their
basis.

 Modeling: In this phase the design of each module is prepared. After the design is ready, we take a
particular module among many modules and save it in DDS (Design Document Specification). Diagrams
like ERDs and DFDs are included in this document.

 Construction: Here we start construction based on the design of that particular module. That is, the design of
the module is implemented in coding. Once the code is written, it is tested.

 Deployment: After the testing of the code is completed, if the module is working properly then it is given to
the customer for use. After this, the next module is developed through the same phases and is combined
with the previous module. This makes new functionality available to the customer. This will continue until
complete modules are developed.

Software engineering(4340702) Enrollment No : 239830331082


Advantages of Incremental Model :-
 Important modules/functions are developed first and then the rest are added in chunks.

 Working software is prepared quickly and early during the software development life cycle (SDLC).

 This model is flexible and less expensive to change requirements and scope.

 The customer can respond to each module and provide feedback if any changes are needed.

 Project progress can be measured.

 It is easier to test and debug during a short iteration.

 Errors are easy to identify.

Disadvantages of Incremental Model :-


 Management is a continuous activity that must be handled.

 Before the project can be dismantled and built incrementally,

 The complete requirements of the software should be clear.

 This requires good planning and designing.

 The total cost of this model is higher.

Iterative Model
In Iterative model we start developing the software with some requirements and when it is developed, it is
reviewed. If there are requirements for changes in it, then we develop a new version of the software based on those
requirements. This process repeats itself many times until we get our final product.

 So, in Iterative model a software is developed by following several iterations. Iteration means that we are
repeating the development process again and again. For example, we develop the first version of the
software following the SDLC process with some software requirements.

Software engineering(4340702) Enrollment No : 239830331082


 After the first version is developed, if there is a need to change the software , then a new version is
developed with the second iteration. Now again we will see if the new version is enough, if not then we will
make changes in it with the third iteration. The iteration will be repeated until the complete software is
ready.

 The basic concept of Iterative model is that the software should be developed through repeated cycles or
what we also call iteration and only a small part of it should be developed at a time. This model was
developed to overcome the drawbacks of the classical waterfall model.

Through this diagram you can understand the Interactive model.

Phases of iterative model:-


1. Requirement gathering & analysis: In this phase, all the software requirements of the customer are
collected and it is analyzed whether those requirements can be meet or not. Besides, it is also checked
whether this project will not go beyond our budget.

2. Design: In this phase the design of software is prepared. For this, various diagrams like Data Flow diagram,
class diagram, activity diagram, state transition diagram, etc. are used.

Software engineering(4340702) Enrollment No : 239830331082


3. Implementation: Now the design of software is implemented in coding through various programming
languages. We also call this coding phase.

4. Testing: After the coding of the software is done, it is now tested so that the bugs and errors present in it
can be identified. To do this, various testing techniques like performance testing, security testing,
requirement testing, stress testing, etc. are done.

5. Deployment: Finally the software is given to the customer. After this the customer starts using that software
in his work environment.

6. Review: After the software is deployed in its work environment, it is reviewed. If any error/bug is found or
any new requirements come in front of developer, then again these phases are repeated with new iteration
and a new version is developed.

7. Maintenance: In this phase we look at customer feedback, solve problems, fix errors, update software, etc.

Advantage of Iterative model:-


 In iterative models, bugs and errors can be identified quickly.

 Under this model, software is prepared quickly with some specifications.

 Testing and debugging the software becomes easier during each iteration.

 We get reliable feedback from users along with blueprints.

 This model is easily adaptable to constantly changing needs.

 During the software development process, additional time is devoted to development and limited time to
documentation.

 Risks are identified and resolved during iteration.

Disadvantage of Iterative model:-


 Iterative model is not suitable for small projects.

 Since we have to repeat iterations many times in the software development process due to which we require
more resources.

 Since the requirements are constantly changing, we have to make frequent changes in the software.

Software engineering(4340702) Enrollment No : 239830331082


 Due to constantly changing requirements, the budget of the project also increases and it takes more time to
complete it.

 In this model, it is complicated to control the entire process of software development.

 It is very difficult to tell by what date the complete software will be ready.

Spiral Model
Spiral model is a software development process model. This model has characteristics of both iterative and
waterfall models. This model is used in projects which are large and complex. This model was named spiral
because if we look at its figure, it looks like a spiral, in which a long curved line starts from the center point and
makes many loops around it. The number of loops in the spiral is not decided in advance but it depends on the size
of the project and the changing requirements of the user. We also call each loop of the spiral a phase of the software
development process.

A software project goes through these loops again and again in iterations. After each iteration a more and more
complete version of the software is developed. The most special thing about this model is that risks are identified in
each phase and they are resolved through prototyping. This feature is also called Risk Handling.

Since it also includes the approaches of other SDLC models, it is also called Meta Model. It was first developed by
Barry Boehm in 1986.

Software engineering(4340702) Enrollment No : 239830331082


In Spiral Model the entire process of software development is described in four phases which are repeated until the
project is completed.

Those phases are as follows:-


 Determining objectives and alternate solutions: In the first phase, whatever requirements the customer
has related to the software are collected. On the basis of which objectives are identified and analyzed and
various alternative solutions are proposed.

 Identifying and resolving risks: In this phase, all the proposed solutions are assessed and the best solution
is selected. Now that solution is analyzed and the risks related to it are identified. Now the identified risks
are resolved through some best strategy.

 Develop and test: Now the development of software is started. In this phase various features are
implemented, that is, their coding is done. Then those features are verified through testing.

 Review and plan for the next phase: In this phase the developed version of the software is given to the
customer and he evaluates it. Gives his feedback and tells new requirements. Finally planning for the next
phase (next spiral) is started.
Software engineering(4340702) Enrollment No : 239830331082
Advantages of Spiral Model:-
 If we have to add additional functionality or make any changes to the software, then through this model we
can do so in the later stages also.

 Spiral model is suitable for large and complex projects.

 It is easy to estimate how much the project will cost.

 Risk analysis is done in each phase of this model.

 The customer can see the look of his software only in the early stages of the development process.

 Since continuous feedback is taken from the customer during the development process, the chances of
customer satisfaction increases.

Disadvantage of Spiral Model:-


 This is the most complex model of SDLC, due to which it is quite difficult to manage.

 This model is not suitable for small projects.

 The cost of this model is quite high.

 It requires more documentation than other models.

 Experienced experts are required to evaluate and review the project from time to time.

 Using this model, the success of the project depends greatly on the risk analysis phase.

Prototype model
Prototype model is an activity in which prototypes of software applications are created. First a prototype is created
and then the final product is manufactured based on that prototype.

 The prototype model was developed to overcome the shortcomings of the waterfall model.

Software engineering(4340702) Enrollment No : 239830331082


 This model is created when we do not know the requirements well.

 The specialty of this model is that this model can be used with other models as well as alone.

One problem in this model is that if the end users are not satisfied with the prototype model, then a new prototype
model is created again, due to which this model consumes a lot of money and time.

The prototype model has the following phases:-


 Requirement gathering: The first step of prototype model is to collect the requirements, although the
customer does not know much about the requirements but the major requirements are defined in detail.

 Build the initial prototype: In this phase the initial prototype is built. In this some basic requirements are
displayed and user interface is made available.

Software engineering(4340702) Enrollment No : 239830331082


 Review the prototype: When the construction of the prototype is completed, it is presented to the end users
or customer and feedback is taken from them about this prototype. This feedback is used to further improve
the system and possible changes are made to the prototype.

 Revise and improve the prototype: When feedback is taken from end users and customers, the prototype
is improved on the basis of feedback. If the customer is not satisfied with the prototype, a new prototype is
created and this process continues until the customer gets the prototype as per his desire.

Advantages of Prototype model:-


 Prototype Model is suggested to create applications whose prototype is very easy and which always includes
human machine interaction within it.

 When we know only the general objective of creating software, but we do not know anything in detail about
input, processing and output. Then in such a situation we make it a Prototype Model.

 When a software developer is not very sure about the capability of an algorithm or its adaptability to an
operating system, then in this situation, using a prototype model can be a better option.

Disadvantages of Prototype model:-


 When the first version of the prototype model is ready, the customer himself often wants small fixes and
changes in it rather than rebuilding the system. Whereas if the system is redesigned then more quality will
be maintained in it.

 Many compromises can be seen in the first version of the Prototype Model.

 Sometimes a software developer may make compromises in his implementation, just to get the prototype
model up and running quickly, and after some time he may become comfortable with making such
compromises and may forget that it is completely inappropriate to do so.

Agile Model
Agile model is a combination of iterative and incremental models, that is, it is made up of iterative and incremental
models.

 In Agile model, focus is given to process adaptability and customer satisfaction.

Software engineering(4340702) Enrollment No : 239830331082


 In earlier times, iterative waterfall model was used to create software. But in today's time developers have to
face many problems. The biggest problem is that in the middle of software development, the customer asks
to make changes in the software. It takes a lot of time and money to make these changes.

The agile model was created mainly to make changes in the middle of software development so that the software
project can be completed quickly.

 In the agile model, the software product is divided into small incremental parts. In this, the smallest part is
developed first and then the larger one.

 And each incremental part is developed over iteration.

 Each iteration is kept small so that it can be easily managed. And it can be completed in two-three weeks.
Only one iteration is planned, developed and deployed at a time.

Principles of Agile model:-

Software engineering(4340702) Enrollment No : 239830331082


 There is a customer representative in the development team to maintain contact with the customer
during software development and to understand the requirement. When an iteration is completed,
stakeholders and customer representatives review it and re-evaluate the requirements.

 Demo of working software is given to understand the customer's requirements. That is, it does not depend
only on documentation.

 Incremental versions of the software have to be delivered to the customer representative after a few weeks.

 In this model it is advised that the size of the development team should be small (5 to 9 people) so that the
team members can communicate face to face.

 Agile model focuses on the fact that whenever any changes have to be made in the software, it should be
completed quickly.

 In agile development, two programmers work together. One programmer does the coding and the other
reviews that code. Both the programmers keep changing their tasks, that is, sometimes one does coding and
sometimes someone reviews.

Agile has the following models:-


1. Scrum

2. Crystal methods

3. DSDM

4. Feature driven development (FDD

5. Lean software development

6. Extreme programming (xp)

Advantages of Agile Model:-


 In this, two programmers work together due to which the code is error free and there are very few mistakes
in it.

 In this the software project is completed in a very short time.

Software engineering(4340702) Enrollment No : 239830331082


 In this the customer representative has an idea of each iteration so that he can easily change the requirement.

 This is a very realistic approach to software development.

 In this, focus is given on teamwork.

 There are very few rules in this and documentation is also negligible.

 There is no need for planning in this.

 It can be managed easily.

 It provides flexibility to developers.

Disadvantages of Agile Model:-


 It cannot handle complex dependencies.

 Due to lack of formal documentation in this, there is confusion in development.

 It mostly depends on the customer representative, if the customer representative gives any wrong
information then the software can become wrong.

 Only experienced programmers can take any decision in this. New programmers cannot take any decision.

 In the beginning of software development, it is not known how much effort and time will be required to
create the software.

PRACTICAL-2

AIM: Write problem statement to define the project title with bounded scope of the project.

Project name :-Restaurant management system

Scope of this application :-

Software engineering(4340702) Enrollment No : 239830331082


A restaurant management system software is designed to streamline and automate various back-end operations of a
restaurant. Here are some key aspects and features:

1. Point of Sale (POS) System: Handles order processing, payment transactions, and inventory management.

2. Inventory Management: Tracks stock levels, manages orders, and helps prevent shortages.

3. Table Management: Manages reservations, seating arrangements, and table turnover.

4. Employee Scheduling: Assists in shift scheduling, timekeeping, and HR management.

5. Reporting and Analytics: Generates reports on sales, inventory, employee performance, and customer
trends2.

6. Customer Relationship Management (CRM): Manages customer data, loyalty programs, and feedback.

7. Accounting and Financial Management: Handles invoicing, payroll, and financial reporting.

8. Online Ordering and Delivery Management: Facilitates online orders and integrates with delivery
services.

These systems can be cloud-based, offering real-time data access and management from multiple devices. They
help improve efficiency, reduce errors, and enhance the overall customer experience.

PRACTICAL-3

AIM :- Select relevant process model to define activities and related tasks set for assigned
project .

Software engineering(4340702) Enrollment No : 239830331082


For the Restaurant Management System project, selecting an appropriate software process model is crucial for managing
activities, tasks, and ensuring timely delivery with proper quality. Here are some commonly used process models and their
relevance to your project:

1. Waterfall Model:

 Description: A linear, sequential approach where each phase must be completed before moving to the next.
 Best For: Projects with well-defined requirements that are unlikely to change.
 Suitability for Restaurant Management System: If the project requirements are fully defined from the start and
unlikely to change, the Waterfall model could work. However, since restaurant systems often evolve (adding features
like online ordering or customer loyalty programs), this model may be too rigid.

2. V-Model (Verification and Validation):

 Description: An extension of the Waterfall model, emphasizing testing at every stage. Each development phase has a
corresponding testing phase.
 Best For: Projects where testing is a critical aspect, and there’s a focus on ensuring system correctness from the start.
 Suitability for Restaurant Management System: The V-Model could be useful if the restaurant system has strict
requirements for performance and reliability, but like Waterfall, it lacks flexibility for changing requirements.

3. Iterative Model:

 Description: Development is done in cycles (iterations), allowing for refinement of the system in each cycle based on
feedback.
 Best For: Projects where the full scope of the requirements is not known upfront but can be refined during
development.
 Suitability for Restaurant Management System: This model is suitable because it allows you to develop basic
functionality first (e.g., order processing, menu management) and add advanced features (e.g., analytics, online
reservations) in subsequent iterations.

4. Agile Model (Scrum):

 Description: Agile is an incremental, iterative approach where the product is developed in small cycles (called
sprints), with regular customer feedback.
 Best For: Projects with changing or evolving requirements where customer feedback is critical throughout the
development.
 Suitability for Restaurant Management System: Agile is a highly suitable choice. Restaurant management systems
often require frequent updates based on user feedback (e.g., restaurant staff or customers). The flexibility of Agile
ensures that evolving needs can be accommodated without extensive rework. It allows you to prioritize critical
functions (menu management, order processing) and continuously improve or add new features in short sprints.

Software engineering(4340702) Enrollment No : 239830331082


5. Spiral Model:

 Description: Combines iterative development with risk management. Each iteration goes through planning, risk
analysis, engineering, and evaluation phases.
 Best For: Large, complex projects with significant risks, where risk management is crucial.
 Suitability for Restaurant Management System: This may be more suitable for a large-scale restaurant
management system with extensive features and risks (e.g., integrating with multiple third-party systems), but it can
be overkill for a simpler project.

Activities and Related Task Sets in Agile (Scrum) for the Restaurant Management System:

1. Project Planning & Initiation:

 Define product backlog: Identify key features like menu management, order processing, table reservations, etc.
 Create user stories: Break down the product backlog into user stories (e.g., "As a manager, I want to add a new menu
item").
 Assign roles: Product owner, Scrum master, development team.

2. Sprint Planning:

 Select user stories: Based on priority, select stories from the backlog for the sprint.
 Define sprint goal: E.g., "Develop the table reservation feature in this sprint."

3. Development Phase (for each sprint):

 Design and prototype: Create wireframes or prototypes for features like the menu system.
 Coding tasks: Implement selected features (e.g., order processing, customer data management).
 Code review: Ensure code quality and consistency.
 Unit testing: Ensure individual components are functioning correctly.

4. Testing Phase:

 Integration testing: Test the integration between components (e.g., linking the payment system with the order
system).
 User acceptance testing: Ensure the system meets user needs and expectations.

5. Sprint Review and Retrospective:

 Sprint demo: Present completed work to stakeholders (e.g., menu management or reservation features).
 Collect feedback: From restaurant staff, managers, etc., on features delivered.
 Retrospective: Review the sprint process, identify improvements, and prepare for the next sprint.

Software engineering(4340702) Enrollment No : 239830331082


6. Deployment & Maintenance:

 Deploy features: Push the completed functionalities (e.g., order management, inventory tracking) into production.
 Bug fixes & maintenance: Handle any issues that arise post-deployment.

Conclusion:

The Agile (Scrum) process model offers flexibility, customer involvement, and the ability to adapt to changing requirements,
making it the most suitable for developing a Restaurant Management System. By breaking down the project into
manageable sprints, you can deliver critical features early and continuously improve the system based on real-world feedback.

PRACTICAL-4

AIM:Gather application specific requirements- Requirement gathering.

Restaurant Management System (RMS) Requirements Gathering is the critical first step in developing an
efficient and functional system.

This phase involves collecting and analysing the needs and expectations of various stakeholders, such as restaurant
owners, managers, staff (waiters, chefs), and customers, to create a system that meets the specific needs of the
restaurant's operations.

Here’s how you can approach requirements gathering for an RMS:

Software engineering(4340702) Enrollment No : 239830331082


1. Functional Requirements:-

Order Management:

 Order Taking:
o Ability for waitstaff to take orders at tables (through tablets, smartphones, or POS).
o Customers can place orders via mobile apps or kiosks.
o Ability to modify orders (e.g., add/remove items, special instructions).

 Order Tracking:
o Track status of orders (received, cooking, ready, delivered).
o Notify customers or kitchen when their order is ready.

 Menu Management:
o Admin can easily update, add, or remove menu items.
o Ability to set item availability based on stock levels (dynamic pricing).
o Menu categories (appetizers, main courses, drinks, etc.).

Billing and Payment Processing:

 Invoice Generation:
o Automatically generate detailed invoices for customers.
o Support for split bills (e.g., separate bills for each customer at a table).

 Payment Integration:
o Ability to process payments (cash, credit/debit cards, online payments).
o Integration with payment gateways (e.g., Stripe, PayPal).

 Discounts & Promotions:


o Implement discounts, coupons, or promotional codes (e.g., happy hour discounts, loyalty rewards).

Inventory Management:

 Stock Monitoring:
o Track ingredients, supplies, and beverages in real-time.
o Automatic updates of stock levels after each order.

 Supplier Management:

Software engineering(4340702) Enrollment No : 239830331082


o Manage supplier information, order history, and procurement.

 Alerts and Notifications:


o Alert managers when stock reaches a minimum threshold.
o Notifications about expiring inventory items.

Table Management:

 Reservations:
o Allow customers to book tables online or through the RMS (time slots, table size).
o Admins can view, modify, or cancel reservations.

 Table Assignments:
o Allocate tables to customers when they arrive.
o Track table availability in real-time.

 Waitlist Management:
o Manage customer waitlists and notify them when their table is ready.

 Table Status:
o Real-time monitoring of table statuses (open, occupied, dirty, reserved, etc.).

Employee Management:

 Staff Scheduling:
o Schedule shifts for waitstaff, chefs, cashiers, etc.
o Track attendance and overtime.

 Role-Based Access Control:


o Set access levels (e.g., managers can access reports, cashiers can only process orders).
o Permissions for different users (e.g., chefs, waiters, managers).

 Employee Performance Tracking:


o Track employee efficiency (e.g., number of orders taken, average order time).

Customer Relationship Management (CRM):

 Customer Profiles:
o Create customer profiles with details like name, contact information, order history, preferences, and
loyalty program participation.

Software engineering(4340702) Enrollment No : 239830331082


 Loyalty Programs:
o Points system for customer purchases.
o Offer discounts or rewards for repeat visits.

 Customer Feedback:
o Collect feedback through surveys or ratings after meal completion.

 Communication:
o SMS/email alerts for promotions, reservations, or special offers.

Reporting & Analytics:

 Sales Reports:
o Generate detailed daily, weekly, and monthly sales reports.
o Track revenue per item, category, or employee.

 Inventory Reports:
o Monitor usage, waste, and stock levels.

2. Non-Functional Requirements:-

Performance & Scalability:

 Load Handling:
o System must handle peak loads, especially during busy hours (e.g., weekends, holidays).

 Response Time:
o Quick response time for all operations (e.g., order taking, billing).

 Scalability:
o The system should scale with restaurant growth (e.g., multiple branches, more employees, more
customers).

Security:

 Data Protection:
o Ensure compliance with data protection regulations (e.g., GDPR, CCPA) regarding customer and
payment data.

Software engineering(4340702) Enrollment No : 239830331082


 Role-Based Authentication:
o Enforce user roles and permissions to restrict access to sensitive information.

 Payment Security:
o Ensure secure transactions (e.g., PCI DSS compliance for credit card transactions).

Usability:

 Ease of Use:
o The system should have an intuitive, easy-to-navigate interface for staff with little technical
knowledge.

 Multi-Language Support:
o Support multiple languages for international staff and customers.

 Multi-Device Support:
o Ensure the system works across various devices (desktop, tablets, POS terminals, mobile phones).

Reliability:

 System Availability:
o The system must be available 24/7 with minimal downtime.

 Backup and Recovery:


o Automatic backups of all data, with easy restoration processes in case of failure.

Integration:

 POS Integration:
o Integration with existing POS systems to streamline order and payment processes.

 Accounting Systems:
o Integrate with accounting software (e.g., QuickBooks) for seamless financial reporting.

 Third-Party Services:
o Integration with third-party services like delivery platforms (UberEats, DoorDash), online
reservation systems (OpenTable), and marketing tools.

Software engineering(4340702) Enrollment No : 239830331082


3. Stakeholder Requirements:-

Restaurant Owner / Manager:

 Overview:
o Ensure the system provides comprehensive control over daily operations, financials, and customer
service.
o Monitor overall restaurant performance via dashboards and reports.
o Ensure the system improves efficiency, reduces errors, and enhances customer satisfaction.

 Key Features Needed:


o Financial reports.
o Staff scheduling.
o Menu and inventory management.
o System scalability.

Waitstaff / Servers:

 Overview:
o Need a tool to quickly take orders, modify them, and process payments with minimal friction.

 Key Features Needed:


o Order entry via mobile/tablet.
o Easy access to the menu and customizations.
o Bill splitting and tip calculation.

Kitchen Staff / Chefs:

 Overview:
o Require an efficient order management system to ensure smooth order preparation and accurate meal
delivery.

 Key Features Needed:


o Real-time order status tracking.
o Easy-to-read order display (e.g., on kitchen screens).
o Custom order requests (e.g., no gluten, extra spicy).

Customers:
Software engineering(4340702) Enrollment No : 239830331082
 Overview:
o Expect a fast, convenient, and personalized experience.

 Key Features Needed:


o Online ordering (via website/app).
o Self-checkout or contactless payment options.
o Loyalty rewards and special offers.

System Admin:

 Overview:
o Manage and configure the system, monitor user access, and ensure the system runs smoothly.
 Key Features Needed:
o User management (adding/removing staff).
o System configuration (menu setup, payment gateways).
o Real-time performance monitoring.

4. Constraints:-

 Budget Constraints:
o Development and maintenance costs must fit within the allocated budget.

 Timeline:
o The system should be delivered in phases (for example, an MVP in 3-6 months and full deployment
in 12 months).

 Regulatory Compliance:
o The system must comply with local and international regulations, particularly those regarding data
protection and payments.

Conclusion:

 The requirements gathering for a Restaurant Management System should involve a detailed analysis of the
needs of all stakeholders involved, including restaurant staff, customers, and management.

 By considering both functional and non-functional requirements, as well as specific needs such as security,
performance, and usability, you can ensure that the RMS will effectively address the operational challenges
faced by the restaurant.

Software engineering(4340702) Enrollment No : 239830331082


PRACTICAL-5

AIM: Prepare broad SRS (software requirement software) for the above selected project.

1. Introduction
1.1 Purpose

The purpose of this document is to define the software requirements for a Restaurant Management System (RMS) to
streamline restaurant operations. It outlines the functionalities, constraints, and interface requirements that are essential to
develop, implement, and maintain the system effectively.

1.2 Scope

The Restaurant Management System will handle core activities within a restaurant, including order management, menu
management, inventory control, table reservations, billing, staff management, and customer feedback. It will be designed for
use in small to medium-sized restaurants and cafes to enhance productivity and customer service.

Software engineering(4340702) Enrollment No : 239830331082


1.3 Intended Audience

 Developers: To understand the system's technical and functional requirements.


 Restaurant Owners and Managers: To track daily operations and business metrics.
 Waitstaff and Kitchen Staff: To streamline order processing and inventory management.
 Customers: To interact with the restaurant for ordering, reservation, and feedback.

1.4 Definitions, Acronyms, and Abbreviations

 POS: Point of Sale


 RMS: Restaurant Management System
 UI/UX: User Interface/User Experience
 API: Application Programming Interface

1.5 Overview

This document consists of the functional and non-functional requirements of the RMS, user interaction diagrams, and external
system dependencies. The system will provide users with the ability to manage restaurant operations through a web or mobile
application.

2. Overall Description
2.1 Product Perspective

The Restaurant Management System will function as a standalone web or mobile application. It will be integrated with a POS
system for payment processing, an inventory system for stock control, and an online portal for customer engagement.

2.2 Product Features

1. Menu Management:
o Add, update, or remove menu items.
o Categorize menu items by type (appetizers, main course, desserts, beverages).
o Pricing, descriptions, and availability management.
2. Order Management:
o Create and manage dine-in, takeaway, and online orders.
o Real-time order tracking.
o Split bills and track discounts or promotions.
3. Table Reservation System:

Software engineering(4340702) Enrollment No : 239830331082


o Allow customers to reserve tables online.
o Track reservation status and available seating.
4. Billing and Payment:
o Integration with POS for billing.
o Support multiple payment methods (cash, credit card, mobile wallets).
o Generate and print receipts.
5. Inventory Management:
o Track stock levels of ingredients and supplies.
o Automated alerts for low inventory levels.
o Generate purchase orders for suppliers.
6. Staff Management:
o Track employee work hours and roles.
o Manage payroll.
o Assign waitstaff to tables or sections.
7. Customer Feedback and Loyalty Programs:
o Collect and store customer feedback on service, food, and ambiance.
o Manage loyalty programs with rewards and points.
8. Reporting and Analytics:
o Generate sales reports, customer data reports, and inventory reports.
o View daily, weekly, and monthly performance metrics.
9. Mobile Application (optional feature):
o Allow customers to place orders via mobile.
o Push notifications for promotions and offers.

2.3 User Classes and Characteristics

1. Administrator: Responsible for system setup, user management, and monitoring restaurant activities.
2. Waitstaff: Take orders, manage tables, and track payments.
3. Kitchen Staff: Receive and prepare orders.
4. Customer: Interacts through online ordering or reservations.
5. Manager: Access reports, monitor performance, and manage staff.

2.4 Operating Environment

 The system will operate in web browsers (Chrome, Firefox, Safari) and on mobile devices (Android and iOS).
 Backend technologies could include a SQL or NoSQL database, cloud hosting (AWS/Azure), and a scalable micro
services architecture.

2.5 Design and Implementation Constraints

 The system must support integration with external POS and payment gateways.

Software engineering(4340702) Enrollment No : 239830331082


 Must be scalable to support multiple restaurants and high traffic.
 Provide responsive UI for mobile and web platforms.

3. Functional Requirements
3.1 User Authentication

 Users (admin, wait staff, kitchen staff) must log in using a username and password.
 Support for user roles and permissions.

3.2 Menu Management

 Admin can add, edit, and delete menu items.


 System must support image uploads for menu items.
 Menu should support availability toggling (e.g., "Out of Stock" functionality).

3.3 Order Processing

 Orders must be placed by staff or customers (online).


 Real-time order tracking should be visible to both kitchen and waitstaff.
 Support for special instructions (e.g., allergies, customizations).

3.4 Table Reservation

 Customers can reserve tables through the system.


 Provide visual representation of the restaurant's table layout.
 Automated notification for upcoming reservations.

3.5 Billing and Payments

 Calculate bill totals with tax, discounts, and service charges.


 Accept multiple payment methods (card, cash, online).
 Generate printable or email receipts.

3.6 Inventory Management

 Track inventory items and ingredients with expiration dates.


 Automated reordering process based on minimum stock levels.

Software engineering(4340702) Enrollment No : 239830331082


3.7 Customer Feedback

 Allow customers to submit reviews and rate their dining experience.


 Store feedback for analysis in reports.

3.8 Reporting

 Admin and manager access to generate reports.


 Data export in CSV format for analysis.
 Reports on sales, inventory, employee performance, etc.

4. Non-functional Requirements
4.1 Performance Requirements

 The system should process 100+ orders per hour without delays.
 The response time for any user query must be less than 2 seconds.

4.2 Reliability

 System uptime should be 99.9% to ensure continuous restaurant operations.


 Backup data at regular intervals.

4.3 Security

 Implement encryption for sensitive data (e.g., payment info, passwords).


 Role-based access control to restrict features based on user roles.
 Regular security audits and vulnerability assessments.

4.4 Usability

 The UI should be simple and intuitive for non-technical users.


 Support for multiple languages, especially English and local languages where applicable.

4.5 Scalability

 Must support growing restaurants with the ability to handle an increasing number of orders, inventory items, and
users.

Software engineering(4340702) Enrollment No : 239830331082


PRACTICAL-6

AIM:- Develop data designs using DFDs (data flow diagram) and E-R (entity-relationship)
diagram.

1. Data Flow Diagrams (DFD)


Level 0 DFD: Context Diagram

This represents the highest level of the system and shows the interaction between the external entities and the system itself.

Level 1 DFD: Expanded Diagram

The Level 1 DFD breaks down the RMS into several major sub-processes.

Software engineering(4340702) Enrollment No : 239830331082


2. Entity-Relationship (ER) Diagram
An ER Diagram defines how data entities are related within the RMS. Below is a high-level overview of the primary entities
and their relationships.

PRACTICAL-7
Software engineering(4340702) Enrollment No : 239830331082
AIM:- Prepare use-cases and draw use case diagram .

PRACTICAL-8

Software engineering(4340702) Enrollment No : 239830331082


AIM:- Develop a class diagram for selected project.

PRACTICAL-9

AIM:- Develop Sequence diagram for selected project .

Software engineering(4340702) Enrollment No : 239830331082


PRACTICAL-10

AIM:- Develop the activity diagram to represent flow from one activity to another for
software development.

Software engineering(4340702) Enrollment No : 239830331082


To create an activity diagram for the software development process of a Restaurant Management System, the key stages of
software development need to be customized for the specific domain, i.e., restaurant operations like menu management, order
management, billing, and so on. Below is an activity diagram that represents the software development lifecycle for a
Restaurant Management System.

Key Stages:

1. Requirements Gathering (Restaurant-specific)


2. System Design
3. Development
4. Testing (including Restaurant Operations Testing)
5. Deployment
6. Maintenance

Steps for the Activity Diagram:

1. Gather Restaurant Requirements


o Gather and analyze the requirements from restaurant stakeholders (e.g., menu management, order handling,
customer management, table reservation, etc.).
 Decision: Are the requirements complete?
 If No → Loop back to Gather Restaurant Requirements.
 If Yes → Proceed to System Design.
2. System Design
o Design the architecture of the system. Break the design into different modules like menu management, order
processing, table reservation, and billing systems.
 Decision: Is the system design approved?
 If No → Loop back to System Design.
 If Yes → Proceed to Development.
3. Development
o Begin coding the system based on the design. This includes developing the core modules (e.g., order
management, billing system, inventory, user roles).
 Decision: Is the development complete?
 If No → Continue Development.
 If Yes → Proceed to Testing.
4. Testing
o Conduct thorough testing including unit testing, integration testing, and restaurant operation testing (e.g.,
testing real scenarios like order processing, billing, table reservations, and inventory management).
 Decision: Are there bugs/issues?
 If Yes → Loop back to Development for fixes.

Software engineering(4340702) Enrollment No : 239830331082


 If No → Proceed to Deployment.
5. Deployment
o Deploy the restaurant management system into the live environment (production system at the restaurant).
 Decision: Is the deployment successful?
 If No → Re-deploy or resolve deployment issues.
 If Yes → Proceed to Maintenance.
6. Maintenance
o Perform ongoing system maintenance and handle real-time feedback from restaurant operations (e.g., adding
new features, fixing issues, upgrading the system).
 Decision: Is an update needed based on the feedback or any changes (e.g., new menu items, new
restaurant branches)?
 If Yes → Go back to Development.
 If No → Continue Maintenance.

PRACTICAL-11

AIM :- Evaluate size of the project using Function point metric for the assigned project.
To evaluate the size of your Restaurant Management System project using the Function Point (FP) metric, we will go
through the following steps:

Software engineering(4340702) Enrollment No : 239830331082


1. Identify the Type of Project Elements:

There are five types of functional components:

 External Inputs (EI): Inputs to the system, such as data entry forms, adding new menu items, or creating orders.
 External Outputs (EO): Outputs from the system, such as reports, receipts, or notifications.
 External Inquiries (EQ): Requests that require both input and output, like querying customer details or searching for
available tables.
 Internal Logical Files (ILF): Internal data the system maintains, such as customer information, orders, or inventory.
 External Interface Files (EIF): Files managed by external systems but used by the system, like external payment
gateways or a supplier system.

2. Determine Complexity and Assign Weights:

Each element is assigned a complexity level: Low, Medium, or High. Based on this, each type gets a weight. Below is the
standard complexity-weight table:

Component Type Low Medium High

External Input (EI) 3 4 6

External Output (EO) 4 5 7

External Inquiry (EQ) 3 4 6

Internal Logical File (ILF) 7 10 15

External Interface File (EIF) 5 7 10

3. Determine Complexity for the Restaurant Management System:

Let's assume the following for the Restaurant Management System based on common functionalities:

1. External Inputs (EI):


o Add a new menu item (Low) = 1
o Create a customer order (Medium) = 1
o Process payment (Medium) = 1
2. External Outputs (EO):
o Generate receipt (Low) = 1
o Generate end-of-day sales report (Medium) = 1

Software engineering(4340702) Enrollment No : 239830331082


3. External Inquiries (EQ):
o Query table availability (Low) = 1
o Search customer order history (Medium) = 1
4. Internal Logical Files (ILF):
o Customer data (Medium) = 1
o Menu data (Medium) = 1
o Order data (High) = 1
o Inventory data (Medium) = 1
5. External Interface Files (EIF):
o Payment gateway (Medium) = 1
o Supplier data (Low) = 1

4. Final Function Point Count:

Without any complexity adjustments, the size of your Restaurant Management System project, in function points, is:

84 Function Points (FP)\textbf{84 Function Points (FP)}84 Function Points (FP)

This gives an estimate of the project size, which can be used to gauge development effort, cost, and time.

PRACTICAL-12

AIM :- Estimate cost of the project using COCOMO (Constructive Cost Model) / COCOMO
II approach for the assigned project.

To estimate the cost of your Restaurant Management System project using the COCOMO II model, we'll go through the
following steps:

Software engineering(4340702) Enrollment No : 239830331082


1. Determine the Project Size (in KLOC):

The size of the project is usually expressed in Kilo Lines of Code (KLOC). We will estimate the size in KLOC based on the
Function Points (FP) calculated earlier.

In COCOMO II, the FP to KLOC conversion depends on the programming language used. Here are some common
conversion factors:

2. Determine the Project Type:

COCOMO II classifies projects into three types:

 Organic: Small, simple projects with small teams and good experience.
 Semi-detached: Medium-sized projects with a mix of experienced and inexperienced developers.
 Embedded: Complex, high-risk projects with rigid requirements and constraints.

For the Restaurant Management System, it would likely be considered Organic due to its small scale and relatively
straightforward requirements.

3. Apply the COCOMO II Effort Equation:

The basic effort equation for COCOMO II is:

 A = 2.94 (constant for Organic projects)


 B = 1.05 (scaling factor for Organic projects)
 EAF = Effort Adjustment Factor (based on project-specific attributes such as team experience, use of tools, etc.)

4. Calculate Effort:

Now, we can estimate the effort required:

The estimated effort for the Restaurant Management System project is approximately 14.1 person-months.

5. Estimate Development Time (in Months):

COCOMO II also provides a formula to estimate the development time:

The estimated development time for the Restaurant Management System project is approximately 7.7 months.

Software engineering(4340702) Enrollment No : 239830331082


6. Estimate the Project Cost:

To estimate the cost, we need to multiply the effort by the average salary (in person-months). Assuming an average monthly
developer salary of $5,000, the cost would be:

The estimated cost of the Restaurant Management System project is approximately $70,518.

Summary of Estimates:

 Effort: 14.1 person-months


 Development Time: 7.7 months
 Cost: $70,518

These estimates can help you plan resources and timelines for your project.

PRACTICAL-13

AIM:- Use flow chart and Gantt charts to track progress of the assigned project. (Use Sprint
burn down chart if agile model is selected).
1. Flowchart for the Restaurant Management System Workflow

Start

Customer Requests Order → Waiter Takes Order → Order Sent to Kitchen →
Kitchen Prepares Order → Waiter Serves Food

Software engineering(4340702) Enrollment No : 239830331082


↓ ↓
Customer Payment → Generate Bill → Customer Leaves ← Food Delivered

End

2. Gantt Chart

Task Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 ... Week 20

Requirements Gathering ████ ████

System Design ████ ████

Database Design ████ ████

Menu Management Module Dev ████ ████ ████

Order Management Module Dev ...

Testing ... ████

Deployment and Training ... ████

Maintenance Ongoing

PRACTICAL-14

AIM:- Prepare various test case for selected project.

Software engineering(4340702) Enrollment No : 239830331082


1. Login and User Authentication Module
Test Case
Test Scenario Test Steps Expected Result Status
ID

1. Open login page


Admin successfully logs in and is redirected
TC-001 Valid Admin Login 2. Enter valid admin credentials
to the dashboard
3. Click Login

1. Open login page


Invalid Login (Wrong 2. Enter valid username and Error message displayed: "Invalid username
TC-002
Password) wrong password or password"
3. Click Login

1. Open login page


Error message displayed: "Fields cannot be
TC-003 Empty Fields 2. Leave both fields empty
empty"
3. Click Login

1. Open login page


Password Recovery (Forgot
TC-004 2. Click "Forgot Password" Password recovery email sent successfully
Password)
3. Enter valid email

2. Menu Management Module


Test Case
Test Scenario Test Steps Expected Result Status
ID

1. Go to Menu Management
2. Click "Add New Item"
Add a new menu New item added to the menu, displayed on menu
TC-005 3. Fill in item details (name, price,
item page
category)
4. Click "Save"

1. Go to Menu Management
Edit an existing menu 2. Select an existing item
TC-006 Menu item details updated successfully
item 3. Edit details
4. Click "Save"

Software engineering(4340702) Enrollment No : 239830331082


Test Case
Test Scenario Test Steps Expected Result Status
ID

1. Go to Menu Management
Confirmation prompt appears, and item is
TC-007 Delete a menu item 2. Select a menu item
deleted from the menu
3. Click "Delete"

1. Go to Menu Management
Duplicate menu item 2. Add an item with the same Error message displayed: "Menu item already
TC-008
entry name exists"
3. Click "Save"

3. Order Management Module


Test Case
Test Scenario Test Steps Expected Result Status
ID

1. Go to the order
page
2. Select table Order successfully placed, status updated to "In
TC-009 Place a new order (Dine-in)
3. Add items to the Progress"
order
4. Click "Place Order"

1. Go to order page
2. Select "Takeaway" Order successfully placed with "Takeaway"
TC-010 Place a new order (Takeaway)
3. Add items status
4. Click "Place Order"

1. Go to existing order
2. Add more items
TC-011 Update order (Add more items) Order successfully updated with new items
3. Click "Update
Order"

TC-012 Cancel an order 1. Go to existing order Order status changes to "Cancelled"


2. Click "Cancel Order"

Software engineering(4340702) Enrollment No : 239830331082


Test Case
Test Scenario Test Steps Expected Result Status
ID

3. Confirm
cancellation

1. Go to order history
Check order history for a specific
TC-013 2. Select a table Previous orders for the table displayed
table
3. View order details

4. Reservation Module
Test Case
Test Scenario Test Steps Expected Result Status
ID

1. Go to Reservations
Make a table reservation for a 2. Select table and date Reservation successfully created,
TC-014
future date 3. Enter customer details confirmation displayed
4. Click "Reserve"

1. Go to Reservations
Attempt to reserve an already 2. Select an already Error message displayed: "Table is already
TC-015
booked table reserved table reserved"
3. Click "Reserve"

1. Go to Reservations
2. Select a reservation
TC-016 Modify an existing reservation Reservation details updated successfully
3. Edit details
4. Click "Save"

1. Go to Reservations
2. Select a reservation
TC-017 Cancel a reservation Reservation status changes to "Cancelled"
3. Click "Cancel
Reservation"

Software engineering(4340702) Enrollment No : 239830331082


5. Billing and Payment Module
Test Case
Test Scenario Test Steps Expected Result Status
ID

Generate bill for a 1. Go to completed order Bill generated successfully, displaying items, tax,
TC-018
completed order 2. Click "Generate Bill" total, etc.

1. Generate bill
2. Select payment method Payment processed successfully, receipt
TC-019 Process payment using cash
(cash) generated
3. Click "Pay"

1. Generate bill
2. Select payment method
Payment processed, receipt generated,
TC-020 Process payment using card (card)
confirmation displayed
3. Enter card details
4. Click "Pay"

1. Generate bill
2. Click "Apply Discount"
TC-021 Apply discount to a bill 3. Enter discount Bill updated with discount, new total displayed
percentage
4. Click "Apply"

1. Go to completed orders
Duplicate receipt generated and printed
TC-022 Generate duplicate receipt 2. Select an order
successfully
3. Click "Generate Receipt"

6. Inventory Management Module


Test Case
Test Scenario Test Steps Expected Result Status
ID

TC-023 Add new inventory items 1. Go to Inventory New item added to inventory, displayed in
2. Click "Add New Item" inventory list
3. Enter details (name, quantity,

Software engineering(4340702) Enrollment No : 239830331082


Test Case
Test Scenario Test Steps Expected Result Status
ID

supplier)
4. Click "Save"

1. Go to Inventory
Update inventory item 2. Select an item
TC-024 Quantity updated successfully
quantity 3. Update quantity
4. Click "Save"

1. Go to Inventory
Item removed from inventory, confirmation
TC-025 Delete an inventory item 2. Select an item
message displayed
3. Click "Delete"

1. Reduce item quantity below


TC-026 Low stock warning threshold System displays warning for low stock
2. Go to Inventory page

Software engineering(4340702) Enrollment No : 239830331082

You might also like