Com S 362 --- Object-Oriented Analysis and Design HOMEWORK 3: TEAM PROJECT FIRST ELABORATION ITERATION (File $Date: 2002/03/01 06:38:27 $) Due: parts (a) and (b) by Feb 11, at 11AM. The rest by Feb. 27, 2002 at 11AM. 200 points This homework is the first iteration of the elaboration phase of your team project. We have (somewhat artifically) set the length of the iterations as three weeks. (You could do two shorter iterations within this time frame if you wish, but we are taking into account the time needed to learn the various ideas involved in iteration.) Your task is to: a. (40 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. b. (10 points) Briefly justify why you have chosen these use cases and scenarios for this iteration. c. (140 points) Create appropriate artifacts for the this iteration of your project d. (10 points) Briefly justify why you have chosen these artifacts. Look in the chapters 9-20 of Larman's book. (Applying UML and Patterns, 2nd ed.) for a discussion of what kinds of artifacts to create. It must include some parts of a use case model, domain model, design model, and implementation model (code and tests). You should be prepared to give a demonstration of your code or provide us with output of test cases. Since you will be both learning a lot of things and trying to accomplish various things on your team's project, it's very important that you don't put off everything until the last minute. I anticipate two questions you may have at this stage. Q: What programming language should we use? A: Any object-oriented language (one with classes, inheritance, and (subtype) polymorphism) will do, although the obvious choices are either C++ (which most of you know) and Java (which is close enough to C++ you can learn it). Java has lots of libraries which may be helpful for your work. I would recommend it if you don't have strong feelings for any other language choice. Note that Visual Basic is not acceptable. Q: Should we use a tool (like Rational Rose) to draw UML diagrams? A: I recommend against this, because then you will spend a significant part of your time working with the tool. WHAT TO HAND IN For parts (a) and (b), 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 (c) and (d) 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 you have started tackling the core architectual 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.