Virus Simulation

For my software development class (csci3081w) during the fall of 2005, we probably spent the better part of the semester working on a single project, the requirements of which were given to us in three phases (one, two, three), and several of which changed throughout the course of the project. While we were given a few strict requirements, such as the use of inheritance to implement some portion of the virus spread and vaccination models, the general program design, class structure, etc, was left to our choosing. I believe everyone worked in groups of two (or maybe three?), but I, along with my partner Adam LaPitz, implemented a simulation of a ‘city’ (rectangular grid) that was to be both infected and vaccinated according to a variety of selectable parameters and pre-defined models.

Yes, I realize this is a lot of writing to introduce some code, but really nothing compared to the dozen plus pages of documentation we wrote about the software design, class structure, functionality/interoperability, etc, and comparatively little next to the > 2000 lines of code comprising the full project. Although the situation can’t quite compare to a regular business world software development project, our development style was probably closest to Extreme Programming, with nearly all of our work being done together (all of about 5′ apart) and communicating extensively. As such, it is unfortunately difficult to identify specifically which lines of the program were actually coded by each individual, but it’s certainly fair to say that we were both intimately involved with the project.


Below is the file city.cpp, which was the class instantiated to track the status of each location within the simulation throughout the run of the experiment. It contains many accessors and modifiers utilized extensively in the infection and vaccination models.

Error: Could not open VirusSim/City.cpp