\section{Overview of the software}

The software product analyzes spatial data by using a semi-Bayesian model and prior distributions to calculate points from the posterior distributions for a set of variables. This kind of computation is heavy and time consuming on large sets of data. In order to avoid creating one static program, which can run simulations with all possible models, the program consists of two parts: the generator and the generated program. The generator reads the input files and creates a customized Fortran program for the given problem.

The input files define the problem and how the program should run the simulation with the given model. The main input file is the model file, which describes a semi-Bayesian model. The model could describe, for example, a bird species' distribution in Finland. The main topic of interest is the question about the most accurate model to describe a given real life phenomenon. The only way to compare the models is to compare the results. The program will not analyze how accurate the given model is, it will only calculate points from the posterior distribution for variables and print them as output. 

The program is limited to small set of possible simulation problems. There are limitations to the models and distributions that can be used. The key feature is the possibility to use spatial relations in the calculations.

The generator can be executed on any computer with the Java runtime environment version 1.5 (or greater) installed. The generated program however needs a Fortran 90 compiler. It also uses NAG libraries, so a computer with a valid NAG license is required. The program was designed with NAG Mark 19.

Use of random update strategy was designed and specified in the design document, but it was not implemented due to schedule pressure. Some other features were dropped earlier in the project. These include, for example, variable blocks and the use of the Gibbs algorithm. Data structures and the generator changed only a little from the specification in the design document. The generator's classes and changes are specified in chapter \ref{generator}. See chapter \ref{development} for further development ideas.