User interface modeling is a development technique used by computer application programmers. Today's user interfaces are complex software components, which play an essential role in the usability of an application. The development of UIs requires therefore, not only guidelines and best practice reports, but also a development process including the elaboration of visual models and a standardized notation for this visualization. The term user interface modeling is mostly used in an information technology context. A user interface model is a representation of how the end user interact with a computer program or another device and also how the system responds. The modeling task is then to show all the "directly experienced aspects of a thing or device" . Modeling user interfaces is a well-established discipline in its own right. For example, modeling techniques can describe interaction objects, tasks, and lower-level dialogs in user interfaces. Using models as part of user interface development can help capture user requirements, avoid premature commitment to specific layouts and widgets, and make the relationships between an interface’s different parts and their roles explicit. .
Some aspects of user interface modeling can be realized using UML. However, the language is not mainly intended for this kind of modeling, which may render the models somewhat synthetic.
UMLi
is an extension of UML, and adds support for representation commonly occurring in user interfaces. Because application models in UML describe few aspects of user interfaces, and because the model-based user interface development environments lack ability for modeling applications, the University of Manchester started the research project UMLi in 1998. UMLi aims to address this problem of designing and implementing user interfaces using a combination of UML and MB-UIDE.
UsiXML
is an XML-based specification language for user interface design. It supports the description of UI for multiple contexts of use such as Character User Interfaces, Graphical User Interfaces, Auditory User Interfaces, and Multimodal User Interfaces.
DiaMODL
DiaMODL combines a dataflow-oriented language with UML Statecharts which has focus on behavior. It is capable of modeling the dataflow as well as the behavior of interaction objects. It may be used for documenting the function and structure of concrete user interfaces.
Himalia
Himalia combines the Hypermedia Models with the control/composite paradigm. It is a full user interface language, it may be used for specifying but also for running it, because of this the designer tool can categorized as a guilder.
Model types
The different aspects of a user interface requires different model types. Some of the models that may be considered for UI-modeling are:
UML can be used for several of the models mentioned above with varying degree of success, but it lacks support for user modeling, platform modeling and presentation model.
Approaches
There exist several approaches to modeling a user interface.
Usage-centered design
In usage-centered design, the modeling task is to show how the actual presentation of a planned system and how the user interaction is supposed to happen. This is probably the most praised approach, and it has been used successfully on a variety of small and large-scale projects. Its strengths are in complex problems.
Alternative approaches to model-based UIs
The know issue of model-based approaches is information restatement and lack of mechanisms effectively to solve cross-cutting concerns . Model-based solution work well on their own, but integration with alternative approaches bring complexity in development and maintenance efforts.
Code-inspection based
These approaches bases on existing general purpose language code base . They inspect the code through meta-programming and assemble a structural model that is transformed to the UI. This approach addresses information restatement. These approaches does not fit to adaptive and context-aware UIs.
Generative programming
These approaches connect domain methods with GPL . They address cross-cutting concerns although only at compile-time, which does not fit to future adaptive UIs that need runtime information.
Aspect-based UIs
Aspect-based solution suggested by integrates advantages of code-inspection based and generative programming approaches. It inspects existing code and applies aspect oriented methods to address cross-cutting concerns. It works at runtime, reduces information restatement and at the same time separates UI concerns which allows to reuse each independent of others. In the study at authors reduce UI code by 32% through aspect-based UI approach applied to a production system. Main advantages are templating for adjusting the presentation, separate definitions of concerns and mostly generic transformation rules applicable across various data.
Content models
Models of this kind show the contents of a user interface and its different components. Aesthetics and behavior details are not included in this kind of models as it is in usage-centered design models.