2014 · 45 citations · 5 references
ComputingDesignInteraction DesignSystems DesignUser Experience DesignInteraction PatternsInterface DesignModel-based DesignModel-driven Software EngineeringSoftware DesignSoftware ModelingDesign PatternsModel-view-controllerModel-view-presenter ArchitecturePattern DesignPatternsUse CasesUser InteractionUser Interface Integration
Every software program that interacts with a user requires a user interface. Model-View-Controller (MVC) is a common design pattern to integrate a user interface with the application domain logic. MVC separates the representation of the application domain (Model) from the display of the application's state (View) and user interaction control (Controller). However, studying the literature reveals that a variety of other related patterns exists, which we denote with Model-View- (MV) design patterns. This paper discusses existing MV patterns classified in three main families: Model-View-Controller (MVC), Model-View-View Model (MVVM), and Model-View-Presenter (MVP). We take a practitioners' point of view and emphasize the essentials of each family as well as the differences. The study shows that the selection of patterns should take into account the use cases and quality requirements at hand, and chosen technology. We illustrate the selection of a pattern with an example of our practice. The study results aim to bring more clarity in the variety of MV design patterns and help practitioners to make better grounded decisions when selecting patterns.
5
Concurrent object-oriented programming
Gul Agha · Communications of the ACM · 1990 · 610 citations · Full text
"The Golden Age of Software Architecture" Revisited
Paul Clements, Mary Shaw · IEEE Software · 2009 · 38 citations