I'm study UML and I have nobody for verify my solutions so hence I will greatly appreciated if anyone give me some feedback. I'm doing exercises about use cases and sometimes it's hard for me know if I'm on the right track because these exercises are not mathematics in which you have an exact result. These models can vary from one analyst to other.

So the exercise's statement is a little large and it's the next:

Exchange of Points

A supermarket chain with branches in much of the provincial territory has decided to implement a customer loyalty program. This program is based on the accumulation of points through purchases made at the different branches, which can then be exchanged for different prizes.

This company has requested the design and implementation of an information system in a web environment, with an Oracle database, which allows it to manage the processes related to the new loyalty program. After conducting a survey, the following information and considerations were obtained to build the system: The client must register in the loyalty program, with which their personal data (type and number of document, first and last name, date of birth, current address), the registration number, the date of registration in the program and you are given a card –this card has a unique fifteen-digit number and a barcode–, and a unique security code (independent of the card) that is informed to the customer. The purpose of this code is to act as a security question that the customer will be asked to report, to certify his identity when requesting a trade-in. When a customer makes a purchase, he must present the card to the cashier, and he will be awarded a certain amount of points. For each movement to obtain points, the date on which they were accumulated, the amount of points obtained and the associated ticket number are recorded. Currently one point is accumulated for every 2 dollars. Points do not have an expiration date. The business adopted the position of recording the points obtained for each customer, independently of the card; This benefits the customer as they keep the points despite losing or changing their card for any reason. When the client wishes to obtain a prize, on the supermarket's website he can consult the catalog of prizes that he can access by exchanging points. Said catalog is valid for a certain period of time, and contains a set of prizes of which a code is defined, the name and brief description of the product, the quantity available and the points necessary to access the prize. A certain product - for example, an electric oven of a certain brand, 20 liter capacity, digital - may appear in more than one catalog; for each catalog the same product may have a different code. Those products for which there is no quantity in stock will be shown with a watermark with the legend "Not available".

The customer must contact the Customer Service Call Center, where they will be attended to start the exchange process. The first step will be to request the client's document to access his data; then the security code communicated when enrolling in the program will be required. The client must inform the prize/s to which they wish to access (said prizes must belong to the current prize catalog). The client must confirm whether the delivery address for the awards will be the registered address or another. In case of having the necessary points, the exchange of the points will be recorded with the data of the awards exchanged and a certificate of exchange will be issued, on A5 size paper, with QR code and Arial font, which will contain the client's data, address and award/s obtained, which will be delivered to the logistics area for the subsequent delivery of the award/s.

Weekly, reports will be issued regarding

  • Enrollments made to the program, with number of clients per location
  • Exchanges made, with total number of exchanges, number of products exchanged, products most required in exchanges.

And my model is:

enter image description here

I would like know if that model is acceptable, if it has some minor issues, if it contains serious mistakes that make me have re-study key concepts, if diagram can has more use cases or less, if some relationship or actor are bad, if any name is not very representative of the functionality it models, and stuff like these.

1 Answer 1


You seem to have fallen into the trap of trying to capture the flow of interactions in your use-case diagram.

A use-case is an interaction of a primary actor with a system in order to achieve a goal. This interaction can span multiple steps and a longer time. In situations where an employee interacts with the software on behalf of a customer, a use-case typically considers this employee to be part of the system being designed. The employee is at that point the interface to the system.

A use-case diagram is only meant to give an overview of the use-cases that exist in the system, but for seeing the flow of interactions within a use-case you must look at a separate (textual) use-case description.

In your problem statement, I see the following use-cases:

  1. Register for card (actor: Customer)
  2. Request replacement card (actor: Customer)
  3. Collect points for purchases (actor: Customer) (The cashier is the interface to the system here)
  4. Update prize catalog (actor: Administrator?)
  5. Redeem points (primary actor: Customer, secondary actor: Logistics) (This includes browsing for a prize and interacting with Customer Service Call Center to claim the prize; If the customer decides to only browse, that would be an alternative flow within the use-case)
  6. Retrieve weekly reports (actor: Data Analyst?/Manager?) (I have combined both reports in one use-case, but arguments can be made to split it in two use-cases)
  • 1
    Iso. textual description there are Activity Diagrams which can be used alternatively. There are reasons to favor AD over text or vice versa which depend on the description. Almost linear flow is easier described with text while lots of conditions/path are better described with an AD (or you go directly to BPMN).
    – user188153
    Jan 14, 2021 at 19:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.