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

User Tools

Site Tools

Assignment 7: Architecture Organization

Release date: Monday, 23.05.11 - Due date: Sunday, 05.06.11, 23:59

Task 1: Deployment

3 points

For the seminar management system from Assignment 5 Task 3, the university provides a server, an internet connection, a database server containing a table for the students, seminars and reservations. The university wants the users to be able to use the application in their internet browser.

  1. Draw a Deployment-Diagram representing the software-hardware mapping
  2. The following design goals are important for the university, which software architectures fullfill these, discuss your decision.
    • Concurrency of independent workflows
    • Centralized storage of the seminars
    • Security of personal student information
    • High access rates (spikes) at the end of the registration phase

For this task, you can use our provided astah* component diagram (see the figure below).

The software architecture of the system
The software architecture of the system

Task 2: Modeling Error Conditions

4 points

In the lecture we discussed the differences between Checked and Unchecked Exceptions. Go through the following list of conditions and decide whether this information should be represented as Checked Exception, Unchecked Exception, or as regular element of the program flow (typically return values of type boolean or of an enumeration type). Give for each decision an argument (one sentence). In case your answer depends on a context, explain which context you are assuming.

  1. File can not be opened because no file with the given file name is found at the specified location.
  2. File can not be opened for write access because another user has locked it for write access.
  3. The user decides that he doesn't want to save the content of the file that he just edited.
  4. While saving the content of a large file the file system reports that it can't complete the write process.
  5. The user wants to send a file via Bluetooth, but he turned of the Bluetooth capability previously.
  6. A variable can't be read because of a memory malfunction.
  7. The connection to a remote server is lost during communication.
  8. The component that provides the basic user interface functionality can not be loaded.

Rationale format for the discussions in the following tasks

“Rationale Management” was not presented in the lecture, but is a very important activity during software development. The following tasks should help you to get a good practical understanding how to make decisions in a systematic way. Persisting the discussions that led to the decisions is very useful, as it helps future decision making. Especially rejected proposals do not need to be discussed again, as long as the criteria and the technical conditions don't change.

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

Present your solution in the following format:

Issue: <Will be given by the task>


<Proposal> <Proposal> <Proposal>
<Criterion> <Positive or Negative Assessment> <Positive or Negative Assessment> <Positive or Negative Assessment>
<Criterion> <Positive or Negative Assessment> <Positive or Negative Assessment> <Positive or Negative Assessment>
<Criterion> <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 (e.g. Availability, Responsiveness, Robustness) or non-functional requirements of project management requirements (Usability, Development Costs).
  • 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.
  • The following file formats are ok: Text, PDF (If you use the Excel, make sure that you export your solution as a PDF!)
  • (Optionally) you may use a decision matrix that we prepared in Excel.

Task 3: Discuss Software Mapping

3 points

In task 1 of assignment 5, we mentioned the following extension to the Bike Rental Outlet software:

  • Mobile access to the Bike Rental Outlets
    • Customers can interact with their mobile devices with the Bike Rental Outlets.
    • Special feature for GPS-enabled devices: Show the nearest Bike Rental Outlet.

We plan to write a component that allows to find Bike Rental Outlets. 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 Bike Rental Outlets 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.]

Task 4: Discuss Access Matrix Implementation

3 points

We want to define the Access Control for the Bike Rental Outlet, 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

Hint: See the slides of chapter 8.

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

SEWiki, © 2020