0% found this document useful (0 votes)
6 views25 pages

Team 15

Uploaded by

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

Team 15

Uploaded by

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

Project Report

for

Any-Delivery App

Prepared by:
Saikat Biswas(2022H1030100P) – [email protected]
Mayank Shrivastava(2022H1030101P) – [email protected]
K Rohan Reddy(2022H1030102P) – [email protected]
Gaurav Ghosh(2022H1030103P) – [email protected]
Swati Mohapatra(2022H1030108P) – [email protected]

Date : 3rd December


Table of Contents
1. Introduction .................................................................................................................. 1
1.1 Purpose.................................................................................................................................1
1.2 Document Conventions ........................................................................................................1
1.3 Intended Audience and Reading Suggestions ......................................................................1
1.4 Textual Description ..............................................................................................................1
1.5 References ............................................................................................................................2
2. Overall Description ...................................................................................................... 2
2.1 Product Perspective ..............................................................................................................2
2.2 Product Functions ................................................................................................................3
2.3 User Classes and Characteristics .........................................................................................4
2.4 Operating Environment ........................................................................................................5
2.5 Design and Implementation Constraints ..............................................................................5
2.6 User Documentation ............................................................................................................6
2.7 Use Case Diagram ……………………….…………………………………………………7
2.8 Use Case Descriptions…………………………………………………………………...…7
3. Functional Requirements ............................................................................................ 9
4. Other Requirements .................................................................................................. 13
4.1 Performance Requirements ................................................................................................13
4.2 Security Requirements .......................................................................................................13
4.3 Software Quality Attributes………………………………………………………………13
5. Data Flow Diagram .................................................................................................... 14
6. Sequence Diagram...................................................................................................... 15
7. Class Diagram………………………………………………………………………………16
8. Formal Specification………………………………………………………………..17
9. Decision Trees and Decision Table…………………………………………………18
10. Size, Time and Effort Estimation…………………………………………………...21
11. Earned Value Analysis……………………………………………………………….23
1. Introduction

1.1 Purpose
The purpose of this document is to give a detailed description of the requirements for the “Any-Delivery
App” software. It will illustrate the purpose and complete declaration for the development of system. It will
also explain system constraints, interface and interactions with other external applications. This document is
primarily intended to be proposed to a customer for its approval.

1.2 Document Conventions

Terms Definitions
Customer or User The one who orders food from restaurant
Seller or Restaurant Owner or Owner The one who manages food outlets
Delivery Service Executive or Rider or Executive The one who delivers food to respective location
Admin The owner of the AnyDelivery application

1.3 Intended Audience and Reading Suggestions


The primary audience of the SRS document will be the development team which will be implementing the
Any-Delivery app. This SRS will behave as a contract between development team and the stakeholder. The
stakeholder can review the app at the end to see if the requirements mentioned in the SRS is implemented
properly or not. Also, this document will be helpful to the testers, maintenance team, design team etc to
properly plan and execute the application.

1.4 Textual Description


Any-Delivery is an app specially built to facilitate delivery of food items within college premises. The app
runs on Android smartphones and allows customers a wide range of restaurants to choose from to suit their
needs. Once the customer decides on a dish and places an order, they are also able to track the order status in-
app till it is delivered to their doorstep.

The various restaurant and café owners on campus can easily join the delivery service through a special seller
app. There they may make a new account and upload the various dishes available at their premises for the
customers to choose from. Once a customer’s order is received the restaurant is notified and the owner can
easily keep track of individual orders from within the app, as well as confirm when the order is packed and
ready to be picked up.

Aspiring delivery executives may sign up to the service through a specialized delivery executive
app using their phone number or email address. Once logged in, they may view a list of all the
orders that have been packed and are ready to be picked up, from which they may choose any one to deliver
based on their proximity to the restaurant and the customer’s residence. The app also helpfully provides
location tracking and routing to help the executive reach the customer as quickly as possible.
The owner of the delivery service may access the list of customers, restaurant owners and delivery executives
through an exclusive admin portal accessible through a browser. The owner may block any of the customers,
restaurant owners or delivery executives if a pattern of malicious behavior is observed, in which case the user
is unable to continue using the app in that capacity any longer. After the duration of the suspension the admin
may reactivate the user if they wish to do so. The admin may also keep track of the net earnings of the
restaurant owners through the portal.

