The system has a number of major components:
The database is specified in Section 3. Within the object model layer lie two important components: the object model itself, and helper classes which link the object model to the database. In an attempt to provide transparancy to the programmer, as well as improve performance by allowing lazy loading, the object model is implemented using the Virtual Proxy pattern, which is described later.
The GUI, apart from displaying information to the user, is largely responsible for security in this phase of the system. To allow for easy migration from a fat client to a thin client environment, the MVC paradigm was used in GUI construction. See here for further details.