[Top] [All Lists]

Re: [ontolog-forum] MVC (was: Defining UML in Common Logic)

To: Duane Nickull <dnickull@xxxxxxxxx>
Cc: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Edward Barkmeyer <edward.barkmeyer@xxxxxxxx>
Date: Mon, 22 Feb 2010 14:52:47 -0500
Message-id: <4B82E08F.7080905@xxxxxxxx>
Duane Nickull wrote:
> MVC is an architectural pattern used by software architects to separate 
>concerns (Model  view  control).  The idea is that by  cleanly decoupling 
>the model from the control and view aspects of an application, you have more 
>freedom to express it in multiple formats such as UML, spreadsheets, 
>datagrids, graphcs etc.
> More on MVC here - http://msdn.microsoft.com/en-us/library/ms978748.aspx
> (Note: I like the Microsoft definition of this pattern as it sits well with 
>the Christopher Alexander style)
>       (01)

OK.  I went to the MS page and found that the terminology is much wider 
than the application domain for the pattern. 
MVC is a pattern for software design for browser-like user interfaces.  
Per the MS page:    (02)

"Problem    (03)

How do you modularize the user interface functionality of a Web 
application so that you can easily modify the individual parts?    (04)

Solution    (05)

The Model-View-Controller (MVC) pattern separates the modeling of the 
domain, the presentation, and the actions based on user input into three 
separate classes [Burbeck92]:
o Model. The model manages the behavior and data of the application 
domain, responds to requests for information about its state (usually 
from the view), and responds to instructions to change state (usually 
from the controller).
o View. The view manages the display of information.
o Controller. The controller interprets the mouse and keyboard inputs 
from the user, informing the model and/or the view to change as 
appropriate.    (06)

..."    (07)

So, in their terms, the Model is the entirety of the decision support 
functionality -- it is the part of the application that manages the data 
and performs all the business processing functions.  The other two 
elements are the part that presents information to the user and the part 
that takes commands and information from the user via mouse, keyboard, 
etc. These functions can be mostly encapsulated, and speak to each other 
using webservices.    (08)

This is an entirely different meaning of "model" from the term as used 
in UML.  In fact, it is not clear to me that the MVC pattern involves or 
requires any modeling concepts in the knowledge engineering sense, 
except for separation of concerns.  (I do see object interaction 
diagrams on the web page.  Ivar would be pleased.)    (09)

What Microsoft calls "MVC" is, I will grant you, a respected 
architectural pattern for user interfaces, whatever its relationship to 
modeling.  It goes back to the late 1960s and the Plato project (which 
was all about the human-computer interfaces and made the application a 
back-end).  IBM (and others) used this approach for the very expensive 
graphical interactive devices of the early 1970s, and for the same 
reason -- programming the interface, with several possible input devices 
(keyboard, tablet, light pen, roller ball, and mouse) and a bit-based 
display, was itself a complex task.  Interestingly, the Xerox PARC 
Smalltalk development -- the first object-oriented programming language 
(by some opinions) -- arose out of experience in developing user 
interface software for the Alto (1975), which was one of the first 
WYSIWYG text processor systems.  It does not surprise me that this 
pattern is not well-known by most V-Basic and many Java programmers, 
who, for the most part don't read anything written before 1992, and I am 
happy to see it published as a best practice at a site they might 
actually read.  Among other things, it is rather too bad that Windows 
didn't and doesn't use this pattern.  Linux does, because Berkeley Unix 
of the late 1980s did.    (010)

-Ed    (011)

Edward J. Barkmeyer                        Email: edbark@xxxxxxxx
National Institute of Standards & Technology
Manufacturing Systems Integration Division
100 Bureau Drive, Stop 8263                Tel: +1 301-975-3528
Gaithersburg, MD 20899-8263                FAX: +1 301-975-4694    (012)

"The opinions expressed above do not reflect consensus of NIST, 
 and have not been reviewed by any Government authority."    (013)

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (014)

<Prev in Thread] Current Thread [Next in Thread>