This directory contains the ingredients for a computer lab session on Refactoring. 
The session concerns the refactoring of a system which simulates a Local Area Network.
There are two equivalent implementations, one in Java and one in C++.

This lab has been tried out 
  - Java Version: with Eclipse 2.1 for MacOSX, and Eclipse 3.0 for Windows 
  - C++ version:  with gcc 3.3 and later under Darwin, Cygwin, Ubuntu, Solaris 

The directory contains

* readme.txt
  The file yo'r reading right now.

* SRe2LICRefacLabo.doc
  The assignment for the lab. Note that the .doc document contains lots of hidden text containing instructions for the teacher. If you hand it out to students, make sure that the "Hidden" checkboxes are unchecked in the MSWord preferences, both for "View" and "Printing". Of course as a teacher you should leave them on.
  
* SRe2LICRefacLabo.pdf
  Is a printout of SRe2LICRefacLabo.doc without the teacher's comments, e.g. 
  can be readily distributed to students. 

* LANSimulationDocu.pdf
  A few UML diagrams documenting the LAN simulation.

* toDoList
  A list of the use cases that have been implemented so far, and the ones that are still left to be done

* java 
  The directory containing the java version of the code (organised into subdirectories for the different packages)
  The scripts compileLAN, generateJavaDoc, runLAN compile, run or javadoc the simulation. Patch these scripts for
  your environment.

* cpp
  The directory containing the C++ version of the code. The documentation has been pregenerated using doxygen.
  The Unit testing framework used is cxxtest (http://cxxtest.sourceforge.net/). A slightly modified version
  (added macro TS_ASSERT_FALSE) is part of this distribution.
  Use 'make runtests' to compile and run the tests. 
  Use 'make' to compile the code, then './lan s' to start a simulation run. 
