MDPC
abstract:
The “Model - Display view - Picking view - Controller”
model is a refinement of the MVC architecture. It introduces the
“Picking View” component, which offloads the need from the
controller to analytically compute the picked element. We describe how
using the MPDC architecture leads to benefits in terms of modularity
and descriptive ability when implementing interactive components. We
report on the use of the MDPC architecture in a real application: we
effectively measured gains in controller code, which is simpler and
more focused.
paper:
Conversy, S., Barboni, E., Navarre, D., Palanque, P. "Improving
modularity of interactive software with the MDPC architecture". In Proceedings
of EIS (Engineering Interactive Systems) conference 2007, joint HCSE
2007, EHCI 2007 and DSVIS 2007 conferences, Lecture Notes in Computer
Science (to appear). Springer Verlag, 2007.


excerpt:
This work attempts to tackle the question often asked when disserting
about the MVC model: what is a controller exactly? As inventors of MVC
apply separation of concerns to interaction code, we can apply
separation of concerns down to the Controller itself: in MVC, the
controller handles picking, the backward translation of dimension of
events to arguments for operations on the model, and the management of
the interactive state of interactive components (as opposed to
graphical state). In MDPC, the combination of the scene-graph
(the picking view) and Leave/Enter events synthesis handles picking.
The picking code is hence offloaded from the Controller code, which
makes the controller simpler. In order to pass computed values from
events to arguments for operations on the model, the old Controller has
to transform dimensions of the events in the widget referential: hence,
it is dependent on the View, as it must queried its parameters (such as
the orientation) to compute the inverse transform. This backward
translation from the dimensions of the events to arguments for
operation on the model can be handled by the inverse transform
mechanism in the MDPC model. We have shown how to do it functionally
with rotated scrollbar and pie charts. If this translation is more
complex, it can be dealt with with a similar mechanism to MVzmC’s
one, i.e. a View Controller. Hence, in the MDPC architecture, what we
call a controller is the piece of code that manages the interactive
state of a component, i.e. the state-machine or the Petri Net that
describes it.
--
stephane .dot. conversy
.at. enac .dot.
fr