SDA SE Wiki

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

User Tools

Site Tools


Assignment 06: Architecture Organization

Release date: Tuesday, 14.05.14 - Due date: Sunday, 18.05.14, 23:59

Task 21: Components and Deployment for the cloud BAKERY 2100

9 points
If you don't want to start with your own model, you can use the solution for Task 15 in Assignment 05 that we created.

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.

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, at least for some (where “some” > 2). Add the connections.

For 2) For all the interfaces provided by some of the components (where again “some” > 2): Specify them to the degree that we know the operations they contain. You might want to present the interfaces in a separate class diagram.)

For 3) Create a deployment diagram with the nodes you need and deploy the components on them. Don't forget the names for the nodes and the communication path between the nodes.1)

Your vision: You may solve this task instead for another vision as long as this system has at least three components.



Fixed format for the discussions in Task 22 to Task 24

During the development of software, different issues have to be resolved. The following short text describes on a very abstract level how issues can be discussed. 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>

Discussion:

<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 based on the assessment of the proposals.>



Comments:

  • 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 is 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.
  • As always we prefer to get Text or PDF files. This time Excel or OpenDocument-Spreadsheets are accepted as well.

Task 22: Discuss Software Mapping

5 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.

Issue:

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

Proposals:

  • Deploy the component on the mobile device.
  • Deploy the component on the server, where a fixed list of cloud BAKERY 2100's is maintained.
  • Deploy the component on the server and let each cloud BAKERY 2100 tell the server its location on startup.
  • [Other suggestions are welcome]

Your vision: If you are able to describe three different deployment proposals for any of the software visions, you may solve this task for that vision instead of the cloud BAKERY 2100.


Task 23: Discuss Data Persistence (optional)

[5 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.

Issue:

  • How should the data about Orders be stored?

Proposals:

  • Plain file
  • Relational database
  • Object oriented database
  • [If you have a fourth proposal, you can discuss it as well.]

Your vision: If persistence is an important aspect of a software vision, you may solve this task for that vision instead of the cloud BAKERY 2100.


Task 24: Discuss Access Matrix Implementation

5 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.

Issue:

  • How should the Access Control be implemented?

Proposals:

  • Global access table
  • Access control list
  • Capability based
  • [You may discuss even more proposals.]

Your vision: If Access Control is an important aspect of a software vision, you may solve this task for that vision instead of the cloud BAKERY 2100.


Task 25: Implement the Domain Object Model (optional)

[6+6 points]

a) Implement the Domain Object Model that we described in the sample solution.

<experiment> optional even within the optional task:

  • Would you like to participate in a little experiment?
    • Here is what you give:
      • A few extra minutes for installing the plugin and submitting
      • A detailed log of the state of your files while you have been programming.
      • The consent that Christian, Stefan, Nail (the diploma student), Daniel may review this data.
    • Here is what you get:
      • Feedback about your programming flow.
      • The chance to win a cute little present.
      • The good feeling of having contributed to the research of a fellow student.
  • Follow the installation instructions in the manual.
    Short version: Install git + drop the plugin into your eclipse/plugins folder.
  • After creating the Java Project for the DOM implementation, start the “Git Automatic Saver” as described in the manual.

</experiment>

Your task: (You don't need to take part in the experiment, but you would be very welcome to do so.)

Implement the Domain Object Model that we described in the sample solution. That is: Implement the classes with their fields, the inheritance. The associations are implemented as well by fields of the referenced classes. One-to-many relationships can be implemented using arrays or ArrayList's3)

That's it!

<experiment> If you help us with the experiment, please do finally the following:

  • After you are done with your task, submit the git repository created in your Java Project together with the rest of your code.

</experiment>

b) For experts, who are bursting to do some more programming: Create JBehave-scenarios to test that different users have different orders, that only available baked goods can be ordered, and that the price of the products is shown in the orders. Once you have these tests, make them succeed by improving the implementation of the “cloud BAKERY 2100”.


Images

1)
Since UML 2.0 actually “artifacts” and not “components” are deployed. Unfortunately Astah does not support artifacts in deployment diagrams till now, so we stay with the old UML. The lecture did the same.
3)
More details about implementing associations will be presented in a few weeks in the lecture.
teaching/lectures/oosc/2014/assignment_06.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2024