Software Engineering Project
Software Engineering Project
Food Delivery
1.Introduction
a. Purpose
b. Objectives
c. Stakeholders
2.Overall Description
a. Product Perspective
b. Product Functions
c. Technology Used
3.Process Model
a. Model Description
b. Process Flow
c. Framework Activities
d. Actions
e. Tasks
4. Requirements
a. Functional Requirements
b. Non-Functional Requirements
c. Constraints
5. Requirements Models
a.Scenario-based (UML use-case diagram)
b. Class (UML class diagram, CRC model)
6. System Architecture and System Design
a. Architectural Style
b. Subsystems
c. Architectural Context Diagram (ACD)
7. User Interface Specifications
a. Specific Construction Specifications
8. Project Management
a. Feasibility Study
9. Software Testing
a. Black Box Testing
OR
b. White Box Testing
10. History of Work, Current Status, and Future Work
11. Conclusions
12. References
1. Introduction
The software application we choose for this project is “Wolt Delivery”. Wolt Delivery is a
food delivery app. It is founded in Helsinki, in 2014, a technology company known for
the local commerce platform. Wolt's mission is to make cities better places for
customers, merchants and couriers alike. Wolt's platform makes it easy for customers to
order whatever they need on one app, for merchants to make additional sales, and for
couriers to make meaningful earnings flexibly. To enable this, Wolt develops a wide
range of technologies from local logistics to retail software and financial solutions, as
well as operates its own grocery stores under the brand Wolt Market.
a. Purpose
This document outlines the requirements for developing the Wolt Delivery software,
which is designed to make it easy for people to order food from local restaurants and
have it delivered to their location. The goal is to create a user-friendly platform that
meets the needs of everyone involved.
b. Objectives
The main objectives of the Wolt Delivery software are:
Efficient Food Delivery: The app being as simple as possible for users to browse
restaurants, view menus, place orders, and track their delivery in real-time for a smooth
and quick food delivery experience.
c. Stakeholders:
The stakeholders involved in the development and use of the Wolt Delivery software
include:
Users: People who use the software to order food and track their deliveries.
Restaurant Owners: Business owners who register their restaurants on the platform to
receive orders and manage their menus and operations.
Developers and QA Team: The team responsible for designing, developing, and testing
the software.
System Administrators: People who manage the software's infrastructure, servers, and
security.
2.Overall Description
a. Product Perspective
1. Target Audience: Wolt's delivery software primarily serves two user groups:
consumers who browse and buy meals using the mobile app, and businesses who receive
and execute orders through the restaurant management system. Understanding these
user groups' needs, preferences, and pain areas is crucial to the product's success.
2. User Experience: The software should give both customers and restaurants with a
seamless and intuitive user experience. This includes things like an easy-to-use
interface, fast and efficient order placing, precise tracking and alerts, and secure
payment methods. To create a favorable user experience, the design should promote
clarity, simplicity, and responsiveness.
4. Reliability and Performance: The software must be dependable in order for orders to
be processed correctly, delivery to be completed on time, and the system to stay stable
under varying loads. It should be able to handle high demand without degrading
performance. Thorough testing, monitoring, and optimization may all help to ensure a
dependable and performant product.
User encounter.
6. Data Security and Privacy: In a delivery software, data security and privacy are
critical. The product should use strong security methods to secure consumer data, such
as personal information and payment information. It should also enable safe connection
between the software, restaurants, and consumers to avoid security breaches or illegal
access.
8. Customer Support: Adequate customer support channels, such as in-app chat, email,
or phone support, should be accessible to quickly address user concerns, rectify
difficulties, and give help. Customer happiness and loyalty may be increased by
providing responsive customer service.
b. Product Functions
Wolt delivery software includes a variety of product functionalities that help consumers
and restaurants with ordering, delivery, and administration. Here are some of the most
common product functionalities linked with Wolt's delivery software:
1. Order Management: The software allows restaurants to accept and handle incoming
client orders, which include order data, customization requests, and delivery addresses.
2. POS System Integration: Wolt's software may be integrated with a restaurant's
current point-of-sale (POS) system, allowing for smooth order processing and inventory
management.
3. Order Preparation and Status Updates: Restaurants can change the status of orders
to indicate whether they are being prepared, ready for pickup, or ready for delivery.
4. Performance statistics: Wolt provides restaurants with performance insights and
statistics, such as order volumes, popular meals, customer ratings, and sales trends.
5. contact and Support: The software promotes contact between restaurants and
consumers, allowing eateries to answer questions, fix problems, and give extra
information.
6. Menu and Pricing Management: Restaurants may edit their menus and change food
availability, pricing, and descriptions, ensuring that consumers see current information.
7. Delivery Partner Management: Wolt's software may contain features for managing
delivery partners, assigning orders to them, and tracking their performance.
c. Technology Used
Backend Development:
For server-side development, programming languages such as Java, Python, or Node.js
are widely utilized.
Frameworks: Spring Boot (Java), Django (Python), and Express.js (Node.js) are
examples of popular frameworks that can be used.
Databases: Relational databases such as MySQL or PostgreSQL, as well as NoSQL
databases such as MongoDB, are commonly used for data storage.
Payment Integration:
Integration with payment gateways such as Stripe, Braintree, or PayPal is frequently
used to provide safe and easy payment processing.
3.Process model
a. Model Description
The Agile approach was chosen as the process model for the development of Wolt
Delivery. Agile is an iterative and incremental method to software development that
fosters flexibility, collaboration, and quick delivery of features. It entails dividing the
development process into smaller, more manageable iterations known as sprints, with
each sprint focusing on delivering a set of priority features.
b . Process Flow
The Agile process flow for Wolt Delivery consists of the following steps:
Requirements Gathering: For requirements gathering, there have been many interviews
and surveys with users and stakeholders analyzing and prioritizing requirements based
on business value and feasibility.
Product Backlog Creation: It has been created with a prioritized list of features and user
stories using a project management tool ( Jira or Trello). As a result it has been a
business value and effort estimation to each user story to facilitate prioritization.
Sprint Planning: Selecting a set of user stories from the product backlog to be included
in the upcoming sprint. Estimating the effort required for each user story using story
points or another estimation technique. Finally defining the sprint goal and creating a
sprint backlog with the selected user stories.
Sprint Execution: During the sprint, the development team has worked on
implementing the user stories assigned to the sprint backlog.While writing code, they
adhered to coding standards and best practices. Conducting code reviews on a regular
basis to guarantee code quality.
Daily Stand-up Meetings: They had brief daily meetings during which team members
shared their progress, reviewed any barriers or issues they were encountering, and
planned their day's work. The members of the team respond to three questions: What
did I achieve yesterday? What am I going to work on today? Is there anything impeding
my progress?
Sprint Review: The team delivered the produced features to stakeholders at the
conclusion of each sprint.
Sprint Retrospective: The team has had a retrospective meeting to reflect on the sprint's
triumphs and difficulties. Action items were created to address the highlighted areas for
improvement in future sprints.
c. Framework Activities:
The Agile methodology for Wolt Delivery includes the following framework activities:
Requirements Engineering:
Requirements Engineering means, gathering, analyzing, and documenting the
functional and non-functional requirements for the system.
For instance, conducting stakeholder interviews and workshops to understand the
requirements. In the next step, it has been created a document that provides the
requirements, including use cases, user stories, and acceptance criteria.
An example requirement could be: "As a user, I want to be able to track the real-time
status of my food delivery."
Design:
In this step , it has been created a high-level and detailed designs for the user interface,
database schema, and system architecture.
For instance, the user interface is designed by creating wireframes and prototypes using
design tools ( Sketch or Figma). In the next step it has been created an
entity-relationship diagram for defining the database schema, specifying the tables,
relationships, and attributes.A system architecture diagram to outline the components,
modules, and their interactions has been developed.
Implementation:
Developing the software system based on the design specifications using suitable
programming languages and frameworks.
For instance, it has been used a backend framework (Django or Node.js ) to implement
the server-side logic. Also, implemented frontend components using technologies like
React or Angular. Written clean and modular code following coding best practices.
For example, the implementation can involve building an API endpoint that handles
user registration and authentication.
Testing:
Performing unit testing, integration testing, and system testing to ensure the quality
and functionality of the software.
For instance, unit tests have been written for individual functions or modules to verify
their correctness. Conducted integration tests to ensure that the different components of
the system work together as expected. Performed system testing and validating the
overall behavior of the software, including testing various user scenarios and edge cases.
Deployment:
Packaged and deployed the software system to the production environment or an
appropriate testing environment.
For instance, there have been containerization technologies ( Docker ) to package the
application along with its dependencies. Deployed the containers to a cloud platform
like AWS or Azure. Set up the necessary infrastructure, such as loading balancers and
databases, to support the application's deployment.
Maintenance:
Provided ongoing support, bug fixing, and updates to the software system after
deployment.
For instance, monitored the system's performance and addressed any issues or bugs
reported by users. Released regular updates to introduce new features, enhance security,
or improve performance. Provided user support through various channels such as email
or a help desk system.
d. Actions/tasks
Within each framework activity, several key actions take place. For example:
Requirements Engineering:
-Action: Elicit and document user requirements, including features, usability, and
performance expectations.
-Example Task: Conduct interviews with restaurant owners and delivery drivers to
gather their requirements and pain points regarding the food delivery process.
Document their feedback and expectations for features such as order customization,
delivery time estimation, and payment options.
-Action: Create use cases, user stories, and acceptance criteria to capture the functional
aspects of the system.
-Example Task: Develop a use case diagram to visualize the interactions between actors
(users, restaurants, drivers) and the system. Write user stories, such as "As a user, I
want to be able to track the real-time location of my delivery driver." Define acceptance
criteria for each user story, including specific conditions that must be met for the story
to be considered complete.
Design:
-Action: Developing wireframes and visualizing design mockups for the user interface.
-Example Task: Used design tools like Sketch or Adobe XD to create wireframes that
depict the layout, navigation flow, and content placement of the mobile app screens.
Designing visual mockups that represent the visual style, branding elements, and color
scheme of the user interface.
-Action: Defining the system architecture, including the choice of technology stack and
deployment strategy.
-Example Task: Determine the technology stack, such as React Native for the mobile
app frontend and Node.js for the backend API. Choosed a cloud-based deployment
strategy, such as AWS Elastic Beanstalk or Google Cloud Platform, to ensure scalability
and reliability.
-Action: Designing the database schema and data models to store and retrieve relevant
information.
-Example Task: Identified the entities in the system, such as users, restaurants, orders,
and menu items. Designed an entity-relationship diagram (ERD) to represent the
relationships between these entities. Defined the attributes and data types for each
entity and establish the appropriate relationships, such as one-to-many or
many-to-many.
Implementation:
-Action: Writing code and implementing the defined functionality based on the design
specifications.
-Example Task: Implement the user registration functionality using the chosen
technology stack. Written code to handle user input validation, stored user information
in the database, and authenticated user credentials during login.
-Action: Integrating external services and APIs required for restaurant and payment
processing.
-Example Task: Integrated with a third-party restaurant database or API to retrieve
restaurant information such as menus, opening hours, and ratings. Implemented an API
integration with a payment gateway provider to process online payments securely and
efficiently.
-Action: Performing code reviews and ensuring adherence to coding standards and best
practices.
-Example Task: Conducted code reviews to ensure code quality, maintainability, and
adherence to coding standards. Reviewed the codebase to identify any potential issues,
such as performance bottlenecks, security vulnerabilities, or violations of coding
conventions.
4. Requirements
a. Functional Requirements
b. Non-Functional Requirements
c. Constraints
5. Requirements Models
a. Scenario-based (UML use-case diagram)
b. Class (UML class diagram, CRC model)
6.System Architecture and System Design
a. Architectural Style
Wolt Delivery's architectural style may be defined as client-server, with a mobile
application serving as the client and a server infrastructure handling numerous
operations. This design provides for a distributed and scalable system that can
support a large number of users and effectively handle concurrent queries.
1.Presentation Layer:
Business Layer:
Data Layer:
Database: The data layer includes a database management system to store and
retrieve data related to users, orders, restaurants, and other relevant information.
It ensures data consistency, integrity, and persistence.
Data Access: This layer provides the necessary mechanisms to interact with the
database, including querying, updating, and retrieving data.
b. Subsystems
Here are some examples of subsystems in Wolt Delivery:
Reporting and Analytics Subsystem: This subsystem gathers and analyzes data related
to orders, users, restaurants, and deliveries. It generates reports and analytics that
provide valuable insights for business decision-making, such as performance analysis,
customer behavior analysis, and restaurant performance evaluation.
The Wolt Delivery homepage has a clean and intuitive design that aligns with the
brand's visual identity.
The logo is prominently displayed in the top left corner of the page, ensuring brand
recognition.
The sign-in and login options are easily accessible in the top right area, enabling new
users to create accounts and existing users to log in efficiently.
In the top section of the homepage, there are three options available: "Explore,"
"Orders," and "Account."
Sign-Up Process:
Upon clicking the sign-up button, users are presented with the option to create either a
personal or business account.
Users are asked to provide their mobile number and select their country/region of
residence for verification purposes.
A verification code is sent to the provided mobile number, and users must enter the
code to proceed with the sign-up process. An option to resend the code is available if
needed.
Users are then required to enter their email, first and last name, and create a password
that meets specific criteria (e.g., 8 to 20 characters, including at least 2 letters and
numbers or symbols).
Next, users are prompted to enter their address and birthdate. They are presented with
checkboxes to stay logged in for faster checkout and to accept the terms and conditions.
Afterward, users receive suggestions for their first activity or the option to skip. They
can also optionally link a payment card or choose to do it later.
Personal Account Dashboard:
Upon successful creation of a personal account, users are presented with five tabs
located next to the Wolt Delivery logo.
Home Tab: The home tab offers various options such as getting the Wolt Delivery app,
sending money, making requests, and adding funds to the wallet. It also displays the
user's balance, recent activities, and the ability to set up the account fully.
Send and Request Tab: This tab includes sections for sending money, making requests,
managing contacts, and additional options. Users can search for recipients, specify the
amount and currency, and add notes. They can also choose the payment method, send
to friends or pay for items/services covered by PayPal buyer protection.
Bank Tab: The bank tab allows users to manage and link bank accounts or cards, send
payments, add currency, and use the currency calculator.
Activity Tab: In this tab, users can monitor and manage their transactions. They have
the ability to search for specific transactions, apply filters, and download detailed
statements.
Help Section: The help section provides access to commonly asked questions, the
resolution center, technical support, community forums, and other options related to
home, payments and transfers, disputes and limitations, account management, wallet,
login and security, and seller tools.
For users with a business account, the website interface differs slightly. There are four
tabs located next to the Wolt Delivery logo.
Home Tab: The home tab displays the user's balance, options to transfer money, track
money in and money out, and manage unpaid requests and invoices. Quick links to App
Center, request and send money, invoicing, and PayPal checkouts are also provided.
Users can customize the home tab to display preferred actions.
Activity Tab: In the activity tab, users can view all transactions, access the resolution
center for open and closed cases, view reports, and customize links and API access.
Pay and Get Paid Tab: This tab includes sections such as the wallet, invoicing, making
payments, and accepting payments. It allows users to manage their business
transactions, create and send invoices, and process payments.
Help Section: The help section provides access to commonly asked questions, the
resolution center, technical support, community forums, and other options related to
home, payments and transfers, disputes and limitations, account management, wallet,
login and security, and seller tools.
8. Project Management
a. Feasibility Study
Economic Feasibility:
Cost-Benefit Analysis: The estimated cost of developing and maintaining the Wolt
Delivery software is $500,000. Based on market research, the potential revenue from
delivery fees and restaurant commissions is projected to be $1 million annually. The
cost-benefit analysis indicates a positive ROI and financial viability.
Market Analysis: The food delivery market in the target area has experienced
significant growth, with a high demand for convenient delivery services. Competitor
analysis shows that there is room for a new player like Wolt to capture a share of the
market and generate revenue.
Revenue Generation: Wolt plans to charge a 10% commission on each order and expects
to process an average of 10,000 orders per month. Based on this projection, the
estimated monthly revenue from commissions would be $100,000.
User Registration and Ordering Process: These features help generate money by
encouraging clients to use the app and submit orders. Saving preferred restaurants and
cuisine choices boosts repeat orders, which increases sales potential.
Checkout and Payment: Allowing users to complete transactions in a variety of ways
reduces obstacles to making purchases and increases the chance of generating income.
Technical Feasibility:
User registration, restaurant listings, ordering, and payment: These features need
technological execution in order to deliver a consistent user experience. To enable safe
and dependable transactions, integration with other systems such as payment gateways
is required.
Operational Feasibility:
User Acceptance: Wolt conducts surveys and user interviews to gather feedback and
assess user acceptance. The results indicate positive user interest and willingness to
adopt the Wolt Delivery app.
Training and Support: Wolt provides comprehensive training materials, tutorials, and
customer support channels, including in-app chat and a dedicated helpline, to assist
users during the onboarding process and address any queries or issues they may have.
Organizational Impact: Wolt collaborates closely with partner restaurants to
understand their operations and tailor the software to their needs. The software's
implementation minimizes disruptions to existing workflows and enhances operational
efficiency.
Legal and Regulatory Compliance: Wolt ensures compliance with data protection laws,
such as GDPR, by implementing robust security measures, encrypting sensitive data,
and obtaining user consent for data processing.
Order Tracking: Real-time order tracking improves the delivery process's operational
efficiency. It keeps consumers up to date on the status of their orders, lowers support
enquiries, and boosts customer satisfaction.
Delivery and Ratings: The feedback loop generated by user ratings and reviews
contributes to the overall improvement of the customer experience. It enables the app to
find areas for development and make changes to better fit the preferences and
expectations of users.
Overall, the outlined features contribute to the feasibility of the Wolt app by addressing
user needs, generating revenue, and ensuring smooth technical and operational
execution.
9. Software Testing
a. Black Box Testing
Black box testing is a software testing technique where the internal workings of
the system being tested are not known or considered. Testers focus solely on the
inputs and outputs of the software without knowledge of its internal code or
structure. Here are some potential black box testing scenarios that could be
applied to Wolt's delivery software:
Functionality Testing: Order Placement: Test the ability to place orders through
the mobile app, ensuring that all required fields are functional and that orders
are correctly processed. Menu Navigation: Verify that users can browse through
menus, select items, customize orders, and add them to the cart without
encountering any errors. Tracking and Notifications: Test the accuracy of order
tracking, ensuring that users receive timely notifications and accurate
information about their delivery status.
Security Testing: Data Protection: Verify that user data, including personal
information and payment details, are handled securely and are not vulnerable to
unauthorized access. Authentication and Authorization: Test the login and
authentication processes to ensure only authorized users can access the system
and perform relevant actions.
These are just a few examples of black box testing scenarios that can be applied
to Wolt's delivery software. The specific tests and test cases would depend on the
features and functionalities of the software, as well as the requirements and
expectations of the users.
Test 1: User Registration
Expected Result:
The user should receive a confirmation email for successful registration.
The user should be able to log in to the Wolt app using the registered email address and
password.
Work History:
-Wolt Delivery, situated in Helsinki, Finland, was created in 2014 as a meal delivery
company.
-Wolt began by working with local businesses and offering on-demand meal delivery
services.
-The firm swiftly expanded its operations to other cities in Finland and acquired user
appeal.
-Wolt has expanded to a number of nations and towns throughout the years, including
Denmark, Estonia, Latvia, Lithuania, Norway, and others.
-Wolt added features including real-time order tracking, numerous payment choices,
and an easy-to-use mobile app.
-The website grew in popularity and collaborated with a vast variety of restaurants to
offer a diversified selection of cuisines.
Current Status:
-The platform has established itself as a prominent meal delivery business, with a
reputation for a dependable and fast delivery network.
-Wolt is constantly improving its technology and user experience with the goal of
providing smooth and convenient meal delivery services.
-Beyond restaurants, the organization now provides delivery from grocery shops,
convenience stores, and other neighborhood businesses.
-Wolt has also added services such as Wolt+ membership, which provides customers
with privileges such as free delivery and unique discounts
Future Work:
-Wolt intends to broaden its geographic reach and penetrate new markets throughout
the world.
-The company intends to develop its ties with local companies and provide users with a
broader selection of delivery alternatives.
-Wolt is committed to increasing delivery efficiency, optimizing routes, and shortening
delivery times.
-To improve its recommendation algorithms and tailor the user experience, the platform
intends to invest in modern technologies such as artificial intelligence and machine
learning.
11. Conclusions
In conclusion, the Software Requirements Specification (SRS) document for the Wolt
Delivery app provides a complete and exhaustive explanation of the requirements for
the delivery system's development. The SRS document is a valuable resource for
developers, testers, and project managers, since it provides a clear knowledge of the
app's goal, functions, and limits.
The SRS document goes through several important areas of the Wolt Delivery software,
such as user registration, payment processing, order administration, delivery tracking,
and customer assistance. It details the needs for each module, such as user interfaces,
data management, error handling, and performance concerns.
Furthermore, the SRS document allows for the early identification of possible risks and
obstacles, allowing for the implementation of suitable mitigation solutions. It serves as a
road map for the development process, directing the team to the successful deployment
and upkeep of the Wolt Delivery app.
Overall, the Wolt Delivery app SRS document is critical to the effective delivery of a
strong, efficient, and user-friendly delivery system.
It brings all stakeholders' efforts together, supporting the creation of a dependable and
enjoyable user experience.
12. References