Documentation for Concurrent Programs

1.       An English description of the overall function of the program and the function of each object. Include a description of the concurrency and synchronization of threads

2.       An Object Model

3.       Guard variables for each condition (object, semaphore, or lock & condition)

4.       Pre-condition and post-condition for each synchronization statement

5.       Invariants that must hold for a “thread safe” object.

6.       A Description of the testing and model-checking  of this concurrent program. Include output from the testing and/or model-checking.