For the first group project milestone, you will be doing the object-oriented analysis (with CRC cards and Scenarios) of last term's project—2-D Animation Studio. It is important that you get used to CRC cards and learn how to use them properly before you start your project. By having you do the analysis for a different project, you will have a chance to get feedback before starting on the wrong foot.
To help you do a good job, you may want to look at others' solutions from last semester. Several groups posted their CRC cards on the Cases page. Feel free to borrow their solutions; as long as you can explain the design, it is fine.
2-D Animation Studio
For the animation studio, you will concentrate on having talking characters and moving them around the stage area at the appropriate times. You can do some fairly entertaining animations just using these type of things. The characters and the animation don't have to be too sophisticated to create a cool effect. If your studio is good, you should be able to create an entertaining animation play.
At minimum, the character should consist of a head and a body. The head should be able to do head-like things: blink, nod, open-mouth, etc. The body should be able to do common body things: walk, wave, jump, etc. You should also be able to have characters speak, both with speech bubbles and using speech synthesis; when the character speaks, the mouth should move along with the sound. You should also allow for different looks for different characters. So, for instance, on South Park, when the characters are walking, you see them from the side. Walking looks quite different in that case. (Note: how you organize these things as objects is up to you: Does a body have a head? Does a head have a mouth? Is the mouth responsible for speaking? Does a character have a costume?)
Everything in the studio should act at the appropriate time. So, for instance, if one character says a line, it should be easy to specify that the next character will speak after the last character finishes. It should be possible to specify that a character starts a line 2:14.5 minutes into the song.
It should be possible to switch between scenes, where a scene might have different characters and background. The perspective too should be flexible, so a scene can be set so that one character is always in the middle. This would be useful for something like a walking scene, where characters walk, but it is the background that moves. The perspective should be able to do things like pans as well.
Figure 1: Various FaceMorphs
Of course you can reuse some of the things in Squeak or, at least, draw inspiration from them. Something to particularly think about is using Squeak's FaceMorph. It does many of the things for you already. While these type of code-specific considerations are not that important in object-oriented analysis, it may help you to see what someone else has done and may give you some good ideas. Another thing to draw inspiration from is SqueakAlice, which is a simple 3D animation studio.
Designing good software is not just about creating good code. The software has to be useful to somebody as well. Who is that person? Good software design is driven by a good understanding of who is supposed to use this system. Write a paragraph (4-7 sentences) about who you intend to use this software and what you think would be important for that person.
Check List of Things to Complete
Work together to create CRC cards, Scenarios, and the User Description