Programming Assignment Documentation


Each of the programming assignments for this class will be presented in the form of a Statement Of Work which is a customer description of the system to be developed and will be posted on the web page. For each of the programming assignments you will prepare several written documents. Each of these documents is described below.

All documents will be submitted to the instructor via e-mail and must be in either Microsoft Word .doc format or Adobe Reader .pdf format.




Required Documentation



Some Notes on the Design and Planning Documents
It would be a good idea to read all of this carefully.

  • Programming assignments in this course are more involved and complex than those in any other course you have taken. You will not be able to just sit down and hack out the code without forethought and planning. It you try to do this you will fail.

  • The documentation in this course is not "busy work". It is intended to guide you in planning and designing a good object oriented project.

  • If you do not follow the standard steps in the object oriented software engineering design process you will not be able to implement fully functional code. Just ask anyone who has taken this course and failed to complete all the programming assignments.
    • Define and clearly understand the project requirements.
    • Determine what objects will be needed in the program. (A UML class diagram of the proposed implementation is a good way to show this.)
    • Determine what will be the functional responsibilities for each object in the program and what services each will provide to other objects. (List the functions each class/object will need and what member variables the class will need.)
    • Design the algorithms needed in each function in each object. (Write out the algorithms in pseudocode and manually step through them to determine if they are correct.)
    • Implement code, thoroughly test, and revise until the program meets all the requirements and functions correctly.
  • You will not have time to just sit down at the computer, hack out the code, and then reverse engineer it to produce the documentation. In fact if you just sit down at the computer and hack out the code you are doomed to failure. Again, just ask anyone who has taken this course and failed to complete all the programming assignments.


BTW: Don't forget you must include the following comment at the top of EVERY source file (.h and .cpp). This is required by the Department of Computer Science.
			
			
			/*******************************************************************
			*   Source Code File Name
			*   Programming Assignment number and name
			*   Author: Your Name
			*   Date: Month and year
			*   
			*   This program is entirely my own work
			*******************************************************************/
			
			
			
All documents will be submitted to the instructor via e-mail and must be in either Microsoft Word .doc format or Adobe Reader .pdf format.




Preliminary Class Diagram

The following is a simple example of a Preliminary Class Diagram. This should be a UML diagram using standard UML icons and should show all classes that will be included in the design and how those classes relate. There should also be a brief description of each class. The descriptions can be included as "notes" in the UML diagram or submitted separately as a Word document.

On the announcements page you will find a link to download a copy of a PDF version of Martin Fowler's UML Distilled. The instructor can also provide you with a copy of the Star UML application for drawing UML diagrams. This is free public domain application which you can download from the web, but the download is slow. You can find the installer EXE file on the K drive in any of the labs: K://LABS/cs307/StarUML Installer. BTW: Star UML will allow you to "export" your drawing to a .jpg file or to the clipboard where it can then be pasted into a Word document.

Preliminary Class Diagram




Simulation-This object will create instances of the model, view, and controller objects, and initialize everything as needed to set up and run the simulation.

SimModel-This object will create containers of all the simulation object and provide an interface between those objects and other objects in the program.

Etc. for all other classes shown in the class diagram.

Class Outline

The following is a description of each section that must be included in the Class Outline.


Functionality Outline

The following is a description of each section that must be included in the Functionality Outline.


Final Project

The final project shall be submitted by creating a zip file (no other compaction format, like RAR is acceptable) of your entire project. This must include the entire Visual Studio Solution folder. The project must be complete so that the instructor can open the project, compile the application, and run it using Microsoft Visual C++ 2010 or 2012, (VERSIONS OF VISUAL STUDIO AFTER 2012 ARE NOT ACCEPTABLE). Just turning in your source files (.cpp and .h) is not acceptable. Projects built using any other development environment will not be accepted. Microsoft Visual C++ 2010 and 2012 have been installed on all of the machines in the CS computer labs. In addition the Computer Science Department has a site license for this development package, meaning you can get a copy of it to install on your personal computer. If you want a copy talk to one of the lab assistants. You may need to bring in a blank DVD to create an installation disk for your personal use. They say there is no charge for this service, but what do you think your lab fee is used for?