A goal of natural development is to ease the building of interactive software systems. Some work has been dedicated to obtaining natural programming [3], which aims to support programming through languages understandable by people without any specific programming skills. On one hand, natural development implies that people should be able to work through familiar and instantly understandable representations that allow them to easily express relevant concepts, and thereby create or modify applications. On the other hand, since a software artifact must be precisely specified in order to be implemented, there will still be the need for environments supporting transformations from intuitive and familiar representations into precise—but more difficult to develop—descriptions.
The main motivation for model-based approaches to user interface (UI) design has been to support development through the use of meaningful abstractions to avoid dealing with low-level details. Despite such potential benefits, their adoption has mainly been limited to professional designers, but new solutions are recently emerging that are able to extend such approaches in order to achieve natural development by enabling end users to develop or modify interactive applications still using conceptual models, but with continuous support that facilitates their development, analysis, and use.
TERESA [2] is an authoring transformation-based environment for developing ubiquitous interfaces, providing semiautomatic support for a number of transformations useful to build and analyze the UI design at different abstraction levels and to generate a suitable implementation for various platforms (desktop, PDA, mobile phones, speech-based systems, and so on). This tool has been extended to smooth the transition from a model-based approach to natural development according to the following three criteria:
Integrating informal and structured specifications. End-user development (EUD) can benefit from using multiple representations with various levels of formality. In fact, at the beginning of the design process many things are obscure and unclear, so it is difficult to develop precise specifications from scratch, especially because a clear understanding of the user requirements is critical. The main EUD issue is how to exploit personal intuition, familiar metaphors, and concepts to obtain/modify a software artifact. Examples of informal input for more structured representations are textual scenarios [4] and sketches on board [1]. Nonprogrammers feel comfortable with sketch-based systems that allow them to concentrate on concepts by exploiting natural interactions, instead of being distracted by cumbersome low-level details required by rigid symbolisms. Such systems are generally able to recognize graphical elements and convert them into formats that can be edited and analyzed by other software tools. With our approach, it is possible to interpret informal sketches, and translate them into appropriate descriptions for use in TERESA.
Providing effective representations. Visual modeling techniques have been increasingly adopted for the software design process. However, we are still far from visual representations that are easy to develop, analyze, and modify, especially when sizeable case studies are involved. When the visual model increases in complexity, designers must interact with many graphical interconnected symbols that make it difficult to understand and analyze the specification; therefore, effective representations are needed (for example, combining focus and context views of the model and applying semantic zooming techniques).
Supporting different entry points/abstraction levels. The starting point of the development activity can often vary. Sometimes people start from scratch to develop completely new artifacts; in other cases people must understand the underlying conceptual design of an existing system, in order to adapt it to new contexts of use. Thus, a general development environment should be able to support a mix of forward (from conceptual to concrete) and reverse (from concrete to conceptual) engineering cycles. The round-trip engineering process supported by TERESA allows for maintaining links among elements at different abstraction levels and helps users understand such links (the figure offers a small example).
The authoring environment allows a nonprogrammer to specify the logical activities to support, and indicate the potential contexts of use. Moreover, the environment supports the transformation of such logical descriptions into more concrete ones, providing suggestions on how the resulting interface should be organized to implement usability criteria specific to the devices and modalities considered, although end-user developers can still modify such suggestions in order to meet specific needs. TERESA (available at giove.isti. cnr.it/teresa.html) offers a mixed initiative interaction paradigm together with adaptive features and multiple representations at different levels of abstraction to ease the development of software at all levels.
Join the Discussion (0)
Become a Member or Sign In to Post a Comment