CS 204: Software Design

Final project

Let's put some of the ideas from this course together into a final project. This project is pretty open-ended, but here are some guidelines and constraints.

  1. Your choice of topic.

  2. Teams of size 1-3.

  3. Scale similar to the web app. Keep in mind that you only have 19 days, and you also have the code review and revision in the meantime.

  4. Two choices of frameworks

    • A Java GUI application using a variety of Swing classes, including menus, windows, buttons/textfields/etc. as appropriate.
    • OR a web application using Javascript, HTML, and CSS on the client side to implement the user interface, and Ajax-style communication with the server.
  5. Focus: usability and extensible architecture.

  6. Use the good design and coding practices we have talked about:

    • from the beginning, think about the needs of the people using your software
    • from the beginning, think about how to test your project
    • good naming
    • clear documentation of functional interfaces
    • consistent error handling
    • well-focused functions and methods ("functional cohesion", etc.)
    • extensible class structures (possibly using known design patterns for that purpose)
    • robustness in the face of bad data
    • etc.

    This is an opportunity to practice professional development from the beginning of a medium-sized project.

  7. Schedule

    • Monday, May 21. Bring a short project description with 3-5 key user stories to class. Bring enough paper copies so everybody at your table can read one. (N/2 copies should be enough.) Get feedback from your table.
    • Wednesday, May 23. Bring rough mockups and class diagrams to class. That is, first draft layout of the user interface, and first draft structure of the underlying code (including essential instance variables and method signatures). Bring on paper, on thumb drive, or make available via the web. Get feedback from your table.
    • Friday, May 25. Submit to me as pdf in your Courses Hand-in directory: your original description and user stories, an updated description and user stories improved after feedback, your original mock-ups and class diagrams, and your updated mock-ups and class diagrams after feedback.
    • (Monday, May 28: this is now the due date for your revision of a previous project)
    • Monday, June 4, 5:00PM. Submit all code, data, and documentation via Hand-in or cs-research1, as appropriate to your style of project.

Have fun!