SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Assignment 5: Requirements Analysis

Release date: Saturday, 25.05.13 - Due date: Monday, 03.06.13, 23:59

The tasks of this assignment depend strongly on each other and can therefore not be solved in parallel. Here are the dependencies in detail: 1 ← 2, 1 ← 3, 2 ← 3, 3 ← 5. I.e. 1, 2, 3, 5 need to be solved sequentially. (There are more dependencies but they are less strict.)

Task 01: Scenarios, Use Cases, Domain Object Model

7 points

Let us return to the “cloud BAKERY 2100” from Assigment 3.

Use Case Diagram for the CloudBakery2100

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:

  1. For the use cases “Order Baked Good” and “Retrieve Baked Good” prepare a use case description as well as one scenario for each. To illustrate that the use case description is an abstraction of the scenario, present scenario and use case side by side in a table.
  2. A Domain Object Model containing all the classes forming the state that needs to be persisted within the system. (These classes will become the entities in the Analysis Object Model in Task 02.)

(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).)

Task 02: Analysis Object Model

7 points

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.

Task 03: Dynamic Modeling

10 points

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.

Task 04: Design Goals

4 points

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.

  1. An air traffic control system
  2. The “cloud BAKERY 2100”
  3. A simulation of a bakery like in Assignment 4, Task 04
  4. An on-line application system for the master degree program

Task 05: Decomposition into Subsystems

6 points

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?

Task 06 (optional): Objects and Reality

6 points

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?

1)
The requirements with respect to Pumpernickel was already prioritized as “Won't do now!”. In case you want to get a taste of something really special, we recommend :de: “Stippmilch mit Pumpernickel”. But, for this assignment we say “good bye” to Pumpernickel.
teaching/lectures/oosc/2013/assignment_5.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2025