Feb. 15, 2010
Due Feb. 23
Each group writes a design document for the group project. Design is done by decomposing and assigning responsibilities, to produce system components that take on appropriate responsibilities. You may want to refer to discussions in Section 2.5 of the textbook. You are asked to draw UML diagrams using UML tools. You may use any UML tool you like, but you need to specify exactly which tool you used and why you chose it.
The design document has three parts, where the third part is for extra credit. It is due before class time (12:50pm) on Tuesday Feb. 23.
Part 1. Decomposing ResponsibilitiesWe decompose responsibilities in use cases into parts with finer-grain responsibilities, so that no part is too big and sharing is maximized. It has 2 steps.
1. For each use case, if it is too big, decompose its responsibilities into a set of parts of smaller responsibilities, and possibly decompose the parts into subparts, repeatedly, until no part is too big. Describe the resulting part, giving each part a label.
Among all use cases, try to decompose in a way that maximizes shared parts that take on the same responsibilities. Describe sharing explicitly, i.e., indicate, using the labels, which parts of which use cases have the same responsibilities.
2. Draw UML sequence diagrams that show the decomposed responsibilities. Do this for the most important and interesting use cases (most important for achieving the behavior of the system being built, and most interesting in terms of having most responsibilities, having most sharing with other use cases, or other ways that you found interesting). You should draw at least 2-3 sequence diagrams, depending on how well they cover your system behavior.
Part 2. Creating a Class Diagram
We construct an overall design of classes, together with their relationships and attributes. This has 2 steps.
1. Project the objects and messages from the sequence diagrams constructed above to form classes and methods, and add relationships and attributes for the classes. Show the resulting class diagram.
2. Extend the class diagram with other classes and relationships that are in other parts of your design not shown in the sequence diagrams. Compare with the domain model you build last time to make sure that you included at least everything from before. Show the resulting class diagram, and indicate explicitly the additional classes not in the first class diagram.
Part 3. User Interface Design
This part is for extra credit. Your system design above should already have user interface components and associated attributes.
This part asks you to sketch the main screens/pages that will appear in the user interface. You may draw the sketches by hand and scan the drawings for inclusion in your electronic submission, create them using the drawing features in some program, e.g., Visio, Word, or PowerPoint, or implement the screens/pages and submit screen dumps, but you don't need to implement the underlying application logic at this time. You can hardwire sample data into the screen/page.
Requirements on giving credit
For anything in your submission that is not a creation of your group, explicitly include a section or sections containing references and acknowledgments giving credits to the sources.
For any part of your submission that is a creation of your group, indicate who in the group did it; for shared work on a part, indicate who did what percentage. Describe this explicitly in a separate section at the end of your document.
Extra credit suggestions
As in the extra credit part of Assignment 1, and Part 3 above.
Before due time on the due date, each group should submit their assignment through blackboard, and include a link to it on the project web page. Please also submit a hardcopy of the design document to the TA during or before his office hour on Tuesday.
The first two parts are worth 60% and 40% of the grade (Part 1: 30% for each of the two steps; Part 2: 20% for each of the two steps). The third part is worth 10% extra credit. Writing and presentation problems may loose 10%. Not using UML tools may lose 10%. Submissions missing the part on giving credit will lose 30%. Exceptionally well thought-out and well written homeworks will receive appropriate extra credit.