FDDA follows the document-controller architectural pattern. Additionally, the
model is divided into the 'model proper', containing only information relevant
to the algorithm, and the 'graphics model', containing the information
pertaining to to graphical display of the model and the algorithm demonstration.
Most components of FDDA follow the pattern that their interfaces are defined
in the top-level package of the component, while the implementation is in a
subpackage. The main class {@link fdda.Fdda} initializes the components by specifying the
implementation using static methods in the main component class of the top-level
package.
For the implementation of algorithms, only the packages {@link fdda.algorithm}
and {@link fdda.model} should be relevant.