A Summary of the User Requirements for the SORTIE Reengineering Project
Supplied by Sachen Gendron, our domain expert
There are two potential uses of the SORTIE program: it can be used as a tool for research exploration in understanding forest dynamics; and it can also be used as a test environment for forest management decisions. In order to support research exploration, the forestry researchers would like to incorporate new relationships and formulas without the assistance of professional programmers. Currently this is not possible, and therefore the code needs to be re-engineered to more easily allow these changes. The re-engineered program should be based on an object-oriented, extensible and well documented framework.
More background on the tool and re-engineering project
The subject system to be re-engineered in the collaborative demonstration is a legacy research tool called SORTIE. SORTIE is a resource mediated spatially explicit mixed-species forest dynamics model that allows direct input of data from rigorous field studies. SORTIE was originally developed in eastern US deciduous forests.
During the past four years, the model has been extensively modified for the temperate mixed-species forests of northwestern British Columbia by the BC Ministry of Forests (SORTIE/BC). The model simulates and visualizes forest succession and can be used to help develop alternative logging prescription to clearcutting. The SORTIE software system has evolved over a number of years as the underlying model was developed, refined and extended. Like most aging software systems, the architecture of the SORTIE tool has become brittle and monolithic making it difficult to change and maintain.
SORTIE is less than 28KLOC including comments and documentation (of which there is very little). It was originally written in C, but was recently ported to C++. It runs only on a PC and relies heavily on Borland C++ compiler and libraries. It has been developed mainly by one programmer, so there is little documentation available. It is possible to consult this person as a system expert. Some attempts were made to analyse it with the Rigi and Imagix program comprehension tools, but it wasn't possible to parse the code, due to the tight integration with the UI generated code by Borland.
SORTIE/BC is currently being used to model the dynamics of the interior cedar-hemlock forests of Northwestern B.C. In addition, work is also underway to use SORTIE for southern hardwood and boreal mixed wood forests of Quebec, spruce/aspen boreal forests of Canada, temperate forests of New Zealand and tropical forests of Puerto Rico. The SORTIE developers are finding it difficult to easily calibrate the model for different forest types and ideally, the tool could be used by more researchers (other than the original developers) to model different kinds of forests in other locations. The SORTIE model consists of several submodels. The existing submodels are "hard coded" into the software and are
fragmented throughout the system making it difficult to either change the existing submodels or to add new submodels. The current architecture of SORTIE does not easily allow the reuse of components for other applications. Unfortunately, the current architecture of SORTIE does not easily support changes and any that are made, invariably have unintended side effects. Adding new variables, new visualisation features, and making changes of any kind are currently very difficult.
The collaborative demonstration will be held in parallel with a shadow project using predominantly manual and traditional methods. A Master's student at the University of Victoria has already documented and analyzed the existing architecture. She is currently gathering requirements from users at the Ministry of Forests and from other researchers interested in using the tool. The gathered requirements will be used to propose a new architecture.
The first task to be completed is an analysis of the existing architecture. This analysis along with any existing information (such as code and any documentation) will then be used by other tools to re-document the existing system. The re-documentation from the parallel shadowed project will not be made available to the collaborative demonstration participants.
The next phase will be to propose a new architecture based on user requirements and the existing architecture and code. The Forestry client would prefer, if possible, to reuse as much as possible of the existing code in a reimplementation. The user requirements gathered during the manual reverse engineering project will also be made available to the demonstration tools responsible for generating and proposing a new architecture for SORTIE.

