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,
- Increase the sales-per-visit from regular customers. Currently, this is at $20 at brick-and-mortar stores. XYZO should increase it to $25 within 1 year.
- Increase customer satisfaction from 40% to 60% within 1 year.
- Increase customer loyalty from 10% to 15% within 1 year.
The following high-level functionality is in the scope of this project,
- Develop XYZO online platform for end customers.
- XYZO should support product search, shopping cart, and product checkout.
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
- ROI: Return on Investment.
- SDLC: Software Development Life Cycle.
- MSIE: Microsoft Internet Explorer.
- DFD: Data Flow Diagram.
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,
- Search: Users will be able to search using various product attributes. The system would display the products matching their criteria.
- Shopping Cart: The system allows users to add the products from the search results page into the shopping cart.
- Checkout: Users can check out their products from their shopping cart after providing shipping information and completing a successful payment.
User Characteristics
There are mainly two kinds of users of XYZO,
- Online users: These users are XYZO customers who will access the system online. The users are from the US region for the first iteration and the preferred language is English. Users have minimal technical knowledge and hence need intuitive navigation aids and simple page layouts.
- Site Administrator: The administrator is responsible for maintaining the XYZO system and will be involved in software fixes, deployment, and regular maintenance.
Constraints
The following are the main constraints,
- The initial release only allows a maximum of 10,000 products in search results due to restrictions imposed by the pricing and inventory system.
- The initial release is only supported on MSIE, Google Chrome, and Firefox browsers.
- XYZO web application does not work without JavaScript support.
Assumptions and Dependencies
The following are the main assumptions,
- The IT department of XYZ has all the available hardware required to support the intended user load.
- All the upstream systems including the product database, pricing, and inventory system provide the response within agreed SLAs to ensure the optimal performance
- XYZO depends on the Pricing system, Inventory ERP, and product database and hence these systems should be up and available for normal functioning of XZYO.
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,
- Login page for authenticating registered users. This screen should accept the user ID, and password and authenticate against the corporate authentication system. It also provides features for "New user registration" “Forgot password” and "Forgot user ID".
- Product search page where registered users can search products based on product attributes. Users can search by product name, brief description, product category, and product id. Search should support intuitive features such as type-ahead, synonym support, categorized results grouping, and spell correction.
- The search results page displays the results of the search operation. The results should be paginated with a configurable page size. It should allow the user to add the product to the shopping cart.
- The shopping cart page displays the existing items in the shopping cart along with the total amount and allows the user to check out.
- The checkout page allows the user to purchase the products using a credit/debit card or using a PayPal account. It should be integrated with the payment gateway and display the order details after successful payment. A confirmation email should be sent to the registered email after successful completion.
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,
- Product database to get product details. JDBC APIs are the most preferred way of integration.
- Pricing System to get the product pricing, in real-time for the selected products. Integration should be done using web services.
- Inventory ERP to get the product availability information. Integration should be done using web services.
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,
- All pages should load within 2 seconds throughout the US region.
- Search results should be displayed within 1 second.
- Checkout should happen within 5 seconds after providing payment information.
Design Constraints
XYZO should adhere to the following standards,
- Web pages should be designed using HTML 4.0 transitional standards.
- W3C Web Accessibility standards (Web Content Accessibility Guidelines (WCAG)) should be followed including keyboard navigation, alternate titles for images, etc.
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
- Reliability: XYZO should provide reliable and relevant search results 100% of the time. The checkout operation should end reliably within 5 seconds:
- Availability: XYZO should be available 99.999% of the time throughout the US region. All software upgrades, patches, and fixes should be done without shutting down the application. There should be a disaster recovery environment to handle natural disasters.
- Security: Security standards should be followed,
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,
- XYZO should adopt standards-based integration for extensibility and scalability.
- All code artifacts should have proper documentation.
- All code components should be thoroughly tested and the test coverage should be more than 95%.
Summary
I hope you like this article, you learned how to write SRS for any XYZ project