Efficient FSM Model Solution for Commercial Company Order Management

commercial company n.w
1 / 24
Embed
Share

"Explore a detailed FSM model solution for managing orders in a commercial company, covering order modifications, deliveries, product approval process, and more. Developed by Monique Snoeck. Image credit: SlideOrbit."

  • Model Solution
  • FSM
  • Commercial Company
  • Order Management
  • Monique Snoeck

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Commercial Company FSMs - Model solution - Student solutions with feedback (c) Monique Snoeck

  2. 2 In a company, customers can place orders. Each order can be for any number of products, each product within an order giving rise to one order-line. Possibly, the customer can change the order several times or even cancel the order. To change an order means to modify the quantity for one or more order-lines, or to cancel one or more order-lines, or to add one or more order-lines. A delivery concerns a number of order-lines, which belong to one or possibly different orders of the same customer. It is however not required that the total quantity of the order-line is delivered at the same time: partial deliveries are allowed. A delivery is a package that is composed by determining which items to include or not and immediately picking these items. Once the picking has been completed, the package is "finalized" by adding the picking slip and sealing the package. It is then ready for shipping. When the package is received by the customer, his/her signature is registered. To prevent endless order-modifications, an order-line can only be changed or cancelled as long as the first delivery for that order-line has not been done ( started). An invoice can contain partially or completely delivered order-lines of different orders. Once the invoice has been sent to the customer, it cannot be modified any more. When the company wants to sell a product, it has to be approved by the board of directors first. After the approval, the company can put the product on sale. It should also be possible to remove the on-sale status from a product. A product can of course only be ordered when it is on-sale. (c) Monique Snoeck

  3. 3 Create FSMs bottom up 5 Default 2 Non Default 3 5 4 Non Default Default Non Default 1 3 2 Default Non Default Default (c) Monique Snoeck

  4. 4 Model Solution Non Default The following non-default events are identified: For Invoice: pay, send Once the invoice has been sent to the customer, it cannot be modified any more For OrderLine: modify_Quantity, Cancel modify the quantity for one or more order-lines, or to cancel one or more order-lines For Delivery: seal, sign_delivery the package is "finalized" by adding the picking slip and sealing the package When the package is received by the customer, his/her signature is registered For Product: propose, accept, put-on-sale, stop-sale When the company wants to sell a product, it has to be approved by the board of directors first. This implicitly assumes that the acceptance is requested at some point in time propose After the approval, the company can put the product on sale. It should also be possible to remove the on-sale status from a product. 2 3 3 5 (c) Monique Snoeck

  5. 5 Invoice Don t forget to enable ending dependents in state before final state (c) Monique Snoeck

  6. 6 Delivery Don t forget to enable ending dependents in state before final state To be investigated if useful to allow these endig events in this state (c) Monique Snoeck

  7. 7 OrderLine To prevent endless order- modifications, an order-line can only be changed or cancelled as long as the first delivery for that order-line has not been started. No modify_quantity in this state (c) Monique Snoeck

  8. 8 Product When sale is stopped, it is necessary to be able to finalize pending orders (c) Monique Snoeck

  9. 9 Additions to consider Delivery Register that a package has been lost A Package can be refused by the Customer Delivery Line Planning delivery items versus actually packaging them distinguish between cr_delivery_line and put_in_parcel Customer Extension of the specifications: one could consider to have a blocked state for customers that have too many outstanding bills. In the blocked state, customers can only be invoiced and pay bills. (c) Monique Snoeck

  10. 10 Scoring Sample grading Rules Each non-default FSM is scored on 10 (default FSMs need not to be given) Basic happy path entirely OK AND acquired methods OK: +7 /10 Minor mistakes 7/10 Unhappy paths missing 1 state missing (e.g. collapsing proposed & exists or exists and not on sale ) Forgetting some acquired methods in some places (e.g. end-methods of dependents in states preceding end_state) Major mistakes: 0-5/10 All acquired methods missing Basic happy path wrong LC missing 0/10 Overall score is re-evaluated according to the level to which the solution demonstrates the ability to correctly distribute and coordinate behaviour across objects. (c) Monique Snoeck

  11. 11 STUDENT SOLUTIONS WITH FEEDBACK

  12. 12 Product When a product is on hold, one should be able to deliver and invoice previously created orderlines. ==> more event types required in this state

  13. 13 Product When a product is on hold, one should be able to deliver and invoice previously created orderlines. ==> more event types required in this state

  14. 14 Product When a product is on hold, one should be able to deliver and invoice previously created orderlines. ==> more event types required in this state

  15. 15 Product Backward inaccessible state When a product is on hold, one should be able to deliver and invoice previously created orderlines. ==> more event types required in this state

  16. 16 Product What happens to a product that is in the catalogue, and which you want to get rid of without releasing it ?

  17. 17 Customer Only one order at a time per customer ?

  18. 18 Invoice Allow end_invoice events here for cascading delete

  19. 19 Invoice Allow end_invoice events here for cascading delete

  20. 20 Invoice

  21. 21 Order Line

  22. 22 Order Line ?

  23. 23 Order Line Cancel order line ?

  24. 24 Order ?

More Related Content