MVC organizes the Human-machine interface of the software application in a model (business object, data model), a view (presentation, user interface) and a controller (control logic, events management), each having a precise role in the interface. This pattern design imposes the separation between the data, the presentation and the processing, what gives the three fundamental parts: