Our design goals for OpenCAGE are:
Extendible design, little dependency between the different parts of the system
Achieve a clear structure using the object-oriented features of Ada95
Using design patterns
Allow a high performance with optimized data structures and algorithms