The various user-specific applications also allow the concerned user classes to keep track of their respective
histories i.e., the customer is able to view his past order history, each restaurant owner is able to view their
past orders, and the delivery executives are able to keep track of all their past deliveries as well.

1.5 References
C. Larman, APPLYING UML AND PATTERNS An Introduction to Object-Oriented Analysis and Design
and Iterative Development, 3rd ed.,Massachusetts: Pearson Education, 2005.D. Carrington,

CSSE3002 Course Notes, School of ITEE University of Queensland, 2008

IEEE Recommended Practice for Software Requirements Specifications, IEEE Standard 830, 1998.

2. Overall Description

2.1 Product Perspective


The software described in the SRS is a complete food delivery application catering to customers looking to
have their favorite dishes delivered quickly and conveniently for them to enjoy in the comfort of their home.
Additionally, it offers both established and up and coming restaurants a quick and easy way to provide food
delivery to a wider audience without any heavy initial investment, while being able to manage their orders
and earnings easily. Delivery executives may choose any order of their preference to deliver from a list of
outstanding orders, as well as receive directions to the restaurant and customer residence for pickup and
drop-off respectively. A system administrator may easily keep track of the customer, restaurant and delivery
executive information through a web-based portal, block malicious entities or re-instate them, and view the
earnings of restaurants individually.
Figure 1. Simple Diagrammatic Representation of AnyDelivery App

2.2 Product Functions


The following list offers a brief outline and description of the main features and functionalities of the
AnyDelivery app.

CORE FEATURES

1. REGISTER AND LOGIN THROUGH EMAIL OR PHONE NUMBER:


♦ The customer, restaurant owners and delivery executives may use their email address or phone
number to register themselves with the app
♦ After making an account they may login using the same details used at the time of registration
♦ All three user classes may enter additional details relevant to the respective classes once they have
made an account i.e., customers may add addresses, restaurant owners may add menus and so on

2. ORDER MEALS FROM LOCAL RESTAURANTS TO BE DELIVERED:


♦ Customer shall place a meal order from the local restaurants to be delivered to their desired
address.
♦ Restaurant owner is responsible for creating and maintaining the restaurant’s menus.
♦ Delivery executive is responsible for delivering the meal to the customer’s address.
♦ In addition to this, customers may place orders at multiple restaurants concurrently.

3. VIEW ORDER HISTORY AND STATUS:


♦ The customer may view their past order history as well as the status of the current order.
♦ The restaurant owner may view a list of all the past orders placed through the app, as well as
current outstanding orders.
♦ The delivery executive may view a list of all the currently active orders as well as all the deliveries
completed in the past.

4. CREATE, VIEW, MODIFY AND DELETE CAFETERIA MENUS:


♦ Restaurant owner is responsible for creating and maintaining the various menus.
♦ Restaurant owner can create, view, modify and delete the menus or individual menu items.

5. ACCEPT DELIVERIES, VIEW RESTAURANT AND CUSTOMER LOCATIONS:


♦ Delivery executives can view a list of orders currently packed and ready to be picked up
♦ They can also view order details and choose any delivery based on their location
♦ The app charts a route using Google Maps so the delivery executives may reach the restaurant as
well as the customer as fast as possible

6. ACTIVATE AND DEACTIVATE MALICIOUS ENTITIES:


♦ The app owner may access the details of all the customers, restaurants and delivery executives
through a central web portal
♦ If any entity is found to be engaging in malicious or fraudulent activity, the admin may block them
from using the service in that capacity
♦ The admin may also reinstate any users of the app if they wish to do so

7. VIEW NET EARNINGS:


♦ The restaurant owners may track their net earnings for orders placed through the app within the app
itself
♦ Similarly, the app owner may access the net earnings of all the restaurants through the web portal

2.3 User Classes and Characteristics


The various user classes for Cafeteria Ordering System are as follows,

CUSTOMER

• A Customer is anyone wishing to place an order from any of the restaurants on campus through
the app.
• Customers will sometimes order multiple meals for group events or guests
• All the personal details of Customer will be accessible under ‘Account settings’ label. Customer can
edit, delete or add an address.

RESTAURANT OWNER

