You are on page 1of 10

Design Reuse in Hypermedia Applications Development

Gustavo Rossi Daniel Schwabe Alejandra Garrido


LIFIA, Fat. Cs. Exactas, UNLP, Argentina Departamento de InformAtica. LIFIA, Fat. Cs. Exactas,
and CONICET PUC-RIO, Brazil. UNLP, Argentina
E-mail: gustavo@sol.info, unlp.edu.ar E-mail: schwabe@inf.puc-rio.br E-mail: garrido@sol.info. unlp.edu.ar

ABSTRACT experiences, and used by him at a very abstract level.


In this paper we discuss the use of design patterns for the
process of building hypermedia applications. The idea of It is then reasonable to say that reusability of either design
design patterns has been recently developed, and rapidly experience or design structures is the most valuable kind of
spread outside the object-oriented community to a general reuse. From the expert’s point of view, it helps communicate
audience of software developers. By using patterns it is not the decisions made, or discuss the different alternatives with
only possible to document design experience with a very the rest of the working team in a simple and accurate way.
simple and comprehensible format, but also reuse the same Patterns provide a new vocabulary that is shared by team
experience several times for different applications. We members, helping them to discuss about design at an
argue that the hypermedia community will take a vital step abstract level. For non-experienced designers, it becomes
towards better designs of hypermedia applications and easier to learn quickly through the comprehensible pattern
systems by developing a pattern language for that domain. format.

KEYWORDS: Design Patterns, Pattern Languages, Consider the question of how a hypermedia designer can
Hypermedia Design, Navigation, Interface guarantee that the user always has a way to understand
where he is, and where he is coming from, during
1 INTRODUCTION navigation. A possible solution for this general problem
Hypermedia applications are usually built from scratch, would be to build a “History” object, that is, an object that is
which is not surprising given the relative youth of the continuously informed about user navigational movements
hypermedia market. However, the key reason of why and that can be viewed upon demand. Note that the
hypermedia components are not systematically reused is that relationships among this object and other navigational and
current design approaches are not effective in helping the interface objects may vary from an application to another, in
designer to reason in terms of composition of existing the same way that we may have different ways of viewing
hypermedia structures. In the best case, interface widgets are the history. Nevertheless, the very fundamental idea remains
reused in the context of a particular implementation setting. unchanged; this is a simple example of a design pattern.
In [8] the authors analyze different aspects of software reuse
in the context of hypermedia applications. Reuse of software Note that in the simple example above we are not using any
components and reuse of information are discussed as two particular design notation (e.g., HDM [5], RMM [11] or
broad categories in which the notion of reuse may be useful 00HDM [18]), though such a notation may be useful for
in hypermedia applications. In this paper we argue in favor expressing in a non-ambiguous way the relationships among
of another kind of reuse: reuse of design experience. objects in the solution. Although there is no consensus in the
hypertext community about design methods, patterns
Expert hypermedia designers typically do not solve every transcend this dimension because they help to capture the
problem from scratch. They most of the time reuse solutions essential aspects of design problems and their solutions. The
that they have used previously. It is common, however, that main intent of this paper is to motivate the hypertext
critical design decisions made while defining for example community to discuss the problem and eventually produce a
the interaction and navigational styles of an application pattern catalogue (as [4]) in which hypermedia design
usually remain hidden in code or are poorly documented. experience is recorded as a set of related patterns.
Many other decisions cannot even be deduced from either Reasoning about abstract design structures in terms of
code or documentation. Those are strategies kept in the design patterns is a key step towards reuse of hypermedia
skillful designer’s mind as the result of all his/her previous design experience.

Perrmssion to make &gitaI/hard copies of all or part of this material for


