Com S 362 --- Object-Oriented Analysis and Design HOMEWORK 5: TEAM PROJECT FIRST IMPLEMENTATION PHASE ITERATION (File $Date: 2002/03/28 20:15:54 $) Due: part (a) by April 5, 2002 at 5PM, part (b) by April 10, 2002 at 11AM, part (c) by April 29, 2002 at 11AM, part d by May 3, 2002 at 5PM. 335 points READINGS: chapters 1-2 of Gamma et al.'s Design Patterns book, chapters 17-30 of Larman's book (Applying UML and Patterns, 2nd ed.). This homework is the first iteration of the implementation 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. a. (50 points) Meet with Neeraj Khanolkar, our TA, for one hour, as a team. In this meeting, you will negotiate with us where subtyping and polymorphism should be used in the coding for this iteration, and what use cases and scenarios will be implemented. At this meeting, you will be expected to know what inheritance, subtyping, and polymorphism are. For an introduction see chapter 5 of Arthur J. Reil's Object-Oriented Design Heuristics. Addison-Wesley, Reading, MA, 1996, which is on reserve at the library. (You can also read about this in a book on Java or C++, or a general text on OOP, such as chapters 1-4 of Grady Booch's Object-Oriented Design: With Applications, Second Edition, Benjamin Cummings, New York, N.Y., 1994, or chapters 1-10 of Timothy Budd's An Introduction to Object-oriented Programming, Third edition, Addison-Wesley, Boston, Mass, 2002.) Your grade for this part will be 50 points if you attend and actively discuss the patterns and design. We won't be grading your knowledge here, although you will have to stay longer if we need to explain the concepts to you in more detail. b. (125 points) Write up a discusssion of how you plan to use design patterns, based on the negotiations in part (a), in your implementation. This discussion must be illustrated with (i) interaction diagrams and (ii) summarized in a design class diagram. You don't have to write interaction diagrams for your whole planned implemetation in this iteration, but you will need to use enough to illustrate all the patterns you are using. Your grade for this part will be based on the quality of your design. You can make changes from that negotiated with us, but these must be justified by you in writing. c. (50 points) Hand in a revised discussion of your use of design patterns in your implementation, as described for part (b). You may also hand in other artifacts that illustrate your analysis and design, but we leave these up to you. Do what you find helpful, and give that to us as documentation. d. (200 points) This should be scheduled within a few days of the due date of this homework, in any case by the due date given above. You must give a 50 minute 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. You will also be required to show your code at this time, to illustrate the design pattern usage. Your grade will partly depend on the extent to which you implemented the agreed-upon use case scenarios and design patterns, and partly on the quality of the implementation. WHAT TO HAND IN Please clearly label the artifacts you are turning in, especially in part (d). For part (c) you don't have to hand in a printout of your code, although 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. 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.