• The Restaurant Owner is the manager of the seller AnyDelivery App


• They may add new menus to their restaurant account when they wish, and delete them too
• They may also add/delete food items according to their wish
• The restaurant owner keeps track of the incoming orders as well as the past earnings of the
restaurant through the app

DELIVERY SERVICE EXECUTIVE

• Once the restaurant marks an order as packed, the order gets added to the list of ready to be
picked up orders visible to the executive
• The executive may view the details and location of the order and restaurant/customers
respectively, and choose whichever order they wish to deliver
• Once chosen, the app charts a route to the restaurant to help the executive reach the location
• After the order has been picked up and delivered to the customer, the executive marks it as such
within the app
• The executive also keeps track of their past deliveries and pending deliveries through the delivery
executive app

ADMINISTRATOR

• The administrator is potentially the owner of the AnyDelivery service, and is able to see the
details of all the customers, restaurants and delivery executives through an admin web portal
• The administrator may ban any member of the above 3 user types if there is malicious or
fraudulent activity, or they may reactivate their accounts if accidentally blocked
• The administrator may also view the net earnings of all the restaurants using the AnyDelivery
service

2.4 Operating Environment

Operating environment for the Any-Delivery Application is as listed below

OPERATING DESCRIPTION
ENVIRONMENT
Mobile Platform TThe AnyDelivery app is available for all Android smartphones running
Android version 5.1 (Lollipop) and above
The AnyDelivery admin portal shall operate correctly with the following web
Web browser browsers:
version Windows Internet Explorer versions 7 and above
Google Chrome (all versions)
Firefox versions 12 and above
Database The AnyDelivery app uses the Google Firebase database, a highly
Environment available and reliable real time database

2.5 Design and Implementation Constraints

CONSTRAINTS DESCRIPTION
NUMBER
Constraint 1 The AnyDelivery app’s code shall be programmed in the Flutter
programming language, considering the language’s flexibility and
ease of use offered to build applications for Android
Constraint 2 The system shall use Google Firebase database for storing the information
Constraint 3 Only the menu manager shall have the access to edit the menus.
AnyDelivery app owner will be responsible for maintaining integrity of the
Constraint 4 service by monitoring all participating users

2.6 User Documentation


This section elaborates the user manual and tutorials for various user classes.

Downloading and general registration of AnyDelivery application from Mobile store

Step 1: Download AnyDelivery app from mobile store

Step 2: Login/Register with your credentials (email address or phone number)

Step 3: After successful login, users may add their delivery address, restaurant owners may add menus and
menu items, and delivery executives may select and pick up packed orders to be delivered.

Customer Manual:

Ordering a meal in mobile application:

Step 1: Once the general registration is complete; the user is now eligible to place meal order.

Step 2: Search by restaurant or Search by meal in the search bar to select your food and click Search

Step 3: Select the quantity of the food

Step 4: Click proceed to checkout to finalize your order

Step 5: Click on place order

Step 6: Please show your e-receipt to the delivery executive to confirm the order ownership.
2.7 USE CASE DIAGRAM

2.8 USE CASE DESCRIPTIONS:


Use Case Registration / Login
Actor Seller / Rider / Customer
Trigger Sign up / Login button of respective seller / rider / customer apps.

Requirement The user has good internet connectivity.


Importance High
Description User should have a valid phone number or email ID which will be
entered during registration. Once the user’s credentials are submitted,
the data is stored in the online Google Firebase database.
Rationale Interface provided so that user can be authenticated as a valid user
before exploring the app features.
Exceptional scenario The app displays an error message if the user’s email ID or phone
number are of invalid format.
Use Case Add new menus to the app
Actor Restaurant owner / seller
Trigger Add menu icon on the homepage.

Requirement The seller must be logged in to the app and has good internet
connectivity.

Importance High
Description Owner should be logged in with valid credentials and click on the add
menu icon to add a short description, menu title and representative
image. Once the confirm button is clicked, the menu information is
stored in the database and the menu is added to the restaurant’s menu
list.
Rationale Interface provided so that seller can manage the menu which would be
made visible to the customer.

Exceptional scenario The app displays an error message if the image dimensions exceed
certain constraints or any menu form entry is left empty.

