Release date: Wednesday, 24.04.13 - Due date: Monday, 29.04.13, 11:59
New technology is entering the bakery domain: The “cloud BAKERY 2100” is a production and vending machine, which is meant to connect to the cloud. It allows customers to order baked goods via their mobile phones. During the ordering process the customer has to authenticate herself. Once the order is complete, the system informs the credit card company to charge the customer’s credit card. Later on, the system autonomously starts the production of the baked goods, so that they are ready at the time specified in the order. For the production of Pumpernickel the there is a special backing process that applies steam at a rather low temperature for a long time. The customer can retrieve the baked goods from the delivery interface of the machine, again accessing the machine via her mobile phone. Again, the customer needs to authenticate for this. The “cloud BAKERY 2100” is placed in supervised locations. If it is out of ingredients a maintainer is called.
In the use case diagram about four to five relationships are missing. Connect the use cases with the appropriate relationships («include», «extend», generalization) and explain for each stereotype in one sentence, why it is appropriate. You may use
A03T01_CloudBakery.asta in your repository as starting point.
In this task you will model part of the behavior of a graphical editor with a state machine diagram. The graphical editor we want to model is the editor for use case diagrams. The picture below shows a screenshot of it:
Preparation: Play around with the editor. Use especially the “Selection Tool”, the “Use Case Creation Tool”, the “Include Creation Tool” and the “Extend Creation Tool”. Observe how the editor reacts to keyboard and mouse events.
Your Task: Create a state machine diagram that describes how the editor behaves while the “Use Case Creation Tool” selected. As a starting point, you find the file
A03T02_UseCaseDiagramEditor.asta in your groups repository. Extend the diagram to describe what happens, when the “Include Creation Tool” is selected. Do the same for the “Extend Creation Tool”. Your diagram should describe at least the reaction to the following events: “Mouse Click”, “Key Escape Pressed”, “Key Enter Pressed”, “Alphanumerical Key Pressed”. You should add as well a state for the “Selection Tool”, but you just need to model the reaction on mouse clicks on the tool bar buttons while in this state.
Tip 1: For mouse events the position of the mouse is of course essential. Describe conditions on the mouse position in natural language, e.g. like “[position is on empty canvas]”.
Tip 2: To check whether you covered all events and states it might be useful to create a table that names all transitions and actions for all combinations of events and states. You find a template for this table as well in the repository.
Optional Task, No Points, Quite Complex: Take as well the events “Mouse Move” into account, distinguish between “Mouse Down” and “Mouse Up”. Describe as well the behavior if the “Selection Tool” is selected. The state machine diagram might become easier if you use parallel states or sub state machines.
Describe an interaction of an actor with the the cloud BAKERY 2100 (see Task 01) in a simple sequence diagram in descriptor form that uses one alt(nerative) or one loop. Instead of using the descriptor form one might use two separate sequence diagrams in instance form to convey the same information (although not in a formal way). Try to do this for your example. In total we want to have three different sequence diagrams. One in descriptor form and two in instance form. Please choose an example that is as concrete as possible.
Describe in your own words the semantical differences between the instance form and the descriptor form of a sequence diagram.
Below you find an activity diagram for the order processing in a warehouse company. Let us assume that it already contains all required activities. You should add the following:
Give for both additions an explanation, why you added them at the respective positions. Make sure that you use the correct control nodes.