Model-View-Controller pattern, as outlined in Pattern Oriented Software Architecture, Buschmann