In the following sections we introduce design patterns and
personal or classroom use is granted without fee provided that the copies pattern languages. We then propose a classification of
are not made or disbibuted forprofitorcommercial advantage,thecopy- patterns for different hypermedia development stages and
rightnotice,thetitleofthepublication anditsdateappear,andnouceis
giventhat copyright is by permission of the ACM, Inc. To copy otherwise, show some examples for each different category. Finally,
to republish, to post on servers or to wkrribute to lists. requiresspecific some further work towards the definition of a pattern
permission and/Or fee
Hypertext 97, Southampton UK language for hypermedia applications is discussed.
IO 1997 ACM 0-89791 -866-5 ...$3.50
2 A BRIEF INTRODUCTION TO DESIGN PATTERNS tradeoffs and design alternatives. This complements the
Design patterns are being increasingly used in software previous statement as we have a clear understanding for
design [4] but, as far as wc know, they remain unexplored in adopting a particular solution.
the hypermedia field and in particular for describing
hypermedia navigational and interface architectures. Despite all these and other advantages, some considerations
need to be taken in order to profit better from patterns, such
As previously stated, one of the most important kinds of as: including concrete examples to help understand how to
reuse is design reuse, and design patterns are a good means implement a pattern when it is too abstract; choosing pattern
for recording design experience. A design pattern names carefully and using them consistently; carefully
systematically names, explains and evaluates an important documenting the contexts where patterns apply or not, and
and recurrent design in software systems. Design patterns using a fixed, uniform and self-explained format to
make it easier to reuse successful designs and architectures communicate clearly and concisely an integrated set of
[4]. They describe problems that occur repeatedly, and patterns.
describe the core of the solution to that problem, in such a
way that we can use this solution many times in different The Patterns movement began in the area of architectural
contexts and applications [7]. It is important to emphasize design almost 20 years ago with the work of Christopher
that patterns are not invented, but discovered in existing Alexander [1]. Recently, the object-oriented community has
software or working environments. begun to discuss the subject and there is already an
impressive corpus of work being developed. This work has
A design pattern is described by stating the context in which been mainly focused on two different areas: design patterns,
the pattern may be applied, the problem and interacting and pattern languages. Design patterns are general enough to
forces that bring it to life, and the collaborating elements solve recurrent design problems in different domains. For
that make up the reusable solution. These elements are example, the definition of a one-to-many dependency
described in an abstract way because patterns are like between objects so that when one object changes its state, all
templates that can be applied in many different situations. its dependents are notified and updated automatically (the
The important elements of a pattern are the responsibilities Observer design pattern). Another design pattern appears
that must be assigned to each component and the thread of when defining families of algorithms, encapsulating each
collaborations among them that solve the recurrent problem one and making them interchangeable (the Strategy design
in the specific context. The consequences and tradeoffs of pattern). Patterns are now considered the very basic building
applying the pattern are also important because they allow blocks of a software designer’s daily work.
evaluating design alternatives.
In some domains such as, for example, communications or
The main advantages of the use of patterns are summarized real-time systems, design problems may be more specific
as follows, as discussed in [16]: and therefore more specialized patterns arise [16]. They are
usually the basis of a pattern language: a partially ordered
Patterns enable widespread reuse of software architectures. set of related patterns that work together in the context of a
Reusing architectures is more valuable than reusing certain application domain. Pattern languages are also being
algorithms or data structures. In the case of hypermedia constructed for shaping up complex organizations and their
applications this is obvious because it is quite difficult to development processes [3]. Those are called organizational
reuse concrete components. patterns. The objective of our work is to establish the basis
for a pattern language for hypermedia applications. A first
Patterns improve communication within and across step in that direction may be found in [13, 14].
sojlware development teams as they provide a shared
concise vocabulqy. Using patterns the level of discourse There is no fixed format to describe patterns, although the
among team members bass a higher level of abstraction. For essential elements must always appear: name, problem,
example instead of saying: “Let us create an index for all solution, consequences. Design patterns are usually found in
artworks under the same theme and give the user the chance the format proposed by [4], named the “GOF’ format
of navigating through them”, we can say: “Let us create the (standing for Gang-Of-Four, the authors of that book). It is
navigational context Artwork-by-theme”. very complete and detailed, which makes it almost
straightforward to implement them in software. The GOF
Patterns explicitly capture knowledge that designers use format allows recording both the rationale for using the
implicitly. Though expert hypermedia designers usually pattern in the “Motivation” section and the tradeoffs
make good decision they do not document what problem involved in its use in the “Consequences” section.
they are solving and the rationale for that solution. In
particular, design patterns are helpful for training new More abstract patterns, i.e., those that encompass more
developers as they can learn from others’ experience. abstract solutions that can be implemented in many
different ways, as well as organizational patterns, usually
Pattern descriptions provide a framework for recording
appear in the “Alexandria” t’ormat. It contains name, -Hypermedia Sysferns. this category encompasses design
context, problem, solution, and related patterns [ 1]. patterns that can be used to construct hypermedia systems,
i.e., those environments used to build hypermedia
Patterns in a pattern language are usually related with each applications. They have a specific audience: hypermedia
other. Relationships express that some patterns usually system developers. Although these patterns were discovered
appear together, that some patterns are mutually in object-oriented environments, it is not difficult to apply
complementary or exclusive. the core of the solution to other design strategies. Examples
of design patterns from [4] applied in the development of
In our approach to build a pattern language for hypermedia, hypermedia architectures are the Observer Design Pattern
we find quite difficult to construct a single interrelated (used in the separation among the run-time and Storage layer
pattern language, expressed with a unique format. The in the Dexter Reference Model [10]) or the Composite
reason is that we are not only talking about a particular Design Pattern (used in the implementation of Composites
domain, but about a complete paradigm. Moreover, patterns in the Devise Hypermedia Model [9]). Examples of
for hypermedia are related under different design and hypermedia patterns in this category are Navigation
implementation concerns; for example, should we consider Observer and Navigation Strategy, described in [ 13]. These
the same set of patterns when we are building a hypermedia patterns are better described in the GOF format, as
substrate and when wc are designing a hypermedia explained in the previous section.
application?. In the first case we should use the GOF
notation [4] because the designer is dealing with a more -Hypermedia App/icatior?s. These patterns are meant for
“conventional” software design problem where objects are hypermedia application designers, regardless of the system
commonly used to implement hypermedia abstractions (See they are using for the implementation. For this reason, these
[9] for example). In the latter, meanwhile, we should use the patterns have a more abstract solution, although they do not
looser “Alexandrian” format in order to give the designer lack accuracy in describing the elements involved and their
greater freedom during design and implementation. This is necessary interactions. The format used for these patterns is
important if we want t~~ achieve a wide use of these an “Alexandrian-like” format: name, intent, problem,
patterns , since the designer may not be using an object- solution, consequences, implementation, known-uses. We
oriented design method (like 00HDM), or his have further sub-classified these patterns into navigational
implementation environment may combine Java objects with and interface design patterns.
HTML pages, or combine Toolbook scripts with relational
databases, and none of these situations should prevent the -Navigational Design. Patterns in this category help
use of patterns. in organizing the navigational structure of the application in
a clear and meaningful way for the intended readers. They
We have then divided our work in different categories of address recurrent problems whose solution determines the
patterns that we explain in the next section. The pattern degree of success of hypermedia applications. Examples
language will contain clusters of related patterns in each include Navigational Contexts [14] and Active Reference.
category. We will discuss this point again in section 5.

