Tout d'abord, après avoir validé notre vision du projet et du travail à
réaliser avec notre encadrant, Jörg Nonnenmacher, nous avons défini une
architecture générale définissant les différents blocs à implémenter et les
interfaces entre ces blocs. Nous nous sommes éfforcés d'établir une
architecture en couche (voir figure 1) afin de
rendre réutilisable et indépendante chaque partie de notre travail.
Une fois cette architecture définie, nous avons développé chacun des
``blocs''.