Object Oriented Software Engineering   View all facts   Glossary   Help
subject > pattern > software architecture > Model-View-Controller
Next software architecturestable architecture    Upsoftware architecture    Previous software architecturedistributed architecture   

Model-View-Controller
(MVC)
subjectfact 
Model-View-Controllerhas definition A architectural pattern used to separate the functional layer of the system (the model) from two aspects of the user interface, the view and the controller2001-08-30 14:56:37.0
facilitates divide-and-conquer because the three components can be independently designed2001-08-30 14:56:37.0
increases cohesion because the components have stronger layer cohesion than if the view and controller were together in a single UI layer2001-08-30 14:56:37.0
increases flexibility because it is usually quite easy to change the UI by changing the view, the controller, or both2001-08-30 14:56:37.0
increases layer cohesion of the user interface layer2001-08-30 14:56:37.0
increases reuse because the view and controller normally make extensive use of reusable components for various kinds of UI controls2001-08-30 14:56:37.0
is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:37.0
is abbreviated as MVC2001-08-30 14:56:37.0
is related to the multi-layer architecture2001-08-30 14:56:37.0
is a kind of software architecture2001-08-30 14:56:37.0
reduces coupling because the communication channels between the three components are minimal and easy to find2001-08-30 14:56:37.0
reduces the coupling between the user interface layer and the rest of the system, as well as between different aspects of the UI itself2001-08-30 14:56:37.0
separates the functional layer of the system (the model) from two aspects of the user interface, the view and the controller2001-08-30 14:56:37.0
software architectureconstrains the overall efficiency, reusability and maintainability of the system2001-08-30 14:57:33.0
is decided early in the design process, although it will continue to mature as iterative development proceeds2001-08-30 14:57:33.0
must be understood by software engineers2001-08-30 14:57:34.0
see also software architecture^22001-08-30 14:57:34.0
see also software architecture^32001-08-30 14:57:34.0
patternshould be as general as possible2001-08-30 14:56:56.0
should be described in an easy-to-understand form so that people can determine when and how to use it2001-08-30 14:56:56.0
should contain a solution that has been proven to effectively solve the problem in the indicated context2001-08-30 14:56:56.0

Next software architecturestable architecture    Upsoftware architecture    Previous software architecturedistributed architecture