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

User Tools

Site Tools

Assignment 8: Aspect Oriented Software Development with Use Cases

Due at Thursday, January 7th, 11:00 am (before the lecture starts)
Solve EITHER Task 20 OR Task 21. Not both!

Task 20: Develop our Hotel Management System with AOSD

8 points

Develop our Hotel Management System following the aspect-oriented approach presented in today's lecture. You are free to reuse any model that was present in the lecture or that you (not other groups) created during any of the previous assignments. We want to see models as well as code. Your solution doesn't need to be a complete Hotel Management System, but the model you are suggesting should be sound and your code should be doing his job.

Your solution has to contain:

  • Model
    1. An Use Case Diagram including at least one «extends» relationship.
    2. A Model showing Use-Case-Slices and Non-Use-Case-Specific-Slices as packages that depend on each other. (If you want to show a fancy solution create a UML profile that provides these stereotypes.)
    3. Use Case Realizations of the extended and the extending Use Case. (Use Case Realizations are Analysis Object Models just for one Use Case.)
    4. Transform these two Use Case Realizations into Use Case Slices that depend on each other.
  • Source Code
    1. A user interface, controller objects, and entities. (You do not need to implement persistence, but you can.)
    2. Some use case specific behavior introduced into an entity or boundary object via an inter-type declaration.
    3. An implementation of a non functional requirement with an Aspect. (The Aspect has to have at least one pointcut that matches at at least three places in the code.)
We provided you with a template that corresponds to the package and use case structure shown on the slide. If you want to use it, do so. If not, feel free to create a completely different structure.
The important thing for us here is that model and code match. Neither of them has to include all the different features we talked about. It is completely sufficient to have a small core functionality included. The code does not have to be perfect. You can get full points even if something is not working.

Task 21: Simple Mobile Phonebook

1 + 2 + 1 + 1 + 3 = 8 points

SimpleMobilePhonebook is a small application running on mobile devices. A user can edit the details of his contacts. A contact has a name, a phone number and an address. For every contact there can be a voice file recorded as an alternative mean to identify the contact. A user can make a call by entering the name of a contact or by voice lookup. To call a contact identified by voice file, he presses a special button on the screen; the device records his voice and compares it to the voice files for the contacts. If none of the voice files matches with a high enough score a list with the best matches will be presented from which the user can select the contact. After successful selection of a contact the call is initiated.

Study the Use Case Diagram thoroughly.

a) Draw a class diagram showing the Domain Object Model (= the entities). It’s quite simple.

b) Based on your Domain Object Model and the Use Case Diagram create an Analysis Object Model using the «boundary», «controller», «entity» stereotypes.

c) Which of the elements (including all three stereotypes) in your Analysis Object Model realize the following use cases?

  1. Edit Contact
  2. Call Contact identified by Voice File
  3. Handle no precise match found

d) In which sense it there “scattering” or “tangling” in your model?

e) Draw a version of the Analysis Object Model separated into Use Case Specific Slices. Either use a graphic program and edit the picture below or bring a print out to the presentation.

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

SEWiki, © 2024