~T~ewf
%pplkati(ms
,’
Hypermedia Systems Hypermedia applications
Navigational Design
12eveiopmenf Stages
Interface design

Figure 1: Hypermedia patterns space

3 PAlTERN CATEGORIES
We have organized the patterns into two categories -/ntetiace Design. The pattern language for this
accordingly to the different dimensions of applications stage gives some guidelines for a good organization of the
inside the hypermedia space, named hypermedia systems, information, in such way that interface elements interact for
and hypermedia application patterns. The second category is an effective presentation of the data. This pattern language
itself sub-divided according to different design concerns, as could be also used outside hypermedia applications, in the
outlined in Figure 1. These categories were defined based on broader context of GUI design. An example is the
our experience in designing hypermedia applications and in Information on Demand pattern [14].
the use of patterns.
4 SOME PAlTERNS FOR HYPERMEDIA So/ution
This section presents some patterns we have found in each The most convenient way to implement these history
of the different categories presented above: one hypermedia viewers is to use the Navigation Observer pattern.
system pattern, two navigational design patterns, and one Navigation Observer is useful in order to have a perceivable
interface pattern. For the sake of conciseness we will not record of the nodes and links visited while navigating the
discuss the patterns in full detail. Moreover, as we want to hypermedia space. Furthermore, it makes this record
stress the importance of patterns over a particular design independent of them, allowing changes in its presentation
solution, we omit presenting their tradeoffs. style according to user needs and preferences. Consequently,
the same design and interface style can be reused in different
4.1 Navigation Observer: A hypermedia system pattern applications. Navigation Observer decouples nodes from the
navigation history and the history from its interface
Intent (viewers). This allows the variation of the type of viewer or
Decouple the navigation process from the perceivable of the implementation of history without affecting nodes.
record of the process. Navigation Observer simplifies the
construction of navigation history viewers by separating the Structure
hypermedia components {nodes and links) from the objects In Figure 2, we show the structure of the Navigation
that implement both the record of navigation and its Observer pattern using OMT notation [15].
appearance.
Participants
Motivation –Hypermedia Component, such as Node and Link,
As previously stated a common situation found in many implements navigation and operations for displaying itself.
hypermedia applications is the requirement to record, in a
user perceptible manner. the state of the navigation. In –History records the navigation history. Different sub-
addition, as the navigation progresses, this record is classes of History may be defined for filtering different
automatically updated. For example, suppose we have a history aspects.
hypermedia application showing European cities, through
which we navigate using different access structures and –Abstract Viewer implements the abstract interface for
relationships. We may reach the same city through different different kinds of viewers.
navigation paths and we want to know which cities we have
already visited. This can be achieved by having a map of –Concrete Viewer implements the operation displuy-lfistory
Europe always visible in some portion of the screen. according to the type of user or preferences.
Whenever we visit a city, it is highlighted in this map, so we
can instantly know which cities we have already visited Collaborations
during navigation. –Each time a hypermedia component is accessed, it sends
the message record to the history, sending itself and the
We could implement this behavior by requiring that objects current context as the arguments, and the history registers it
representing cities (nodes in the hypermedia application) correspondingly.
communicate with the object representing the map with the
message highlight(self). However this solution would make –When the user wants a perceivable view of navigation, the
the existence of different perceivable records difficult, since message viewHisto~ is sent to an instance of the
it creates a strong dependence between nodes and viewers, corresponding ConcreteViewer, which in turn makes the
and requires modifying the hypermedia components for each current history perceivable.
new type of viewer that is defined.

lHypermediaCom~onent
.. ~ _ _ _ _ _ _
I r t I
- navigate () subject - viewHistory ()
? History 4
- goTo (object)
- record (object)
- backtrack (from)
=
- reset ()
ConcreteViewer
ConcreteHypermediaComponent
- viewHistory ()
E - goTo (object)
Figure 2: Navigation Observer pattern
–Concr-efe viewer-s interact with hypermedia components for Nctscape Navigator it is also possible to select a location
performing goTo operations (i.e., the navigation m a flrorn the navigation history. Though in Netscape only a text-
hypermedia component in the history), based list is presented, the underlying structure of the
application (running as a client of the WWW server) allows
Consequences using Navigation Observer for building new types of
–It decouples navigation from its history and the history viewers.
from a particular way of displaying it.
4.2 Navigational Contexts: a navigational design pattern
–This decoupling allows the separation of the application- Intent
specific style of viewing the history from the navigation Provide the user with closed navigational subspaces
functionality. containing context-related guidelines and relationships, so
that information can better be presented and comprehended.
–Some overhead can arise when the viewer is only interest The same node is also allowed to look different when
in certain types of nodes. The viewer will have to interpret perceived from within different contexts.
the history to filter out the type of nodes of interest, possibly
making use of the context reformation. Problem
Hypermedia applications usually involve dealing with
hnplementaticm collections of nodes (e.g., Paintings, Cities, Persons, etc.).
Several issues related with the implementation of Navigation These collections may be explored in different ways,
Observer are discussed below. according to the task the user is performing. For example,
we may want to explore Paintings of an author, Paintings on
l-Diflerent algorithms fur dejining the history. Though a certain subject, etc., and it is desirable to give the user
histories may be regarded as simple stacks recording each different kinds of feed-back in different contexts, while
visit to a hypermedia component, sometimes it could be allowing him to move easily from object to object within the
necessary to provide viewers with some “condensed” context. From a design point of view this situation may arise
history. This may happen either when the same object is for example when traversing 1-to-n links, as shown in the
visited more than once or when complex backtracking in a next example.
multiple windows environment occurs [2]. One possible
approach is to define a different method in History that Suppose that in an application about Painters and Paintings
returns the record of navigation discarding duplicates and we reach “Van Gogh”, choose to navigate to his paintings
cycles. Another approach is to add this responsibility to and then arrive at “Sun Flowers”. Alternatively, we can also
viewer objects that may analyze the stack as needed, with reach “Sun Flowers” while exploring Paintings about nature.
the help of contextual information.. It is clear that we will explore the same object under two
different perspectives; for example while accessing it as a
2-Viewers and histories as access structures. We can use Van Gogh’s work, we would like to read some comments
the interface of a history as an access structure to nodes we about its relationships with other paintings by him, as well
have visited previously. In this case we need to implement a as having easy access to another painting he painted. On the
protocol connecting the viewer with nodes, possibly using other hand, as a painting on nature, it would be appropriate
the history as a mediator object. In many hypermedia to read (or see) something about that subject and be able to
environments this kind of “goto” operation is allowed, even access other paintings on the same theme (perhaps not Van
in cases where viewers are implemented simply as a Gogh’s). This means that we will need not only to present
clickable list of node labels, as implemented in Netscape the information in a different way in both cases, but also to
Navigator. provide different links or indexes.

Implementing Navigation Observer in typical hypermedia The problem exemplified above uncovers some underlying
environments is usually easy. It is important to stress that potentially conflicting requirements, since we want to access
even in those settings not supporting objects it is advisable the same hypermedia component under different contexts.
to decouple nodes, histories and viewers. When it is not We need to group nodes under the same context and
feasible to separate navigation objects (nodes) from navigate through them using contextual links. On the other
interface ones, as in Asymetrix’s ToolbookTM, we collapse hand it is impractical and it may even shield inconsistency to
the history and its viewer in the same Toolbook object. have different objects to represent the same component
when present in each different context. Furthermore, the
Known uses current context of navigation is not a concern of the node _
Different hypermedia products provide a way of visualizing for example it is not appropriate that a node contains
the navigation history. For example Microsoft’s Windows contextual links because those links depend on context
Help shows the history of a help session as a list of visited information.
topics. Similarly, in some World Wide Web viewers like
Context
node

Decorator

Node
Figure 3: Navigational Context

Solution containing the same nodes, etc. Thus, we can further


Decouple the navigational objects from the context in which catalogue navigational contexts according to the criteria
they are to be explored, and define objects’ (contextual) used to define its elements ([18]).
peculiarities as Decorators [4] that enrich the navigational
interface when the object M visited in that context.
The Abductwn of Helen by Paris
Fra ANGELICO (Followar)
Navigational Contexts provides a way of organizing About 14S0

navigation. Navigational Contexts are composed of a set of Wc-4508x61c7n


)+3 591, PWcllaUi rw
navigational objects, i.e., Nodes (like Paintings) and Context
Links (links that connect objects in a context). Nodes are TM, panel q h.w be.
putof+hdewmuonof.
decorated with additional information about a particuku P16a of fumubm, ~bly
.nlull~ctast
context and additional anchors for context links. The
navigational context may also contain information about the
context itself, for example an explanation about Paintings on
Nature. When nodes are organized into navigational
contexts we have a simple way of navigating through the
different members of the set (by means of context links), and
when the same node is accessed in different contexts it can
exhibit different features (attributes and links) added by the
\ I
context decorator. See Figure 3.

