Matt Gallagher at Cocoa With Love provides his general model for Cocoa applications. The terminology is specific to Cocoa, but the model applies to nearly all GUI applications. Needless to say, the way you fill in the blanks in his model is what makes an application unique and useful.