CS 371 Lab #9: Coding, Documentation and Integration

This lab is about integration of different teams' code. In order to successfully integrate with each other, we mainly need to be able to read and understand each other's code, for which we will need all the help we can get.

We can't integrate until we actually have code checked into CVS, and I would daresay, until that code is adequately documented such that others can tell how to call it and what it calls.

Lab Work Step by Step

  1. For each source file, prefix a header at the top that includes the filename and contact information for the author(s). For your convenience, I have put a link to the Standard Header (in C++ ) which you can copy and fill in. If I have to go into CVS in order to know who to e-mail about a question in your code, you have not done this step!
  2. For each nontrivial class variable (field) and method, consider adding a comment explaining what it does. Assume your audience is your classmates, and that they may have to understand and modify your code at some point when you are not around. Reformat your class variable list to be one variable per line to allow for this documentation. I will let you know if you have not commented something sufficiently for me to understand it. Do not insert useless comments. Example useless comment for, say, a class variable:
        x,  # this is variable x
    
    Example more useful comment:
        x, # location of unit in hex coordinates (not pixels)
    
  3. Talk to your classmates. For each point at which one team is calling another team's code, discuss and agree upon the caller location (class and method), the callee method name, parameter(s) and return type. Write these down. List any side effects (e.g. assignments to global variables, changes to structures) that the caller may need to check. For the purposes of this exercise, consider the map team to "own" class Game, and therefore, the program main flow of control. E-mail the contracted public interfaces to me, along with a comment on the current state of the interface, one of: nonexistant, present but unimplemented, present but changes needed, working.
  4. Use the rest of this lab period to work on the project, especially parts where you may need to talk to your classmates. I will be available to consult on it.