Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 17

Software Requirements

Specification
for

Capestra Furniture Order


Entry Application
Version 1.4 approved

Prepared by Capestra

August 2, 2018
Updated: July 26, 2020
Contents
1. Introduction......................................................................................................................3

1.1 Purpose...........................................................................................................................3
1.2 Document Conventions...................................................................................................3
1.3 Intended Audience and Reading Suggestions................................................................3
1.4 Product Scope.................................................................................................................3

2. Overall Description..........................................................................................................4
2.1 Product Perspective........................................................................................................4
2.2 Product Functions...........................................................................................................4
2.3 User Types and Characteristics......................................................................................4
2.4 Operating Environment...................................................................................................4
2.5 Design and Implementation Constraints.........................................................................4
2.6 User Documentation.......................................................................................................5
2.7 Assumptions and Dependencies.....................................................................................5

3. External Interface Requirements....................................................................................6


3.1 User Interfaces................................................................................................................6
3.2 Hardware Interfaces........................................................................................................6
3.3 Software Interfaces.........................................................................................................6
3.4 Communication Interfaces..............................................................................................6

4. System Features..............................................................................................................7
4.1 Action: Login....................................................................................................................7
4.2 Action: Add Customer.....................................................................................................8
4.3 Action: Place Order.........................................................................................................9
4.4 Report: Employee Information......................................................................................10
4.5 Report: Customer Information.......................................................................................11
4.6 Report: Order Information.............................................................................................12
4.7 Report: Product Information..........................................................................................13

5. Other Nonfunctional Requirements.............................................................................14


5.1 Performance Requirements..........................................................................................14
5.2 Safety Requirements.....................................................................................................14
5.3 Security Requirements..................................................................................................14
5.4 Business Rules.............................................................................................................14

Capestra Furniture SRS v1.4 2


6. Other Requirements......................................................................................................15

Appendix A: Glossary............................................................................................................16

3
1. Introduction
1.1 Purpose
An order entry application to allow employees of Capestra Furniture to create customers and
place orders into a database. The scope of this SRS is the desktop application and its backend
support system.

1.2 Document Conventions


This document follows the following conventions:

 Bold text signifies user actions.

 Italic text signifies existing systems outside the scope of this document.

 Requirement statements are prioritized individually.

1.3 Intended Audience and Reading Suggestions


This document serves as a reference for all Capestra Furniture employees who have a stake in
its implementation, testing, deployment, and ongoing support, including system architects,
developers, test engineers, support engineers, operations, and legal. This document covers
multiple facets of the software application. It is recommended that it is first read end-to-end, and
then serve as a reference source.

1.4 Product Scope


The application will run on Windows desktops but can be ported to mobile devices. It will
provide a frontend to Capestra’s backend systems for the purpose of handling order entry. It will
allow employees to create customers, place orders, view employee details, view customer
details, view order details, and view product details.

4
2. Overall Description
2.1 Product Perspective
Capestra Furniture’s order entry application is a new product that will integrate with Capestra’s
third party web site. Employees will be provided support to be migrated to the desktop
application database. No orders or customers will need to be directly synced from this
application. In future releases, data from this database will be synced to the third-party website
or directly linked to the hosting database.

2.2 Product Functions


The Capestra Furniture’s order entry application will consist of the following primary features:

 Allow the employee to log into the application and connect to the database.

 Allow the employee to add a customer.

 Allow the employee to place a furniture order.

 Allow the employee to run a report displaying a list of employee details.

 Allow the employee to run a report displaying the details about a specific customer.

 Allow the employee to run a report displaying the details of all past orders.

 Allow the employee to run a report displaying the details of all furniture products.

2.3 User Types and Characteristics


 All employees will be able to access all part of the application.

2.4 Operating Environment


The application will operate on any device using JRE 8 or higher.

The application will be designed to support future versions as well through automatic updates.

2.5 Design and Implementation Constraints


The expected implementation constraints are:

 Use Java and JavaFX for development.

 Use NetBeans 8.2. for the IDE.

 Use MySQL 5.7 for the database.

5
2.6 User Documentation
The user documentation will include:

 Commented code.

 Presentation of the final implementation.

 Contextual help within the application.

2.7 Assumptions and Dependencies


The employee list and content will be provided from the third party in a .csv file. Capestra
Furniture will also provide a template application to expand on with documentation to explain the
application framework.

6
3. External Interface Requirements
3.1 User Interfaces
These user interfaces will be provided by the designer/developer of the application:

1. Employee login screen (Partial sample provided in the template).


2. Add customer screen.
3. Place order screen.
4. Report screen for employee details (Provided in the template).
5. Report screen for customer details.
6. Report screen for order details.
7. Report screen for product details.

