# Assignment 05: System Decomposition & Software Vision

**Release date: Tuesday, 06.05.14 - Due date: Sunday, 10.05.14, 23:59 **

## Task 15: Decomposition into Subsystems

8 points |
---|

Our Analysis Object Model for the “cloud BAKERY 2100” has some complexity. Divide it into two or more subsystems. Make a suggestions about how to divide the Analysis Object Model into subsystems.

- Which criteria did you apply to create the decomposition? Explain!
- 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?
- Which parts of the System could be reused? Give an example of a potential reuse.

As a starting point you find the file `A05T15_CloudBakeryDecomposition`

in your repository.

## Realize Your Software Vision

The following tasks give you the chance to practice your competences in Requirements Elicitation and Analysis again.

You may pick the system that you described as your Software Vision or one of the following (listed just in alphabetical order):

To *limit your workload*, we described the minimal deliverables we expect. You get just 5 points per task! So, be efficient. Of course you are free to create complete solutions.

## Task 16: Usage Scenarios and Use Cases

5 points |
---|

Create a *small* Use Case Model of the software vision system, that you selected.

Deliver at least:

- A use case diagram.
- It should demonstrate all the elements of a use case diagram

- For one use case:
- Use case description
- Two scenarios that are an instance of this use case

See Task 09 and its sample solution for inspiration.

## Task 17: Verifiable Non-functional and Pseudo Requirements (FURPS+)

5 points |
---|

Go through the 4 quality and 5 pseudo requirements in the FURPS+ list that you created as solution to
task 08 and give a suggestion how to make the requirement *more* verifiable. E.g., for a performance requirement you could write instead “The system needs to be fast” the more precise requirement “The system must be able to answer 50 parallel requests in less than 0.3s”.

## Task 18: Domain Object Model

5 points |
---|

Create a small Domain Object Model for your system as well as a consistent textual description.^{1)}

Deliver at least:

- The textual description of the model.
- The class diagram.
- With some classes, attributes, operations. (where “some” > 2)
- With a generalization, an association, an aggregation (or composition).

See Task 11 and its sample solution for inspiration.

## Task 19: Analysis Object Model

5 points |
---|

Pick some use cases of your use case diagram (where “some” > 1) and create an Analysis Object Model for them. Make sure that your model is consistent with your solutions for the previous task.

See Task 13 and its sample solution for inspiration.

## Task 20: Sequence Diagram

5 points |
---|

Describe the flow for one of your use cases as a “black box” sequence diagram.

Create a “white box” sequence diagram, that describes the internal flow of the system based on your Analysis Object Model.

Have at least one synchronous and one asynchronous message in your diagram.

See Task 14 and its sample solution for inspiration.

^{1)}You started with our text before. Now you are free to create the model first.