(a) During the lecture we discussed different architectural styles. Pick three of these styles as you wish and find examples for their usage in the real world. Discuss shortly how the styles have been applied and why they probably have been chosen for the given problem. Can you identify some important non-functional requirements that might be involved?
(b) Select one of your examples of (a) and describe it in more detail. Describe an interesting part of the system and use UML component and deployment diagrams to illustrate it.
Please upload, as usual, your solutions to the SVN.
Based on the system decomposition you have completed in Task 12 (see also the sample solution) draw a deployment diagram restructuring your subsystems into nodes an components, interfaces and associations. Consider concrete hardware nodes that may be used to assemble a coffee machine and its user interface and the communication between them and external systems. This may trigger the identification of new object and subsystem, e.g. for transporting data among the nodes.
Terms and Concepts
Assess by marking which of the following statements are correct or wrong. Each correct cross results in 1 point, each wrong cross in -1 point. Statements without a mark are not considered in the evaluation. The minimal number of points is 0 for both sub tasks.
|A use-case diagram allows software developers to reason about the desired functionality of a software system|
|A class diagram aims at modeling behavioral aspects of a software system.|
|A collaboration diagram features a life line to visualize the time order of messages that are sent between classes.|
|Deleting an object being an instance of a composite class in a composition association (see figure below) leads to the deletion of all n associated instances of the class representing the parts|
(b) System Design
|Low coupling means that a change in a subsystem probably affects the functionality of all dependent subsystems|
|Service-oriented architectures (SOAs) aim at decomposing a software architecture into three different elements: service provider, service consumer and service registers.|
|In open software architectures consisting of many hierarchical layers, any layer can invoke operations from any layer below.|
|The use case model does never affect the selection of a software architecture|