In Figure 4 we show m instantiation of Navigational


Contexts in Microsoft’s Art Gallery. The object perceived
by the user is a combination of a node (“The Abduction of
Helen by Paris”) and a decorator (we call it InContext
object) that adds information and anchors according to the
context in which the node is being visited. Note that when Figure 4: Navigational Contexts in Art Gallery
using this pattern our design vocabulary is enriched with
higher level concepts. In fact, we can say “this object Some design decisions will lead us to several sub-patterns.
appears in context a,b,c, etc., and for each context let us For example, we may want to access every node in a context
define this kind of InContext objects and context links”. from within every other node, or may want to restrict
navigation in such a way that we provide an index to the
Consequences members of a context and we can only reach such nodes
When organizing navigation with this pattern the set of starting from the index but not from other nodes. When
navigable objects is partitioned into groups of closely solving these design problems we can state the solution in an
related objects (paintings on the same theme, comments on a abstract, application-independent way and write it as a
painting, documents related with the same painting, etc.), pattern, thus allowing others to share our expertise.
that are supposed to provide the user with an intuitive and
more comfortable navigational path. We have found the Implementation
need for applying the navigational contexts pattern in many Navigational contexts can be easily implemented in
design problems: for example for organizing targets of l-to- hypermedia environments, even those not supporting full
n links, for providing a navigational structure for all object-orientation. However, we may have to take into
instances of the same class, for traversing all parts of a account features of the implementation environment; for
composite structure, for defining different guided tours example when using Toolbook we can use groups to
organize information that will only be meaningful only in a Figure 5 we show the way in which this pattern has been
context and a script openInContext which manipulates the used in Le Louvre’”’.
corresponding group. In the WWW things are more
difficult; we can choose to statically generate all possibilities
by concatenating the decorator object and the decorated one
for each decorator/decorated pair or build the corresponding
page dynamically.

