Here are the elements of a simple project that is specified in XP style. Note that this is far too simple as a project in CS 631N. In particular it has no persistent storage.
This project is to develop a very simple chat room using client server architecture. It will manage only a single room of four or fewer members. Each client (chatter) will be able to type lines that are echoed to all connected clients.
The specification was given by a set of stories developed by the client (a person who will be a user of the sytstem). Each story mentions one feature of the desired system. When all stories have been implemented the system is complete. These stories have not been estimated or prioritized. In XP they will be estimated by the developers (time to completion) and then prioritized by the client.
For the server we estimate 6 classes with about 30 total methods. The client will require about 3 classes with 12 or so methods.
Here are the CRC cards for the project.
The final design is available. The preliminary design has been lost. (Examination shows that this can be improved--it has a certain "smell.")
Client html page -- If the server isn't running this won't show you anything, but you can view its source or download it.
The actual code has four classes and five total methods in the server and two classes (one inner) and six methods in the client, so the original scope was an over estimate. This does not include system classes and inherited methods, however. The server used arrays and about nine system classes. The client used about 16 system classes.
If you want to run this on your own system, use "localhost" as the server machine in the Applet tag in the html page.
Last Updated: September 4, 2001