跳到主要内容

Solution for Weighting Scale (White Box level)

It’s time to put down your pens!

We hope this exercise has allowed you to expand on the use of our toolchain in a simple system.

Below you will find our solution (here is the link to our model).

Do not hesitate to compare the Sequences, look at the body of the activities, play our scenarios, read the comments below, in order to fully appropriate this exercise.

We emphasize that there is no one solution.

INTERFUNCTIONS FLOWS

The link between the functions listed above is done by means of flows to ensure the desired objective:

Functional Decomposition

EXPECTED FUNCTIONING

  • Receive the weight: acquire the weight and ensure its stability.
Receive the weight
  • Calculate the price:
Calculate the price
  • Print the ticket:
Print the ticket
  • Process price list: initialization of the file (.CSV).
Process price list
  • Manage the number of tickets: update tickets number.
Manage the number of tickets

IMPLEMENTATION

There are several implementation methods mainly concerning the decomposition, two implementations are suggested to correctly model the Weigthing Scale stabilization task:

  1. The first one is to create a state called "stabilization" inside the function “receive the weight”.

  2. The second one is to create a function dedicated to the stabilization task during which the timer is incremented until it reaches the maximum delay then the system goes to the next step.

USAGE TIPS

As a reminder:

  1. New connection flows must be created between functions to correctly describe the desired behavior.

  2. All interfaces and flows already used in the BB will be used in the WB.

  3. When creating a variable, it remains reserved for the function. If you ever need the value of this variable in another function, you must send a flow from the parent function to the new function containing the value to move.

  4. The addition of tickets number cannot be done at any time (only in the inactive and available state). To do this, you can do as shown below for the case when reloading the Weighting Scale in the active state:

Functional Sequence Diagram

the same logic applies for the other case when the scale is inactive.