Professional Documents
Culture Documents
Attachment 1
Attachment 1
Specification
for
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
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
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.
Italic text signifies existing systems outside the scope of this document.
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.
Allow the employee to log into the application and connect to the database.
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.
The application will be designed to support future versions as well through automatic updates.
5
2.6 User Documentation
The user documentation will include:
Commented code.
6
3. External Interface Requirements
3.1 User Interfaces
These user interfaces will be provided by the designer/developer of the application:
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.
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.
The employee is prompted for username and password to log into the system.
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.
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.
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.
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.
22. The employee selects “Place Order” from the Action menu.
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.
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.
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.
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.
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.
54. REQ-2: Display an appropriate message if there are no customers or if no customer has
been selected.
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.
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.
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.
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.
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.
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.
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).
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).
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