Known uses
Navigational Contexts has been used in many successful
hypermedia applications. For example in Microsoft’s Art
Gallery, paintings of the London National Gallery are
presented in different COIILeXtS: by place, period and subject;
some anchors are used as decorators and allow accessing the
next and previous painting in each context. In Portinari
Project [12, 18], a collection of most important painting of
Brazilian painter Candido Portinari, different families of
navigational contexts have been defined: for example for
each technique we can reach all paintings painted with that
technique, for each Painting we can explore documents
related with that painting, etc..

In Dorling Kindersley’s The Way Thing Works it is possible Figure 5: Active References in Le Louvre
to access machines either from an index or according to a
physical principle. As we can see in Figure 5, the reader has a permanent
reference about where he is located while he explores the
In [6] Navigational Contexts are called “Collections” and museum. In particular he can choose to go to another region
the authors propose adding them as primitives in the Dexter or room in the region. He can learn more about a particular
Reference Model. In 00HDM we use Navigational Context region (the Interface Pattern Information on Demand is used
as a design concept. This is an interesting use of a design to provide this information). It is very interesting in this
pattern as a way to provide higher level design primitives to example that the same pattern is applied twice in the same
the hypermedia designer. navigational structure.

4.3 ACTIVEREFERENCE: A NAVIGATIONAL DESIGN When we use Active Reference the reader has a perceivable
PATTERN FOR MONITORING NAVIGATION and permanent record about the current status of navigation
Intent and, in this way, we not only provide an orientation tool but
Provide a perceivable and permanent reference about the also make them available while navigating the target nodes.
current status of navigation, combining an orientation tool
with an easy way to navigate to a set of related nodes, at the Consequences
same or higher status level. When using Active Reference, the reader has a permanent
feeling about where he is in the hyperspace and at the same
Problem time he can choose where to move next. Another interesting
In many hypermedia applications (particularly those consequence is that since we are emphasizing location we
involving spatial or time structures) we need to provide the may block the view of some content because of overlap of
reader with a way to understand where he is and help him information on the screen. Notice that in the previous
decide where to go next. The usual solution would include example the location of the room is highlighted over the
an index (or other access structure) to the elements we room itself. Since deciding how to simultaneously show
intend the user to navigate. However, this solution will both navigational objects is an interface concern we do not
require the user to backtrack from the current node to the discuss it further. The Information on Demand pattern can
index to see where he is or to move to another node, while be used to accommodate information with a scarce interface
ensuring that its current position is highlighted in the index; space.
see for example Art Gallery’s Historical Atlas.
hnplementation
Solution The implementation of this pattern will depend highly on the
A good solution is to maintain an active and perceivable support and flexibility over the graphical interface provided
navigational object acting as an index for other navigational by the environment. For instance, it depends on the kind of
objects (either nodes or subindexes). In this way we will be hypermedia-aware widgets that allow anchor definition .It
able to interact with both the index and the target nodes. In also depends, for example, on available layering
mechanisms in the implementation environment, When a node has a lot of information to be displayed we
could defhre more than one page for the same node or use
Known uses scrolling, but oftentimes this alternative does not yield an
Active Reference has been used in many popular acceptable solution. Another alternative is to partition the
hypermedia applications. In Microsoft’s “The ultimate node in such a way that we can use different windows for
Frank Lloyd Wright” it has been applied to show his presenting the information, defining links among these new
buildings in different states in the USA. It is possible to see nodes. The problems with this solution are: fwst, in our
all the works together with an active map showing where it attempt to match design with an implementation issue, we
is located and a list of other works in the same state. may define an attribute of a node as a separate entity, and in
doing so we will end up distorting the application’s
In Microsoft’s Multimedia Beethoven we can access an
navigational structure. Consequently, the user will get the
active reference of the 9 1%. symphony allowing us to select
impression of dealing with multiple entities, becoming
different movements and listen to them; we can also select disoriented, while in fact he is accessing another part of the
another without needing to backtrack to an index. same conceptual entity.

