Background: Cabinetron is a company that makes wood and metal cabinetry. They have standard cabinet product lines and can also create custom cabinet products. Their
- Background: Cabinetron is a company that makes wood and metal cabinetry. They have standard cabinet product lines and can also create custom cabinet products. Their business is growing and they want to build a facility management system (an enterprise software system that manages inventory, orders, billing, personnel… the whole enchilada) that can suit their business’ specific needs. They have hired you to design and build a few subsystems so that they can see and test your interpretation of their requirements, and explore their options before committing to a particular direction. Cabinetron wants you to build the Warehouse subsystem of their inventory management component. Simply put, the Warehouse subsystem allows an end-user to see a list of Cabinetron’s warehouses, see the detailed information for a selected warehouse, add a new warehouse, delete an existing warehouse, and edit an existing warehouse. Task: Build a Parts module as a standalone program in Java (using the Swing GUI framework) using an MVC design structure and an MDI-based GUI (i.e., child views controlled by an MDI parent). Your program should have at least 3 Views/Screens: 1. An MDI Parent (a GUI JFrame that acts as an application controller) 2. A view for the list of warehouses 3. A view for the detailed information of a single warehouse. This view can also be used for adding and editing warehouses, or those functions can be in different views. Note 1: you don’t have to use MDI children in JInternalFrames. Your views can be tabbed panels inside a parent frame, as long as the parent frame functions as a Controller for the views and models. Note 2: a view does necessarily imply a separate child window. You can certainly embed a list view and a detail view inside a single child window. Please be as creative as you want with your design and implementation. There is plenty of room in these assignments for artistry. Be sure to implement the Observer pattern in your model and views, so that when the warehouse model changes, all registered and opened views will be notified of the change (and should automatically refresh their displays).
SPECIFICATIONS:
Models Warehouse Id: automatically generated unique id among warehouses (type: long) Warehouse Name: unique name of warehouse (type: string) Address: street address of warehouse (type: string) City: city where warehouse is located (type: string) State: state where warehouse is located (type: string) Zip: zip code of where the warehouse is located (type: string) Storage Capacity: maximum # of units that can be stored at that warehouse (type: int) Behavior View warehouses: view a list of all warehouses. selecting a single warehouse should show the detail view of that warehouse View warehouse detail: displays all of the warehouse data, including Id Add/Edit warehouse: add a new warehouse or edits a currently selected warehouse Required fields: Warehouse name: alphanumeric and symbols, max length 255 Address: alphanumeric and symbols, max length 255 Zip: numeric, exact length 5 Storage Capacity: unsigned int Optional fields: City: alphanumeric and symbols, max length 100 State: alphanumeric and symbols, max length 50
Constraint: Warehouse name must be unique among all warehouses, cannot be null nor blank Constraint: Address cannot be null nor blank Constraint: Zip must be 5 numeric digits, zero-padded if necessary
Constraint: Id must be automatically assigned by the system
Constraint: Storage capacity must be >= 0
Delete warehouse: deletes a warehouse
Deliverables:
1. Make this assignment its own Eclipse Java project called assignment1. In your main Java class, include a comment with “CS 4743 Assignment 1 by ”.
2. Include a PNG or PDF image of a simple class diagram illustrating the various relationships among the classes you have created. Include any methods and attributes that pertain to model/view/observer relationships. *** Also, visually group the classes by their role: model, view, or controller. Look at my diagrams for an example.
3. Include at least 4 JUnit test cases that exercise the above methods directly at the model level and test the constraints. Put JUnit test cases in their own separate test package. Test for things like errors if your unit test tries to add a new Warehouse and the Warehouse Name is duplicated or field validation fails. 4. Export the entire project to a zip file called assignment1.zip and submit the resulting zip file to Blackboard.
Step by Step Solution
3.41 Rating (164 Votes )
There are 3 Steps involved in it
Step: 1
Model For the Warehouse subsystem of the Inventory Management Component the model consists of several variables that will be used to store information about the warehouses The variables are Warehouse ...See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started