Com S 362 --- Object-Oriented Analysis and Design HOMEWORK 4: TEAM PROJECT SECOND ELABORATION ITERATION (File $Date: 2002/03/16 02:12:19 $) Due: parts (a) and (b) by Mar 8, at 11AM. The rest by Mar. 29, 2002 at 11AM. 335 points READINGS: chapters 9-23 of Larman's book (Applying UML and Patterns, 2nd ed.). This homework is the second iteration of the elaboration phase of your team project. We have (somewhat artificially) set the length of the iteration as four weeks. (You could do two shorter iterations within this time frame if you wish. We are taking into account Spring break.) Your task is to do the following (all of which focus on the application logic layer, but you can optionally do similar things for other layers if you find that helpful.) a. (20 points) Summarize what you learned about your team's project's requirements, design, and and implementation from iteration 1. This can be a paragraph or two of text. b. Use case model. (i) (5 points) List all the names of all the use cases for your project. (This can be an index on a web page with hyperlinks to the use case text if you wish.) (ii) (10 points) Determine a subset of the use cases (and scenarios within these) for your project that you will implement by the end of this iteration. (iii) (30 points) Write all of the use cases from which you are implementing scenarios in this iteration or have implemented scenarios in the previous iteration in fully dressed format. (See Larman's book, section 6.6 or go to usecases.org for the format.) That is, if you have implemented or are going to implement a scenario from a use case by the end of this iteration, then you must have a fully dressed version of that use case. (iv) (20 points) Write at least some of the remaining use cases in casual format (see Larman section 6.3). You must write up enough of these so that at least 67% of the use cases in your project are done in either casual or fully dressed format. (v) (10 points) Write up all the remaining use cases in brief format (see Larman section 6.1). (vi) (10 points) Write system sequence diagrams (see Larman chapter 9) for all of the scenarios that you are implementing in this iteration. c. Other requirements (10 points) Include other requirements artifacts that you find helpful. For example, you may want to write system operation contracts (see Larman Chapter 13) for some of the system operations if they are subtle or complex. You may also want to present a refined supplementary specification or a glossary. If you don't need any other artifacts, write a brief statement as to why and label it "part c". d. Domain model. (30 points) Present a domain model, including at least a conceptual class diagram for concepts in the domain you have identified. Use the notation described in Larman Chapters 10-12. e. Design model. (i) (30 points) Present a design class diagram for classes in your implementation and planned for this iteration. Use the notation described in Larman Chapter 19 for this. (ii) (50 points) Present your interaction diagrams for your design, along with any commentary needed to help understand them. Use either sequence diagrams or collaboration diagram notation for this. (See Larman chapters 15-16 for notation.) (iii) (20 points) Include on your interaction diagrams dog-eared boxes (annotations) with names of patterns to indicate what patterns you are using to assign responsibilities. See Larman's chapter 17 for examples of this, e.g., Figure 17.7. (iv) (optional) Include any other artifacts for your design that you feel are useful. For example, you might need a database design. f. Code (50 points) Give us a printout or access to your code. This must be in an object-oriented language, such as C++ or Java. g. Test (i) (10 points) Present your test plan and results. You should have some way to do system testing and unit testing. Unit testing should be repeatable. (ii) (20 points) You must schedule a demonstration with our teaching assistant, which should show how the system works on the test case scenarios you implemented, and which also demonstrates some of your testing. This should be scheduled within a few days of the due date of this homework. Your grade WHAT TO HAND IN Please clearly label the artifacts you are turning in. Be sure to use the proper UML notation; however, you do not need to spend lots of time formatting diagrams to make them look nice; the quality of the design matters more. For parts (a)-(c), hand in something on paper. A printout of the use cases and the justification is sufficient. You don't need to give us a certification form for this part. For parts (d)-(g) either give us a copy or printout of the artifacts, or point us to a web site (or a combination of both). The appropriateness of your work will be judged on how well designed your system is, and how well you are addressing the core architectural issues and the risks in your project. Also, don't forget to hand in the course's "Certification of Individual Contribution and Understanding Form". You can find this form in 3 formats from the course web pages at the URI: http://www.cs.iastate.edu/~cs362/docs/ or on the department machines in the directory /home/course/cs362/public/docs/ The certification form must be printed and signed, you cannot turn that in by email.