Model a Weighting Scale (Black Box level)
Now is the time to take the plunge and to exercice yourself with the following not guided wording.
DURATION
You should be able to complete this exercise in 2 hours.
GOAL
The objective of this project is to model a self-service Weighting Scale commonly found in stores and supermarkets.
This system will use a CSV database. You can see the documentation on how to read a CSV database here
CONTEXT
The self-service scale provides labels with information about the product being weighed. The manipulation of the device is done in three essential movements coming from the client:
- The customer puts the product on the scale,
- The customer selects the product on the scale interface,
- The customer confirms/cancels the printing of the ticket.
ASSUMPTIONS
We assume that:
- The customer can modify/remove the weight from the scale at any time whatever the stage of progress in the weighing operation,
- The scale is not perfect,
- The addition of tickets number can be done only when no products are weighting,
- When there are no more tickets available, the scale must have a degraded process,
- When customer cancels the printing of a ticket, he can reselect another kind of product,
- The initialization of price list is done by the technician only when no products are weighting.
Here, you can use the provided CSV file.
WEIGHTING SCALE USER FEATURES
The model should cover the following use features:
- The scale should receive the weight,
- The Weighting Scale must calculate the price through a pricelist,
- The scale should print a ticket with enough information.
MODEL VALIDATION BY SCENARIOS
MINIUM REQUIREMENTS ON VIRTUAL BENCH
- The operational process of the scale is visible,
- The weight value is visible,
- The selected product name is visible,
- The selected price per kilo is visible,
- The calculated price is visible,
- The number of tickets is visible.
Scenarios to check
The model should be validated by the following scenarios on Virtual Bench:
Nominal Case:
- The technician imports a price list,
- The customer put products on the scale,
- Once the scale is stabilized, the customer selects a kind of product,
- After checking the kind of product and final price, the customer confirms to print a ticket.
Degraded Cases:
- The customer changes the weight at any operation of the process (during stabilization, after or before selecting a kind of product),
- The customer cancels the ticket printing,
- The Weighting Scale prints the last ticket,
- The technician reloads tickets.
BEFORE STARTING MODELING
- Identify your Use Cases,
- Define the states you will encounter in your State Machine,
- Do not worry about technical solutions (buttons, slider, etc.), you can add all your triggers on a timeline at the beginning,
- For your first attempts, you are not obliged to use the CSV provided, you can create your own list with one or two items.
On the next page, you will find a solution we realized.