1.             Boundary objects – used by actors to communicate with the system.  These
include windows, screens, dialogs, and menus.

2.             Entity objects – map to objects from your domain model.  Includes database
tables and files that hold information that needs to “outlive” use case execution. 

3.             Control Objects – embody much of the application logic. They serve as the “glue” between the users and stored data (or between boundary objects and entity objects).  Controllers are usually not stand-alone classes.  They are usually methods that will
be assigned to boundary or entity objects during detailed design.