Send- Receive-Signal in UML Diagrams

uml

I'm designing and developing a learning system based on flashcards and leitner system. The system have many features such as creating flashcards, studying the flashcards, doing tests and etc. The activity diagram of studying the cards is attached below. It goes through all decks of the box, studies the cards, which are due to be learned on that date and moves the cards accordingly weather the user answered the question correctly or not.

One of the options that the user has is to ask for a tip while the question is being asked. I showed it with a send- receive-signal but some of my team members believe that it's wrong.

Is my diagram regarding the send- and receive-signal correct? If not how can I show the option?

enter image description here

Best Answer

I can certainly see a problem in your activity diagram with regards to the inner interruptible region. What you have to consider is that inside this region you have an activity that simply takes the next card and shows the question. By your design, this could be interrupted when the user presses the tipp button (because both are in that same region boundary).

That's probably not what you want. You don't want to interrupt your question loading and displaying, but rather, you want to offer the user two choices: Answer the question, or get a sort of hint. As modelled in the diagram, the user would have to press the hint button during card loading, but before the card is shown, as the termination of that activity also results in the control flow leaving the interruptible region and going to the next activity.

When you consider that both, answering and getting a hint, are user actions, it seems more suitable to model both as signals. In that case, you have a traditional choice construct of either signal being able to arrive (see the fork construct).

(Side remark: Why implement a Leitner system these days? I was under the impression that spaced repetition superseeded that completely?)

Related Topic