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:
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.