Post conditions The owner is able to view the newly added menu in the list of menus
offered by the restaurant

Use Case Accept new order delivery


Actor Delivery executive / Rider
Trigger The active orders icon to view the currently active orders.

Requirement The rider must be logged in to the app and has good internet
connectivity.

Importance High
Description After logging in with valid credentials the executive clicks on the
active orders icon to view the currently active orders. They may select
any order to view additional information. Once they decide on an
order, they may select that order to be picked up and confirm so within
the app. The restaurant location for the selected order is retrieved from
the database, and the order is marked as selected by the executive and
removed from the list of active orders.
Rationale Interface provided so that rider has the choice of accepting any new
order delivery as per convenience.

Exceptional scenario The app displays an error message if the user’s email ID or phone
number are of invalid format.

Post conditions The delivery executive is able to view the route charted to the
restaurant for pickup in Google Maps.
Use Case Deliver newly accepted order from restaurant to customer
address.
Actor Delivery executive / Rider
Trigger The delivery executive updates the order status as picked up in
the rider app.
Requirement The rider must be logged in to the app and has good internet
connectivity.

Importance High
Description After logging in with valid credentials and picking up the order,
the executive updates the order status as picked up in the rider
app. After reaching the customer the delivery executive marks
the order as delivered. The order status is updated as picked up
and delivered after the order has been picked up from the
restaurant and delivered to the customer address respectively in
the customer app and rider app.
Rationale Interface provided so that rider can update delivery status after
picking order from restaurant.

Exceptional The app displays an error message if the user’s email ID or


scenario phone number are of invalid format.

Post conditions The delivery executive is able to view the route charted to the
delivery address in Google Maps after pickup from restaurant.
After delivery the order is marked as delivered and stored in the
past orders section of the customer and rider apps, and removed
from the active orders section.

3. Functional Requirements

3.1 - Customer registration for the app


3.1.1 Introduction
This Functional Requirement allows the customer to create an account and login to the AnyDelivery
application.

3.1.2 Inputs
Customer should have a valid phone number or email ID which will be entered during registration

3.1.3 Outputs
The customer receives a successful registration message after which they may use the registered credentials
to login to the app

3.2 - Searching for a meal or restaurant in the app


3.2.1 Introduction
This Functional Requirement allows the customer to search for a food item or restaurant of his choice in
the app
3.2.2 Inputs
Customer should be logged in with valid credentials and slide open the search bar from the left of the
screen to search for his desired item

3.2.3 Outputs
The customer is able to view a list of all the restaurants that offer their desired food item, or the restaurants
matching the search string

3.3 - Placing an order through the app


3.3.1 Introduction
This Functional Requirement allows the customer to place an order for a food item of his choice through
the app

3.3.2 Inputs
Customer should be logged in with valid credentials. Once the customer has selected their desired
restaurant and menu, they should add their desired quantity of food items to the cart and click checkout

3.3.3 Outputs
The customer views an order confirmation screen with the order ID and the total cash amount to be paid to
the delivery executive

3.4 - Viewing order histories and details


3.4.1 Introduction
This Functional Requirement allows the customer to view the order details of past and present orders

3.4.2 Inputs
Customer should be logged in with valid credentials, and slide open the order histories menu on the left,
then click on the desired order to view details

3.4.3 Outputs
The customer is able to view the details of past orders or status of the current order in the app

3.5 - Add new menus to the app


3.5.1 Introduction
This Functional Requirement allows the restaurant owner to add new menus for the food categories
offered by the restaurant

3.5.2 Inputs
Owner should be logged in with valid credentials and click on the add menu icon to add a short
description, menu title and representative image

3.5.3 Outputs
The owner is able to view the newly added menu in the list of menus offered by the restaurant
3.6 - Add food items to a menu
3.6.1 Introduction
This Functional Requirement allows the restaurant owner to add new food items to the menu

3.6.2 Inputs
Owner should be logged in with valid credentials, then select the relevant menu and click on the add item
button to add a new item. Once the item details are entered click submit

3.6.3 Outputs
The added item is visible to the owner as well as available for customer’s to order from the app

3.7 - Update menu and menu items


3.7.1 Introduction
This Functional Requirement allows the restaurant owner to update any menu or menu items they desire

