Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Release date: Saturday, 25.05.13 - Due date: Monday, 03.06.13, 23:59
Let us return to the “cloud BAKERY 2100” from Assigment 3.
Here is again the description of the system:1)
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. 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.
Prepare the following:
(As a side note: If you want to have an idea how an exam task about scenarios and use cases might look like, see the refreshment task from the recent ATSC which is almost literally an old OOSC exam task, especially d) and e).)
Use your Use Case Model and your Domain Object Model (Task 01) to create an Analysis Object Model. Make sure that all use cases are covered and all actors can interact with the system.
Tip: We described a straightforward strategy for creating an Analysis Object Model in the Requirements Analysis slides. See slide 53-61.
Represent the flow of the two use cases you described in Task 01 as two sequence diagrams of actors interacting with the system.
Which of the Analysis Objects created in Task 02 are necessary to realize these two use cases? Name them for each of the two use cases.
Create two new sequence diagrams and copy the content of the earlier two into these diagrams. Add for all analysis objects realizing the respective use cases a life line. Successively replace the interactions of the actor with the system by interactions with the boundaries and describe how the analysis objects interact to realize the use case.
To get more familiar with the notion of design goals, give us for each of the following applications the two to four most important design goals. Explain each design goal in one to three sentences and give us the reason, why you consider this design goal to be important for the respective application.
Your Analysis Object Model is probably rather small. Nevertheless, it makes sense (at least as an exercise) to divide it into two or more subsystems. Make a suggestions about how to divide the Analysis Object Model into subsystems.
Explain your solution in detail: For each subsystem comment on the cohesion and coupling of this subsystem.
Finally explain, what a “layer” and what a “partition” in the sense of subsystem decomposition is. What would be the difference between opaque and transparent layers? Are there any layers or partitions in your system?
In Task 01 we were looking at a software that controls parts of an automatic bakery. In Task 04 of Assignment 4 we were talking about a simulation of a bakery. If you create a more detailed model of these two systems, you might find that you will name the methods and maybe as well the attributes differently in the two cases although both are about a bakery.
Create (not necessarily complete) class diagrams for both cases. You can start with what you already have from the previous tasks. Make sure that both diagrams have at least two entity classes in common and a similar controller class. Does it make sense in both cases to have classes “Baked Good”, “Oven”, “Dough”? Describe how the controller class works together with the other classes in both cases. Carefully choose appropriate names for the methods that realize this collaboration.
Discuss the similarities and the differences between your models. Can you explain why you can build the models (partially?) in the same way or why you need to choose (partially?) a different approach?