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


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?)


This is not what you want. In your diagram, the user can only interrupt with the Tip button while the system is busy in action 'Take the next card & show the question'. You can model the activity without signals, as follows:

enter image description here


I think that sendsignal and receivesignal are used to show a signal exchange between different diagrams. it means that you are "outside", sending or receiving some information. With swimming lines (partitions) it is not useful because the "outside" is a part of the diagram, in a partition in this case. You can use normal action to show what user do (pressed a button, fill form,) your signalsending actions have no transition arrow, it's strange.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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