3.2 Hardware Interfaces


The software will work with the any OS that supports Java JRE 8. There will be no hardware
interfaces that are out of the ordinary.

3.3 Software Interfaces


 The application will be written in Java and JavaFX and will interface directly with the
MySQL database.

 The application will not rely on any third-party libraries beyond the Java SDK.

 Data will be communicated to and from Capestra Furniture’s backend system using the
JDBC protocol.

3.4 Communication Interfaces


 The application must communicate with MySQL 5.7 (not 8.0) using JDBC drivers.

7
4. System Features
The system provides a menu bar containing two drop-down menus: Action and Report.
The 3 Actions are: Login, Add Customer, and Place Order. The 4 Reports are:
Employee Info, Customer Info, Order Info, and Product Info.

4.1 Action: Login


4.1.1 Description and Priority
All employees from Capestra Furniture have an account in the web site data. All of
the employee data will be provided through a .csv file (EmployeeList.csv) for
import into the database. This feature is of high priority.

4.1.2 Stimulus/Response Sequences


The employee opens the application for the first time.

The employee is prompted for username and password to log into the system.

The employee enters his or her existing account credentials.

The employee presses the “Login” button.

The system responds telling if the credentials are valid or not.

4.1.3 Functional Requirements


REQ-1: Render login screen.

REQ-2: Validate employee username / password against the database.

REQ-3: Check with the database to determine if an account with the entered
username already exists.

REQ-4: Log the employee into the system. Display a message telling the first
name, last name, and ID of the employee who just logged in.

REQ-5: An appropriate error message must be displayed if the database is


inaccessible.

8
4.2 Action: Add Customer
4.2.1 Description and Priority
5. The employee should be able to add a new customer into the application to be inserted
into the database. This feature is of a high priority.

4.2.2 Stimulus/Response Sequences


6. The employee opens the application.

7. The employee logs into the application.

8. The employee selects “Add Customer” from the Action menu.

9. The employee enters in the customer’s first name, last name, email address,
address, city, state, zip code, and phone number.

10. The employee presses the “Add Customer” button to add the customer.

11. The system responds telling if the customer was added successfully or if there was an
error.

4.2.3 Functional Requirements


12. REQ-1: Verify the employee has logged in.

13. REQ-2: Verify that the customer was successfully added.

14. REQ-3: Validate that all of the input fields have been entered.

15. REQ-4: The successful insertion confirmation message must include the name of the
customer that was added.

16. REQ-5: Display any errors (like missing fields) in an appropriate fashion; e.g., beside
each input field or above all of the input fields.

17. REQ-6: All input fields should be cleared if and only if the insertion was successful.

18. REQ-7: A customer must not be added if there already is a customer with the same first
name and last name in the database. In this case an appropriate message must be displayed.

18.1.1

9
18.2 Action: Place Order
4.3.1 Description and Priority
19. The employee should be able to place an order for a customer who either calls in or is
done in person into the application to be inserted into the database. This feature is of a high
priority.

4.3.2 Stimulus/Response Sequences


20. The employee opens the application.

21. The employee logs into the application.

22. The employee selects “Place Order” from the Action menu.

23. The system displays a list of customers in a drop down.

24. The system displays a list of products in a drop down.

25. The employee selects a customer and product.

26. The employee enters the desired quantity of products to order.

27. The employee presses the “Place Order” button to place the order.

28. The system responds telling if the order was added successfully or if there was an error.

4.3.3 Functional Requirements


29. REQ-1: Verify the employee has logged in.

30. REQ-2: Check that there is enough quantity of the product to be ordered. If not, raise an
exception, otherwise, continue.

31. REQ-3: Insert a record in the order table to include in the customer ID, employee ID
who is logged in, date of the order, and the order status (pending, delivered)

32. REQ-4: Insert a record in the order_detail table to indicate the order ID, product ID, and
quantity.

33. REQ-5: Update the product table to deduct the number of items ordered.

34. REQ-6: Display any errors either beside each input field or above all of the input fields.

35. REQ-7: Validate that all of the input fields have been entered. The quantity must be a
valid integer greater than zero.

36. REQ-8: All of the database statements must execute in a database transaction.

37. REQ-9: All input fields should be cleared if the transaction was successful.

10
37.1 Report: Employee Info
4.4.1 Description and Priority
38. The system should display a list of current employees. This feature already has been
implemented in the template.

4.4.2 Stimulus/Response Sequences


39. The employee opens the application.

40. The employee logs into the application.

41. The employee selects “Employee Information” from the Report menu.

42. The system responds by displaying the list of employees. The information displayed
must include employee ID, first and last names, and email address.

4.4.3 Functional Requirements


43. REQ-1: Verify the employee has logged in.