In Grolier’s Encyclopedia Active Reference is used in a Solution


simpler but equally effective way. The reader has permanent Select the most important node’s attributes (including
access to a dictiomuy and to nodes accessed from the anchors) and make them perceivable in the interface.
dictionary. Provide a set of active interface objects (such as buttons) to
let the user select other information to be shown. Use the
4.4 Information on Demand: an interface design pattern
same screen area to display different attributes. In Figure 6,
Intent
taken from Le Louvre, we see an example of the use of this
Organize the information presented to the reader in a legible
design pattern. Paintings have many attributes to be shown
and comprehensible interface, by letting him decide which
but not all of them are shown at the same time. In Figure 6.a
items he wants to see further described in the context of the
we show which interface objets con~ol the information
same node. Prevent cognitive overhead.
displayed to the user. In Figure 6.b we show another “view”
Problem of the same node in which other attributes are displayed.
Designers usually find themselves struggling to decide how
Consequences
to show the attributes and anchors of a node in such a way
The Interface on Demand pattern raises an interesting
that both esthetic and cognitive aspects are taken into
discussion about what is navigation and what is an interface
account. Unfortunately, the screen is usually smaller than
effect, i.e., when we navigate to another object and when we
what is needed and many times one cannot make use of
are just changing the appearance of the same navigational
other media (such as simultaneously playing an audio track
object. This issue is interesting as it helps us to find “good’
and showing an image), either for technological or cognitive
navigational objects by abstracting the way in which they
reasons.
are to be shown to the final user. In OOHDM, for example,

