Assignment for CS4 Due in-class Week 4 Deliverables: 1. hard copies of your design drawings, which must be neatly HAND-DRAWN. Identify your diagrams as a. class diagram b. object diagram c. interaction diagram and put your name on each page. Each diagram should fit neatly on a single, letter-sized page. You should make and deliver copies and keep your originals. 2. a feedback.txt file containing your thoughts and impressions. What went well? What problems did you have? Hand in your HARD COPY to me at the start of the class. -- email with questions --------------------------------------------------------------- Overview and Resources When solving a problem it is useful to draw pictures. George Polya's book, How to Solve It, says "Draw a figure". This assignment's goal is to have you draw pictures that represent your initial design ideas for the course project. Read the UML guide in http://edn.embarcadero.com/article/31863 to learn about how to make UML drawings. Also refer to the Eckel text on the subject of CRC cards; these are a useful way to begin developing the classes and relationships of your design. Diagrams Your first diagram must be a class diagram identifying classes and their relationships. This represents the high-level decomposition of the solution into multiple 'parts' that will collaborate to achieve the goal. This describes the kinds of objects in your envisioned solution system. Your second diagram must be an object diagram. This shows the objects after the program constructs them while running. You should show more than one instance of those classes that will have more than one instance in existence at a time. As with class diagrams, you also show the connections between objects that 'talk' to each other by calling methods. Your final diagram shows interaction behavior in either a sequence diagram or a collaboration diagram. (See the resources for examples.) These diagrams show the behavior of the system as the code executes. You should experiment with both kinds of diagram and find the one you like best; they are equal in expressive power. The specific behavior to diagram is the algorithm described in the project. Using the objects in your object diagram, develop a sequence or collaboration diagram that shows the objects implementing the algorithm. Notes and Documentation You will want to put notes in the diagrams to explain parts of the pictures. Be sure to identify your notes separately from the diagram elements. For example, you could start each note with "NOTE:" text. If you want to link your notes to pieces of the picture, use dashed lines. Please PRINT all your notes and all the diagram text using BLOCK LETTERS. Consider these architectural sketches, and I am your client. DON'T PANIC! This will be the first time most of you draw pictures of designs. Your results will be formative and sketchy because (a) your design ideas are weakly formed so early in the development process (that's natural) and (b) your drawing skills have not developed yet. Even a simple 'napkin' sketch will help you to develop your thoughts on the problem and lead you to develop your design ideas. Start simply, and do not try to put too much information in too early. One way to proceed is by drawing simple "box and line" pictures. Then evolve the boxes and lines to become more formal diagrams by applying UML meanings to each box and line. Be sure you have a good supply of paper! --------------------------------------------------------------- What you should be learning from this homework: - ways to draw pictures of program components - ways to draw pictures of program behavior