3.7.2 Inputs
After logging in with valid credentials the owner should select the relevant menu or food item and click
edit to edit the details, then click submit.

3.7.3 Outputs
The changed menus and items are visible immediately to the owner and to the customers as well

3.8 - Manage active orders


3.8.1 Introduction
This Functional Requirement allows the restaurant owner to manage the list of currently pending orders

3.8.2 Inputs
After logging in with valid credentials, the owner slides open the sidebar from the left and clicks on
active orders to view currently pending orders. After the orders are packed and ready to be picked up the
owner marks them as such by clicking on the ready for pickup button

3.8.3 Outputs
The order is removed from the active order list of the restaurant and added to the past orders list. Order status
is updated in the Anydelivery customer app as well

3.9 - View past orders and net earnings


3.9.1 Introduction
This Functional Requirement allows the restaurant owner to view the orders placed through the app in the
past, as well as the net earnings from orders placed through the app

3.9.2 Inputs
After logging in with valid credentials and sliding open the sidebar from the left, the owner clicks on the
past orders icon to view a list of all past orders. The owner may click on the earnings icon to view net
earnings through the app

3.9.3 Outputs
The owner is able to view each order’s details after clicking on them, as well as the net sales since the time
they joined the AnyDelivery service through the app

3.10 - Manage currently active orders


3.10.1 Introduction
This Functional Requirement allows the delivery executive to manage the orders currently ready to be
picked up

3.10.2 Inputs
After logging in with valid credentials the executive clicks on the active orders icon to view the currently
active orders. They may select any order to view additional information. Once they decide on an order,
they may select that order to be picked up and confirm so within the app

3.10.3 Outputs
The delivery executive is able to view the route charted to the restaurant for pickup in Google Maps

3.11 - Manage order delivery to the customer


3.11.1 Introduction
This Functional Requirement allows the delivery executive to quickly deliver the order to the customer
and complete the delivery

3.11.2 Inputs
After logging in with valid credentials and picking up the order, the executive updates the order status as
picked up in the rider app. After reaching the customer the delivery executive marks the order as
delivered

3.11.3 Outputs
The order is marked as delivered and stored in the past orders section of the customer and rider apps, and
removed from the active orders section

3.12 - Retrieve total delivery revenue from the app


3.12.1 Introduction
This Functional Requirement allows the delivery executive to view the net amount of all the orders
delivered by the executive

3.12.2 Inputs
After logging in with valid credentials the delivery executive clicks on the earnings icon to view the total
sales from all the items delivered by them since joining the app

3.12.3 Outputs
The executive is able to view the total revenue from past deliveries on the screen
3.13 - Admin management through web portal
3.13.1 Introduction

This Functional Requirement allows the AnyDelivery app owner to manage the various user classes
involved in the AnyDelivery app through a web based portal

3.13.2 Inputs
The admin logs in with the admin credentials and is able to view and select any of the user details from
the three user classes:- customers, restaurant owners and delivery executives. They may then view
individual restaurant sales, delivery executive revenue or block or unblock any of the participating users

3.13.3 Outputs
The selected user is moved to the blocked or unblocked list depending on the action taken by the
administrator. The sales of the selected restaurant or delivery revenue of the delivery executive are visible in
a small pop-up

4. OTHER REQUIREMENTS

4.1 Performance Requirements


Since User Experience (UX) is critical to the success or failure of our system in the market and
performance is UX, we impose a strict requirement on our system’s performance.

PER-1: The system should support more than 100 user to checkout at the same time.
PER-2: The response time of application should be less than 1 second.
PER-3: When the user request data by click on search button, searching result shall be
presented on the screen within no more than 2 seconds.

4.2 Security Requirements


SEC-1: User’s personally information like phone number and email will be encrypted and stored in the
Google Firebase real-time database.

4.3 Software Quality Attributes


SQA-1: The system should be available 24/7.
SQA-2: The Android APK size should less than 50M.
5 DATA FLOW DIAGRAM
5.1 LEVEL 0 DATA FLOW DIAGRAM

5.2 LEVEL 1 DATA FLOW DIAGRAM


6. SEQUENCE DIAGRAM

6.1 ORDER A MEAL

6.2 ADD A MENU ITEM


6.3 LOGIN TO THE APP

