High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Apache Struts Technology
OOP Design Patterns Chapters Design Patterns The main idea behind design patterns is to extract the high level interactions between objects and.
Architectural patterns1. 2 Patterns Architectural patterns –Fundamental structural organization for software systems. –High-level subdivision of the system.
MVC Nick Lopez Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
MVC Fall 2005 OOPD John Anthony. Design Patterns The hard problem in O-O programming is deciding what objects to have, and what their responsibilities.
Architectural patterns1. 2 Patterns Architectural patterns –Fundamental structural organization for software systems. –High-level subdivision of the system.
Model View Controller (MVC) Architecture. Terminology and History MVC evolved from Smalltalk-80 Has become a key pattern in web based applications – If.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
C++ fundamentals.
More OOP Design Patterns
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
1 Architectural Patterns Yasser Ganji Saffar
Introduction to Java Swing “We are the sultans of swing” – Mark Knopfler.
Creational Patterns Making Objects The Smart Way Brent Ramerth Abstract Factory, Builder.
Dependency Injection and Model-View-Controller. Overview Inversion of Control Model-View-Controller.
Lecture 7: Objects and Interaction 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271 
MVC pattern and implementation in java
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Design Patterns.
MVC and MVP. References enter.html enter.html
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
An Introduction to Software Architecture
Model-View-Controller Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
Java Swing, Events and MVC Optional Readings: Eckel’s Thinking in Java: Chap 14 (
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
Swing MVC Application Layering A Layer is a collection of components that Perform similar tasks. Perform similar tasks. Isolate implementation details.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many others 1.
Unit 4 Object-Oriented Design Patterns NameStudent Number CAI XIANGHT082182A KYAW THU LINHT082238Y LI PENGFEIHT082220L NAUNG NAUNG LATTHT082195L PLATHOTTAM.
Model View Controller MVC Web Software Architecture.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
Design Pattern. Definition: A design pattern is a general reusable solution to a commonly occurring problem within a given context in software design.
Manali Joshi1 The Observer Design Pattern Presented By: Manali Joshi.
ANDROID AND MODEL / VIEW / CONTROLLER. Slide 2 Design Patters Common solutions to programming problems are called design patterns Design patterns are.
1 CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
DØ Offline Reconstruction and Analysis Control Framework J.Kowalkowski, H.Greenlee, Q.Li, S.Protopopescu, G.Watts, V.White, J.Yu.
Advanced Object-oriented Design Patterns Creational Design Patterns.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Interactive/Adoptable systems
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
Java Swing, Events Readings: Just Java 2: Chap 19 & 21, or Eckel’s Thinking in Java: Chap 14 Slide credits to CMPUT 301, Department of Computing Science.
SDJ INFOSOFT PVT. LTD. 2 BROWSERBROWSER JSP JavaBean DB Req Res Application Layer Enterprise server/Data Sources.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
Pertemuan 09 Architectural Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Imposing MVC design sample in.NET. Design patterns are very useful to solve complex design issues if used well. The primary concept of the Model View.
J2EE Platform Overview (Application Architecture)
Microsoft Foundation Classes MFC
Design Patterns-1 7 Hours.
Design Patterns Source: “Design Patterns”, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides And Created.
Observer Design Pattern
MVC and other n-tier Architectures
Architectural Patterns for Interactive Software
Understand Windows Forms Applications and Console-based Applications
Model-View-Controller Patterns and Frameworks
Patterns.
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Model-view-controller
Model, View, Controller design pattern
Software Design Lecture : 40.
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control

 Divides an interactive application into three components. 1. The model contains the core functionality and data. 2. Views display information to the user. 3. Controllers handle user input.  Views and controllers together comprise the user interface.  A change-propagation mechanism ensures consistency between the user interface and the model.

 Integrate new way of data representation  Portable(different OS)

 Interactive applications with a flexible human-computer interface.

 A customer may need specific user interface  System need to be ported to another platform with a different 'look and feel' standard.  Different users place conflicting requirements on the user interface.

 The following forces influence the solution:  The same information is presented differently. For ex: In a bar or pie chart.  The display of application must reflect data manipulations immediately.  Changes to the UI should be easy, and even possible at run- time.  Supporting different 'look and feel' should not affect code in the core of the application.

 MVC divides an interactive application into the three areas: processing, output, input.  The model component encapsulates core data and functionality.  View components display information to the user.  Each view has an associated controller component.  The user interacts with the system solely through controllers.  If the user changes the model via the controller of one view, all other views dependent on this data should reflect the changes.

 Shows how user input that results in changes to the model triggers the change-propagation mechanism

The controller accepts user input activates a service procedure of the model

The model performs the requested service. This changes internal data.

The model notifies all views and controllers registered with the change- propagation mechanism of the change by calling their update procedures.

Each view requests the changed data from the model and redisplays itself on the screen.

 The controller accepts user input activates a service procedure of the model  The model performs the requested service. This changes internal data.  The model notifies all views and controllers registered with the change-propagation mechanism of the change by calling their update procedures.  Each view requests the changed data from the model and redisplays itself on the screen.

 Each registered controller retrieves data from the model to enable or disable certain user functions.  For example, enabling the menu entry for saving data can be a consequence of modifications to the data of the model.  The original controller regains control and returns from its event handling procedure.

 Shows how the MVC is initialized.

The model instance is created, which then initializes its internal data structures.

A view object is created. This takes a reference to the model as a parameter for its initialization.

The view subscribes to the change-propagation mechanism of the model by calling the attach procedure.

The view continues initialization by creating its controller.

View references both to the model and to itself to the controller's initialization procedure.

The controller also subscribes to the change-propagation mechanism by calling the attach procedure.

After initialization, the application begins to process events.

Six - Fundamental StepsFour – Additional Steps

1. Separate human-computer interaction from core functionality.  Design the model component of application to encapsulate the data and functionality needed for the core.  Provide functions for accessing the data to be displayed.  Decide which parts of the model's functionality are to be exposed to the user via the controller, and  add a corresponding interface to the model.

2. Implement the change-propagation mechanism.  Extend the model with a registry that holds references to observing objects.  Provide procedures to allow views and controllers to subscribe and unsubscribe to the change-propagation mechanism.  The model's notify procedure calls the update procedure of all observing objects.

3. Design and implement the views. ▪ Design the appearance of each view. ▪ Implement all the procedures associated with views. ▪ Implement the update procedure to reflect changes to the model.

4. Design and implement the controllers  For each view of the application, specify the behavior of the system in response to user actions  A controller receives and interprets these events using a dedicated procedure.  The initialization of a controller binds it to its model and view and enables event processing.

5. Design and implement the view-controller relationship. A view typically creates its associated controller during its initialization. 6. Implement the setup of MVC.  The setup code first initializes the model, then creates and initializes the views.  …. 7. Dynamic view creation If the application allows dynamic opening and closing of views, it is a good idea to provide a component for managing open views.

8. 'Pluggable’ controllers. different controllers with a view. 9. Infrastructure for hierarchical views and controllers. If multiple views are active simultaneously, several controllers may be interested in events at the same time. 10. Further decoupling from system dependencies. platform independent 

 Document-View.  This variant relaxes the separation of view and controller.  Combine the responsibilities of the view and the controller from MVC in a single component by sacrificing exchangeability of controllers.

 SmallTalk  MVC was established to build reusable components for the user interface.  The VisualWorks Smalltalk environment supports different 'look and feel' standards by decoupling view and controllers  MFC  Microsoft Foundation Class Library  building interfaces to database s, for handling events such as messages from other applications, for handling keyboard and mouse input…..database

 Benefits  Multiple views of the same model.  Synchronized views – due to change propagation mechanism  'Pluggable' views and controllers.  Exchangeability of 'look and feel‘.

 Liabilities  Increased complexity.  Potential for excessive number of updates.  Intimate connection between view and controller.  Close coupling of views and controllers to a model  Inefficiency of data access in view.