[Top] [All Lists]

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

To: "edbark@xxxxxxxx" <edbark@xxxxxxxx>
Cc: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Duane Nickull <dnickull@xxxxxxxxx>
Date: Mon, 22 Feb 2010 12:24:49 -0800
Message-id: <C7A82811.B827%dnickull@xxxxxxxxx>
Try this diagram.


On 2/22/10 11:52 AM, "Edward Barkmeyer" <edward.barkmeyer@xxxxxxxx> wrote:

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)

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:


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


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


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.

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.)

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.


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

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

Adobe LiveCycle Enterprise Architecture - http://www.adobe.com/products/livecycle/
My TV Show - http://tv.adobe.com/show/duanes-world/
My Blog – http://technoracle.blogspot.com/
My Band – http://22ndcenturyofficial.com/
Twitter – http://twitter.com/duanechaos

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    (01)

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