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.