terminal. To ensure this adaptation, we have defined
transformation rules to adapt the code and the
presented data to different terminals.
2 RELATED WORKS
User interface automatic generation is not a new
domain of research. A lot of architectures have
already been proposed. These architectures are
known as UIDE (User Interfaces Design
Environments) (Foley et al, 1991) or UIMS (User
Interface Management Systems) (Kasik et al, 1989).
However, there are some differences between these
two terms in the literature. The first one describes
architectures for designing user interfaces using
abstract models and eventually generating the
corresponding source code. The second one focuses
on managing generated code of many user interfaces
using abstract script languages. Thus, an UIMS can
be seen as a part of an UIDE. Tadeus (Elwert et al,
1995) and Mecano (Puerta, 1996) are examples of
UIDE including an UIMS.
But all these approaches require providing a lot of
information in complex models and descriptions (Da
Silva, 2000). These environments are so heavy that
they can not be used by non specialists. Their
complexity explains why they are not widely used.
Simpler user interface development
environments exist. For example, Borland Jbuilder
and IBM Visual Age for Java help the developer by
writing the code skeleton. But the major part of the
code remains to be hand-coded. That’s why we are
not satisfied by these products: we need a product
ensuring no hand-coding at all.
The Abstract Window Description language that
we have written is based on XML. Other projects
have used XML to describe user interfaces. UIML
(Abrams, 1999) is a complete platform independent
language. Harmonia is a web-based user interface
generator using UIML descriptions (Boshernitsan,
2001). An UIML description requires so many
details for each widget. This makes the description
so heavy and cannot be useful for non specialists.
These considerations have encouraged us to develop
new user interface description language with a
higher granularity level.
Adaptation is another research topic close to our
work. In (Satyanarayanan, 2001), Satyanarayanan
says that adaptation is necessary when there is a
considerable disparity between the supplied resource
and the requested one. Many other works showed
the importance of the adaptability or plasticity
(Calvary et al, 2002) of user interfaces to the
contexts and the environments of their usage.
Two main directions are defined in adaptation:
- Static adaptation consists in writing as many code
versions as terminal types. Most of time, static
adaptation has concerned existing applications for
standard PCs and adapted them to mobile terminals.
(Larson, 2002) and (Benjaminsen et al, 2002) are
examples of this approach. In this case, written code
is highly optimized for each terminal. But the
drawback of such methods is the explosion of code
versions due to the growth of terminal types. Manual
coding of all the code versions is heavy and time
consuming for the developers.
- Dynamic adaptation makes adaptations on the fly:
the interface is built and sent to the client on his
demand. (Lemlouma et al, 2001) and (Menkhaus,
2002) are projects of web based user interface
dynamic adaptations. The inconvenient of such
approaches is the latency due to page generation at
each query. Another disadvantage of the dynamic
adaptation is the efficiency of the adaptation. In fact,
hardware and software characteristics of the
terminals grow fast and adaptation rules must follow
this evolution.
For a perfect adaptation to the terminal
characteristics we consider mixing the two methods
with the maximum automation of the adaptation
process.
3 PANELS AND WINDOWS
3.1 Definition
User interface descriptions are often very heavy
because of the huge quantity of details required to
specify all parameters of each widget (size, position,
color, events…). This is due to the low level
description of reusable components (also called
widgets). In this work, we have defined a higher
level of reusable components: panels. A panel
contains a set of grouped widgets that assures a
typical functionality. For example, we have defined
a panel to scroll image lists. Panels have been
defined after parctical user interfaces studies on the
medical domain and we think they can answer many
domain needs. Nevertheless, new panel descriptions
can be added for specific needs. We have defined
and implemented six panel types:
- The table panel type ensures capturing and
presenting data in a grid
- The text panel type ensures capturing and
presenting a multi-line text
- The graphic panel type presents graphs or
histograms for 2D values
- The image panel type presents a list of images
and shows the selected image
SEFAGI: SIMPLE ENVIRONMENT FOR ADAPTABLE GRAPHICAL INTERFACES - Generating user interfaces for
different kinds of terminals
233