Homework 5

The goal of homework 5 is to generate a set of requirements, use cases, their associated activity diagrams and an initial class diagram for the system that you will be designing for your semester project. (If you are not yet on a project team or you do not have a topic selected, please send e-mail to Prof. Anderson ASAP, so we can get you on track.)

In generating the requirements, you want to identify the main goals of the system and its associated responsibilities. This list may be short but it should attempt to convey the "big picture" view of your system and what it is trying to accomplish. The requirements in this list can shift from being descriptions of functional capabilities to discussing constraints (such as platforms, number of users, etc.) to discussing other non-functional characteristics of the proposed system.

Next, identify the tasks that your system supports (if you support more than one type of user, you'll need to develop tasks for each of the different types) and document how the system will support each task via a use case. Try to think of the various problems that can occur while trying to accomplish these tasks and document them in the use case, using the format I showed when discussing Homework 3 in lecture before the midterm.

Next, create activity diagrams that document the paths contained in each use case. Typically, you will have one activity diagram per use case, but if you can think of a way to combine multiple use cases into a single activity diagram that's fine too.

Next, create a class diagram that documents the major concepts of your application domain and how they relate to one another. These concepts will likely become the "model" in your final system (over which you'll build various views and controllers). If you can identify methods and attributes for these classes, that is fine. Look for opportunities to apply design patterns if that makes sense (although that is not required at this point).

Finally, draw a diagram that shows the architecture of your system. Is it a web app? A mobile app? Does your mobile app interact with a web service? Does your web app interact with both desktop and mobile clients? etc. This diagram will be a boxes-and-arrows diagram that shows the various architectural components of your system (devices, databases, 3rd party services, etc.) If you have questions about this part of the assignment, you can take a stab at creating the diagram and then send it to Prof. Anderson for review.

This assignment is worth 60 points. (10 for the requirements, 20 for use cases, 10 for activity diagrams, 10 for the class diagram and 10 for the architecture diagram.)

This assignment is due on Friday, March 11 at 11:59 PM. Please submit a single archive containing all of your work.

© Kenneth M. Anderson, 2011