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

User Tools

Site Tools

Assignment 6: Architecture Organization

Release date: Wednesday, 05.06.13 - Due date: Monday, 10.06.13, 23:59

Task 01: Components and Deployment for the cloud BAKERY 2100

6 points
If you don't want to start with your own model, you can use the sample solution for task 1 and 2 in assignment 5.

In the previous assignment you divided your system into (at least two) different subsystems based on criteria like coupling and cohesion. Now we have to decide which part of the system runs on the mobile phone and which on (an) other machine(s). This might require some adaptation to your subsystem decomposition. But, let us still keep the level of detail as coarse grained as we have our analysis object model.

Your task is to create:

1) A component diagram representing the components of our system.

2) The interfaces of the components.

3) A deployment diagram for our system.

In more detail:

For 1) Review your subsystem decomposition from the previous assignment and build a component diagram based on that: For each subsystem create a component and place the analysis objects in them. Don't forget to list the provided and required interfaces of the components. Add the connections. (We will be already happy if your system has only two components, one being just the boundary to be deployed on the mobile device.)

For 2) For all the interfaces provided by the components: Specify them to the degree that we know the operations they contain. (So you better do not create too many components in 1) ;-) You might want to present the interfaces in a separate class diagram.)

For 3) Create a deployment diagram with at least two nodes and deploy the components on them. (Don't forget the names for the nodes and the communication path between the nodes.)

Fixed format for the discussions in Task 02 to Task 04

During the development of software, different issues have to be resolved. The following short text describes on a very abstract level how this is done. Based on this abstract description, we present a simple format for your solution to the next three tasks.

If you are interested in another Abbott task, you may use this short text to train yourself again. Just draw your own class diagram representing the text, before you click on the link to our class diagram. This time we only used the nouns as class candidates and all verbs as association candidates. We didn't gather any operations or attributes.

For an issue certain criteria are relevant. Proposals that address the issue are assessed by these criteria. Of course a proposal can address more than one issue. Based on the proposals a resolution has to be selected, which resolves the issue. Of course new issues might be raised by proposals. (See our class diagram summarizing this.)

Arguments can support or oppose to criteria and proposals. The can even support or oppose to the positive or negative assessment of a proposal by a criterion. (See our extended class diagram summarizing this.)

Present your solution in the following format:

Issue: <Will be given by the task>


<Criterion> <Criterion> <Criterion>
<Proposal> <Positive or Negative Assessment> <Positive or Negative Assessment> <Positive or Negative Assessment>
<Proposal> <Positive or Negative Assessment> <Positive or Negative Assessment> <Positive or Negative Assessment>
<Proposal> <Positive or Negative Assessment> <Positive or Negative Assessment> <Positive or Negative Assessment>

Resolution: <The resolution you suggest assessment of the proposals.>


  • The <Proposal>s will be given by the task.
  • You have to find three or more <Criterion>s. In System Design these are typically design goals the system should meet or URPS+ requirements.
  • If it is clear whether or not a proposal positively or negatively assessed with respect to a criterion, it is enough to write :+: or :-: in the corresponding cell.
  • If the assessment needs an argument, write the argument into the cell.
  • Of course you can add arguments to <Proposal> and <Criterion> cells.
  • It might make your tables more readable, if you add color to the cells.
  • The following file formats are ok: Text, PDF, Excel
  • (Optionally) you may use a decision matrix that we prepared in Excel.

Task 02: Discuss Software Mapping

3 points

The cloud BAKERY 2100 is accessed from mobile phones. Here is a suggestion for an extension of the system:

  • Special feature for GPS-enabled devices: Show the nearest cloud BAKERY 2100.

We plan to write a component that allows to find cloud BAKERY 2100's. Yet, we don't know whether to deploy this component on the mobile devices or on the server. Discuss the issue and present it in the predefined format.


  • Should the component responsible for finding cloud BAKERY 2100's be deployed on the mobile device or on the server?


  • Deploy the component on the mobile device.
  • Deploy the component on the server.
  • [If you have a third proposal, you can discuss it as well.]

(We did not talk about multiple cloud BAKERY 2100's before. We would probably need to have more adaptations to our system, but this is not necessary a part of this task.)

Task 03: Discuss Data Persistence

3 points

Read section 4 of the last set of slides.

The cloud BAKERY 2100 software shall be able to store information about Orders, but we haven't decided how to store it. Discuss the issue and present it in the predefined format.


  • How should the data about Sales be stored?


  • File
  • Relational Database
  • Object Oriented Database
  • [If you have a fourth proposal, you can discuss it as well.]

Task 04: Discuss Access Matrix Implementation

3 points

Read section 5 of the last set of slides.

We want to define the Access Control for the cloud BAKERY 2100, but we haven't decided how to implement it. Discuss the issue and present it in the predefined format.


  • How should the Access Control be implemented?


  • Global access table
  • Access control list
  • Capability based


teaching/lectures/oosc/2013/assignment_6.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2024