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

User Tools

Site Tools

Assignment 3

Task 9: Warm up.

Specify which of the following statements are functional requirements and which are nonfunctional requirements (Comment your answer):

  1. The online ticket system must enable a traveler to buy weekly passes.
  2. The system must be written in JavaScript.
  3. The system must provide a phone number to call when it fails.
  4. The customer must be able to buy a ticket within two minutes of registering
  5. The customer must be able to access their account 24h a day, 7 days a week.
  6. The system must be unavailable from midnight until 1:00 am for backups.


Task 10: Completing the Analysis Model, Robustness Diagram.

In the following, you are going to refine our model of the CoffeeMaker, which we introduced in the last assignment. Below you find a use case diagram. In addition, we have put together a class diagram showing the CoffeeMaker DOM.

Use Case Diagram for the Coffee Maker 2000

Domain Object Model for the Coffee Maker 2000

As usual, the the DOM does not contain any boundary or control objects, but only entities. Your tasks:

  • Identify the missing controls and boundaries.
  • Draw a robustness diagram that includes the classes from the DOM as well as control and boundary classes you have found.

Task 11: Completing the Analysis Model, Sequence Diagram.

Next, we want you to map the functional behavior defined by the use case model onto our analysis object model. In other words, we want you to express the use cases as interaction between objects of the analysis model. Please pick one of the two “Process Order” use cases fragments and draw a sequence diagram that reflects the interaction described by the use case.

Task 12: System Decomposition.

In this task, you will use the analysis model completed in Task 10 and take it as a starting point for the model of the solution. Usually one starts with deviding the system into small concise units which can then be refined (moreless) independently. Those units are called subsystems. Please define a decomposition into subsystems. Try to adhere to the Heuristics to identify subsystems. we collected for you.

Task 13: Object Oriented Programming

Part 1 - Implement the classes and methods so that these tests work properly. Be sure to implement the correct intention.

Part 2 - specify for all methods that you implemented if they use overloading or overriding (→Solutions file)

Please do not change the test file. If you feel like adding some stuff, or want to modify for test purposes, you could copy&paste/rename this file and could also check it in.

You will find the source code in the project A3T13-O1-Shapes in your team's repository (

Optional Task 1: Exceptions

The Square() class in Task 13 does not have a setPoints(ArrayList<Point>) methode. Write a JUnit4 test for that method and implement it: The methode should accept 4 points in an ArrayList if and only if the 4 points are actually creating a square. In any other case you should throw some Exceptions.

teaching/lectures/oosc/2008/exercises/assignment3.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2020