i3uucwp#@Jw’duL anaill c.mil@mpm5 pu@ms. 00


9* *W9 de. mndmt*. C@Dmml&m
am~l.,# mf

El
Ac,,v,,.wfiu!,
C+, uxs COntm[l,
”g
the iorormaum
vm~.xed LOthe I:AI

Figure 6a: Interface showing the painting as the main Figure 6.b: Interface on Demand. A textual attribute is
interface object perceived
we clearly separate navigational design from the design of such as Information on Demand and Interface Groups [ 14].
the interface. In this way we can reason about navigation We strongly believe that discovering new patterns in well-
without considering further interface problems. In the designed hypermedia applications is a rewarding task as it
example above we can model Paintings as objects increases the degree of expertise we, as a community, can
containing information and anchors that do not need to be share and transmit to others. The process of finding new
perceived at the same time (like a zoomed painting view or patterns involves analyzing successful applications and
the textual information). Another interesting issue that arises reverse-architecting its underlying design structure [19]. In
when using Information on Demand has to do with this case the focus is not only analyzing the application as in
providing cues about what we will get when demanding [7] but also discovering recurrent problems and the way they
some additional information.. have been solved. It is not surprising that good applications
apply a set of principles that can be systematized as patterns.
implementation Many of them are usually hidden in the particular
When implementing information by demand we have to take instantiation of the problem so we must abstract from
into account some features of the supporting environment. particular application details in order to come up with a
While in Toolbook it is possible to easily implement the general expression of the problem and its solution.
kind of interface effect that is usual in this pattern, when Analyzing how we can implement the pattern in different
building web sites the solution is less obvious. In the web, hypermedia environments is quite important if we want our
we can implement a local scrolling effect, or choose to use work to result profitable to others.
frames and use a new window for each item of information
presented. This last solution has some navigational problems We are currently working in the definition of a Pattern
because in fact we are activating another (sub) node. Language, i.e. a set of design patterns that can be used
together to end-up with well-designed, usable hypermedia
Known uses applications. This language will consider two outstanding
Information on demand has been widely used in different design concerns: the development of software support for
hypermedia applications. In Microsoft’s Art Gallery it is achieving hypermedia behavior—we call this level
used to provide further reading about a Painting. When you hypermedia system level—and the one faced by designers
click the “See Also” button you get a set of related issues when using hypermedia primitives to build high level,
that are in fact attributes of the current painting representing usable applications—the hypermedia applications level.
anchors to the desired information. Moreover, the pattern language may contain more specific
“sub-languages” that deal with either particular design
In the Passage to Vietnam CD ROM, Interface on Demand
aspects such as navigation or interface or with more
is applied to let the user read further information about a
specialized applications like “information kiosks”. Though
photograph. In this application the pattern is used not
the field is rather new we believe several pattern languages
because screen space is scarce but because the authors do will surely arise from our effort.
not want to “pollute” the (beautiful) photograph with textual
information. There is a growing agreement that a new generation of
computer applications using hypermedia is now emerging.
5 FURTHER WORK
In applications combining navigation with more
We have presented the concept of design patterns and have
“conventional” behavior we will find many recurrent design
shown how to apply the principles behind patterns to
problems that we, as a community, have already solved. The
hypermedia design. We have also shown some simple but
pattern language expresses this collective expertise.
powerful design patterns: Navigation Observer,
Navigational Contexts, Active Reference and Interface on ACKNOWLEDGMENTS
Demand solving recurrent problems both for designers of We wish to thank the anonymous reviewers for their
hypermedia systems and hypermedia applications both at the valuable comments on the paper, which greatly helped to
navigational and interface level. improve it .

This research is part of our work on object-oriented Daniel Schwabe is partially supported by CNPq - Conselho
hypermedia design using 00HDM. Though the very idea of National de Desenvolvimento Cientifico e Tecno16gico,
patterns is somewhat independent of the method being used, Brazil.
it is clear that the underlying design framework has
influenced our work. In particular, as 00HDM clearly
separates conceptual, navigational and abstract interface
REFERENCES
design we have a first criteria to classify patterns according
to the design activity in which they participate. For example 1, Alexander, S. Ishikawa, M. Silverstein, M. Jacobson, I.
we have identified many patterns at the navigational level, Fiksdahl-King e S. Angel: “A Pattern Language”. Oxford
such as Navigation Strategy [13] and at the interface level University Press, New York 1977.
2. Bieber and J. Wang: “Backtracking in a multiple 12. Lanzelotte,R.S.G.; M.P Marques, M.C,G. Penna, J.C.
window environment”. Proceedings of ECHT’94, Portinari, I.D. Ruiz e D. Schwabe: “The Portinari
Edinburgh, September 1994, pp. 158-166. Project: Science and Art team up together to help
cultural projects”. Proceedings of the 2nd International
3. Coplien. “A Generative Development-Process Pattern Conference on Hypermedia and Interactivity in
Language”, Pattern Languages of Programs 1, Johnson Museums (ICHIM’93), Cambridge, UK, September 1993
and Cunningham eds., Addison Wesley, 1995.
13. Rossi, A. Garrido and S. Carvalho: “Design Patterns for
4. Gamma, R. Helm, R. Johnson and J. Vlissides: “Design Object-Oriented Hypermedia Applications”. Pattern
Patterns: Elements of reusable object-oriented software”, Languages of Programs 2, Vlissides, Coplien and Kerth
Addison Wesley, 1995. edr., Addison Wesley, 1996.

5. Garzotto, D. Schwabe and P. Paolini: “HDM - A Model 14. Rossi, D. Schwabe and A. Garrido: “Towards a Pattern
Based Approach to Hypermedia Application Design”. Language for Hypermedia Applications”. Proceedings of
ACM Transactions on information Systems, 11 (1), Jan. the 3rd. Annual Conference on Pattern Languages of
1993, pp. 1-26. Programs, Monticello, Illinois, September 1996.

6. Garzotto, L. Mainetti and P. Paolini: “Adding 15. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy and
Multimedia Collections to the Dexter Model”. In Proc. W .Lorensen: “Object Oriented Modeling and Design”,
ECHT’94-ACM Conference on Hypermedia Prentice Hall Inc. 1991.
Technology. Edinburgh, UK, Sept. 1994.
16. Schmidt:” Using Design Patterns to develop reusable
7. Garzotto, L. Mainetti and P. Paolini: “Hypermedia object-oriented communication software” Con-m of the
Design, Analysis and Evaluation Issues”, Comm. ACM, ACM, October 1995, 38(10), pp. 65-74.
August 1995, pp. 74-86.
17. Schwabe and G. Rossi: The Object-Oriented
8. Garzotto, L. Mainetti and Paolo Paolini: “Information Hypermedia Design Model. Communications of the
reuse in hypermedia applications”. Proceedings of ACM, August 1995, pp. 45-46.
Hypertext’96, Washington, 1996, pp. 93-104.
18. Schwabe, G. Rossi and S. Barbosa: “Systematic
9. Gronbaek: “Composites in a Dexter-Based Hypermedia Hypermedia Design with 00HDM”. Proceedings of the
framework”. Proceedings of the ACM European ACM International Conference on Hypertext
Conference on Hypertext, (ECHT94), Edinburgh 1994, (Hypertext’96), Washington, March 1996.
pp. 59-69.
19. Vlissides, J. Reverse architecture. Position paper for the
10. Halasz e M. Schwartz: “The Dexter Hypertext Reference Software Architecture Seminar, Daghstul, Germany,
Model”. Comm., of the ACM, February 1994, pp. 30-39. 1995 (available at http://st.cs.uiuc. edu/pub/patterns/
papers/revarch.ps ).
11. Izakowitz, E. Stohr e P. Balasubramaniam: “RMM: A
methodology for structured hypermedia design”. Comm.
of the ACM, October 1995, pp. 34-44.

You might also like