7. CLASS DIAGRAM
8. Formal Specification

Algebraic Specifications

Couple of data structures we used here were lists , maps.

1)Type:

Define lists

Exception:

IndexOutofBounds

Syntax:

create : φ -> list

insertion : list x element[i] -> list + {IndexOutOfBounds}

deletion : list -> list + {IndexOutOfBounds}

search: list x element -> i /no element found + {IndexOutOfBounds}

In this we have 2 basic constructors (m1)[create,insert] , 1 extra constructor (m2) [deletion] and 1
basic inspector (n1) [search].

m1 × (m2 + n1) + n2 axioms.

Therefore number of axioms = 2 x ( 1 + 1) + 0 = 4

Equations:

search(create) = no element found

search(insertion) = i /no element found

delete(create) = φ

delete(insertion)= list

2)Type:

Define Maps

Syntax:
create: φ -> map

put : key x value -> map(key:value)

get : map(key) -> value/{key doesn’t exist}

isEmpty: map -> Boolean

In this we have 2 basic constructors (m1)[create,put] , and 2 basic inspector (n1) [get,isEmpty].

m1 × (m2 + n1) + n2 axioms.

Therefore number of axioms = 2 x ( 0 + 2) + 0 = 4

Equations:

isEmpty(create)= True

isEmpty(put) = False

get(create) = φ/{key doesn’t exist}

get(put(key:value)) = value

9. Decision Trees and Decision Table

9.1 Rider App


9.2 Seller App
9.3 User App

10. Size, Time and Effort Estimation

SIZE ESTIMATIONS
Lines Of Code (LOC):
rider app- 2380
seller app- 3017
customer app- 3427
admin app- 1805
Total lines of code (LOC)= 10,629

Unadjusted Function Point (UFP)= (Number of i/p’s)*4 + (Number of o/p’s)*5 + (Number of inquires)*4
+ (Number of files)*10 + (Number of interfaces)*7
=9 * 4 + 16 * 5 + 6 * 4 + 4 * 10 + 4 * 7
=208
Since complexity adjustment factors have avg values.
Degree of Influence (DI)= 14 * 4 = 56
Technical complexity factor (TCF) =0.65 + 0.01*DI
= 0.65 + 0.01*56
= 1.21
FUNCTION POINT(FP) = TCF*UFP
=1.21* 208
=251.68

SCHEDULE , TIME and MANPOWER ESTIMATIONS USING COCOMO


Basic Cocomo model
Effort(E)= a1x(KLOC)a2 person-month
Development complexity: Semi-Detached
Since, the development team Team members may have limited experience on related systems but may be
unfamiliar with some aspects of the system being developed.
KLOC=10.6
E=3.0 X (10.6)1.12 person-month
=42.21 person-month
Timedev =b1x(Effort)b2 months
=2.5 x (42.21)0.35 months
=9.26 months

Productivity(P) = KLOC/E KLOC per person-month


= 10.6/42.21 per person-month
=0.251 per person-month
Average Staffing Size (SS)= E/Timedev persons
= 42.21/9.26
= 4.558 persons
≈ 5 persons

Intermediate COCOMO model


Cost drivers chosen
• The complexity of the product
• Main memory constraints
• Required turnabout time
• Programmer capability
• Programming language experience
• Use of software tools
EAF( effort adjustment factor) = 0.85*1.00*1.42*1.14*1.10
=1.51
Effort(E)= a1 * (KLOC)a2 * EAF persons-months
= 3.0 * (10.6)1.15 * 1.51 persons-months
=106 persons-months
Timedev= b1* (E)b2 months
= 2.5 * (106)0.35 months
= 12.7 months

11. EARNED VALUE ANALYSIS


This is at the end of 3 months
Planned Cost (PC) = Rs.500
Earned Value (EV) = Rs.1000
Actual Cost (AC) = Rs.2100

Cost Variance (CV) = EV-PV


= -1100
This means that the project was over budget.
Cost Variance%(CV%) = CV/EV
=-1100/500
=2.2
Scheduled Variance (SV)= EV – PV
= 500
This means that project was completed ahead of schedule.
Scheduled Variance%(SV%) = SV/PV
=500/500
=1
Schedule Performance Index (SPI) = EV/PV
= 1000/500
=2

You might also like