44. REQ-2: Display an appropriate message if there are no employees.

45. REQ-3: All employee information must be displayed in tabular form.

11
45.1 Report: Customer Info
4.5.1 Description and Priority
46. The system should display full details about the specified customer. This feature is of a
high priority.

4.5.2 Stimulus/Response Sequences


47. The employee opens the application.

48. The employee logs into the application.

49. The employee selects “Customer Info” from the Report menu.

50. The employee selects a customer from a drop-down list showing all current customers
(sorted by first name).

51. As soon as the employee selects a specific customer, the system displays all details
about the specified customer including id, first name, last name, address, city, state, zip, phone,
and email address.

52. The employee can then select a different customer from the drop-down list and see the
details about the newly selected customer.

4.5.3 Functional Requirements


53. REQ-1: Verify the employee has logged in.

54. REQ-2: Display an appropriate message if there are no customers or if no customer has
been selected.

55. REQ-3: Customers are selected using a drop-down list.

56. REQ-4: Display full details about the specified customer.

57. REQ-5: The customer selection drop-down should remain available during the display of
the customer information, being shown just above the customer details.

12
57.1 Report: Order Info
4.6.1 Description and Priority
58. The system should display a three-part screen including: (a) List of all customers; (b) List
showing details of all orders; (c) List of all products and categories. This feature is of a high
priority.

4.6.2 Stimulus/Response Sequences


59. The employee opens the application.

60. The employee logs into the application.

61. The employee selects “Order Info” from the Report menu.

62. In the top table, the system displays all customer details including first name, last name
and all contact information for the customer, ordered by customer’s last name.

63. In the middle table, the system displays the details of all orders including order ID, date,
status, customer ID, employee ID, customer first and last name, address, city, state, zip, email,
product ordered, and quantity ordered.

64. In the bottom table, the system displays all categories and their associated products, as
well as their full descriptions and the unit price for each product.

4.6.3 Functional Requirements


65. REQ-1: Verify the employee has logged in.

66. REQ-2: Display an appropriate message if there are no customers..

67. REQ 3: Display an appropriate message if there are no orders.

68. REQ 4: Display an appropriate message if there are no categories or products.

13
68.1 Report: Product Info
4.7.1 Description and Priority
69. The system should display a list containing full details about all products in inventory.
This feature is of a high priority.

4.7.2 Stimulus/Response Sequences


70. The employee opens the application.

71. The employee logs into the application.

72. The employee selects “Product Information” from the Report menu.

73. The system displays a list showing full details about all products in inventory including
their categories, names, descriptions, prices, and quantities on hand.

4.7.3 Functional Requirements


74. REQ-1: Verify the employee has logged in.

75. REQ-2: Display an appropriate message if there are no products.

14
76. Other Nonfunctional Requirements
76.1 Performance Requirements
The order entry system needs to be fast. This will require the SQL statements to be optimized
and the database design to be set up in third normal form.

76.2 Safety Requirements


The application has no special safety requirements.

76.3 Security Requirements


All communications need to be properly authenticated.

Because the application interfaces with other systems, it need to be able to handle errors and
failures gracefully, with sensible re-try logic and clear messaging for the user.

Capestra Furniture is intending to expand this application in the future. Therefore, the
application needs to be designed with componentization and reusability in mind.

76.4 Business Rules


Employees can login, add customers, place orders and view reports. This application should
simulate the business processes. An employee can add new customers. When an employee
places an order, the order should be associated with the employee. An order should have order
line items. Although in this first iteration only one product can be added in an order, future
iterations will allow multiple items per order. The database design should take this into
consideration. Users can order multiple quantities of the same product. Each product belongs to
a single category.

15
77. Other Requirements
The application needs to have locally-managed storage.

The backend system will interface with Capestra Furniture’s MySQL 5.7 (not 8.0) database
server.

The backend system will communicate with the MySQL database using a JDBC driver.

The application needs to be in English, but designed with internationalization in mind for future
versions.

The minimum tables that are required for the database include:

 Customer (consists of customer related information including first name, last name,
email address, address, city, state, zip code and phone number).

 Employee (consists of employee information; table data is provided in


EmployeeList.csv).

 Order (consists of high-level order information such as the order date, the customer who
ordered it, and the employee who entered it into the system).

 Order Details (links the order and product tables together; includes the quantity of
products ordered).

 Product (product information including the product name, description, price, and quantity
currently available).

 Category (list of the categories for the furniture products).

16
Appendix A: Glossary
 API: Application Programming Interface. A definition and implementation of a layer that
exposes and provisions certain services to external systems (such as client
applications).

 LAN: Local Area Network. A network of a group of related computers and other devices
(usually within a home or an office).

17

You might also like