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

User Tools

Site Tools

Assignment 4: Requirements Analysis (alternative approaches)

Due at Thursday, November 26th, 11:00 am (before the lecture starts)
You find a sample solution to task 10 and 12 in the SVN:

Project: A04T10_EffectiveUseCases_Solution (based on the solution from group 14) and A04T12_HotelDomainInColor_Solution

Start with Task 10 or Task 12.

Task 10: Practice Writing Effective Use Cases

4 points

The following should let you experience how easy it can be to develop a broad picture of a system if you postpone the precision till the time it is required.

Please use only plain text (and a Use Case Diagram if you want).

We prepared an almost empty project A04T10_EffectiveUseCases where you can add your results.

Pick any software product you want to create.

  1. Name the actors and the goals they want to achieve with this system. Structure these goals into a hierarchy (like on slide 19, sea level till kite level).
    [For this exercise: Should be 2 to 5 actors, with 4 to 10 goals in total]
  2. Pick 2 of the user goals at “sea level” (i.e. goals that can be fulfilled with one interaction sequence between actor and the system, corresponds to use cases), and describe the steps by which the actor achieves this goal. (You may use a use case diagram to show this hierarchy.)
  3. List all extension conditions that could occur during these two interactions.
  4. Describe for two extension conditions how you could handle them.
  5. Write one summary use case that describes how a user can achieve a summary goal with a sequence of user goals (like on slide 20).

Task 11: (optional) Explore data granularity using a lattice

6 points (optional!)
This task is highly experimental. You get a first glimpse on recent (independent) technologies: Model Transformations, Formal Concept Analysis. Feel free to ask questions via mail directly to the teachers or the tutors.

Getting comfortable with the tools

  • Download and unzip the Concept Explorer
  • Check out the project A04T11_WineDistributionCentre
  • You find a partial Analysis Object Model that describes which control classes operate on which entity classes (control ~ use case, entity ~ “thing”).
  1. Start the generator1) in the project that creates an input file for the Concept Explorer based on the Analysis Object Model.
  2. Open this input file in the Concept Explorer.2)
  3. Transpose the table (So called “Context”) and generate the lattice.3)4)
  • Explore the lattice so that you will be able to explain your tutor slide 36.

Evolve the Analysis Object Model and regenerate the Lattice

  • Adjust the Analysis Object Model following the suggestion of a domain expert and repeat steps 1) to 3). Use navigable associations5) to connect the new control classes with the entity classes.
  • The domain expert suggested to add the following use cases (control classes):
    • CreateDeliveryInstruction, operating on Destination, DeliveryInstruction
    • InsertDetailedOrderedItem, operating on DeliveryInstruction
    • AttachDeliveryInstructions, operating on Destination, DeliveryInstruction, DeliveryTruck


  • Discuss how useful this view is for you. (6 to 20 sentences)
    • If you are satisfied: Describe how you can make use of the lattice.
    • If you are dissatisfied: Describe why it is hard for you to make good use of the lattice, or how you could achieve your goals in an easier way.
  • You can find the paper on which the lecture and this task is based here.

Task 12: Modeling in Color

3 + 3 = 6 points (+ 3 extra points for the optional part)


  • Check out the project A04T12_HotelDomainInColor. HotelDomain2.umlclass is a slightly modified solution to task 8.
  • Apply the archetypes (moment-interval, mi-detail, role, party, place, thing, description) to the classes.
  • Add a note to each class explaining why you have chosen the archetype.
  • (Optional) If - as a result of the color modeling - inconsistencies in the model become obvious, you are welcome to add notes about that.
  • Notes
    • Technically you apply a UML-stereotype, but the intention behind these stereotypes is to express a meaningful yet not technically precise idea. Peter Coad had therefore chosen to call these archetypes not stereotypes.
    • Unfortunately the tool doesn't apply the colors automatically. We are fine with just the stereotypes. Of course you can add the colors manually.


  • In HotelDomain3.umlclass we started a new domain model.
  • We already expressed that Reservation, Renting, Invoice, and Payment take place at separate moments or time intervals.
  • Sometimes a request for reservation occurs even before the reservation.
  • Add the appropriate archetypes to the classes Person and Room.
  • If later on required you may add further classes with appropriate archetype.
  • It should be possible that the person who reserves rooms and receives the invoice is different from the persons who actually stay there. Express this in the model.
  • Till now only the Invoice has details, but it makes sense for almost all other classes: Add the missing mi-detail classes.
  • Review your model and add missing classes and associations.

c) optional!

  • Create a sequence diagram to express the similar behavior as in task 9b.
  • Alternatively you could create a sequence diagram to describe how the operation createInvoice in Renting could be realized.

Screenshots for Task 11

teaching/lectures/atsc/2009/assignment_4.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019