Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Release date: Tuesday, 14.05.14 - Due date: Sunday, 18.05.14, 23:59
9 points |
---|
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.
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.
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:
5 points |
---|
The cloud BAKERY 2100 is accessed from mobile phones. Here is a suggestion for an extension of the system:
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:
Proposals:
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.
[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:
Proposals:
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.
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:
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.
[6+6 points] |
---|
a) Implement the Domain Object Model that we described in the sample solution.
<experiment>
optional even within the optional task:
</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:
</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”.