Homework 3

Homework 3 consists of producing the figures and narrative discussed below and submitting the assignment to me via e-mail using the guidelines presented on slide 13 of lecture 1 dealing with zip/tar archives or PDF files. This homework is worth 60 points (10 points for your use case, 10 points for each UML diagram, 10 points for the document that explains your thinking).

  1. Please read my post entitled The Fido Example that appeared on the class website's What's New page.
  2. Then imagine that the set of requirements shown on that page, and discussed during lecture 5, are updated with the following requirement.
    The system allows pet owners to create a profile for each dog that they own and then record one or more sounds of a dog to be associated with its profile. These sounds will serve as input to the Bark Recognizer allowing it to more accurately recognize each of the dogs. For instance, an owner may record their dog barking when it's happy or sad or agitated or hungry. The owner should be able to name each of the sounds, play them back, delete them and add a new one at any time.
  3. Create a use case in which the goal of the Pet owner is to test the ability of the system to create a profile, record a sound, listen to the sound after it has been recorded and then delete the profile (along with its sound). At the end of the use case, the system should be in exactly the same state that it was in before the use case started. Note: I have only sketched out the main success scenario of the use case and identified the primary actor. You will need to flesh the use case out: what other actor participates (hint: it's furry and likes to wag its tail) and how might things go wrong? If something does go wrong, what does the system do in response? Recall that since we are trying to achieve the primary actor's goal at all costs, corrective actions to problems that occur should attempt to get the main success scenario back on track.
  4. Then create an activity diagram that models all of the paths contained in your use case.
  5. Identify an activity or set of activities in your activity diagram and create a sequence diagram that shows how objects in the system behave when those activities are active. Note: you need to pick a set of activities that allows you to create a non-trivial sequence diagram. (I don't want to see a sequence diagram with just two objects and a single call between them!) Be sure to indicate what activities the sequence diagram is covering.
  6. Pick one of the objects in the sequence diagram that has multiple types of behavior and model its state transitions in a state diagram.
  7. Use all of the information contained in the above artifacts to create a class diagram for your system. You can start with the one shown on The Fido Example post if you want and then show what additional classes and relationships this new requirement and this new use case have added to the system.
  8. Finally, write a narrative that describes your work in creating the use case and the associated diagrams and the thinking you used in going from one to the next. For example, you might touch on issues such as: What information did you pull out of the other artifacts to update the class diagram? Why did you pick the object that is modeled by your state diagram? How did you select the activities that your sequence diagram focuses on? Are you confident that your activity diagram captures all of the paths through your use case? etc.

Your submission will either consist of a single PDF document that integrates your narrative along with the requested use case and diagrams or it will be a zip/tar archive that contains five PDF files, one for the use case and each figure, and a PDF or text document containing your narrative.

Due Dates: Homework 3 is due by 11:59 PM on Wednesday, February 2, 2011. Any homework submitted after that time but by 11:59 PM on Wednesday, February 9, 2011 will be graded but will receive a 15% penalty. After that, submissions of Homework 3 will be ignored.

You are encouraged to work in teams on this assignment; it is not required just encouraged. Get started soon!

© Kenneth M. Anderson, 2011