Wednesday, August 18, 2004

Patterns: Model View Controller Pattern Critical to Cross Platform Development Tools

An Authoring Technology for Multidevice Web Applications
Guruduth Banavar, Lawrence Bergman, Richard Cardone, Vianney Chevalier,Yves Gaeremynck, Frederique Giraud, Christine Halverson, Shin-ichi Hirose,Masahiro Hori, Fumihiko Kitayama, Goh Kondoh, Ashish Kundu, Kohichi Ono,Andreas Schade, Danny Soroker, and Kim Winz
IEEE Pervasive Computing, Jul/Sep 2004

The rapid proliferation of mobile computing devices has increased the complexity and cost of cross-platform application development. Multi-DeviceAuthoring Technology (MDAT) lets developers build a generic applicationcommon to multiple devices and customize it for specific devices...

Notably, we found that the programmersí understanding of MVC prior to their MDAT experience affected their understanding and use of the tool. For example, if their previous experience was with Web design or with Struts, they had expectations about the model that might not have been realized. Al­though many assume MVC to be well understood, it is, in fact, an amorphous design pattern. Existing implementations, from SmallTalk to Struts, differ considerably. A survey of the literatureóboth academic and popularóshows variability in definitions of the MVC paradigm, particularly in the connections between the various components. The two primary variations re­volve around whether the Model and the View talk directly to each other or whether the Controller handles all messaging and action. We canít overstate MVCís importance for a noviceís introduction to MDAT. MDATís power is based on the programmer creating an abstracted description of the Controller and View components, as well as the connections between the components. In most cases, the code is automatically generated from these abstract descriptions. For the Model, however, programmers must write concrete code thatís connected to abstract or generated Controller and View components.

This blurring of the abstract and concrete is particularly important because of the role that mental models play. Research in the early 1990s explored the role of mental models in teaching programming and in understanding how to use programming. In both cases, understanding the structural mental model (what the system does to solve a problem) is ultimately more powerful than a functional mental model (how to solve the problem). No difference exists in the performance between those taught a functional or structural model for standard problems. For new problems, however, that donít have an existing functional model, programmers who un­derstand the structural model will be faster and more efficient at solving the problem. When using a new tool such as MDAT, most problems are novel, so a clear understanding of the underlying structural model, in this case MVC, is critical. Our finding that users had different structural mental models of MVC meant that they had difficulty linking past programming experience to programming in MDAT. Consequently, we found that learning MDAT was more difficult than we expected.


Post a Comment

<< Home