Neben einem übergeordnetem Package yacs mit dem darin enthaltenen Constraint-Manager von YACS, existieren die folgenden Unterpackages (siehe Abbildung 7.1):
Hierin sind der JLex/Java-CUP-Parser zum Einlesen von stringbasierten Constraint-Ausdrücken sowie die benötigten Klassen zur Repräsentation von Constraint-Ausdrücken als Objektstruktur enthalten.
Enthält die benötigten und z.T. abstrakten Klassen zur Repräsentation und Kapselung unterschiedlicher Wertebereiche, die von Constraint-Solvern innerhalb von YACS verarbeitet werden.
In diesem Package sind abstrakte Klassen enthalten, die von Constraint-Solvern implementiert werden müssen, die in das YACS-Framework eingebunden werden sollen. Außerdem sind eine Reihe von Unterpackages enthalten, in denen die konkreten Solver-Klassen abgelegt werden können.
Enthält Klassen zur Repräsentation der Constraint-Netze und der zugehörigen Strategien sowie den benötigten XML-Parser zum Einlesen von Constraint-Lösungsstrategien.
Für die Fehlerbehandlung wurden eine Reihe von Exceptions vordefiniert, die von zu implementierenden Constraint-Solvern bzw. von den bereits existierenden Komponenten von YACS genutzt werden können, um Ausnahmesituationen anzuzeigen.
Das Package yacs.solver beinhaltet neben abstrakten Solver-Klassen die Unterpackages yacs.solver.fdsolver und yacs.solver.intervalsolver, in die entsprechend Constraint-Lösungsverfahren für finite und infinite (Interval-)Domänen abgelegt werden. Die Package-Struktur untergliedert sich dafür an dieser Stelle noch einmal: Sowohl in fdsolver als auch in intervalsolver sind die folgenden Unterpackages enthalten:
In diese Packages werden die Constraint-Solver, je nach Kategorie und inkl. der ggf. benötigten Hilfsklassen, abgelegt.