Business Problem Statement

XYZO (XYZ Online) rental has done a recent survey of its market competition and found that its competitors are heavily using their online channels to supplement their in-store sales. The survey also indicated that an online platform better suits XYZ Rental's long-term strategy of expanding the user base across various locations and improving customer loyalty through targeted campaigns and promotions.

Hence XYZ Corporation decided the develop an online commerce platform in an iterative fashion. The first iteration allows customers to search for a product to view the product details and pricing, allows the product to be added to the shopping cart, and performs a check URL. In future iterations, there are plans to enhance this by adding mobile-specified applications, personalized recommendations, and other commerce features.

SRS for XYZ Online

The following SRS is drafted based on the above problem statement.

Purpose

The purpose of the SRS document is to define the system under development, namely the XYZ online (XYZO).

The intended audience of this document includes the site administrator of XYZ and the end users of XYZO. Other intended audiences include a development team, business analysts, design team, enterprise architect, testing team, infrastructure team and system team

Scope

XYZO was envisioned by executive management as part of their overall sales strategy after discovering that there is a huge scope for increasing sales by selling the products online. Key goals of XYZO are,

The following high-level functionality is in the scope of this project,

Definitions

User Online users or customers of XYZO
Site admin The administrator who maintains/enhances XYZO
Stakeholder People who have a business and other interests in XYZO including the sales team, IT team, and System team.


Acronyms

Overall Description

Product Perspective

The system mainly consists of XYZ Online system containing an application server and a web server. XYZ Online interacts with the Pricing system to get the product pricing information and the Inventory ERP system to get the product availability information. Product catalog and hierarchy information is stored in the product database.

Product Functions

XYZO mainly supports the following high-level functions,

User Characteristics

There are mainly two kinds of users of XYZO,

Constraints

The following are the main constraints,

Assumptions and Dependencies

The following are the main assumptions,

Specific Requirements

This section provides all the detailed functional and non-functional requirements.

External Interface Requirements

This section provides details of all inputs and outputs including hardware, software, communication, and mockup prototype.

User Interfaces

XYZO application should contain the following user interfaces,

Hardware Interface

There is no direct hardware interface specifically for the XYZO application. The web application runs on an application server hosted in-house on enterprise hardware.

Software Interface

XYZO application should integrate with the following interfaces,

Communication Interface

There are no XYZO-specific communication interface requirements. Existing OS and network infrastructure will be leveraged for communication.

Functional Requirements

This section provides details of all major functionalities supported by the XYZO system.

Functional Requirement 1.1 Login Operation

Functional Requirement Id FR1
Requirement Title Login Operation
Requirement Description A registered user enters the user ID and password. The user clicks on the "Login" button. The system should authenticate and create a valid user session upon successful authentication and redirect the user to the product search page.
Business Rationale Allow registered users to buy products and provide personalization features later.
Exception Scenarios If authentication fails, a user should be redirected to the error Scenarios page showing a "User id or password incorrect" message. Maximum password retries allowed are 3 after which the account should be temporarily locked and the user to contact customer support. The operation should also support first-time user registration and forgotten user id/password.
Dependencies Authentication service of corporate LDAP.


Functional Requirement 1.2 Search Operation

Functional Requirement Id FR2
Requirement Title Search Operation
Requirement Description The user enters any' of these product attributes: Product name, description product description, and product keyword and clicks on "search". A search function should retrieve the matching records from the product database. Search results should be displayed in pagination format with a configurable page size. The default page size should be 10. It should allow users to add the product(s) to the shopping cart.
Business Rationale Help users to discover the product. This will be supplemented by product recommendations to boost sales value in the future
Exception Scenarios Display "No products found" if no products match the Scenarios criteria.
Dependencies FR1, Users should be logged in.


Functional Requirement 1.3 Shopping Cart Operation

Functional Requirement Id FR3
Requirement Title Shopping Cart Operation
Requirement Description The shopping cart function should display all the product descriptions added by the user to the shopping cart. While displaying the product, it should get the product availability from the inventory system and product price from the pricing system to display the availability and pricing information It should allow the user to check out the product(s) in the shopping cart.
Business Rationale Provide the online users with a seamless shopping experience.
Exception Scenarios If the selected quantity of products is not available, system scenarios should not allow the user to check out that product. It should display the appropriate error message
Dependencies FR 1, Users should be logged in FR 2, Users should have selected non-zero products from the search operation.


Functional Requirement 1.3 Checkout Operation

Functional Requirement Id FR4
Requirement Title Checkout Operation
Requirement Description The checkout function should display the final amount of products in the shopping cart and the shipping information. It should support the user to enter credit/debit card information to complete the transaction. Additionally, any other online payment schemes should also be supported. Post successful payment, it should display the order information and send out a detailed mail to a registered email account.
Business Rationale Provide flexible options for users to purchase the product more purchase options like "cash on delivery" will be added in the future.
Exception Scenarios If the payment gateway is down, the system should display an appropriate error message. If the credit/debit card account declines the transaction, an appropriate error message should be displayed and allow the user to retry the transaction. The maximum number of retries allowed is three.
Dependencies FR 1, Users should be logged in FR 2, Users should have selected non-zero products from the search operation. FR 3, Users should have used checkout from the shopping cart.


Performance Requirements

The following are the key performance requirements,

Design Constraints

XYZO should adhere to the following standards,

Logical Database requirements

The existing product database will be leveraged and no changes to the database are planned for the XYZO application.

Software System Attributes Requirements

Login operation should be performed using transport layer security (HTTPS)

All user ID and password information should be encrypted using one-way hash algorithms in the database.

The registration process should use CAPTCHA to prevent machine/robot brute force attacks.

All input fields should be validated for SQL injection scenarios and HTML reserved words scenarios. Input should be sanitized before sending them to the upstream systems.

There should be a well-defined password policy covering password change frequency, invalid attempts allowed, etc.

Maintainability

The following maintainability features should be supported,

Summary

I hope you like this article, you learned how to write SRS for any XYZ project