CSCI 240 - Intermediate Report

Due Thurs Oct 25 at the beginning of class

The Assignment

Each team will submit a report providing in-depth documentation of their product's current design and implementation. This report will likely include details from your Requirements Specification and Design Documents; you are free to reuse this content as needed. However, this report will focus primarily on implementation details--what exactly have you built so far, and how does it work?

Your report should have the following sections:

  1. Cover Page: Include a cover page with the name of the project, your division, and the names of all your team members.
  2. Abstract: Like previous introductions, a brief summary of the product being developed and the contents of this report.
  3. Design Summary: Briefly restate the overall design strategy for this product. Be sure to include a design diagram of your product so that the functions of different modules are clear.
  4. Install Documentation: A description of all the necessary procedures a developer would have to completely install and run your product. If you are assuming a certain starting environment then explicitly state so (e.g. a Linux server with Apache installed). Make sure to include how the user would access and download your source code and product documentation.
  5. Implementation Details: Describe in detail the implementation of your product. This description should include:
    • A current class diagram of your product depicting all classes and their associations
    • Any complex algorithms, data structures, or design patterns your group used. Provide insights as to why you made the choices you did.
    • Be sure to describe any techniques you are using to ensure fault tolerance (e.g. if you have information to write to a db but the db is down what do you do?)
    • Identify all the data you are storing (ex. user authentication, medical records, back up information if the DB is down etc.). If your product contains a database include an ER Diagram and the schema for it; if data is not stored in a db, describe how it is stored including the format of this storage. Also describe why you made the design decisions you did.
  6. Procedures Followed: Describe the procedures you used in developing and implementing this system. Include:
    • A breakdown of development responsibility (e.g., who took lead on what)
    • Any tools you used (e.g., for source code management, project management, etc.) and any notes about that usage.
    • Any testing and verification procedure for your implemented code
    • The Coding Style Guide that your time is using. This should be fairly detailed including naming, coding conventions, and comment conventions.
  7. Reflection: A discussion of the process so far. Describe the major challenges you have met and how you overcame them. Are there things you would have done differently? What procedures were effective and what were not? How can you improve things in the second half of the course? Present a complete schedule for your project. This schedule should start from when you turned in your initial plan and project forward to the end of the project. Provide an indication of target dates and goals that were met, goals that were late, and goals that were discarded. Clearly indicate future milestones including dates and team member responsibilities.
  8. Timeline: Restate a complete schedule for your project. This schedule should start from when you were assigned a group forward to the end of the project. Indicate which target dates and goals were met, which were late, and which were discarded. Clearly indicate future milestones, including dates and team member responsibilities.
  9. Glossary and References: As always, be sure to define any technical terms you use, and to include links and pointers to any tools, packages, or systems that you mention in your document. Always cite others' work!

Submitting

Upload a pdf copy of your document through Moodle. Note that your reports will be shared with the class.