Model Driven Development of Interactive - Andreas Pleuss
Model Driven Development of Interactive - Andreas Pleuss
Model Driven Development of Interactive - Andreas Pleuss
Andreas Pleuß
München 2009
Model-Driven Development of
Interactive Multimedia Applications
Towards Better Integration of
Software Engineering and Creative Design
Andreas Pleuß
Dissertation
an der Fakultät für Mathematik, Informatik und Statistik
der Ludwig–Maximilians–Universität
München
vorgelegt von
Andreas Pleuß
geboren in Würzburg
Abstract xv
1 Introduction 1
8 Validation 173
8.1 Platform Independence: Transformations to other Platforms . . . . . . . . . . . . . . 174
8.1.1 Code Generation for Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.1.2 Code Generation for SVG/JavaScript . . . . . . . . . . . . . . . . . . . . . 176
8.1.3 Code Generation for FlashLite . . . . . . . . . . . . . . . . . . . . . . . . . 176
8.2 External Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
8.2.1 MML in the Course “Multimedia-Programming” . . . . . . . . . . . . . . . 179
8.2.2 MML in Project Theses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.2.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
8.3 Internal Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
8.3.1 Comparison to General Criteria for Modeling Languages . . . . . . . . . . . 188
8.3.2 Comparison to the Goals of This Thesis . . . . . . . . . . . . . . . . . . . . 191
8.3.3 Comparison to Other Approaches . . . . . . . . . . . . . . . . . . . . . . . 193
9 Outlook: Towards Better Integration of Software Engineering and Creative Design 197
9.1 Creative Design in Software Development . . . . . . . . . . . . . . . . . . . . . . . 197
9.2 Vision: Models as Central Hub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.3 First Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
D Questionnaire 221
Bibliography 227
viii Contents
List of Figures
1.1 Examples for multimedia applications today. (From left to right, starting in the top
row: Rich Internet Application [Goo], E-Learning [Jungwirth and Stadler03], Enter-
tainment [Hilliges et al.06], Entertainment on mobile devices [Tavares], Infotainment
in cars [Inf], Instrumented Environments [Bra]) . . . . . . . . . . . . . . . . . . . . 2
2.1 Technical media: Classes and examples based on [Hoogeveen97] and MHEG [ISO97b]. 6
2.2 Classification of media according to [Fetterman and Gupta93]. . . . . . . . . . . . . 6
2.3 Multimedia applications in the value chain. . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Structure in the Piccolo framework . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 MHEG-5 class hierarchy from [MHE]. . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6 A screenshot of Adobe Authorware. . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.7 A screenshot of Adobe Director. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.11 Extract from HyDev instance model for the virtual museum application taken from
[Pauen et al.98a] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.12 Extract from HyDev representation model for the virtual museum application taken
from [Pauen et al.98a] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.13 Screenshot from the automotive information system example for OMMMA [Engels
and Sauer02] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.14 OMMMA class diagram from [Engels and Sauer02] for the example automotive in-
formation system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.15 OMMMA sequence diagram from [Engels and Sauer02] for the example automotive
information system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.16 OMMMA presentation diagram from [Engels and Sauer02] for the top level view. . . 71
4.17 OMMMA presentation diagram from [Engels and Sauer02] for the cockpit view. . . 72
4.18 OMMMA statechart diagram from [Engels and Sauer02] for the example automotive
information system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.19 Approach from [Depke et al.99] interpreted as kind of MDE approach. . . . . . . . . 76
6.6 Complete Structure Diagram for the Racing Game example . . . . . . . . . . . . . . 108
6.7 MML metamodel for MML Structure Diagram Elements. . . . . . . . . . . . . . . . 108
6.8 MML metamodel for Media Components in the Structure Diagram. . . . . . . . . . 109
6.9 MML Scene Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.10 Metamodel for MML Scene Diagram elements. . . . . . . . . . . . . . . . . . . . . 111
6.11 Class representation of Scene Intro. . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.12 Icons for Abstract Interaction Objects. . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.13 Metamodel for MML Abstract Interaction Objects. . . . . . . . . . . . . . . . . . . 115
6.14 MML Presentation Diagram containing the Presentation Unit for the Scene Game. . 117
6.15 MML Presentation Diagram including UI Realizations for the Scene Game. . . . . . 119
6.16 Metamodel for MML Presentation Models. . . . . . . . . . . . . . . . . . . . . . . 121
6.17 MML Presentation Diagram for the Scene Game enhanced with Sensors. . . . . . . 123
6.18 MML Metamodel for Sensors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.19 MML Interaction Diagram for Entry Operation start of Scene Game. . . . . . . . . . 127
6.20 Metamodel for MML-specific actions. . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.21 MML Interaction Diagram for operation main of Scene Game. . . . . . . . . . . . . 130
6.22 Simplified extract from the UML metamodel for Activities. . . . . . . . . . . . . . . 131
6.23 Metamodel defining the integration of Activities and Scenes. . . . . . . . . . . . . . 131
6.24 MML Interaction Diagram for operation show of Scene Intro. . . . . . . . . . . . . . 132
6.25 Typical modeling process for MML models. . . . . . . . . . . . . . . . . . . . . . . 133
6.26 “Essence” of MML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.27 Tree editor for MML generated with EMF. . . . . . . . . . . . . . . . . . . . . . . . 137
6.28 MML Structure Model in Magic Draw . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.29 MML Presentation Model in Magic Draw. . . . . . . . . . . . . . . . . . . . . . . . 139
6.30 Steps for visually creating EMF-compliant MML models. . . . . . . . . . . . . . . . 139
8.1 Simple target structure for Flash Lite applications and small Flash applications. . . . 177
xii List of Figures
9.1 Simplified user interface design process and used tools in practice (based on [Ziegler08].198
9.2 Models as central hub in the development integrating different specific development
steps and tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.3 Using XAML as “central hub”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.1 factes and possible values for the taxonomy for multimedia applications taken from
[Hannington and Reed02]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
List of Tables
3.1 Applied development methods in web and multimedia industry [Lang and Fitzgerald05] 27
4.1 Temporal operators in CTT on tasks T1 , T2 . The binary operators are listed with
descending priority. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Abstract
The development of highly interactive multimedia applications is still a challenging and complex
task. In addition to the application logic, multimedia applications typically provide a sophisticated
user interface with integrated media objects. As a consequence, the development process involves
different experts for software design, user interface design, and media design. There is still a lack of
concepts for a systematic development which integrates these aspects.
This thesis provides a model-driven development approach addressing this problem. Therefore
it introduces the Multimedia Modeling Language (MML), a visual modeling language supporting a
design phase in multimedia application development. The language is oriented on well-established
software engineering concepts, like UML 2, and integrates concepts from the areas of multimedia
development and model-based user interface development.
MML allows the generation of code skeletons from the models. Thereby, the core idea is to
generate code skeletons which can be directly processed in multimedia authoring tools. In this way,
the strengths of both are combined: Authoring tools are used to perform the creative development
tasks while models are used to design the overall application structure and to enable a well-coordinated
development process. This is demonstrated using the professional authoring tool Adobe Flash.
MML is supported by modeling and code generation tools which have been used to validate the
approach over several years in various student projects and teaching courses. Additional prototypes
have been developed to demonstrate, e.g., the ability to generate code for different target platforms.
Finally, it is discussed how models can contribute in general to a better integration of well-structured
software development and creative visual design.
Kurzzusammenfassung
Die hier beschriebene Arbeit geht von der vielbeschriebenen Forderung nach einem strukturierten
Entwicklungsprozess für Multimedia-Anwendungen aus. Dazu wird mit der Multimedia Model-
ing Language (MML) eine graphische Modellierungssprache speziell für Multimedia-Anwendungen
vorgeschlagen, sowie ein darauf basierender modellgetriebener Entwicklungsprozess. MML unter-
stützt eine strukturierte, explizite Integration von Software-Design, User-Interface-Design und Medien-
Design.
Eine wichtige Zielsetzung der Arbeit ist die Einbeziehung etablierter Multimedia-Autorenwerk-
zeuge in den modellgetriebenen Entwicklungsprozess mit MML. Dazu werden aus den MML-Model-
len automatisch Codegerüste generiert, die dann direkt im Autorenwerkzeug geöffnet und weiterver-
arbeitet werden können. Dadurch werden die Vorteile von Modellen und die Vorteile von Autoren-
werkzeugen vereint.
MML wird unterstützt durch verschiedene Werkzeuge zur Modellierung und Code-Generierung,
die über mehrere Jahre hinweg in verschiedenen Projekten in der Lehre eingesetzt wurden. Weitere
prototypische Werkzeuge demonstrieren z.B. die Platformunabhängigkeit der Sprache. Abschliessend
wird anhand weiterer Beispiel diskutiert, wie Modelle im allgemeinen zu einer besseren Integration
von systematischer Entwicklung und kreativem, graphischen Design beitragen können.
xvi Abstract
Chapter 1
Introduction
With upcoming graphical and auditive capabilities of personal computers in the mid of the 90s, the
term “multimedia” emerged to a hype. The idea of multimedia raised expectations on very intelligent
and intuitive user interfaces making use of speech input and output, gestures and complex graphics to
provide complex information in a very convenient way, like in science fiction movies. Related to that
were overrated expectations on the content and the impact of multimedia systems, like in e-learning
where some authors painted the scenario that people will learn much more continuously and efficiently
due to omnipresent multimedia learning software. Like any “buzz word” the term “multimedia” was
used for product promotion and hence in a very ambiguous way. For example, personal computers
just equipped with a CD-Rom drive were called “multimedia systems”.
Similar as described by the Hype Cycle by Gartner [Gartner], a phase of disillusion followed.
Most existing applications could not meet the expectations. While the implementation of multimedia
became easier by increasing support in toolkits and programming languages, its usage was still lim-
ited because of its complexity [Mühlhäuser and Gecsei96, Bulterman and Hardman05]. In addition,
there was no common understanding of its precise meaning. This lead some authors to the statement
that “Multimedia is dead. In fact, it never really existed.”[Reisman98] (see also [Hirakawa99, Gonza-
lez00]).
Multimedia Applications Today Nowadays, multimedia capabilities are used in a much more nat-
ural and mature way. One reason for this is certainly the evolved implementation support. It has
become much easier now (on implementation level) to integrate multimedia and application logic.
From the viewpoint of multimedia, this allows to enhance multimedia applications with more sophis-
ticated interactivity and application logic. For instance, multimedia authoring tools like Flash [Flaa]
nowadays include a powerful object-oriented programming language. From the viewpoint of con-
ventional software development, the better integration leads to easier enrichment of applications with
multimedia user interfaces. For instance, the framework Flex [Kazoun and Lott07] aims to enable
software developers to integrate Flash user interfaces without knowledge on the Flash authoring tool.
A second reason is the evolution in user interface design. In earlier days, complex applications
were mainly developed for professional context like business applications. Today, due to the general
penetration of computers in all aspects of life, applications target also private everyday life situations.
Hence, criteria like the application’s usability, likeability, and also its entertainment factor become
more and more important [Dix et al.03, Shneiderman and Plaisant04]. On the other hand, the increas-
ing general awareness of the importance of usability leads also to more sophisticated user interfaces
in general. Research in the Human-Computer Interaction area, like new interaction techniques or user
2 1. Introduction
Figure 1.1: Examples for multimedia applications today. (From left to right, starting in the top
row: Rich Internet Application [Goo], E-Learning [Jungwirth and Stadler03], Entertainment [Hilliges
et al.06], Entertainment on mobile devices [Tavares], Infotainment in cars [Inf], Instrumented Envi-
ronments [Bra])
interfaces for Ubiquitous Computing, break new grounds by investigating into much more intelligent
and complex user interfaces using different media, new interaction techniques, and individual ele-
ments precisely tailored to the concrete tasks to be fulfilled by the user [Marculescu et al.04]. In this
way, user interfaces step by step approach the initial vision described above.
Accordingly, the application area of multimedia has expanded to almost all areas of software appli-
cations. Classical examples include E-Learning, Entertainment, Computer Games, Simulations, and
Arts. Today, additional areas are, for instance, Rich Internet Applications like the well-known Google
Maps [Goo], Car Infotainment Systems, Entertainment Software, also on various devices beyond the
Personal Computer, and various research prototypes for new user interfaces or for applications in
ambient environments. Figure 1.1 shows some examples.
systematic, and finally successful development process. This thesis aims to fill this gap by providing
an integrated and tailored model-driven development approach.
Approach in this Thesis This thesis provides a model-driven development approach to address
these challenges. To integrate the different developer groups and the artifacts they produce, it proposes
a “design phase” to plan and specify the application preliminary to its implementation. For this, it uses
a modeling language that integrates software design, user interface design, and media design into a
single, consistent language. As no such language exists so far, it introduces the Multimedia Modeling
Language (MML) which integrates different existing modeling concepts, like the Unified Modeling
Language (UML) and concepts from model-based user interface development (MBUID), and adds
new modeling concepts which are specific for interactive multimedia. The language is defined as a
standard-compliant metamodel and is supported by a visual modeling tool.
MML models can be automatically transformed into code skeletons. As MML is platform-
independent, it is possible to generate code for any target platform. In particular, existing multimedia
authoring tools are supported as target platforms: The generated code skeletons can be loaded di-
rectly into the authoring tool where they can be processed and finalized by user interface and media
designers. Hence, established professional tools for the creative, visual design are fully integrated
into the model-driven development process. This is demonstrated in detail by a fully implemented
transformation for the authoring tool Adobe Flash. In this way, the approach supports both: Sys-
tematic model-driven development for planning, structuring and integration of the different aspects
of multimedia applications and professional support for the creative visual media and user interface
design.
Thesis Structure The central theme throughout this work is the integration of creative, visual user
interface and media design with systematic Software Engineering methods.
At first, chapter 2 examines the basic definitions and the current practice in context of multimedia
application development. In turns out that the basic theme – the integration of software development
and creative design – is reflected in all aspects of multimedia development. For instance, common
implementation technologies are multimedia authoring tools like Flash or Director which strongly
support the creative design. However, they do neither support a development process nor a systematic
structure of the application in terms of Software Engineering.
Chapter 3 examines this problem in more detail. It turns out that existing literature as well as
existing studies on industrial practice clearly confirm the lack of adequate systematic, integrated de-
velopment methods. In particular, two specific challenges are discussed. First, the need to integrate
different kinds of design usually performed by different experts: interactive multimedia application
development requires software design, media design, and user interface design. Second, the final
implementation is often performed with multimedia authoring tools which must be integrated into a
development process.
Subsequently, the chapter discusses possible alternative solutions. As result, a model-driven de-
velopment process seems to be most promising: Models are an excellent tool to plan the overall
structure of the application and the coordination between different developer groups. In addition, a
specific idea is proposed to integrate existing authoring tools into the model-driven process: From the
models, it is possible to generate code skeletons directly for the authoring tools. Thereby, placehold-
ers are generated for the concrete visual media objects and user interface objects. These placeholders
can be filled out in the authoring tool, using the authoring tool’s established and powerful support for
creative design. However, the placeholders are already integrated into the overall application by the
4 1. Introduction
code generated from the models. This means that the models are used to specify and automatically
generate the application’s overall structure and the relationships between its different parts while the
authoring tool is used for the concrete creative design by filling out the placeholders. In this way, the
strengths of models (systematic planning of the overall structure) and the strengths of authoring tools
(creative design) are combined.
Chapter 4 then analyzes existing modeling approaches which can be used for such a model-driven
approach. It turns out, that there is a large amount of modeling approaches which target some as-
pects of multimedia applications. The chapter gives a comprehensive overview and structures them
into three identified research areas: user interface modeling, web engineering, and existing modeling
approaches from multimedia domain. However, none of this approaches is sufficient to model inter-
active multimedia applications: they either support only standard user interfaces or only multimedia
documents without advanced interactivity and application logic.
Due to the lack of a sufficient modeling language, the chapters 5 and 6 introduce the Multimedia
Modeling Language (MML). It integrates the concepts found in the related work and extends them
where necessary. Therefore, chapter 5 first presents the preliminary considerations for the language
design and then introduces concepts for modeling advanced media properties which have not been
addressed in existing modeling approaches yet. Subsequently, chapter 6 presents the resulting over-
all language under strong consideration of existing concepts from chapter 4. it is concluded by an
overview on the modeling process and the implemented tool support.
On that base, chapter 7 shows the transformation from MML models into code skeletons for a
multimedia authoring tool. The example platform here is Flash, as it is one of the most important
professional multimedia authoring tools today. The chapter also illustrates by screenshots how to
work with the skeletons directly in the authoring tool.
Chapter 8 addresses the validation of the proposed approach. First, several transformations to
other target platforms are shown to demonstrate the platform independence of MML. The next section
describes several projects for the external validation followed by a section on the internal validation.
Chapter 9 provides an outlook by generalizing the idea from this thesis to combine the strengths
of models and of tools for visual creative design. The model thereby acts as a kind of “central hub”.
The idea is illustrated by a real-world project in industry which provides a first step into this direction.
Finally, chapter 10 summarizes the contributions of the thesis.
Chapter 2
This chapter discusses the characteristics of multimedia applications and elaborates the required def-
initions for this thesis. Therefore, the first section discusses basic terms and definitions based on
existing literature. As this thesis deals with the development of multimedia applications, the second
section provides a more detailed look on multimedia applications from that point of view. In addition,
a third section introduces existing technologies for implementation and selects the platform Flash as
running example in this thesis. Based on the discussion above, the fourth section presents a clas-
sification of multimedia applications from the viewpoint of development. Finally, the fifth section
summarizes the most import findings and derives a resulting definition for this thesis.
2.1.1 Multimedia
The term medium has its origin in the Latin word medius which means ‘in the middle’. Today it
has in general the meaning of ‘intermediary’ or ‘mean’ but is overloaded with many specific mean-
ings in different contexts. Concerning the context of computer technology, the MHEG standard
[ISO97b, Meyer-Boudnik and Effelsberg95] distinguishes between five categories of technical media.
Figure 2.1 illustrates this classification with examples. The term multimedia applies to the category
of perception media, which is related to the way how a human being can perceive a piece of infor-
mation, e.g. visually or auditory. Visual media can then be further refined e.g. in text, still images,
animations, and movies. Auditory media are music, sound, and speech [Steinmetz00]. The remaining
human senses – touch, smell, and taste – are still rarely used for digital media today. These kinds of
media are sometimes also referred to as media types [Engels and Sauer02] to distinguish from media
objects. A media object is a concrete unit of information on one or more channels of information
[Henning01], i.e. of a specific media type.
Each media type is associated with one or more dimensions: one to three spatial dimensions and
one optional temporal dimension. Sound has one spatial dimension, images have two, and holograms
have three spatial dimensions. In contrast to still images, a video has an additional temporal dimen-
sion.
6 2. Interactive Multimedia Applications
Medium
Taste Tactile Microphone Cam era Mem ory Stick CD-Rom OCR Softw are Tools
Figure 2.1: Technical media: Classes and examples based on [Hoogeveen97] and MHEG [ISO97b].
Continuous
Sound Video Animation
(time based)
Discrete
Photo Text Graphics
(space based)
Captured Synthesized
from real world by computers
A classification of media useful for the context of this work is provided by [Fetterman and
Gupta93]: They distinguish on the one hand between discrete media and continuous media. Contin-
uous media have a temporal dimension, i.e. their representation changes dynamically over the time,
like audio, video or animation. Discrete media are time-independent, like text, image and graphics.
On the other hand they distinguish between captured media and synthesized media. Captured media
are captured via sensors and digitalization from the real world, like usually audio, video, and images
(photos). Synthesized media are created with the computer, like text, graphics, and animation. Thus,
synthesized media often have an explicit inner structure as it can be stored during the development
process (for instance, a vector graphics consists of graphic primitives while for captured images this
information is initially not available). A corresponding matrix categorizing media (types) is shown in
figure 2.2.1
Various definitions have been provided for the term multimedia. A popular definition2 is provided
by Steinmetz and Nahrstedt [Steinmetz and Nahrstedt04]:
As observed by Boll [Boll01] most alternative definitions mainly emphasize on the integrative
1
Although sound is often captured in practice, it can also be synthesized like MIDI files.
2
sometimes referred to as de-facto convention [Zendler98]
2.1 Basic Terms and Definitions 7
Multimedia documents consist of a set of discrete data components that are joined to-
gether in time and space to present a user (or reader) with a single coordinated whole.
An analysis from Boll [Boll01] of existing definitions in research work and standards identifies as
the main characteristics the integrative aspect in conjunction with temporal and spatial composition:
A multimedia document is a media element that forms the composition of continuous and
discrete media elements into a logically coherent multimedia unit. [Boll01]
Multimodal systems process combined natural input modes – such as speech, pen, touch,
hand gestures, eye gaze, and head and body movements – in a coordinated manner with
multimedia system output. [Oviatt99]
The understanding in this thesis conforms to this last definition which allows a clear distinction be-
tween the development support: Multimodality requires interaction design and complex algorithms
for analyzing the semantics of user input while multimedia focuses on design and integration of media
objects.
Thus, the viewpoint of understanding multimedia as kinds of documents is clearly no longer suf-
ficient today. In contrast, the original vision associated with multimedia, to create highly interactive,
intelligent, and usable systems, often requires a tight integration with complex application logic. Ex-
amples are many of the most successful applications these days, like Google Maps [Goo] and others
mentioned in section 1.
Basically, multimedia can be combined with any kind of application today. This means, that an
application provides a (usually more sophisticated) multimedia user interface instead of standard user
interfaces only. Typical reasons for this are [Hoogeveen97]:
• to enhance efficiency and productiveness of the user interface,
• to achieve more effective information and knowledge transfer, or
• an enhanced entertainment value.
This leads to the term multimedia application: Generally, an application (or application software)
is defined as a kind of software which directly serves the user [Microsoft03]. A multimedia application
in broadest sense is any kind of software which directly serves the user and provides a multimedia user
interface.
According to [Steinmetz and Nahrstedt04], a multimedia application enables the user to interact
with multimedia data.
A more comprehensive definition of multimedia applications is provided by [Engels and Sauer02]:
Multimedia applications can be defined as interactive software systems combining and
presenting a set of independent media objects of diverse types that have spatio-temporal
relationships and synchronization dependencies, may be organized in structured compo-
sition hierarchies, and can be coupled with an event-based action model for interaction
and navigation.
Consequently, multimedia applications integrate two aspects [Mühlhäuser and Gecsei96]: multi-
media authoring (which corresponds to the document character) and software programming (like for
conventional applications). This is an important characteristic which has strong impact on multimedia
application development and has to be frequently taken up during this thesis.
Section 2.5 will come back to the term “multimedia application” and provide a definition for this
thesis from the viewpoint of development.
Distribution
Content Application
Platform
Production Production
Provision
Examples:
Companies: Media Industry Multimedia Service Providers
Companies
Results: Text, Image, Video, Multimedia Infrastructure
3D Graphics Application
other hand, many multimedia applications have no additional need for web support compared to other
kinds of application. Thus, in the context of application development, web and multimedia properties
have to be distinguished.
Applications combining the hypertext concept with multimedia are referred to as hypermedia
applications. [Lang01a] defines hypermedia information systems as the intersection of hypertext sys-
tems, web information systems, and multimedia systems, i.e. requiring hypermedia to fulfill all three
properties. However, often hypermedia is described as superset of multimedia and hypermedia appli-
cations [Zendler98, Gonzalez00]. In practice, often the latter interpretation is used which means that
the term hypermedia is applied to all applications with either hypertext and/or multimedia character-
istics.
The last row in figure 2.3 shows examples for implementation technologies typically required in
each step. They are explained in the following.
The production of media objects in the first step requires very different processes and tools de-
pending on the media type. Synthesized media is created and processed by specific authoring tools.
For example 3D animations are created with 3D authoring tools like 3ds Max [3DS] or Maya [May].
2D animations are often created with Flash [Flaa]. Graphics are created for instance with Illustrator
[Ill] or CorelDRAW [Cor].
Captured media is usually captured from the real world but further processing and post-editing is
usually performed in authoring tools as well. Video is edited in video editing software like Premiere
[Pre] or Final Cut [Fin]. Sound is edited (and can also be created) with audio editing tools and MIDI
Sequencers like Cubase [Cub] or Reason [Rea]. Images are edited with image editing tools like
Photoshop [Phoa] or Paint Shop Pro [Pai]. An comprehensive overview on such tools can be found
e.g. in [Zendler98].
As shown by these examples, the production of media objects is supported by various very specific
authoring tools for the different media types. These authoring tools focus on efficient, creative, and
visual media design and are well established. At this point in the development, only the creative media
design is important – programming and software development knowledge are hardly relevant there.
In contrast, software for the last step in the value chain, Distribution Platform Provision, is usually
developed like conventional software using conventional programming languages like C/C++. This
holds also for infrastructure software in the broadest sense like Multimedia Database Management
Systems (MMDBMS, [Narasimhalu96, Zendler98] or player software like the Flash player [Adobed].
Such software provides general functionality independent from the actual content and the actual ap-
plication. The development of such software requires mainly programming skills and only few (or no)
creative visual design.
The development tasks in the Application Production step (the focus of this work) combine the
aspects of both areas: On the one hand, creative design is required. The developers have to create a
user interface and to integrate the content. Therefore, they often have to post-edit existing content or
to create additional content. On the other hand, the developers have to create the application logic and
the interactivity similar to conventional software development. Thus, authoring tools and conventional
programming are both required in this step. An overview on the different implementation technologies
and tools for application production is given in the next section 2.3.
This section briefly provides an overview on typical technologies and tools for implementing interac-
tive multimedia applications, i.e. for the second step in figure 2.3 (the focus of this thesis).
They can be classified into three categories [Engels and Sauer02]:
1. Frameworks and APIs,
2. Declarative Languages, and
3. Authoring Tools.
The next three sections give a brief overview on each category, with an emphasis on authoring
tools, and and shows some selected examples.
2.3 Implementation Technologies and Tools 11
Java Media Framework An example for the programming language Java are the Java Media APIs
[Microsystems] provided by Sun. Similar to DirectX they consists of different APIs for different
media types. It includes among others the Java Media Framework (JMF) which supports video and
audio, the Java Advanced Imaging API (JAI) supporting images, the Java 2D API supporting 2D
graphics and images as well, and the Java 3D API supporting 3D graphics and animations. Some of
them like Java 2D and Java Sound from the JMF have become part of the standard Java distribution.
There is no specific support for 2D animations. The APIs are platform-independent. However, there
are performance packs for some selected platforms (Windows, Linux, and Solaris) which provide
access to the platform’s native media libraries.
The programming style is rather heterogeneous depending on the media type. The JMF interprets
the media objects as abstract data sources and data sinks which are processed in processing chains.
They use several software design patterns to implement the concepts. The API structure and the
available examples mainly target the development of applications to create and edit media objects
– i.e. software for the first step in the value chain from section 2.2 – instead of applications with
multimedia user interfaces. This might also be a reason why 2D animation is not supported although
it is important for multimedia user interfaces and e.g. a core element in professional authoring tools
like Flash (see sec. 2.3.3).
Piccolo Besides the Java Media APIs, several other Java frameworks exist which mainly focus on
a specific media type. An example for 2D animations is Piccolo developed by Human-Computer
Interaction Lab at University of Maryland [Bederson et al.04, of Maryland]. It is the successor of
the framework Jazz provided by the same group and focuses in particular on zoomable graphical user
interfaces. There is also a version for the programming language C# available.
In general, Piccolo structures user interface elements in terms of a scene graph, i.e. as a hierarchi-
cal structure of nodes (figure 2.4). Piccolo nodes are for instance a graphic (class PPath), an image
(PImage) or text (PText)). A camera node (PCamera) represents a viewport to other nodes and can
apply transformations on them. A canvas node (PCanvas) represents a canvas where e.g. conventional
Java Swing widgets can be placed on. Piccolo also allows to create custom node types, for instance
12 2. Interactive Multimedia Applications
by class inheritance. In that way the framework supports implementing graphics and animations for
user interfaces on a high level of abstraction.
Java and Piccolo will be used as an example platform later in section 8.1.
SMIL An important standard in this category is the Synchronized Multimedia Integration Language
(SMIL, [Bulterman et al.05, Bulterman and Rutledge04]), an XML-based language defined by the
World Wide Web Consortium (W3C). It supports the integration and synchronization of different
multimedia objects into a whole multimedia application in declarative way. Basic concept is the
spatio-temporal integration of media objects. For the spatial aspect, each SMIL document specifies
multiple regions on the presentation screen. The different media objects then can be assigned to these
regions. For the temporal aspect it is possible to define e.g. sequential or parallel presentation of
different media objects.
It is possible to define event handling for user events like mouse clicks, e.g. to start and stop the
presentation. However, complex behavior it not intended in SMIL. As SMIL is an XML format it can
of course be accessed by scripting and programming languages like any other XML document, e.g.
using JavaScript. However, there is no further support for scripting language integration into SMIL
presentations. Thus, SMIL focuses on multimedia presentations but hardly on interactive applications
as considered in this work. SMIL presentations can be played with browsers and with several media
players like the RealPlayer or Quicktime Player.
There is also a commercial authoring tool for SMIL, called GRiNS [Oatrix, Bulterman et al.98],
provided by the company Oatrix which has its background in the Human-Computer Interaction re-
search group at CWI [CWI]. It allows to visually define the spatial layout and to define the presenta-
tion’s temporal structure by visually arranging media objects on a timeline. It is also possible to view
2.3 Implementation Technologies and Tools 13
! "
!#
!#
!
!
&%
!#
'
%
$%
$%
&
(
and edit the corresponding SMIL code directly so that developers can choose the preferred view for a
task.
MHEG-5 Another standard in this category is the MHEG-5 standard. It is mainly used for inter-
active television. It supports audio, video, graphics, bitmaps, and text. It also provides interactive
user interface objects like buttons, sliders, or text input, as well as different kinds of events. How-
ever, detailed specification of behavior is not defined in the standard and depends on the engine which
executes the MHEG application [Marshall08]. MHEG defines a class hierarchy for multimedia appli-
cations shown in figure 2.5.
ing to their authoring paradigm (or authoring metaphor) used to solve this challenge. A common
classification [Boles and Schlattmann98, Henning01, Engels and Sauer02] distinguishes between:
The following sections briefly introduce each of these classes. An additional analysis and com-
parison of the different classes can be found in [Bulterman and Hardman05]. A reference model for
authoring tools is presented in [Lorenz and Schmalfuß98].
Frame-based authoring tools represent the application by different frames or screens which contain
the actual user interface content and the spatial layout. When the application is executed the different
screens are by default presented in sequential order. It is usually possible to control the order of the
frames by additional scripting code or hyperlinks. Actually, all classes of authoring tools are frame-
based but the other classes use an additional visual metaphor (flowchart or timeline) to specify the
frame’s order and duration.
The content of each frame is usually edited visually by dragging and dropping user interface
elements provided by the tool. The properties of each user interface element are displayed and can
be edited in a property window. Furthermore it is possible to add script code to the user interface
elements, e.g. to handle user input.
There are many examples which fall into this category. A classical example is Apple HyperCard
[Hyp]. In HyperCard the application is represented as a stack of cards. Each card corresponds to
a screen shown to the user. It is possible to define a background for the cards containing user in-
terface elements common to multiple cards. Supported user interface elements are images, buttons
and textfields. Buttons and textfields can be associated with scripts which are specified in the built-in
object-oriented scripting language HyperTalk [Apple88]. Scripts can either be event handlers associ-
ated with user interface events, like clicking a button or opening a new card from the stack, or functions
to be called from other elements. The scripting code can control the application’s navigation as well
as read and write the properties of user interface elements.
Over the years there has been a large number of frame-based authoring tools. Most of them have
the same basic functionality like HyperCard. A popular example with practical relevance is Toolbook
[Too] originally produced by Asymetrix and now by SumTotal Systems. It is mainly used to create
e-learning content like interactive multimedia presentations. Advanced features of the current version
9.5 are for instance: templates for various types of questionnaires, easy creation of software simulation
(e.g. for user interface prototyping) through a screen recorder and a specific simulation editor view,
and support for multiple target platforms like mobile devices.
Graph-based authoring tools provide the same basic functionality like frame-based tools but in ad-
dition visually represent the application’s temporal behavior in terms of a graph. The most popular
example ([Britton et al.97, Hannington and Reed07] for this class is Authorware [Aut] from Adobe
(formerly Macromedia) which uses flowcharts. Thus, most authors call this class more specifically
flowchart-based authoring tools.
2.3 Implementation Technologies and Tools 15
Figure 2.6 shows a screenshot of Authorware. The window on the left hand side shows the
flowchart. The nodes in the graph are called Icons and define the content and behavior of the ap-
plication to be developed. Several icons represent content to be displayed on the application’s user
interface: A Display Icon is associated with text and graphics. The Movie Icon, the Sound Icon,
and the Video Icon represent other media content. In figure 2.6 the window on the right hand side
shows the content associated with the Display Icon selected in the flowchart. There are also prede-
fined components (Knowledge Objects) providing common functionality like multiple choice tests for
e-learning applications.
Other icons can be used to manipulate existing content: The Animation Icon allows to define
animations while the Erase Icon allows to remove content from the application’s user interface. The
Decision Icon is used to control branch the flowchart based on variable values or calculations. The
Calculation Icon is used to calculate values and manipulate data or global variables. User interaction
is supported by the Wait Icon which causes the application to wait for user input and the Interaction
Icon which is used to branch the flowchart depending on the user’s input. It is also possible to structure
the flowchart hierarchically to handle complex flows.
Authorware includes a scripting language (Authorware Scripting Language, AWS) and supports
also Java Script in the latest versions so that it is possible to script more complex functionality. Basi-
cally, the flowchart in Authorware visually defines the application’s basic behavior and can be inter-
preted as a kind of visual programming. Of course, complex applications may require much scripting
code so that the flowchart becomes less meaningful.
Similar to Toolbook presented above 2.3.3, Authorware is mainly used fro creating applications
with limited interaction. The main application areas are e-learning applications and multimedia pre-
sentations like tutorials, help systems, or product presentations. In addition, it is often used for user
interface prototyping [Britton et al.97, Hannington and Reed07].
There are only few other graph-based authoring tools besides Authorware. [Bulterman and Hard-
16 2. Interactive Multimedia Applications
Score
Stage
Tool-
bar
Property Cast
Window
man05] mentions two approaches from academic area: Firefly [Buchanan and Zellweger05] provides
automatic “temporal layout” for multimedia documents based on temporal relationships which can be
specified as directed graph by the developer. Eventor [Eun et al.94] aims to combine the flowchart-
based and the timeline-based (see below) authoring paradigm. In addition, [Bulterman and Hard-
man05] mentions that the concept of Timed Petri Nets has been discussed extensively in research
literature as candidate for specifying temporal behavior, however, there is no implementation as an
authoring tool yet.
Timeline-based authoring tools provide the same basic functionality like frame-based tools but ad-
ditionally visually represent the application’s temporal dimension by the metaphor of a timeline.
Usually the timeline consists of several tracks. Each track is associated with some content of the
application, e.g. a media object. The timeline visualizes the periods when a certain track becomes
active, e.g. is displayed or played.
Many of todays most popular professional authoring tools are timeline-based. Director and
Flash, both produced by Adobe, are the most important examples from this category [Hannington
and Reed07]. Thus, they are both briefly introduced here. The subsequent comparison shows, that
Flash is probably the most important professional authoring tool today. For this reasons it is selected
as example platform for this thesis.
Director Figure 2.7 shows an annotated screenshot of Director. It uses metaphors from the area of
movie production. The window on the bottom right hand side shows the Cast Members. These are
arbitrary media elements to be used in the application. A Sprite is an instance of a media element (i.e.
2.3 Implementation Technologies and Tools 17
instance of a Cast Member) on the stage. The stage (top left in fig. 2.7) represents the application’s
user interface.
The timeline is called the Score (top right in fig. 2.7). It is horizontally divided into Channels
which are associated to Sprites. The channel in the score visualizes when and how long its associated
Sprite appears on the user interface. In addition, there are special Effect Channels for effects and
filters which apply to the whole Stage. In horizontal dimension the Score is divided into Frames.
A frame represents a point of time. The playback head on top of the Score determines the frames
currently displayed on the stage. It is possible to place the playback onto a frame to shows or edit its
content. Playing the application (either for testing purpose in the authoring tool or when executing
the final application) means that the playback head moves along the timeline and frame after frame is
displayed (i.e. the corresponding content on the stage).
A Keyframe is a kind of frame where the associated content on the stage has been explicitly defined
by the developer. The developer can specify any frame to be a Keyframe. The content of other (simple)
frames is automatically derived from its foregoing Keyframe and can not be directly manipulated by
the developer. It is possible to animate the content on the user interface by interpolations (called
Tweening in Director). Tweenings are always defined between two Keyframes (an example for Flash
is shown later in figure 7.2).
Director supports a scripting language called Lingo. It is an object-based programming language
and can be used to control the application, its content and their properties, as well as to add interaction
and application logic. Scripts can be added only as event handlers. However, Director triggers an
event when the application starts which can be used as kind of “main” method.
Director applications are compiled into the Shockwave format which is interpreted by a player.
The player is available as plugin for web browsers. It is also possible to export the application as an
executable file which is often used to distribute Director applications as multimedia CD-Roms.
Flash The Flash authoring tools provides very similar authoring concepts like Director. In the last
years it has become a very popular platform. The term “Flash” is often also used to denote the
technology as a whole or the format of the resulting applications. In fact, Flash is the name of the
authoring tool which uses a proprietary file format with the file extension FLA. For execution the FLA
files have to be compiled into Shockwave Flash files (SWF)3 . SWF is a binary file format interpreted
by the Flash player which is available as plugin for web browsers.
Compared to Director, Flash provides exceeding support for creating 2D vector graphics and
animations. An important concept are MovieClips. Each MovieClip owns a local timeline of its own.
The frames on its internal timeline can contain any kind of content just like the application’s main
timeline, i.e. graphics, animations, audio, video, etc. It is also possible to hierarchically nest multiple
MovieClips up to any depth. Once a MovieClip has been created by the developer it can be instantiated
multiple times on the stage or within other MovieClips. In this way it is possible to create animations
of any complexity.
The scripting language in Flash is called ActionScript. The first version of ActionScript was an
object-based scripting language. It is close to the third edition of the ECMAScript standard [Ecm99].
ActionScript2 introduced in 2003 provides in addition object-oriented mechanisms. It is possible
to define class files (similar to class files in Java) and to associate them with a MovieClip. This
causes that every instance of this MovieClip is associated with a corresponding ActionScript object.
Besides, scripts can be added to frames on the timeline or as event handler to media instances on the
stage. ActionScript enables to control the whole application and its contents. It is thus possible to
3
Not to be confused with the format of Director which is called Shockwave only.
18 2. Interactive Multimedia Applications
develop a complete Flash application only by programming ActionScript and without usage of the
visual authoring tool features. In the latest version of ActionScript, ActionScript 3, the step towards
object-orientation has been completed and several inconsistencies from earlier versions have been
removed.
More detailed information on the Flash authoring tool will be given later in chapter 7.1 as Flash
is selected as example platform for this thesis. The next section explains the reasons why Flash is
currently the probably most important authoring tool in industrial practice.
Director vs. Flash According to studies in industry [Britton et al.97, Hannington and Reed06, Han-
nington and Reed07] as well as personal experience, the most important authoring tools are Author-
ware, Flash, and Director. Authorware seems to be less optimal as typical example platform for this
thesis as its graph-based paradigm is quite exotic and it is also rarely used to create highly interactive
applications. The following paragraph will compare Flash and Director and give a brief overview on
their background.
Director was one of the first products of the company MacroMind which was renamed to Macro-
media in 1992 after a merge with the producer of Authorware (see sec. 2.3.3). The first version
emerged in 1997 from FutureSplash, a tool for 2D animations by the company FutureWave Software
which was acquired by Macromedia. While Flash originally addressed vector graphics and animations
only, Director has always been developed as a multimedia authoring tool. Thus, in the nineties Di-
rector was the probably most popular authoring tool for professional multimedia developers [Britton
et al.97, Hannington and Reed07].
In the end of the nineties Macromedia put their focus towards web technologies and emphasized
on Flash. After Macromedia was acquired by Adobe in 2005 this trend continues. Since 2002 only
two new versions of Director have been released (2008: version 11) while four version of Flash have
been released during the same period (2008: version 10, called Flash CS4). As mentioned above
major revisions have been made on ActionScript which has now emerged to a fully object-oriented
Java-like programming language. In general, the technology around Flash seems to move more to-
wards better support for programming and software development. An important example is the Flex
framework [Kazoun and Lott07, Gruhn07]. This framework enables conventional software develop-
ers to develop applications with Flash user interfaces in a conventional Eclipse-based development
environment independent from the Flash authoring tool. Flex is intended to be used for development
of so-called Rich Internet Applications (see sec. 4.2). However, the drawback in terms of creative
media design and user interface design is that there is no visual development support for Flex.
According to a study published by Adobe the browser penetration on desktop PCs currently lies
at already around 99% [Adobee]. Moreover, Adobe aims to establish Flash as platform for multi-
platform development4 . The Flash Lite player is a lightweight version of the Flash player for mobile
phones and other devices with limited computing power (see 8.1.3).
In summary, Director is the more traditional multimedia authoring tool and is still relevant. How-
ever, there seems to be a clear trend that Adobe relies more and more on Flash. Flash provides various
new features and extensions, like ActionScript 3 or multi-platform development, which are not avail-
able for Director and seems thus more promising for the future. Thus, Flash is chosen in this work as
best example for an up-to-date professional authoring tool.
4
The media informatics group takes part in a development project initiated by Adobe which makes use of multi-platform
support
2.4 Classification 19
2.4 Classification
The introduction in chapter 1 has already mentioned several typical examples for multimedia applica-
tions today. This section aims to provide a more detailed understanding of the spectrum of multimedia
applications by a suitable classification.
Classifications based on the Application Domain A large part of the existing literature on multi-
media applications addresses the spectrum of applications by lists of examples which are classified
into some larger example domains. For instance, [Boll01] lists the areas:
While these classes are certainly typical for multimedia it still raises the question whether they
are complete and how these classes would be located within the spectrum of all possible application
software. The thesis [Kraiker07] supervised by the author of this thesis examines this question. In
a first step, Kraiker selected common taxonomies for software in general mainly aggregated from
the taxonomies in [Klußmann01, Staas04]. In a second step, Kraiker sorted the examples given in
[Tannenbaum98] into this taxonomy. It turns out that multimedia applications can be found (more or
less, depending on the interpretation) in all classes of application software.
20 2. Interactive Multimedia Applications
Faceted Taxonomies As a classification purely based on the purpose is not always sufficient some
literature proposes detailed faceted taxonomies. An often cited taxonomy can be found in [Heller
et al.01]. They propose three dimensions:
• Media Type with the values Text, Sound, Graphics, Motion, and Multimedia,
• Media Expression with the values Elaboration, Representation, and Abstraction. This refers to
the degree of abstraction, i.e. whether content is for instance represented by a lifelike photo or
by an icon.
• Context, which does not contain discrete values but a collection of categories for qualitative
questions that can be asked about a software product and categorize it in a non-quantitative way.
The six proposed categories concern the audience, discipline, interactivity, quality, usefulness,
and aesthetics of a multimedia product.
In contrast to [Heller et al.01] which focus more towards aesthetics, the taxonomy in [Hannington
and Reed02] assumes the viewpoint of development. Thus, it is the most important for this thesis.
It provides a large number of facets to describe all aspects which might influence the development
of a multimedia application. Altogether they propose 21 facets together with possible values. The
facets span from general facets used in other taxonomies, like the application domain, over facets like
the delivery target platform (online, offline, etc.), navigation (linear, hierarchical, etc.), security re-
quirements (access levels, authorization, etc.), up to very detailed properties like used media formats
(JPEG, GIF, etc.), user interface widgets (button, checkbox, etc.) or authoring tools used for devel-
opment (Flash, Director, etc.). A listing taken from [Hannington and Reed02] showing all facets and
possible values is attached in appendix A.
The facets by [Hannington and Reed02] from above provide a very detailed understanding on
properties in multimedia application development. Taking them all into account would be useful for
instance to compare two concrete existing multimedia products. However, its level of detail is much
too high to achieve a compact overview on the whole spectrum of multimedia applications. Thus,
as intended by the authors in [Hannington and Reed02], it is possible to customize the taxonomy by
selecting only those factes which are most important for our purpose. The next section elaborates such
a taxonomy for this thesis.
• the concrete solution chosen by the developers (solution space, navigation, interface, program-
ming),
• the concrete development itself (operations, design technique, authoring tools, skills),
2.4 Classification 21
Thus, it is reasonable to omit them here. Delivery Platform and Security both indeed describe appli-
cation requirements but they are considered here as too specific to really influence the development in
general.
The remaining two facets from [Hannington and Reed02] are Media and Origin. Media means the
media type used in the application. This facet indeed influences the development process as e.g 3D
graphics requires very different experts, tools, and concepts than e.g. a mainly text-based application.
Origin refers in [Hannington and Reed02] to the origin of a media artifact with the values: Acquired,
Repurposed, and Created. This also influences the development as it makes a difference whether
media artifacts must be created in a possibly very complex design process or whether they are just
taken from an external source and must be integrated (only).
For sake of simplicity it is possible here to omit the value “Repurposed”: Either it requires some
effort to adapt the media then it is similar “Created”. Otherwise it is close to “Acquired”. Thus,
for our purpose the values are substituted by two more generic values: Received means that a media
object must not be designed within the development process but is taken from an external source, like
another company, an existing application, or by the user at runtime (e.g. in a video editing application
the videos are provided by the user herself). Designed means that the media object is designed as part
of the development process.
However, there is an additional value which is useful in our context which can be called Generated.
An example is Google Maps which contains complex graphics. This graphics is neither designed by
graphic designer nor taken from an external source – it is generated directly from geographical data
instead. This makes a significant difference, as it requires no media design but complex programming
instead.
In summary, we the following facets are used, in order of their importance:
Domain Gives a basic idea on the application’s purpose and its required domain concepts. Possible
values: Business, Information, Communication, Entertainment, Education (see sec. 2.4.1).
Interactivity Influences the degree of programming vs. authoring. Possible Values ([Hannington and
Reed02, Aleem98, Heller et al.01]):
Media Origin: Influences design vs. programming vs. integration only. Possible Values: Received,
Designed, Generated.
Table 2.1 shows the spectrum of multimedia applications in terms of the classification. The table
columns and rows represent the first two facets, ‘Domain’ and ‘Interactivity’. In the Interactivity facet
22 2. Interactive Multimedia Applications
the values ‘Passive’ has been omitted for simplicity as this work is on interactive applications. The
values of the third dimension, ‘Media Origin’, are indicated inside the table cells by the letters ‘R’
for ‘Received’, ‘D’ for ‘Designed’, and ‘G’ for ‘Generated’. The fourth dimension, ‘Media Type’, is
omitted for simplicity, as it has the lowest influence here.
The table contains an example for each class defined by the primary two facets. Of course, clas-
sifying the examples is to some extent subjective. In particular, the media origin often depends on
the detailed functionality. Often, an application combines two or three types of media origin. For in-
stance, the media in authoring tool are mainly provided by the user (e.g. a video in Flash) or generated
(e.g. graphics created in Flash). But an authoring tool could additionally provide predefined media
which then might be designed. Similarly, the media origin for other applications depends on the de-
tailed example. Nevertheless, it is not that much important here which kind of application uses which
media origin but rather that all kinds of media origin frequently occur and are often also combined
within the same application.
One can see in the table that applications using “generated” media are mostly proactive or directive
which seems quite logical. For communication applications no “reactive” example was found. This
makes probably sense as for communication software the content must by definition be influenced
by the user. In turn, there is no “directive” examples for information software, as such examples are
usually classified as communication software. However, again the classification is quite subjective.
In general, it is not the intention here to provide a new contribution in terms of the preciseness
of a taxonomy but rather to provide a reasonable and meaningful overview. It will be used later in
section 8.3.3 to evaluate the solution proposed in this thesis.
• A multimedia application basically is any application with a multimedia user interface (sec-
tions 2.1.3 and 2.4).
• A multimedia application as understood here directly serves the user and is not just infrastruc-
ture software (sec. 2.2).
• The term “multimedia application” does not necessarily mean a multimodal application (sec. 2.1.2).
The term multimedia still needs some more discussion here as this thesis assumes the viewpoint of
development. From that point of view, an interactive multimedia application usually involves media
design and user interface design (sec. 2.1.3). It is implemented with specific implementation support
for multimedia (sec. 2.3). However, when looking at advanced multimedia applications, media ob-
jects are not always designed as part of a media design process but can also be generated at runtime
(sec. 2.4).
In contrast some to existing definitions for “multimedia” (sec. 2.1.1), it is not so important here,
whether and how many different media types are integrated (e.g. one continuous and one discrete) but
much more the integrative aspect itself (sec 2.2). Moreover, in contrast to some document-oriented
points of view, integration is not restricted to spatio-temporal behavior but rather concerns also media
objects and application logic.
This leads to the following definition:
Thereby, the coupling between media objects and application logic is may include:
This chapter provides an overview over the approach presented in this thesis. The first section dis-
cusses the problem to be addressed in this thesis based on literature in particular existing studies on
industrial practice. It turns out that multimedia application development still lacks of adequate devel-
opment concepts as known in software engineering. The section also outlines the specific challenges
which clearly distinguish multimedia application development from other areas. On that base, the
second section discusses the solution space and identifies a model-driven development approach as
the most promising solution. The third section briefly introduces the main concepts of model-driven
development necessary to understand the subsequent chapters. Finally, the fourth section briefly illus-
trates the main ideas of the solution by an example application which is also used as running example
in the further parts of the thesis.
From a software engineering perspective, the problem with the current state of multime-
dia application development is not only the absence of sophisticated, yet practical multi-
media software development process models, but also the lack of usable (visual) notations
to enable an integrated specification of the system on different levels of abstraction and
from different perspectives.
The implement-and-test paradigm used during multimedia authoring resembles the state
of software development before leading to the software crisis of the 1980s.
Some authors move a step further and introduce the term of hypermedia crisis1 :
Such statements are heavily criticized by Lang, who has already been co-author of one of the
largest studies so far, described in [Barry and Lang01], which results were more ambiguous. He
performed a new study together with Fitzgerald [Lang and Fitzgerald05] to find out 1) the extent
1
The term hypermedia here refers to web and multimedia applications, see section 2.1.4. Additional information about
the companies examined here is also given at the end of this section.
3.1 Current Problems in Multimedia Application Development 27
Hybrid, customized, or proprietary in-house method or approach (not further specified) 23%
Traditional “legacy” software development methods and approaches or variants thereof, such 22%
as Structured Systems Analysis and Design Methodology (SSADM), Yourdon, Jackson Struc-
tured Programming (JSP), System Development Life Cycle, or Waterfall
Rapid or agile development methods and approaches, such as Rapid Application Development 18%
or Extreme Programming
Approaches that focus on the use of tools and development environments, such as PHP, Java, 15%
etc.
Object-oriented development methods and approaches, such as Rational Unified Process or 11%
object-oriented analysis and design
Approaches that focus on the use of techniques, such as Storyboards, Flowcharts, Wireframes, 8%
or UML
No method used or development approach is ad-hoc 8%
Specialized nonproprietary methods for Web and hypermedia systems development, such as 5%
Fusebox, Web Site Design Method (WSDM), or OOHDM (see section 4.2)
Table 3.1: Applied development methods in web and multimedia industry [Lang and Fitzgerald05]
to which the problems characterizing the alleged “hypermedia systems development crisis” actually
exist in practice, and 2) which, if any, mechanisms developers use to guide and control hyperme-
dia systems development. Therefore they sent questionnaires to web and multimedia development
companies in Ireland which were responded by 167 companies. The findings to question 1) were
that according to the questionnaires there is no evidence for a “crisis”. However, one problem of the
survey, also described by Lang, is that there is no evidence that the answers of the respondents are
too optimistic. (Most participants estimated different development aspects with “minor problems” or
“moderate problems” instead of “no problems” or “major problems”).
The questions for the study’s second issue were open ended and provided very ambiguous results.
Table 3.1 shows the answers structured into categories like in [Lang and Fitzgerald05].
When asked about their general opinion on structured development methods, 94% agreed that
planning is essential, and 80% agreed that plans and working methods should be clearly documented.
69 % agreed that ad-hoc methods generally result in poor systems. The suggestion that “documented
working methods are pointless” was firmly rejected by 79%.
Lang and Fitzgerald conclude that most companies do already use software engineering concepts
and that major problems in web and multimedia development do not exist. According to their inter-
pretation in this article, there is neither a hypermedia crisis nor are academic hypermedia approaches
accepted in industry. They summarize that the academic view of this area is far away from industrial
practice.
One can object that the survey findings about approaches applied in industry are difficult to inter-
pret. For example, stating a tool or programming language as applied “development approach” can
lead to the assumption that the company does not really apply an approach besides ad-hoc program-
ming. “In-house approach” is also difficult to interpret as well. In particular, the usage of “legacy”
software engineering methods, not adapted to web and multimedia application area, suggests that,
even if it might work, there is at least much space for optimization.
These objections are approved by another more in-depth follow-up study by Lang and Fitzgerald
[Lang and Fitzgerald06] where they examined more in detail the applied approaches and methods.
They find out that “old” software engineering concepts are mainly used
28 3. Problem Statement and Proposed Solution
[. . . ] even though a substantial cohort, including some who actually use such methods,
consider them somewhat impractical. [Lang and Fitzgerald06]
On the other hand
The level of formality of development processes was found to be negatively correlated
to the level of severity of problems raised by a number of selected development issues,
suggesting that formalized processes and procedures can help reduce the incidence of
such issues. [Lang and Fitzgerald06]
In summary, the truth certainly lies somewhere in between. The situation in multimedia and web
development might be not as bad as sometimes described. Clearly, many companies are successful
since many years and do also improve their development processes over time. On the other hand,
well-structured and more formal concepts are clearly seen to be valuable and existing methods are
definitely not optimal. Thus, despite of the personal opinion on the situation in industry (“crisis”
or just a need for optimization), there is clearly space for optimization by providing more suitable
methods for web and multimedia development.
As Lang and Fitzgerald underline, new approaches must be practically usable [Lang and Fitzger-
ald06]. According to them this requires easy usage, good documentation, and a good reputation in
industry. While the last point is often difficult to achieve for academics and also professional tool sup-
port can only be provided by a respective tool vendor company, at least ease of use and applicability
clearly must be ensured as much as possible by academic proposals.
The studies of Lang and Fitzgerald includes web and multimedia companies. In the last study the
ratio of multimedia companies was about 14%2 . While conventional standard web applications are
very well understood today and already comprehensive modeling approaches exist (see section 4.2),
the conclusions above are even more important in multimedia development, as this area comprises
additional complexity. The following two sections discuss the two essential challenges specific for
multimedia application development.
Software Design refers to development tasks required to conceive and produce the conventional soft-
ware part of the application, i.e. the application logic, according to standard software engineer-
ing principles like in [Sommerville06, Balzert98]
User Interface Design refers to development tasks required to conceive and produce the user inter-
face of the application according to principles of human-computer interaction like described in
[Dix et al.03, Shneiderman and Plaisant04].
Media Design refers to media-specific development tasks required to conceive and produce the media
objects and their integration.
Of course, the detailed tasks of each category depend on the company and the concrete project.
In particular, media design includes very different tasks depending on the specific media types, e.g.
video production or 3D graphics design. A fourth category of tasks, usually part of any kind of project,
is project management which includes tasks required for the coordination between the different de-
veloper groups (see more detailed developer roles provided by Osswald [Osswald03]). Some authors,
like Gonzalez [Gonzalez00], mention additional tasks like systems design which includes the design
of hardware components. Such low-level tasks are not considered in this work as the focus here lies
on the abstraction levels required for application development.
The coordination of the different developer groups and their artifacts integration of their different
results is clearly a requirement specific for interactive multimedia applications. It is often claimed
as one of the main challenges which have to be addressed by multimedia application development
approaches (e.g. [Morris and Finkelstein96, Hirakawa99, Rout and Sherwood99, Hannington and
Reed02]). Balzert [Balzert and Weidauer98] reports by own experience that the implementation of
interactivity by different teams is tedious and often inconsistent. When multimedia user interfaces
become more sophisticated, the dependencies between media objects, user interface, and application
logic increases. For example, media objects can be used for additional user input, e.g. by clicking
on an image or dragging and dropping an animation. In particular, media objects do not only act as
monolithic objects but require a specific inner structure which can be connected to application logic.
For example, the user can trigger functionality by selecting a specific part of a graphic, e.g. in a map.
In turn, the application logic often must be able to access inner parts of a media object, for instance
when some parts of an animation are moved according to application logic (example see figure 3.8).
Synchronization between media objects may require knowledge about their inner structure as well,
e.g. if some action on the user interface should be triggered while a specific scene within a video is
displayed.
Such interrelations are a critical bottleneck within the application development and require careful
coordination between the different developer groups. Analogous to conventional software develop-
ment it is mandatory to specify the “interfaces” between the different artifacts which should become
connected. “Interface” here means not necessarily an interface or component model on implementa-
tion level – in is already an significant help if there is a systematic for a fix agreement between the
developer groups how their results must be composed so that they fit together. Development support
for specifying these interfaces on an adequate level of abstraction can greatly increase efficiency in
development and maintainability of the application.
In summary, a development method for multimedia applications should support the integration of
media design, user interface design, and software design.
30 3. Problem Statement and Proposed Solution
Formal Methods A classical branch in software engineering are formal methods based on mathe-
matical logic like the general purpose language Z [Potter et al.96] or algebraic specification languages
3.2 Analyzing the Spectrum of Possible Solutions 31
[Wirsing90, Broy et al.93]. They allow a very well-structured development process with a high degree
of automation and validation of the developed system. Some formal approaches for multimedia de-
velopment have already been proposed [Blair et al.97, Sampaio et al.97]. The disadvantage of formal
methods is the high effort required for learning as well as for applying the method, which results as
trade-off from the feasibility of automatic validation. This will pay off mainly for safety critical sys-
tems which are only a very small part of multimedia systems. Furthermore, the focus of a multimedia
application often lies on weak, non-functional requirements regarding aesthetics, realistic effects, ef-
ficient information transfer, and usability. They are difficult to measure and formalize – if at all, then
only with a very high effort. The already existing methods in multimedia development, like prototyp-
ing and user tests, are usually more adequate for validating such requirements. Finally, like discussed
in section 3.1, approaches for multimedia development must be lightweight and easy to use. Formal
methods will hardly be accepted in this area.
Agile methods Agile methods [Poppendieck and Poppendieck03, Eckstein04] can be regarded as
counterpart of formal methods in software engineering. By their lightweight character and their close
relationship to prototyping and user tests, they are obviously candidates to be applied in multimedia
development. As these approaches do not require any high-level design artifacts like models (in terms
of a pre-implementation design like with UML), choosing an agile approach would cause that the
problem of missing models becomes obsolete. Also, agile approaches fit optimally to high occurrence
of requirement changes in multimedia development. However, there are also some serious difficulties
when applying such approaches to multimedia application development.
In the annually course “Multimedia Programmierung” (multimedia programming) at the Univer-
sity of Munich, supervised by Prof. Hußmann and assisted by the author of this work, students have
to develop a Flash application over three months in teams of 5 to 7 people. In the 2004 edition we
conducted an experiment and forced the students to use an agile development process. The concrete
agile approach to be applied was Extreme Programming (XP, [Beck and Andres04, Stephens and
Rosenberg03]). In its original version, XP uses twelve interwoven practices which have to be adhered
strictly in order to compensate the missing formality and ensure the quality of process and results.
While some of these work well very in multimedia projects, others are hard to apply.
An important practice is testing. XP requires writing automated tests before implementing a
feature (unit tests and functional tests). At any time of the project the unit tests have to run for
100%, and all of them have to be run every time new code is added or code is changed. This is also
interwoven with the practice of refactoring which requires that when adding new code the overall code
is (if necessary) re-structured to have at any time a well-structured overall system which is as simple as
possible and does not contain duplicate code. These two XP practices are essential to compensate the
missing design specification. However, in multimedia programming automated tests are only possible
to a limited extent. As explained above, the requirements are often weak and can not be measured
directly. Thus, refactoring becomes more difficult as well. In addition, refactoring is much more
difficult when using multimedia authoring tools, as (see above) structuring the application in general
is difficult and requires specific expert knowledge and additional conventions. Also, other issues of
multimedia, like missing version management systems, are problematic as well. Thus, it is doubtful
whether the code-centric practices of XP can really ensure a good structure of the overall application.
Another problem is that the production of complex media objects can require a relatively long
period of time. This constricts the XP ideas of very small, manageable increments and iterations. In
fact, multimedia developers often have to work in parallel for longer periods which contradicts the
XP ideas and rather profits from preceding specifications. In general, XP does not provide specific
32 3. Problem Statement and Proposed Solution
support for the problem of integrating the interdisciplinary experts in multimedia development.
Altogether, XP has some striking commonalities with multimedia development but in fact the
practices are too much code-centric to be applied directly to multimedia-specific conditions and di-
rectly improve the existing situation.
means that the general concepts for an application have to be specified only once and can be reused for
an arbitrary number of implementation platforms. For multimedia applications this will be even more
important in the future as visions like ubiquitous computing [Weiser99] suppose that user interfaces
run on a large spectrum of different devices and platforms. For this reason model-based approaches
are considered as very promising for development of future user interfaces in general [Myers et al.00].
Platform-independent models also help for the problem described by Balzert that multimedia appli-
cation developers are highly dependent from authoring tools vendors and must completely re-develop
applications if support by a specific authoring tool becomes insufficient.
In summary, the discussion shows that among conventional approaches from the software engi-
neering area a model-driven approach advantages clearly seems to prevail. Certainly, other concepts,
like Agile Development approaches, might be useful for multimedia development as well, if adequate
adaptations could be found. However, the study of Lang and Fitzgerald [Lang and Fitzgerald05]
suggests that the general acceptance for more formal approaches is not as low as expected. A promis-
ing future direction can be Agile modeling Processes [Rumpe04, Rumpe06] which might achieve a
combination of both advantages for multimedia development.
The following section discusses the cornerstones of an adequate model-driven development ap-
proach customized for multimedia applications.
The provided modeling language is as lightweight as possible. The concept to restrict modeling on
the overall application structure, as described above, contributes to this goal very well. Furthermore,
also the detailed behavior is not specified in the models, as this is much more efficiently realized
within the authoring tools or programming environment. Anyway, an efficient implementation usually
requires platform-specific constructs which would be very tedious to specify within the models. In
particular for multimedia applications the code often causes effects on the user interface. Concrete
algorithms and parameter values to achieve the desired effects can often not be specified just on a
theoretical base but have to be found out by try and error and by examination of the running system.
Thus, such details are omitted in the models. The models are reduced as much as possible to the
essential elements to keep them as easy to use as possible. In that way the approach adheres to the
requirements of Lang and Fitzgerald [Lang and Fitzgerald05] and [Voss et al.99] (see above) which
postulate that solutions must be lightweight and easy to use.
In summary, the approach introduced in this thesis provides the following solutions to address the
specific problems and challenges in multimedia application development:
1. Integration of media design, user interface design, and software design into a single, consistent
modeling approach.
2. A level of abstraction which enables code generation but ensures a lightweight approach.
The following section first introduces the current state-of-the-art in model driven development and
the respective area of model driven engineering. Afterwards an illustrating example scenario for the
proposed approach is shown. Both sections build the background for the more detailed descriptions
in the following chapters of this work.
Modeling, in the broadest sense, is the cost-effective use of something in place of some-
thing else for some cognitive purpose. It allows us to use something that is simpler, safer
or cheaper than reality instead of reality for some purpose. A model represents reality for
the given purpose; the model is an abstraction of reality in the sense that it cannot repre-
sent all aspects of reality. This allows us to deal with the world in a simplified manner,
avoiding the complexity, danger and irreversibility of reality. [Rothenberg89] (according
to [Bézivin05])
Examples are a human blood circulatory model in medicine or a globe for geographical informa-
tion. Both represent only certain aspects of the system. For example, it is not possible to use a globe
for measuring the temperature on a certain point on the earth. In addition, models show given aspects
3.4 A Short Introduction into Model-Driven Engineering 35
representationOf
model
*
System systemUnderStudy
*
{incomplete}
Model *
conformsTo
MetaModel 1
context MetaMetaModel inv:
self.conformsTo = self
-- A MetaMetaModel
MetaMetaModel -- conforms to itself
of a system at different levels of abstraction. For example, geographical maps exist in many different
scales for different purposes (see [Bézivin05]).
A short and common definition of models is provided in [Seidewitz03]:
A model is a set of statements about some system under study.
A model itself can also be interpreted as system. Thus, a model can be represented by another
model, e.g. on another level of abstraction. Analogously, a map can also be seen as a representation
of another more detailed map of the same territory. Figure 3.1 shows these relationships: A system
can be a model of another system. Kinds of systems include physical systems, digital systems, and
abstract systems. The relationship between a model and the system it represents (system under study)
is called representationOf.
Each geographical map requires – at least implicitly – a legend, to interpret the elements in the
map. This concept can be generalized and applied to models which must also conform to a speci-
fied modeling language. According to the spirit in the modeling community, modeling languages are
defined by models themselves, which are called metamodels. As shown in figure 3.2, each model con-
forms to a metamodel which is a model itself. Thus, a metamodel has to be conform to a metamodel,
too, which is thus called meta-metamodel. The existence of a common meta-metamodel enables to
compare, merge, transform, etc. between different metamodels and the corresponding models (see e.g.
[Fabro et al.06] for advanced operations on metamodels). To avoid unlimited number of meta-steps,
the meta-metamodel is its own reference model, i.e. it conforms to itself.
A more formal definition of these relationships is given in [Kurtev et al.06]:
• A directed multigraph G = (NG , EG , Γ G ) consists of a set of nodes NG , a set of edges EG
and a mapping function Γ G : EG → NG × NG
• Model is then defined as a triple (G, ω, μ) where
36 3. Problem Statement and Proposed Solution
The conform to relationship then corresponds to the relation between a model and its reference
model. A meta-metamodel A metametamodel is a model that is its own reference model (i.e. it
conforms to itself). A metamodel is a model such that its reference model is a meta-metamodel. A
(terminal) model is a model such that its reference model is a metamodel [Kurtev et al.06].
An advantage of visual modeling languages is that they provide a visual notation in terms of
diagrams. Often a modeling language provides different kinds of diagrams providing different views
onto the model. A visual representation can provide a higher degree of usability as it provides much
more possibilities to encode information and can often be percepted, understood, explored, etc. much
more efficiently by humans than a purely textual notation [Tufte01, Ware04]. Certainly, as mentioned
by Green [Green00], a visual notation alone will not improve usability. Instead, the notation has to
support the given developer tasks as good as possible, which can be analyzed e.g. using the cognitive
dimensions framework by Green [Green00].
Software systems usually should reflect information and processes of the real world. In software
development, models are thus used to specify or prescribe the software system to be developed, but
also to describe the system under study (e.g. a business process which should be supported by the
software). In software engineering, many different kinds of models are used (see e.g. [Burmester
et al.05] for an overview). A common distinction is made between General Purpose Languages
(GPL) which aim to support many different application domains and Domain Specific Languages
(DSLs) like shown at [Metb] which aim to provide optimized support for a delimited set of tasks, e.g.
modeling a very specific kind of application, maybe even for a specific company.
The most important example of a visual modeling language is the Unified Modeling Language
(UML, [Rupp et al.07, Hitz et al.05]), a general purpose language which integrates different types
of diagrams originating from different areas in software engineering. It has been defined by the
Object Management Group [OMGb], an industrial consortium, and has today become an industrial
standard. UML is usually used in common software engineering methods like object-oriented analysis
and design [Booch et al.07]. However, UML is independent from the development process and the
concrete usage of UML models is explicitly not part of the UML specification. The concepts described
above apply also to the UML: The UML is described by a metamodel [Obj07c, Obj07d] where UML
models should conform to.
It is important to notice that a metamodel specifies only the abstract syntax of a modeling lan-
guage. However, like any other (textual) language in computer science, a modeling language can
be formally specified by defining its syntax and semantics. A discussion is provided in [Harel and
Rumpe00]. For modeling languages like UML, the metamodel is supplemented with well-formedness
rules – using the Object Constraint Language (OCL) [Obj06b, Warmer and Kleppe03] specified by
the OMG as well – which further constrain the abstract syntax. The semantics and the concrete syntax
– i.e. the graphical or visual notation – are defined only informally by natural language (although there
are several initiatives to achieve a formal definition for UML, like [Broy et al.05, Reggio et al.01]). Ex-
amples for formally defined visual modeling languages are Petri Nets [Murata and Murata89] or State
Machines [Harel and Naamad96]. However, in model-driven development the (execution) semantics
of modeling languages is indirectly defined by transformations which map a modeling language onto
a formally specified language, like e.g. Java code.
3.4 A Short Introduction into Model-Driven Engineering 37
Meta-
Model 1
Trans-
formation
n-1
Platform-specific Implementation
Model n Code
(PSM) (Platform n)
The OMG specifies the Model Driven Architecture (MDA, [Miller and (Eds.)03]), a concrete
framework for the realization of model-driven development. The current working definition [OMGa]
defines MDA according to [Obj04b]:
Figure 3.3 shows the general idea of MDA: during the development process different models
(conform to metamodels) are used, starting with abstract, platform-independent models (PIM) via
38 3. Problem Statement and Proposed Solution
transformations to an arbitrary number of different platform-specific models (PSM) which are finally
transformed into the final implementations.
A model transformation is “the production of a set of target models from a set of source models,
according to a transformation definition” [Sottet et al.07a]. They are executed by a transformation
engine. [Czarnecki and Helsen06] provides a classification of transformation languages. Important
classes are graph-transformation based approaches and hybrid approaches.
Graph-transformation-based approaches specify transformation rules in terms of typed, attributed
labeled graphs [Rozenberg97]. A rule consists of a left-hand-side (LHS) and a right-hand-side (RHS).
The LHS is matched in the source model and replaced by the corresponding RHS in place. The LHS
consists of the matched pattern in terms of a graph, conditions, and some additional logic. Basically,
the graph patterns can be expressed in the abstract or the concrete syntax of the source and the target
language. Examples for Graph-transformation-based approaches are AGG [Taentzer00, AGG], Atom3
[Vangheluwe et al.03, ATo], and VIATRA [Csertán et al.02, VIA].
The hybrid approaches combine several different paradigms, like declarative and imperative state-
ments. Two important languages are classified by [Czarnecki and Helsen06] into this category: QVT
and ATL. QVT (Query/Views/Transformations, [Obj07a]) is a standard defined by the OMG support-
ing queries on models, views on metamodels, and transformations of models. It includes two declar-
ative components on different abstraction levels, Core and Relations, and a mapping between them
(RelationsToCoreTransformation). Imperative logic is supported by the imperative component Oper-
ational Mappings and the component Black Box which allows the integration of complex algorithms
written in any other language. As QVT standard definition is currently finalized, first implementations
are still under development, e.g. as part of the Eclipse model-to-model transformation (M2M) project
[Eclc]. A hybrid language with tool support is the Atlas Transformation Language (ATL, [Jouault and
Kurtev05, AMM]). It also provides declarative and imperative statements and is relatively close to the
QVT standard (see discussion in [Jouault and Kurtev06]). It has been integrated into the Eclipse M2M
project as well. In particular, there is a library with ATL transformations at [ATLa]. More details on
ATL can be found in section 7.
A transformation can be seen as a model as well. Thus, QVT has been defined in terms of MOF-
compliant metamodels. As transformation languages and transformation engines are defined system-
atically they provide additional useful properties (in contrast to e.g. proprietary code generators).
Basic properties a transformation should fulfill are [Kleppe et al.03]:
1. Tunability, i.e. the possibility to adapt the transformation by parameters for the transformation.
2. Traceability, i.e. the possibility to trace one element in the target model back to its causing
element in the source model.
3. Incremental consistency, i.e. information added manually to the target model is protected and
not overwritten if the transformation is executed again later (e.g. after the model has been
updated).
Another property with low priority is bidirectionality, which means that the transformation can be
applied not only from source to target but also backwards from target to source. However, this property
is rarely applicable in practice and thus often ignored.
The OMG specifies various concepts for model-driven development, including XML Metadata
Interchange (XMI, [Obj07b]) an XML-based exchange format for any kind of MOF-based model, the
Object Constraint Language (OCL) [Obj06b], a formal language allowing the definition of constraints
and conditions in models, and the QVT language (Query/View/Transformation, [Obj07a]) which al-
lows specifying queries on models, views on metamodels, and model transformations. The OMG
3.4 A Short Introduction into Model-Driven Engineering 39
M1 Layer
UML Models IDL Interfaces
M0 Layer
specifications base on the common meta-metamodel defined by the OMG, called Meta Object Facil-
ity (MOF, [Obj06a]). All OMG modeling languages like UML and others (e.g. CWM [Obj03]) are
defined by a MOF-compliant metamodel. Traditionally the OMG illustrates the relationships between
models, metamodels, and the MOF by the “four layer metadata architecture” shown in figure 3.4:
Layer M3 contains the meta-metamodel MOF. Layer M2 contains the MOF-conformant metamodels
defined by the OMG or third parties. Layer M1 contains the models which conform to the metamodels
of M2. Finally, M0 contains the data of the real-world which is described by the models of M1.
In the past, the four-layer-architecture caused several problems and misunderstandings. In earlier
versions the relationships between the model layers were called instantiation relationships, e.g. a
class in an UML model was supposed to be an instantiation of the metaclass “Class”. This kind of
instantiation has not been distinguished from object-oriented instantiation as defined e.g. within UML
models. An object in a UML diagram would then be instance of multiple elements: On the one hand
an instance of a class in the UML model and on the other hand an instance of the metaclass “Object”
in the UML metamodel. Several publications, e.g. by Atkinson and Kühne [Atkinson and Kühne01,
Atkinson and Kühne03], discuss such problems and show that they lead to inconsistencies, concluding
that the basic definitions have to be improved, e.g. by introducing the conformance relationship as
defined above. It is also important to understand, that layer M0 contains only the real-world objects at
runtime. The objects in a model (e.g. in a UML object diagram) are only snapshots of them and part of
the model and thus reside in layer M1. Moreover, as also mentioned in the latest MOF specification,
the number of model layers is not necessarily restricted to four layers.
In general, Bézivin [Bézivin05] shows that modeling concepts have to be clearly distinguished
from object-oriented concepts. Moreover, the more general paradigm of models can replace object-
orientation. While the existing paradigm of object-orientation “Everything is an Object” failed to
enclose all important concepts from software engineering, the new paradigm “Everything is a Model”
seems to be general enough for this purpose. This is illustrated by fig. 3.5 showing the application
of MDE concepts on different technical spaces as described in [Kurtev et al.02, Kurtev et al.06]. As
40 3. Problem Statement and Proposed Solution
a UML Model an XML Docum ent a Java Program an RDF Docum ent
in practice often one single technology is insufficient, the concepts from MDE can be used to bridge
between them [Kurtev et al.06]. Another important related technology are ontologies ([Bechhofer
et al.04, Bodoff et al.05] which can be integrated into the MDE concepts as well [Gasevic et al.07,
Obj07e].
The area of Model Driven Engineering (MDE, see e.g. [Pla]) deals with the general concepts of
MDD. The problems discussed in context of the MOF four layer metadata architecture show that the
foundations of MDE requires further investigation and a more precise definition. Favre discusses the
MDE theory ([Favre04b, Favre04a, Favre and Nguyen05]) and specifies them in terms of a model, the
so-called megamodel [Favre04c] (see also e.g. [Bézivin et al.04]) where the extract in fig. 3.1 is taken
from.
2. Definition of an own metamodel based on existing metamodels, e.g. the UML metamodel
3. Definition of an extension of the UML metamodel using the built-in extension mechanisms of
UML
The first approach is useful for DSLs which are compact and/or do not have much in common with
other metamodels. Besides, the MOF defined by the OMG there are several other meta-metamodels
supported by tools, like Ecore which is part of the Eclipse modeling Framework [Steinberg et al.08],
or KM3 [Jouault and Bézivin06].
For languages providing concepts similar to those included in UML it is often useful to reuse the
UML metamodel: Besides efficiency reasons, this can also increase the quality and the interoperability
of the resulting metamodel. Technically, reuse on metamodel level can be achieved by importing
or merging packages from the UML metamodel and adding new classes, e.g. using generalization
relationships.
For the third approach, mainly so-called stereotypes are used. A Stereotype is part of the UML
specification itself and allows the customization of UML metaclasses without changing the UML
3.4 A Short Introduction into Model-Driven Engineering 41
<<entity>>
Account Account
Account
(a) (b) (c)
metamodel. An example is a stereotype entity for UML classes which specifies that a class rep-
resents a business concept which should be persistent. It extends the UML metaclass class. A
stereotype is denoted in a model like the extended UML element but marked with either a stereotype
label (fig. 3.6a) or, if available, an icon (fig. 3.6b). Alternatively the UML notation can be replaced
completely by the stereotype icon (fig. 3.6c).
The advantages of stereotypes is that they are a more lightweight mechanism than changing the
metamodel and are supported by many UML modeling tools. A disadvantage is the restricted flex-
ibility as it is only possible to extend existing metaclasses, but not e.g. to add additional ones. A
collection of stereotype definitions for a specific purpose is called Profile [Pleuß02].The pros and
cons of Profiles versus DSLs have been subject of many discussions (e.g. [Desfray00, Kent05]). Of
course, there is a large difference between a very specific DSL for a specific company and a Profile
which is very close to UML. Nevertheless, there are many cases where the difference is not that large
and the intermediate solution from above fits as well. [Abouzahra et al.05] proposes an approach
for automatic transformation between models compliant to a given specific metamodel and models
compliant to a given analogous Profile.
A more detailed discussion of alternative ways to customize UML is provided in [Bruck and
Hussey07].
Tool Support
A large number of tools supports the UML as the de-facto modeling standard. [Jeckle04] lists more
than hundred UML tools. Widespread commercial tools are for instance Magic Draw [No Magic],
IBM Rational Modeler [IBM] (the successor of Rational Rose), Poseidon [Gentleware], and many
others. Many of them provide also support for UML Profiles and other customization mechanisms.
Domain-specific modeling languages are traditionally supported by Meta-CASE tools [Isazadeh
and Lamb97], like MetaCase [Meta] or GME2000 [GME]. They provide an integrated support for
definition of DSLs, creation of customized modeling editors, model validation, and code generation.
Most of them use proprietary concepts for language definition and transformations. The Microsoft
DSL tools [Cook et al.07] can be put into this category as well.
Several tool projects are under development which aim to support the latest concepts in MDE. An
important example are the sub-projects of the open source tool Eclipse [Eclb] devoted to modeling.
The Eclipse Modeling Framework (EMF [EMFb, Budinsky et al.03]) supports automatic generation
of an Java implementation from a given metamodel. It also automatically generates a simple tree-
editor which can be used to create models conforming to the given metamodel. More sophisticated,
visual modeling editors can be created for Eclipse using the Eclipse Graphical Editing Framework
(GEF [GEF]), a framework supporting 2D graphics and graphical editors in general. As an alternative
the Eclipse Graphical Modeling Framework (GMF [GMF]) allows to specify visual editors in terms
of a model and generate their implementation from the models. These projects together with many
42 3. Problem Statement and Proposed Solution
others devoted to modeling are subsumed in the Eclipse Modeling Project [Ecld] like tools for model-
to-model transformations, model validation, model weaving, etc. For example, the M2M [Eclc] (sub-
)project provides the transformation languages ATL and Procedural and Declarative QVT.
Consequently there are three typical kinds of support for implementing a custom visual modeling
tool:
Benefits
The overall goal of MDE is increasing the productivity in the development process. [Atkinson and
Kühne03] distinguishes between short-term and long-term productivity of artifacts created in the de-
velopment process. Short-term productivity depends on the value which can be derived from an
artifact in the development process. This is increased by MDE through automatic code generation.
The long-term productivity depends on how long a created artifact stays valuable. It is increased by
MDE as design knowledge is explicitly specified and documented in terms of abstract models as well
as by the possibility to reuse platform-independent models for new platforms and devices.
More in detail, advantages of MDE combine advantages of a design phase using visual modeling
languages with those of code generation. Compared to the whole spectrum of possible development
processes, MDE provides benefits 1) resulting from a design phase compared to development without
any design, 2) resulting from the usage of abstract, platform-independent, visual models compared to
development without models, and 3) resulting from code generation compared to approaches without
code generation.
However, there is an additional class of benefits resulting from MDE: The involved concepts are
systematically defined in terms of models, metamodels, and transformations and can thus be easier
managed, reused, and combined. Tools and frameworks can be reused for different application pur-
poses. These properties do not improve the development of an application itself but the development
of development support, i.e. they apply to a “metalevel” similar like metamodels.
Thus, expected benefits of MDE can be subsumed as follows4 :
• Reducing the gap between requirements and implementation: A design phase aims to
ensure in advance that the implementation really addresses the customer’s and user’s re-
quirements.
• Developer coordination: Previous planning of the developed system enables the develop-
ers to coordinate their work e.g. by dividing the system into several parts and defining
interfaces between them.
• Well-structured systems: A design phase provides explicit planning of the system archi-
tecture and the overall code structure. This facilitates implementation itself as well as
maintenance.
• Enhanced productivity: Generating code from a given model requires often only a teeny
part of time compared to manual mapping into code.
• Expert knowledge can be put into the code generator: Expert knowledge – e.g. on code
structuring, code optimizations, or platform-specific features – can once be put into the
code generator and then be reused by all developers.
• Reduction of errors: Automatic mapping prevents from manual errors.
• Knowledge about creation of modeling languages: MDE concepts and definitions reflect
existing knowledge about modeling, modeling languages, and code generation.
• Frameworks and tools: Tools like Eclipse Modeling Tools (p. 41) provide sophisticated
support for all steps in MDE like creating and processing metamodels, creating modeling
editors, and defining and executing transformations.
• Maintenance of modeling language and transformations: Systematic and explicit defini-
tion of metamodels and transformations facilitates maintenance of modeling languages
and code generators.
• Reuse of metamodels and transformations: MDE compliant explicit metamodels and
transformations can easily be understood and reused by others.
Like in many areas of Software Engineering, there is unfortunately only few empirical data on the
effect of MDE. Some experiments and reports from industry on the productivity of Domain Specific
Languages (in the broadest sense) can be found e.g. in [Kieburtz et al.96, Long et al.98, MetaCase99].
The lack of systematic validation is probably also caused by the fact, that software development meth-
ods and processes are often hard to validate (see “Validation Techniques in Software Engineering” in
section. 8).
domains explained in section 2.4 (this will be shown later in section 8.3). On the other hand, not all
kinds of games are suited to be developed with Flash: High-end 3D games are an exception within
multimedia development as they require specific development methods and experts and are not pro-
duced in conventional multimedia authoring tools. However, technically less sophisticated games are
indeed produced with authoring tools like Flash or Director [Bilas05, Besley et al.03], like produced
for advertisement [Wernesgrüner], specific platforms [Phob], or even for conventional commercial
purposes [Tap].
For the purpose of this thesis there are two important reasons while a small game serves best as
example application: First, the requirements of common games are easy to understand without specific
domain knowledge. For example, a learning application would require much previous explanation
about its content and the media components which should be used. Second, games naturally make
intensive use of all aspects of a multimedia application – individual media objects, application logic,
and interaction – while other kinds of multimedia application sometimes cover only some of these
aspects.
Figure 3.7 shows a screenshot of the application. It shows a screen with the actual race. The
application consists of several other screens like a start screen, a menu, a help screen, etc. Several
different Flash implementations (including multiplayer support) developed by students under super-
vision by the author of this thesis can be found at [MMPa]. A nice tutorial how to create racing game
applications with Flash is also given in [Besley et al.03].
In a model driven development process with MML, first the requirements would be analyzed in
conventional way like with any other development process. This can include first prototypes to gain
knowledge about the application domain and discuss basic decisions with the customer, but also e.g.
task models like ConcurTaskTrees [Paternò et al.97] to specify the general user tasks. During the
design phase, MML models are used to specify the different aspects of the application. This includes
the domain logic, the user interface in terms of abstract user interface elements, the interaction, and
the media objects.
Specifying the application’s media objects in particular means defining their interface to the appli-
3.5 An Illustrating Example Scenario 45
CarAnim ation
Figure 3.8: Example: Wheels of a racing car defined as independent inner parts.
cation logic. For example, in a car racing game it might be desired that the car’s wheels turn when the
car drives a corner (figure 3.8). As the player controls the car interactively, the movement of the car is
not a predefined animation but controlled by program code. For example, turning the car to the right
requires in Flash a scripting command which increases the car’s rotation angle like: myCar._rotation
+= 5. To achieve an effect like in figure 3.8b commands have to be added to turn the front wheels:
myCar.frontwheel_right._rotation += 5;. This requires that the front wheels are not just part of
the animation’s graphics but instead they must be independent (sub-)animations with an own name
to be accessed by the scripting code. These properties of the application can be specified in MML
(figure 3.8d). The media designer can then design the media objects according to these requirements.
Already the systematic documentation of such agreements and naming conventions between different
developer groups can improve the development process significantly. Moreover, code generation from
models enables to ensure and validate that the implementation conforms to them in a consistent way.
From the MML models, code skeletons can be generated for different platforms, in particular
for authoring tools like Flash as in the example. It is possible to open the generated code directly
in Flash and finish the implementation using the powerful abilities of the authoring tool. Figure 3.9
shows skeletons generated for from an MML model for the racing game. For the media components
which require an individual design, placeholders are generated which contain an inner structure as
defined in the MML model. They are filled out by the media designer. The user interface designer can
finalize the user interface using the visual editor facilities, e.g. by visually laying out the generated
components and replacing or adapting components where the generated ones are not sufficient. For the
application logic, scripting code skeletons are generated which are finalized by the software designer
46 3. Problem Statement and Proposed Solution
Figure 3.9: The generated skeletons including placeholders can be directly opened and edited in the
Flash authoring tool.
(programmer).
The generated placeholders can be edited without any restrictions or additional effort. The design-
ers can freely use all available tools and features of Flash as usual. As overall structure and navigation
of the application are already generated, the application can be started and tested at any time; indepen-
dent from missing parts. The different developer groups can work in parallel as all interfaces between
their artifacts to develop are already defined within the MML model. In addition, they are supported
by a Flash plugin which helps them to finalize the implementation and allows tracing changes in the
structure back to model, i.e. supports a round-trip-engineering.
Except the round-trip engineering which has been investigated mainly on conceptual level, full
prototypical tool support has been developed within this thesis for all above-mentioned steps.
Chapter 4
This chapter summarizes existing modeling approaches related to this thesis. While existing tech-
nologies and approaches for multimedia application development are introduced in chapter 2 and the
general foundations on model-driven development in section 3.4, this chapter focuses on existing
modeling concepts relevant for this work.
Currently only a very small number of modeling approaches for interactive multimedia applica-
tions exists. Section 4.3 describes them in detail. However, there is a large number of approaches
which cover one or more aspects important for this thesis. These approaches originate from different
research communities with different backgrounds. While the research work within each community is
tightly related, there is sometimes a gap between the different communities. For instance, approaches
for modeling multimedia does barely rely on knowledge from user interface modeling area – although
the user interface is an important part of a multimedia application. Thus, this chapter aims to classify
the existing work according to three identified communities and gives a summary on their general
backgrounds and their points of view.
A large number of concepts for modeling user interfaces in general originates from the field of
Human-Computer Interaction. Section 4.1 provides an overview about them. The area of Web Engi-
neering addresses the automatic generation of Web applications based on models. It is briefly intro-
duced in section 4.2. Finally, section 4.3 describes research efforts directly focusing on multimedia
aspects.
Domain,
Task Models
Modeling
Tools Abstract Presentation
Design Support Guidelines
Abstract UI
Model
Concrete Design
Design Support Knowledge
Model
Analysis Tools Concrete UI
Model
Developer
user interface modeling has evolved. The most popular events in this specific area are CADUI [CAD,
CAD07], DSV-IS [DSV, Doherty and Blandford07], and TAMODIA [TAM, Winckler et al.07] which
is held in 2008 together with HCSE at EIS [EIS].
The following sections will first introduce the common concepts in user interface modeling, show
some selected examples (ConcurTaskTrees, UsiXML, Dynamo-Aid, and UIML), and finally discuss
the relationship to Software Engineering concepts like model-driven engineering.
The dialogue model specifies the dialogue how to interact with the AIOs. It can be specified for
example in terms of State-Transition diagrams [Wasserman85], or Petri Nets [Palanque et al.93]. An
comparison of different possibilities for modeling the dialogue is provided in [Cockton87]. Some
approaches use only the task model, or a refined version of it, to specify the interaction and do not use
an additional dialogue model. Thus, the term abstract user interface model refers sometimes to the
abstract presentation model only.
Finally, the Concrete User Interface Model (CUI) realizes the AUI for a specific modality in terms
of concrete widgets and layout.
While most existing approaches and tools comply more or less with this general framework, the
concrete kinds of models and diagrams used by them varies significantly. Several surveys list and
compare the models used in the different existing approaches, e.g. Griffiths [Griffiths et al.98],
Schlungbaum [Schlungbaum96], daSilva [da Silva00], and Gomaa [Gomaa et al.05]. In addition,
[Limbourg04] compares various approaches regarding further properties like mappings and trans-
formations between the models and methodological issues. MB-UIDEs surveyed in at least three
of these comparisons are ADEPT [Markopoulos et al.92], AME [Märtin96], FUSE [Lonczewski
and Schreiber96], GENIUS [Janssen et al.93], HUMANOID [Szekely et al.92], JANUS [Balzert95],
MASTERMIND [Szekely et al.95], MECANO [Puerta96], MOBI-D [Puerta and Maulsby97], TADEUS
[Elwert and Schlungbaum95], Tealleach [Griffiths et al.99], TRIDENT [Bodart et al.95], and UIDE
[Foley et al.91]. Altogether, 34 approaches were compared. This shows that there exists a really large
number of relevant proposals. The missing common agreement about the best models and diagram
types to be used is one of the main problems of MB-UIDEs [da Silva00, Clerckx et al.04] and might
be one of the reasons why user interface models have not gained stronger popularity until now.
Even if user interface modeling has not become widely established until now, paradigms like
Ubiquitous Computing [Weiser99] or Ambient Environments [Wisneski et al.98] which strongly in-
fluence the Human-Computer Interaction area might significantly increase the importance of user
interface modeling: Future applications are expected to run on various different devices, like mobile
devices, public displays or computers embedded into items of every-day life. Moreover, expectations
include that users will be able to seamlessly switch applications between devices and be able to share
information everywhere they are. To provide the desired degree of usability, applications must be able
to adapt to the various contexts of use which includes the user, the devices, and further influencing
properties of the environment like the user’s location [Schmidt et al.99, Coutaz and Rey02]. In such a
scenario it will be very difficult to design the user interfaces for all the different contexts and devices
by hand. Moreover, an application’s user interface should be able to adapt to new kinds of devices and
contexts of use which have not been prospected at design time. Thus, it will be necessary to specify
user interfaces on a higher level of abstraction from which the user interfaces adapted to the current
context can be derived. User interface models will then play an essential role [Myers et al.00].
Current approaches in the user interface modeling area focus on such capabilities. As a result,
the general MB-UIDE framework from figure 4.1 has been extended by the CAMELEON reference
framework [Calvary et al.03] shown in figure 4.2. It adds generic models required to capture the
context of use of the application like user model, platform model and environment model. The evo-
lution model specifies the how the application switches between different configurations according
to relevant context changes. The transition model specifies how these transitions between different
configurations should be performed avoiding discontinuities between them. These models, together
with the task model and the domain model (here: concepts model) are the initial models which have
to be specified by the modeler during the design process. From these models the specification of
Tasks-and-Concepts, Abstract User Interface and Concrete User Interface is derived.
The horizontal translations illustrate the different configurations of the application according to
50 4. Related Modeling Approaches
Context 1 Context 2
Concepts Concepts
Concepts and Concepts and
Tasks Tasks
Tasks Translation Tasks
reification/abstraction
reification/abstraction
User Abstract UI Abstract UI User
Platform Platform
Concrete UI Concrete UI
Environment Environment
Transition Transition
Figure 4.2: The CAMELEON reference framework according to [Calvary et al.02, Calvary et al.03]
different contexts. The vertical transformations specify the refinement of specifications during the
design process. The reference framework explicitly allows starting the development process on any
level of abstraction as well as a flexible order of transitions between levels of abstraction because
many approaches are not strictly top-down or support reverse engineering steps. [Calvary et al.02]
examines several existing approaches in terms of the framework. Furthermore, a general schema for
the application’s context-sensitive behavior at runtime is provided.
An advanced feature of user interfaces in ambient environments is the capability of flexible mi-
gration over different devices to utilize available devices as profitably as possible. For example, if the
user gets to a room with a large display she wants for some information to be presented on the large
display. In particular, it is sometimes desirable to allow not only migration of the whole user interface
but rather partial migration: For example, when using a large display it might be useful to provide the
visualization part (i.e. purely output) on the large display while the control part (buttons etc.) should
be rendered on the user’s personal mobile device as supported by [Bandelloni and Paternò04, Ban-
delloni et al.04] or [Braun and Mühlhäuser05]. A taxonomy and general discussions of user interface
migration can be found in [Berti et al.05, Luyten and Coninx05].
Two concrete examples approaches are described in the next section: UsiXML, and XML-based
approach which realizes the design-time part of the reference framework very closely, and Dynamo-
Aid which provides an example for context-sensitivity at runtime.
A subclass of user interface modeling languages with increasing practical relevance are XML-
based languages focusing only on concrete user interface specification. They allow a declarative and
often platform-independent specification of the user interface but do not aim to support the devel-
opment process or to provide abstract models. The user interface specifications can be executed for
example by mappings onto specific platforms, like in UIML (see section 4.1.2), or by player compo-
nents. Of course, the latter ones can only be executed on platforms for which a player component
exists. Such languages can be found more and more even in large open-source projects or as part of
commercial tools by large vendors. For example, XUL [XUL] is part of the Mozilla Project [Moz]
and is interpreted by the Mozilla Browser. MXML is provided by Adobe [Ado] and enables declarative
specification of user interfaces for the Flex framework [Kazoun and Lott07] and is compiled into Flash
4.1 User Interface Modeling 51
files to be executed in the Flash player (see section 2.3). XAML [XAM] is developed by Microsoft
[Mic] and can be compiled into Windows .NET applications or be interpreted by XAML players.
Due to their declarative nature, their ability to run on several platforms, and their similarity with
CUI models, it is often useful to consider XML-based user interface specification languages either as
target format or directly as CUI model in model-based user interface development approaches.
ConcurTaskTrees
One of the most popular approaches for task modeling is the ConcurTaskTree (CTT) notation by
Paternó [Paternò et al.97, Paternò99] which partially bases on LOTOS [ISO88], a formal language for
concurrent systems specification. It supports four kinds of tasks:
User Tasks are performed by the user. Usually they are cognitive activities rele-
vant when using the application like making a decision.
Interaction Tasks require an interaction between the user and the system like push-
ing a button.
Application Tasks are performed by the system like searching in a database or
calculations.
Abstract Tasks represent complex tasks which are further subdivided into several
subtasks.
A CTT model consists of tasks hierarchically structured in a tree structure. If child nodes of a
task are all of the same type, the parent node is of the same type as well. Otherwise the parent node
is an abstract task. Temporal relationships between the tasks are specified using operators shown in
figure 4.1.
Figure 4.3 provides an example for a task tree. It shows an extract of a music player application
which can run on a PC and a mobile phone. It was developed in a diploma thesis supervised by the
author where several user interface modeling approaches were compared [Wu06b].
It is possible to calculate Enabled Task Sets (ETS) from a task model. “An enabled task set is
a set of tasks that are logically enabled to start their performance during the same period of time.”
[Paternò99]. This means the tasks which must be accessible at the same time for the user according
to the hierarchy and the temporal operators in the task model and should thus be available within the
same presentation unit of a user interface. (It should be mentioned that it is not always possible to
present the user all tasks from an ETS in parallel, e.g. when facing a very large task model or for
mobile devices with a small display. Such cases require additional decisions which tasks to present.)
For the model in figure three Enabled Tasks Sets are calculated:
Operator Description
T1 []T2 Choice
T1 |=|T2 Order Independence
T1 |||T2 Independent Concurrency
T1 |[]|T2 Concurrency with information exchange
T1 [>T2 Disabling/Deactivation
T1 |>T2 Suspend resume
T1 >>T2 Enabling
T1 []»T2 Enabling with information passing
T1 * Iteration
T1 (n) Finite Iteration
([T1 ]) Optional Task
Table 4.1: Temporal operators in CTT on tasks T1 , T2 . The binary operators are listed with descending
priority.
listen music
||| [>
adjust volume manage songs* quit
>> []>> []
list songs select song delete song listen song
[>
play selected song stop song
|>
play song pause song
uiModel
comment - creationDate : string 0..n 0..n authorName
0..n - schemaVersion : string
1 0..n
1 1..n version
1 1 1 1 - modifDate : string
1 1 1
modelType
- id : string
- name : string
Figure 4.4: Extract from the UsiXML metamodel [Usi06] showing the UsiXML models.
• ETS 2: adjust volume, delete song, play song, pause song, stop song, quit
A development method based on CTT supporting the development of multimodal user interfaces
for multiple target devices is presented in [Paternò and Santoro02, Mori et al.04]. It is supported by a
modeling tool, TERESA, which is freely available [TERa].
UsiXML
UsiXML (USer Interface eXtensible Markup Language, [Limbourg et al.04, Usib] is a model-based
approach close to the CAMELEON reference framework supporting user interfaces for multiple con-
texts. The language is based on XML and is defined in terms of a metamodel [Usi07]. Figure 4.4
shows the supported models. As their multiplicity is ‘0..1’ or ‘0..n’ it is possible to flexibly combine
the models according to the modeler’s needs.
The domain model corresponds to UML class diagrams. The task model is based on CTT. The
abstract user interface model is independent from platform and modality and specifies abstract in-
teraction objects (AIOs) and relationships between them. An abstract interaction object (AIO) can
be either a container or an individual AIO which consists of one or more of the four facets input,
output, navigation, and control. The relationships between them specify for example decomposition,
or spatio-temporal relations.
The concrete user interface model is modality-dependent but still platform-independent. It defines
the user interface in terms of concrete interaction objects (CIOs) – platform-independent widgets like
Button, Label, etc. in case of a graphical interface – and their layout. It currently supports graphical
user interfaces and vocal interfaces. The CIOs can be associated with behavior like operation calls
triggered by events.
The context model specifies the context of use including the user, the platform and the environ-
ment. Furthermore, it contains a set of plasticity domains which defines the specific contexts for which
e.g. an AIO or CIO should be available. The resource model can be used to specify content for the
interaction objects which depends on localization aspects, for example text in different languages or
the reading path. The transformation model enables to define transformations on the models e.g. from
54 4. Related Modeling Approaches
isGraftedOn isDelegatedTo
Domain Class
Class
Property manipulates Task isAllocatedTo Resource
observes/updates/triggers IsExecutedIn
hasContext
a task model elements to interaction objects or transitions of the interaction objects according to the
context.
The mapping model is used to specify relationships between models (often called inter-model re-
lationships in contrast to intra-model relationships which reside within a model). They are important
parts of the user interface specification, as the mapping model connects the model elements from the
other models and thus provides important information for the overall model. Figure 4.5 shows the
relationships between model elements from different models in UsiXML. For purpose of illustration
the figure depicts the relationships (metaclasses in UsiXML) as named relationships between models
and/or model elements. Some models or model elements are clustered into groups. For example, the
relationship hasContext can be specified between a context and any other model or model element.
As UsiXML is close to the CAMELEON reference framework the UsiXML mapping model provides
a good example for conventional relationships between user interface models in general.
A visual notation is not part of the UsiXML specification. The concrete syntax is XML but it
is intended to provide various tools for convenient creation of the models. Task and Application
Models can be created with IdealXML [Ide]. GraphiXML [Michotte and Vanderdonckt08, Gra] is a
GUI builder for UsiXML and allows storing the results as AUI and as CUI. To enable a less formal
development SketchiXML [Coyette et al.07, Ske] is a tool for user interface prototyping which allows
export into UsiXML specifications. Besides, various other tools exist, like and a tool for defining
and executing transformations based on graph grammars [Montero et al.05, Tra], code generators and
interpreter for various platforms (e.g. Java, Xul, and XHTML [Usia]) or a tool for reverse engineering
HTML pages into AUI and CUI models [Bouillon et al.04, Rev].
Dynamo-Aid
An approach supporting context adaptations at runtime is Dynamo-Aid (Dynamic Model-Based User
Interface Development, [Clerckx et al.05a, Clerckx et al.05b, Clerckx and Coninx05] which is part of
the framework Dygimes [Coninx et al.03, Luyten04]. Dynamo-Aid includes a modeling tool support-
ing the development process as well as a runtime architecture.
Dynamo-Aid supports the following models: Context-sensitive task model (also called Dynamic
task model), Context Model, Dialog Model, Presentation Model, and Interface-Model.
The context-sensitive task model is an extension of CTT enabling context-sensitive task models.
4.1 User Interface Modeling 55
Therefore, a it supports a new kind of task, the decision task. A decision task has several subtasks.
At runtime the system decides according to the context which of them is active. Figure 4.6 shows the
context-sensitive task model for the example music player application from [Wu06b]. Depending on
the context, the application is either executed on the desktop PC or the mobile phone. In addition,
a specific location-based service is available for the mobile phone version: When the user enters a
music shop (supporting this service) the application offers the user to listen to some sample versions
of new songs.
The context model consists of Concrete Context Objects (CCOs) and Abstract Context Objects
(ACOs). A CCO represents low-level context information, like obtained by a sensor. An ACO is
connected to CCOs and interprets their information to provide context information which is relevant
for the application. The ACOs can be connected to decision tasks in the context-sensitive task model
to specify the context information which determines the selection of tasks at runtime.
For each context of use a context-specific dialog model is calculated from the task model. It
consists of states and transitions. A state corresponds to an enabled task set (see CTT in 4.1.2).
A transition is associated with a task which triggers the transition. For the calculation of enabled
task sets, Dynamo-Aid implements an algorithm presented in [Luyten et al.03] which bases on the
algorithm from [Paternò99] and uses heuristics given in [Paternò and Santoro02]. Figure 4.7 shows
the context-specific dialog model for the example application by [Wu06b] calculated from the task
model from figure 4.3. The Enabled Task Sets correspond to those in section 4.1.2. ETS-1 corresponds
to a terminal state.
The modeler specifies the context-sensitive dialog model by defining transitions between the states
of different context-specific dialog models. They have to be defined manually to avoid any context
change which is not desired.
The presentation model is defined by selecting AIOs and assigning them to the tasks. Avail-
able AIOs are Choice, Input, Static, Navigation Control, Hierarchy, Canvas, URI, and Group. The
Dynamo-Aid modeling tool supports hierarchically structuring the AIOs and provides support when
56 4. Related Modeling Approaches
Figure 4.7: Example for a Context-specific dialog model calculated from task models in Dynamo-Aid.
assigning the associated tasks. However, the links between the AIOs and the tasks are not directly
visible in the diagram.
The context-sensitive interface model contains the aggregation of all the models defined before
and thus provides an overview of all relationships between them. As the number of relationships is
usually very large, the tool supports to show or hide them and to mark them with different colors and
provides semantic zooming.
UIML
The User Interface Markup Language (UIML, [Abrams et al.99, Phanouriou00, UIM]) allows to spec-
ify the concrete user interfaces independently from the platform. The language is based on XML. The
current version is 3.1 [Abrams and Helms04].
UIML enables to specify user interfaces in a platform-independent way. This is realized by vo-
cabularies for the different platforms. A vocabulary is a mapping from UIML specifications onto
the corresponding implementation for a specific platform, e.g. onto Java Swing classes. When using
UIML one can either use an existing vocabulary or create an own. According to the UIML website
vocabularies are currently available or under development for the following target platforms: Java,
J2EE, CORBA, C++, .NET, HTML, Symbian, QT, Visual Basic, VoiceML, and WML.
UIML aims to fully support all user interface elements and properties of the target platforms. On
the other hand, it aims for the highest possible extensibility. For that reason, the available user interface
elements in UIML are not defined by UIML itself but within the vocabularies. The structure of UIML
documents is very modular and provides a strict separation between structure, content, layout, and
behavior. A UIML document contains the following parts:
Structure: The structure of the user interface in terms of widget objects, like a panel or a button, and
relationships between them. The relationships are usually spacial for graphical user interfaces
and temporal for vocal ones. They are defined by specific widget classes like containers. All
available widget classes are defined in the vocabulary. An application may have several different
4.1 User Interface Modeling 57
user interfaces structures for different purposes, e.g. a vocal and a graphical. It is also possible
to define dynamic changes of the structure by restructuring.
Style: The style of user interface elements in terms of properties. For example, assigning a text to a
button label or gray color to all buttons. Properties are defined in the vocabularies and assigned
to widget objects from the structure section.
Content: Content on the user interface, for example strings to be used as text on the user interface or
as label for a button. The content can be referenced by properties in the style section.
Behavior: Behavior of the user interface in terms of conditions and corresponding actions. The
conditions are usually events from widget objects. Logical operations and other boolean ex-
pressions can be used for complex conditions. Actions allow either calling a method from the
application logic or assigning a value to an object’s properties. A value can be any of the fol-
lowing: a constant value, a reference to a constant, the value of a property or the return value of
a method call. Available events are defined in the vocabulary. The application logic is defined
in the logic section.
The sections above contain the actual interface definitions. As already mentioned, two additional
sections may be necessary:
Logic: Objects representing the application logic together with mappings on the actual implemen-
tations. The application logic objects are just a collection of application methods and can be
mapped to any kind of implementation, like a database, script snippets, or Java objects.
Vocabulary: The vocabulary defines all the elements used for the interface definitions which includes
the widget classes to be instantiated in the structure section and associated class properties. In
addition, events and listeners are specified as classes and used by the widget classes. For all
classes and properties, mappings onto the target implementation platform must be specified.
The described mechanisms show that languages like UIML clearly aim for a pragmatic, detailed
specification of the concrete user interface. Abstraction and platform-independence are hence limited
compared to other approaches or depend on the vocabularies. The main contribution lies in the single
declarative language which can be used for different platforms and the general framework for strict
separation of different user interface aspects. These properties also make such languages a useful
candidate as target language for transformations from more abstract models.
Compliance
Considering Software Engineering concepts can be performed on two levels: First, the user interface
must be linked to the the application logic. Provided that the application logic is developed using
models as well, it is useful to enable links between these models. Many approaches do already fulfill
these requirement by including an application model into their approach. Of course, it is useful to
58 4. Related Modeling Approaches
enable compliance with application models in Software Engineering by either using UML, as the
de-facto standard in Software Engineering, or by enabling flexible usage of any application model.
Second, it can be useful to adhere to Software Engineering standards in general, as they are subject of
intensive research and well established. This enables reuse of general concepts and tools and might
also increase the general acceptance of an approach.
Several contributions discuss the integration of user interface modeling and UML. Standard UML
does not explicitly support user interface modeling concepts. For example, there is no kind of abstract
user interface element. Of course, on implementation level a widget is just an ordinary class and can
thus be specified in an ordinary UML class diagram. However, its semantics then would not differ
from any other application class, which would not be useful for meaningful user interface modeling.
Modeling the dialogue is easier with UML as behavior diagrams like State Charts can be used for this
purpose. Finally, the tasks, as one of the central user interface modeling concepts, are not explicitly
supported in UML but it is subject of several discussions (e.g. [Trætteberg02, Paternò01]) whether
they can be substituted by existing UML elements with similar semantics. On a first look, UML Use
Cases seem similar to tasks as they specify the actions a system can perform when interacting with
the user. However, Use Cases focus on system when interacting with one or multiple actors while task
models focus on the individual user and his goals [Paternò99, Markopoulos and Marijnissen00, Con-
stantine and Lockwood01]. Another possibility is to substitute tasks by actions from UML Activity
Diagrams as discussed in [Van den Bergh06, Nóbrega et al.05]. While this is basically possible, au-
thors agree that using standard Activity Diagrams would lead to a limited usability for the modeler
and adaptations are desired.
In particular for transformations into other models or code, it is often necessary to specialize the
semantics of UML even if the notation remains unchanged. For example, defining that in a State
Chart each state represents a Presentation Unit is an extension of the the semantics of UML states.
Thus, UML usually has to be extended anyway. Existing UML extensions for user interface modeling
mainly use the stereotype mechanism (see section 3.4.3). Examples are the Wisdom approach [Nunes
and Falcão e Cunha00, Nunes01] or UMLi [da Silva and Paton00, da Silva and Paton03] which support
the basic user interface models like in figure 4.1. The Context-sensitive User Interface Profile (CUP,
[Van den Bergh and Coninx05, Van den Bergh and Coninx06, Van den Bergh06] supports a similar
approach like Dynamo-Aid (section 4.1.2). Besides, a few other approaches aim for a integration of
the task concept with more general Software Engineering concepts: For example, [Sinnig et al.07]
defines a common semantic domain for task models and Use Cases or [Bourguin et al.07] describes a
component-based approach where each component represents a (generic) user task.
As the area of model-driven engineering is relatively young, currently only a few user interface
modeling approaches comply to its concepts and upcoming standards. Basically, many user interface
modeling approaches constitute themselves as “model-based” (instead of “model-driven”) but this is
often not intended as a statement about the degree of automation. UsiXML provides explicit meta-
models and supports transformations and adheres to many MDE concepts [Vanderdonckt05]. Some of
the latest approaches explicitly adhere to MDE concepts and tools: [Botterweck06] addresses the de-
velopment of user interfaces for multiple target devices. [Sottet et al.07b, Coutaz et al.07] focuses on
development and runtime adaptation of user interfaces for ambient spaces. Both approaches provide
EMF-compliant metamodels and ATL transformations between them.
would be automatically derived from abstract models by transformations and modified and completed
by the developer. On the other hand, automation can easily lead to user interfaces whose provided de-
gree of usability is not sufficient. An example for intensive automation is JANUS [Balzert95, Balzert
et al.96] which is still available as a commercial tool [Otr]. It generates the user interfaces directly
from the domain model. Although it provides various possibilities for the user to tune the transforma-
tion, the resulting user interfaces tend to reflect the application model instead of the user’s conceptual
model. Such user interfaces are useful to provide user access e.g. on database values but are often not
sufficient to support a less experienced user through his/her tasks. Thus, such highly automated de-
velopment approaches are usually considered as adequate only for very specific application domains
[Puerta and Eisenstein99]. [Arens and Hovy95] is another example addressing in particular multi-
media: It proposes an intelligent system (called Cicero) which aims to automatically select a media
representation for a given piece of information and specified user.
The opposite alternative is to specify all models up to the final implementation manually – maybe
even in parallel and by different persons – and finally to specify manually the relationships between
them required to complete the overall specification – e.g. between task model or dialog model and
interaction objects. In the literature the problem how to establish the relationship between the different
models is referred to as Mapping Problem [Puerta and Eisenstein99] which is discussed in several
contributions [Limbourg et al.00, Clerckx et al.04, Montero et al.05]. As pointed out by [Szekely96],
any approach should give the possibility for manual post-editing to provide the interface designer the
final control about the results and not to hinder him/her to revise the final results.
While manual specification of models and mappings aims to ensure usability by leaving the re-
sponsibility to the human developer, it remains still desirable to increase productivity by a possibly
high amount of automation. One of the most important arguments for user interface modeling men-
tioned above – the possibility to generate user interfaces for different devices which might even be
unknown at design time – would become quite weak if no (semi-)automatic transformation from
platform-independent user interface models to platform-specific user interfaces exist. Moreover, even
a non-automated but systematic approach should include as much knowledge as possible about how to
systematically achieve appropriate usability. Thus, it is useful to formalize knowledge about usability,
or at least make it explicit, as much as possible.
A common definition from the ISO standard on Ergonomics of Human System Interaction [ISO98]
defines usability as:
The extent to which a product can be used by specified users to achieve specified goals
with effectiveness, efficiency and satisfaction in a specified context of use.
From the viewpoint of Software Engineering usability is usually considered as one of the non-
functional requirements. While some approaches for formalizing and modeling non-functional re-
quirements already exist [Zschaler07], it currently seems not possible to adopt them for usability as
there currently is not even a concept how usability could be measured at all [Seffah and Metzker04].
The HCI domain has provided several collections of usability guidelines and patterns. Guide-
lines are generic rules to be obeyed when designing a user interface. Some guidelines are often very
concrete, as found in guidelines for operation systems like the Apple Human Interface Guidelines
[App08] or the GNOME Human Interface Guidelines [GNO04] for GNOME desktops. They spec-
ify for instance the look of widget components and distances between them on the screen. Such
guidelines can often be integrated into code generators easily so that the code generator helps to obey
them. Other guidelines are very generic and qualitative rules like the design rules in [Shneiderman
and Plaisant04, Nielsen93, Preece et al.94, Constantine and Lockwood99], for instance the rule that a
user interface should be consistent. Some formal rules can be indirectly derived from them, e.g. by
60 4. Related Modeling Approaches
generating the same kind of widgets for similar user tasks. Model driven development can be valuable
for realizing such rules as it allows to implement, manage, and maintain them by explicit declarative
transformation rules, as sketched in first proposals by [Sottet et al.06, Zhao and Zou07].
However, the problem remains that usability guidelines are often contradictory, e.g. using the
same kind of widgets for similar tasks can conflict with the rule that the user interface should prevent
errors, for instance by using widgets which allows only valid inputs. A possible solution can be to
treat this as an optimization problem with a cost function which is user specific and adapts according
to the user’s usage of the generated user interfaces like in SUPPLE [Gajos and Weld04].
Another promising solution is to build on existing established manually created building blocks,
i.e. user interface patterns. Examples for existing user interface pattern collections are [Tidwell05,
van Welie, Duyne et al.02]. An approach for integrating patterns into user interface generation is pre-
sented in [Radeke and Forbrig07, Radeke et al.06]. They provide the User Interface Pattern Extensi-
ble Markup Language (UsiPXML) to describe patterns and their implementations in machine-readable
form. UsiPXML describes the patterns in terms of model fragments based on an adapted version of
UsiXML. The authors propose a general framework how to integrate patterns into model-based user
interface development and apply it as example to their development approach presented in [Wolff
et al.05].
The model driven solution from Sottet et.al. aims to integrate such mechanisms. They propose a
mix of automated, semi-automated and manually performed transformations. The approach aims to
enable flexible integration of any usability framework into the transformation. The transformations are
treated as models and, thus, usability guidelines can be managed and maintained in terms of models
as well. In particular, a transformation can be associated with properties representing one or more
usability rules (see [Sottet et al.07a]).
As follow up step on that base, it seems desirable to create customized user interfaces for the user
interface designer which allow to manage the transformations – including guidelines and patterns –
as proposed e.g. by [Sottet et al.06]. This idea was already supported to some extent by earlier tools
like Mobi-D [Puerta and Eisenstein99]. Moreover, the end-user might also need a “Meta-UI” which
allows to control and customize the user interface adaptations at runtime in ambient spaces as claimed
by [Coutaz06].
Initiatives
In general, modeling is a highly active research area in Software Engineering (see section 3.4). Hence
the interchange between user interface modeling area and Software Engineering area is important.
User interface modeling can profit from the evolving concepts, tools, and standards from the MDE
community. In turn, results from HCI are important for Software Engineering as the usability of ap-
plications is a key factor for its success. In addition, user interface modeling can be an important
application area for applying and evaluating the theory of modeling as due to the large experience
existing in this field. An increasing number of efforts investigates into this directions, e.g. confer-
ences and workshops like the HCSE conference mentioned above or HCI-SE and books like [Seffah
et al.05]. Another initiative is the workshop on Model Driven Development of Advanced User Inter-
faces (MDDAUI) co-organized by the author of this thesis and so far held three times on the MODELS
conference (one of the main conferences on MDE) in 2005 [Pleuß et al.05b, Pleuß et al.05a], 2006
[Pleuß et al.06b, Pleuß et al.06a], and 2007 [Pleuß et al.07c, Pleuß et al.07a]
4.2 Web Engineering 61
Underlying
ER OMT UML
modeling language
Hypertext Design Model (HDM, [Garzotto et al.95]) which evolved to W2000 ([Baresi et al.01])
and HDM-lite ([Fraternali and Paolini98]). Object-Oriented methods base either on OMT [Rum-
baugh et al.91] (one of the predecessors of UML) or UML. Examples are the Object-oriented Hyper-
media Design Method (OOHDM, [Schwabe et al.02]), UML-based Web Engineering (UWE, [Koch
et al.07]), and the Object-Oriented Hypermedia Method (OO-H, [Gómez et al.01]). Software-oriented
methods treat web applications from the viewpoint of traditional Software Engineering, like the Web
Application Extension (WAE, [Conallen00]) and its successor WAE2 [Conallen02].
The methods can be classified into four generations where each generation reused concepts from
earlier approaches. Altogether, a convergence can be observed in this field and most approaches cur-
rently are either defined as UML extension or extended with a UML Profile to support compliance to
UML [Schwinger and Koch03]. Moreover, the approaches are still enhanced and maintained and pro-
vide tool support, sometimes even as a commercial product (e.g. WebRatio [Webb, Acerbis et al.07],
a tool for WebML).
Usually, a web application model specifies three different aspects: Content, Hypertext, and Pre-
sentation. Thereby, the models aim to address the specific characteristics of the web. The Content
model corresponds to the application’s domain model and can thus be modeled e.g. by UML class
diagrams. Often, media types of documents are already considered here. Moreover, web applications
often base on existing infrastructure, e.g. an existing database, which then has to be considered in
the models. The hypertext model, often also referred to as navigation model, reflect the link and nav-
igation structure of the application. It distinguishes between different kind of links like for internal
navigation or for calling an external service. In addition, some approaches like OO-H support a pat-
tern language for navigation patterns. The Presentation Model specifies the “Look and Feel” of the
user interface and sometimes also its behavior.
Compared to user interface modeling approaches discussed in the section before, Web Engineering
approaches are specific for Web applications. This means in particular, that in existing approaches the
user interfaces are restricted to HTML which results in restricted interaction possibilities for the user
interface. Moreover, they consider web-specific patterns which often are quite different from desktop
applications. For example, many guidelines for web user interfaces regard the navigation bar, which
does usually not exist in desktop applications. Due to this specific focus, most Web Engineering
approaches aim to generate the complete application code from the models, except for the final user
interface which is supposed to be implemented manually in some approaches.
Several approaches consider media components. Basically, proposals mainly enable to specify
the media type of an element, like image or video to include a corresponding media object into the
HTML user interface, like e.g. in [Hennicker and Koch01]. HDM, one of the earlier approaches
(sometimes also cited in context of multimedia modeling [Zendler98]) allows defining different views
on information artifacts, e.g. text and an alternative image. For description of media objects they
use concepts from multimedia modeling for databases [Gibbs et al.94]. However, by their focus on
HTML-based user interfaces the approaches support only a limited kind of user interaction and hence
use media objects only as purely presentation elements. As examined in [Preciado et al.05], the
multimedia support of these traditional Web Engineering approaches is limited.
Currently several research groups work toward extending the approaches for supporting also so-
called Rich Internet Applications [Arteaga et al.06, Gruhn07], i.e. client-side web applications real-
ized e.g. with AJAX, OpenLaslo or Flex. RUX [Linaje et al.07] aims to support the user interface
aspect of RIAs and can be connected with existing Web Engineering approaches. A combination with
WebML is presented in [Preciado et al.07]. The RIA modeling approach in [Martinez-Ruiz et al.06b]
is based on UsiXML. Others mainly address certain aspects of RIAs, like the single-page paradigm
and client-server communication, and apply them as extensions for WebML [Bozzon et al.06, Carughi
4.3 Multimedia Modelling 63
et al.07] or OOHDM [Urbieta et al.07]. Although the emphasis certainly lies on widget-based user
interfaces using Ajax and Flex and the specifics of Web applications, it still seems promising that such
approaches will lead to an advanced multimedia support.
Research
Associations
Welcome-Header logo
1 Name
Welcome-Audio
Footer
RC-Show RC-List
Figure 4.9: Example Hypermedia Modeling Technique (HMT) model from [Specht and Zoller00]
4.3.1 HyDev
An approach even more considering specific features of multimedia applications is HyDev [Pauen
et al.98a, Pauen and Voss98, Pauen et al.98b]. It aims to integrate both the document character and the
software character of multimedia applications. HyDev is platform-independent and based on UML. It
proposes three kinds of models: domain model, instances model, and representation model.
The domain model is used to model the application structure. It provides the conventional con-
cepts of UML class diagrams. In addition, three multimedia-specific kinds of classes are available:
N-classes used to model the application’s narrative structure, S-classes which represent "‘spatial ob-
jects"’, and A-classes representing agents. All kinds of classes may own attributes and operations like
conventional UML classes.
Figure 4.10 shows the domain model for an example application, a virtual museum. The applica-
tion allows the user to take virtual tours on specific topics guided by a virtual museum guide.
The N-classes are used to model the application’s narrative structure. An N-class represents a
narrative unit, like scenes or episodes and is marked with an icon . HyDev does not predefine kinds
of narrative units , i.e. the modeler can define any kind of narrative unit required for the respective
application. For this purpose several HyDev provides specific relationships between N-classes, like
sequence, simultaneity, and prerequisite-for. For example in figure 4.10 the application has a narrative
unit Tour which consists of a sequence of TourSegments which in turn consist of a sequence of Steps.
Simultanously with each Step, CommentsOnExhibits are given.
The S-classes are marked by the icon and represent spatial objects. In HyDev, this means a 2D
or 3D object, for example in a 3D virtual world. In one publication [Pauen et al.98a] they are also
named as “physical objects” (but this does not mean real-world objects as used for augmented reality
of tangible user interfaces). Specific kinds of relationships between them are adjacent-relationship
and the contained-in-relationship. In the example, the virtual museum, its sections, and its rooms
as well as the different kinds of exhibits are modeled as S-classes. A room has adjacent rooms and
contains exhibits.
Furthermore, in addition to conventional class attributes and operations S-classes may own be-
havior, which means multimedia-related spatio-temporal behavior, like movements of an animation.
4.3 Multimedia Modelling 65
Tour
1..n participant-in
sequence
TourSegment MuseumGuide
1..n
sequence
behaviour-of
Step CommentOnExhibit
simultaneous
ThemeOfTour
participant-in
Theme Museum
1..n 1..n
participant-in participant-in
Section
ThemeOfSection
1..n
1 1
adjacent
behaviour-of
MovementPattern
Figure 4.10: HyDev domain model for a virtual museum application from [Pauen et al.98a]
66 4. Related Modeling Approaches
DetailsTour
:Tour
ThemeOfTour
participant-in
behaviour-of
participant-in simultaneous
participant-in
Hombres Saturno
:Painting :Painting
MadeBy
FranciscoGoya
:Artist
Figure 4.11: Extract from HyDev instance model for the virtual museum application taken from
[Pauen et al.98a]
However, HyDev does not provide any further mechanisms to specify such kinds of behavior - it can
only be specified informally using natural language [Pauen et al.98b].
The A-classes represent agents, which means elements “characterized by some kind of indepen-
dence and autonomy.” [Pauen et al.98a], like game characters or avatars. They always participate in
narrative units. In the example application in figure 4.10 the museum guide is modeled as an A-class.
The instance model shows the instances of the running application. The authors argue that the
concrete content of the application is an important information for the developer, e.g. which exhibits
have to be developed for the virtual museum application. For this purpose, an object diagram is
used, enhanced with the icons analogous to the domain model. An extract of the instance model for
the virtual museum example is shown in figure 4.11. It is possible to aggregate several objects into
collections, like for the series PintNegras in the example.
Finally, the representation model describes the object representation and the user interaction. It
defines for the objects of the instance model how they should be represented on the user interface
in terms of representations. Within an object’s representation can be defined which attributes and
relationships are represented by which media object. This includes the media type and a list of "‘output
media"’, like audio channel, window, or external device. The representations can be nested which
defines the overall structure of the user interface. Between media objects it is possible to define
spatio-temporal relationships by qualitative statements like "‘before"’, "‘after"’ (temporal), or "‘left"’,
"‘right"’ (spatial). Finally, the navigation between the representations is modeled by arrows annotated
with events which trigger the navigation. Figure shows an extract of the representation model for the
example application.
HyDev is a very interesting approach as it addresses many multimedia-specific properties of the
application. Nevertheless, the choice of the models can be discussed. Modeling the application’s
objects in the instance model can often be a very tedious task. For example, if objects are taken
4.3 Multimedia Modelling 67
name of representation
LateWorksRep
SaturnoRep HombresRep
Att Contents : IMAGE - MainWin before after Att Contents : IMAGE - MainWin
navigation
click on image click on image complex
interaction representation
represented attribute
GoyaDetailsRep
referred object name of object representation
Object FranciscoGoya (:Artist) media object type
description list of output
Various information about Goya in a separate window.
channels
left right
Att Portrait : IMAGE - Win 1 Att Biography : VIDEO - Win 1, L/R
spatio-temporal Picture with head of ripe Goya Video with details about Goya’s description
relationship biography (approx. 3 min)
above
simultaneous
below before with pause
after with pause
Att Overview : TEXT - Win 1
Written text with general infor- Att Influence : VIDEO - Win 1, L/R
mation about Goya (in Spanish) click Video Goya’s influence on
on text painting (approx. 4 min)
event
simultaneous
termination
Att Overview : AUDIO - L/R when video starts
Spoken text with general informa-
tion about Goya (female voice)
Figure 4.12: Extract from HyDev representation model for the virtual museum application taken from
[Pauen et al.98a]
68 4. Related Modeling Approaches
MIS
Oil 200
Batt New
+ Audio
- Comm
min-1 km/h
Voice
Temp
Fuel
421306.2
Figure 4.13: Screenshot from the automotive information system example for OMMMA [Engels and
Sauer02]
from a database, creating the instance model can result in modeling whole database tables. On the
other hand, the benefit of the instance model can often be limited, as the concrete object’s names
and attributes are not always meaningful in multimedia applications, as objects differ mainly in their
visual representation. For example in a gaming application, different levels often have only the name
"‘level 1"’, "‘level 2"’, etc. and differ only in the concrete spatial arrangement of objects on the user
interface. On the other hand, the representation model tends to include too much information. It
contains structure and behavior of the user interface and at different levels of granularity. Probably,
when modeling a whole application, it can become very difficult to handle.
In its current form, code-generation is not supported by HyDev. Many of the language elements,
e.g. agents and spatial objects, are not defined precisely enough. Others, e.g. behavior of S-classes
and events in the representation model, are modeled just by textual descriptions. However, HyDev
provides a worthwhile example in which direction multimedia-specific modeling should investigate.
4.3.2 OMMMA
Another platform-independent modeling language for multimedia applications is provided by the Ob-
ject Oriented Modeling of Multimedia Applications (OMMMA, [Engels and Sauer02, Sauer and En-
gels01, Sauer and Engels99a]) approach by Sauer and Engels. It extends UML using Stereotypes and
supports four kinds of diagrams: an extended class diagram for the application and media structure,
an extended sequence diagram for temporal behavior, a presentation diagram for spatial aspects of
the presentation, and a state chart diagram for the interactive control.
The OMMMA diagrams are explained in the following using an example application given in
[Engels and Sauer02]: a (simulation) application of an automotive information system that provides
the user control over the car’s navigation and entertainment functionality via a multimedia user inter-
face. It includes car audio, navigation and communication systems, travel or tourist information, and
automotive system monitoring and control. Figure 4.13 shows a screenshot from its user interface.
The class diagram is used to model the application structure. Basically, it provides the conven-
tional class diagram elements, like classes and relationships between them. It is divided into two
parts: a hierarchy of media type definitions and a domain model describing the application logic.
Figure 4.14 shows the class diagram for the example application. The media type hierarchy defines
the media types to be used and is derived from existing multimedia standards and frameworks. In the
example, it is located on the bottom part of the diagram. The upper part shows the domain model for
4.3 Multimedia Modelling 69
AutoInfoSysSim
1 1 1 1 1
AutoStatusSystem Communication InfoServices Navigation Entertainment
0..1 0..1
1 * * dest 1
Speedometer Map * * Route Location
0..1 0..1 0..1 part:
Integer
* start 1
1 1 *
MileageCounter RevCounter Status2Monitor 1..* 0..1
Announce
0..1 1 1
1
Direction
0..1
1 1 1 1 1
1..2 *
Graphics Image Text 1 Animation Audio Video
DiscreteMedia TemporalMedia
Media
Figure 4.14: OMMMA class diagram from [Engels and Sauer02] for the example automotive infor-
mation system
the example application. Here it is modeled as an composition of five subsystems for the different
functionalities AutoStatusSystem, Communication, InfoServices, Navigation, and Entertainment. For
some of them, some further example domain classes are shown.
The associations between elements from the two parts specify that a domain class shall be pre-
sented in the application by a respective media type. For example, the speedometer should be pre-
sented by an animation and one or two graphics, a map should be presented by an image, etc. In this
way – using relationships between domain classes and media types instead of defining the domain
class itself as media object – one domain class can be flexibly presented by multiple media objects.
The OMMMA class diagram in addition (not shown in the example) contains a signal hierarchy
as base for the event-based interaction and, possibly in a separate package, presentation classes to
specify the possible composition of user interfaces as a base for the presentation diagram.
Extended UML sequence diagrams are used in OMMMA to model the predefined temporal be-
havior. It should be mentioned that when OMMMA was published UML 1.3 was the current version
of UML so it does not consider the additonal concepts of UML sequence diagrams in UML2.
The objects in the horizontal dimensions are instances from the domain model. Like in conven-
tional UML sequence diagrams they have a lifeline in vertical direction (dashed lines). Horizontal
arrows indicate a message sent between objects. An activation box on the lifeline indicates that the
element has become active as result of a message.
For the purpose of modeling synchronization OMMMA provides several extensions. Figure 4.15
shows an example from the automotive system. In OMMMA a sequence diagram represents a sce-
nario, which is specified by the initial message from an actor, e.g. a user interface component which
triggers the behavior. The example shows the scenario that the navigation system presents the user a
route from A to B. The initial message is showRoute(A, B). The lifelines in OMMMA represent local
timelines and can be related to the actor’s timeline which represent the global time. It is possible to
define durations and points in time in several ways using time intervals and constraints.
Activations can be annotated with names of presentation elements, i.e. media objects (denoted
with <>) or elements from the presentation diagram. In the example, the Navigation instance first
70 4. Related Modeling Approaches
<straight-left:
<ABMap: Image>
300 sec
<tLeft:Audio>
Animation>
Multiview
<ABRouteSeg2: <ABRouteSeg1:
NavA1
Animation>
Cent
end end
[10;20]
sec start
Animation>
Animation>
Multiview
Multiview
<straight:
NavA1
240 sec
end
finished
< 3 sec
finished end
Figure 4.15: OMMMA sequence diagram from [Engels and Sauer02] for the example automotive
information system
calculates the map and the route and then sends the message show to the Map instance. The map
instance is presented by its associated Image object ABMap which is presented in the Multiview object
from the presentation diagram.
Bold lines denote synchronization bars indicating that two or more objects should be synchro-
nized. In the example, the Navigation instance then sends another message to the Route instance
which should be synchronized with the Map presentation. Its activation box is not filled at the begin-
ning which indicates an activation delay used to model tolerated variance of synchronization relations.
The temporal constraint specifies that the presentation of the route must start at latest 10 seconds after
the presentation of the Map instance.
It is also possible to specify parallely composed activation of media objects to model the simul-
taneous presentation using different or presentation elements. In the example, the Route instance is
presented by its associated animation and in parallel the direction is presented and an announcement is
performed. Sequentially composed activations is used to specify that after the ABRouteSeg1 another
animation ABRouteSeg2 is shown. Finally, it is possible to overlay an activation with media filters
which are temporal functions, e.g. the increase of the audio level over the time.
For each sequence diagram the History concept from UML statecharts can be used to specify to
which extent it is possible to resume a behavior after an interruption. Deep history, denoted with H* ,
means that the behavior can be resumed exactly in the same state before the interruption occurred.
Shallow history (H) specifies that returning is only possible on the top-level.
The presentation diagram specifies the spatial structure of the user interface. It shows the ele-
ments on the user interface in terms of bounding boxes. The diagram visually defines their size and
layout according to a specified coordinate system. There are two kinds of user interface elements in
OMMMA: visualization objects are passive output objects which present some information to the user
while interaction objects allow user interaction and trigger events. The latter ones are denoted by bold
boxes.
Presentation diagrams can be split into different areas representing different hardware devices, like
4.3 Multimedia Modelling 71
AutoInfoSysSim
CockpitDisplay
Com Mis
FlashIndicat
Stat1
Stat2
SpeedView
DevCntrView Cockpit
Stat3 FuelIndicator
Stat4
MileageView
Speaker
L R Cent
Figure 4.16: OMMMA presentation diagram from [Engels and Sauer02] for the top level view.
a screen and audio speakers. Figure 4.16 shows the presentation diagram for the example application’s
top level view (AutoInfoSysSim). The bottom area represents audio speakers (Speaker) which can be
referred e.g. in the sequence diagrams. The top area presents the display (CockpitDisplay) containing
bounding boxes for the visual user interface elements. In the example the display contains only
visualization objects as the user input is performed via specific hardware devices like knobs. Those
could be specified in an additional diagram compartment analogously to the speaker.
The user interface can be composed of different views which can be placed on different layers
on the virtual area. For example figure 4.17 shows the content of the Cockpit element from figure
Figure 4.16.
The statechart diagram in OMMMA describes the interactive control and the dynamic behavior
of the system. Therefore it specifies the different states of the systems and the transitions between
them which are triggered by events. It uses the standard UML statechart constructs. The events which
trigger the transitions correspond to the signal defined in the signal hierarchy in the class diagram. As
the class diagram is defined by the modeler, any kind of events are supported, including user events,
system events, or timer events.
Figure 4.18 shows the statechart diagram for the top level of the example application. It uses
advanced UML statechart concepts like composite states and submachine states. Complex composite
states, like Navigation, InfoServices, and Entertainment are specified in additional diagrams.
When the system enters a (simple) state it executes associated predefined behavior specified in the
sequence diagrams. For this purpose the initial message of the corresponding sequence diagrams is
specified in the Do-section of the state. For example, one of the substates of the Navigation state (not
shown in the diagram) performs the message showRoute(A,B) which triggers the predefined behavior
specified in figure 4.15.
Altogether, OMMMA seems to be the most elaborated approach for modeling interactive multi-
media applications. It covers the different aspects of multimedia applications and integrates them into
a consistent approach. It thus provides an important contribution for all further research in this area.
Nevertheless, a more in-depth analysis shows that there are still various aspects which are not covered
by OMMMA yet. Also, the modeling concepts in OMMMA are not sufficient to fulfill the goals iden-
72 4. Related Modeling Approaches
AutoInfoSysSim::MIS::MultiInfoSys
CockpitDisplay
NavA1
MultiView Ctrl1
Ctrl2 CtrlA
AutoInfoSysSim::Cockpit
Ctrl3 CtrlB
Ctrl4
Figure 4.17: OMMMA presentation diagram from [Engels and Sauer02] for the cockpit view.
AutoInfoSysSim
AutoStatusSystem monitor
run
Communication call
dial
on
H redial
hangup new
standby connect
infoSys
MIS
Navigation retNavi InfoServices
navi
Off navi infoSys
eTain eTain
on H
off
Entertainment
MultiInfoSys
Figure 4.18: OMMMA statechart diagram from [Engels and Sauer02] for the example automotive
information system
4.3 Multimedia Modelling 73
tified in this work, like an easy usable and model-driven approach. Some important shortcomings are
discussed in the following:
As a first issue, several parts of the OMMMA language are too generic to enable a clear model-
driven process. Several elements, like user interface elements and signals for interaction, have to be
defined in the class diagram by the modeler. Predefining them would provide better support for the
modeler and would also also be necessary for code generation. In its current form, there is also poor
support for the modeler how to structure the overall model in a consistent way. For example, which
classes from the class diagram correspond to the top-level of the statechart diagram? Some of the
initial contributions [Bertram et al.99, Sauer and Engels99b] propose to explicitly specify one class as
the application’s top-level class labeled with the stereotype Multimedia Application which is composed
of several scene classes labeled with the stereotype Scene (or scenario in [Sauer and Engels01]).
A scene then represents an independent part of the application associated with domain classes, a
presentation and a top-level state in the statechart diagram. In figure 4.14 the class AutoInfoSysSim
would correspond to the Multimedia Application and the classes AutoStatusSystem, Communication,
InfoServices, Navigation, and Entertainment to Scenes. However, currently this is not further defined.
Besides, as OMMMA aims to be specified as a UML profile, such relationships between the model
elements (e.g. also between thestatecharts and sequence diagrams) currently have mainly the character
of conventions and can not be directly supported by modeling tools.
A second issue is the usability of the diagrams for the modeler. OMMMA emphasizes model-
ing the application’s predefined behavior. Therefore it uses UML sequence diagrams and various
extensions. However, as section 6.5 will discuss in more detail, it is questionable whether such a
fine grained definition of durations and time values is frequently necessary in an abstract model for
multimedia applications. In OMMMA, a sequence diagram specifies only one predefined behavior
without any interaction. Often the contained information will be of limited value for the modeler as
the predefined behavior is on the one hand trivial and on the other hand specification of exact time
values is not required during application design. In turn, the statechart diagram contains a very high
amount of information as it contains the application’s complete navigation and interaction. In inter-
active applications the statecharts becomes very complex as already indicated by the extract shown in
figure 4.18.
As third issue, OMMMA covers the user interface design only partially. The presentation diagram
focuses on the concrete spatial layout. There are neither predefined user interface elements nor is there
a notation to visually distinguish between different custom elements. The purpose of elements can
often be derived only by analyzing the statechart and the sequence diagrams. Moreover, it seems not
to be intended that media objects act as interactive elements as well.
Finally, the media objects in OMMMA are very simple model elements without any properties.
Thus, the information about the media objects which can be expressed by the models is very limited.
Let’s consider for example figure 4.14:
• Speedometer has a relationship with Graphics with the multiplicity ‘1..2’. What is the purpose
of this graphics and why are two graphics required? The textual description in [Engels and
Sauer02] explains that the graphics are two alternative background graphics “e.g. to enable
a day and night design of the background”. However, this information is not reflected in the
model. MML solves this issue by modeling each media object as an individual, named model
element like NightBackgound and DaylightBackground (section 5.2.2).
• According to the textual description in [Engels and Sauer02] the speedometer consists of two
graphics for day and night design of the background and an animated indicator for the actual
speed. This means that the background and the indicator animation must fit together and build
74 4. Related Modeling Approaches
the overall speedometer representation. MML solves this by providing support to model the in-
ner structure of media objects. For instance, it is possible to model an animation Speedometer
which contains as inner objects a graphic background and an animation speedIndicator (sec-
tion 5.2.8).
• The Entertainment class in figure 4.14 is related to videos. Obviously, the user must be able to
play, pause, stop, etc. the videos. Is such functionality already part of a video object (and if so,
what kind of functionality) or must it be specified by the modeler? MML solves this issue by
the concept of Media Components (section 5.2.2).
• Some media objects must be created by the media designer, like the speedometer. Others, like
the videos for the Entertainment class, are possibly loaded dynamically into the application,
e.g. from the user’s personal video collection, and need not to be created by the media de-
signer. There is no way to distinguish such different cases in OMMMA. MML solves this by
the possibility to specify concrete artifacts of Media Components and by additional keywords
(section 5.2.5 and 5.2.6).
These are just some examples showing that the simple way to model media objects in OMMMA is not
sufficient to capture all information necessary for the media designer. Useful code generation from the
models would require even more detailed information. A detailed discussion on issues and solutions
for modeling media objects in interactive applications is given in chapter 5.2.
OMMMA does currently not provide a modeling process or code generation. However, there are
several contributions into this direction regarding the extended sequence diagrams. [Engels et al.00]
specifies an approach for formal specification of behavioral UML diagrams using collaboration dia-
grams which are interpreted as graph grammar rules. On that base, [Hausmann et al.01] shows how
this approach can be extended to UML extensions like UML profiles and applies it as example to ex-
tensions for UML sequence diagrams. [Hausmann et al.04] then extends this example for specifying
temporal properties for UML sequence diagrams, as used in OMMMA, and provides an interpreter to
analyze or test such models.
The authoring tool Director is used for the implementation. The authors provide a proposal how
to implement the UML design models within the tool. The class diagram is mapped to Lingo class
constructs. The statecharts are implemented in the class methods by setting attribute values. Moreover,
they sketch how to structure the remaining application parts in terms of the Model-View-Controller
pattern. Automatic code generation or a generalization of the approach beyond the scope of virtual
labs seems not to be intended by the authors.
A second approach using UML models and the multimedia authoring tool Director is described
by Depke, Engels, Mehner, Sauer, and Wagner [Depke et al.99], the same research group which inves-
tigated in the OMMMA approach described above. They use several different UML class and object
diagrams to support the development process from platform-independent design toward the platform-
specific implementation in the authoring tool. For the platform-independent modeling they provide a
general application model in terms of a class diagram. It shows the general structure of a multimedia
learning application including classes for the media types, presentation, control, and a starting point
for the application logic. The application logic initially contains only a simple basic structure for
learning applications, i.e. learning units and relationships between them. When developing a concrete
application the application logic has to be extended to reflect the logic of the concrete application in
terms of the concrete learning content. The other parts of the application model (media types, presen-
tation, control) remain usually unchanged, i.e. these parts are a kind of general framework to be used
in multiple projects.
For the authoring tool, they provide an the authoring tool model in terms of a class diagram. It
defines the general structure of Director applications. It has to be defined only once as well. In
addition, the authors provide mapping rules for mapping instances of the application model classes
onto instances onto authoring tool model classes.
When developing a concrete application the developer first extends the application model with
application classes specific for the current application. Then the developer creates an object diagram
of the application by instantiating the classes from the application model. By application of the
mapping rules an object diagram is derived which contains instances of the authoring tool model. It
can finally be implemented in the authoring tool.
Interestingly, the proposal has many parallels with a model-driven development process (figure
4.19). However, it resides one meta-level below: instead of meta-models it uses class diagrams for the
general concepts which are instantiated for the concrete application. As a consequence, concepts on
class level (as required for example for the domain classes) must be specified by extending the generic
application model, e.g. by specifying subclasses.
As the authors state, the purpose of this article is not to provide complete generic models and
mappings but rather to demonstrate the process. They also restrict themselves to the static applica-
tion structure and conventional UML class and object diagrams. The mappings are intended to be
performed manually. Nevertheless, the proposal can be interpreted as a first systematic integration of
modeling and authoring tools and, moreover, includes ideas of model-driven development.
4.4 Discussion
In summary, a large variety of approaches related to multimedia modeling exists. But none of them
can provide sufficient support for highly interactive applications using non-standard user interface
elements.
The area of user interface modeling has a long history. The number of approaches is thus very
large and proposals are very sophisticated. However, the area addresses user interfaces in general
76 4. Related Modeling Approaches
Application Model
Presen-
Control
tation Mapping Authoring Tool Model
generic Media Application
models Types Logic
Object level
Figure 4.19: Approach from [Depke et al.99] interpreted as kind of MDE approach.
which results in standard widget-based user interfaces. Multimedia aspects are not further consid-
ered. However, many of the established concepts from this area can also be applied to multimedia
applications and are thus carefully considered in this work.
The area of Web Engineering provides approaches which allow a high degree of automation and
can be applied in commercial projects. However, this is caused by their restriction to common web-
specific applications and standard HTML-based user interfaces. Research on Rich Internet applica-
tions, providing a higher degree of interaction, has just started in the last few years. However, these
latest efforts show that modeling multimedia applications is becoming more and more relevant.
Finally, the research area of Multimedia itself hardly targets the application development aspects.
Various existing proposals cover multimedia data and multimedia documents very well but they are
not extended towards interactive applications. From the few remaining approaches, OMMMA clearly
seems to be the most elaborated one. As discussed above, various issues in OMMMA do not sat-
isfy the goals for the current work. For example, it does not consider concepts from user interface
modeling and also does not provide any manual or automatic transformations towards implementation
yet. Nevertheless, it provides several important basic contributions and is carefully considered in this
work.
The approach presented in the following integrates the relevant existing concepts from multime-
dia modeling and user interface modeling. As general foundation it uses the state-of-the-art concepts
from model-driven engineering. To gain feedback from these three important areas, MML has been
presented on conferences in all three communities: General foundations of MML and the overall
framework [Pleuß05b] have been presented on the MODELS conference. The MML modeling lan-
guage [Pleuß05a] has been presented on the International Symposium of Multimedia. A summary on
MML and the integration of authoring tools [Pleuß and Hußmann07] has been presented on the special
session on “Patterns and Models for the Development of Interactive Systems” at the HCI International
conference.
Chapter 5 will identify several important features of highly interactive multimedia applications
which can not be modeled with the existing work so far. Later on, section 8.3.3 will summarize these
new features and use them as base for a detailed comparison of selected approaches and MML.
Finally, the approach presented here proposes and implements the integration of an existing pro-
fessional multimedia authoring tool and a model-driven approach. Such an integration has not really
4.4 Discussion 77
been considered in existing work yet. As discussed in section 9, generalizing this idea might contribute
to a better integration of systematic Software Engineering concepts and creative design in general.
78 4. Related Modeling Approaches
Chapter 5
The following three chapters present the Multimedia Modeling Language (MML) as main contribution
of this thesis. The current chapter discusses basic decisions on language definition and introduces core
modeling concepts in detail. Afterwards chapter 6 provides a more compact overview on the overall
modeling language, its different diagrams, and the process to create MML models. Finally, chapter
7 shows by the example of Flash how MML models are mapped to code and how visual multimedia
authoring tools are tightly integrated into development with MML.
The current chapter is structured as follows: The first section explains basic issues on modeling
language definition and resulting decisions made for the definition of MML. this includes a short
excursion on icon design for modeling languages which is necessary to understand how icons for
MML model elements have been developed. On that base the second chapter introduces in detail the
concept of Media Component as core concept for modeling multimedia and discusses it by various
examples.
5.1.1 Scope
MML should support multimedia applications, as defined in section 2.5. It should address such ap-
plications in general, i.e. not devoted to a specific application domain. This is reasonable as concepts
of multimedia applications (section 2.5) and implementation technologies (section 2.3) can basically
be applied in any kind of application and any domain (see 2.4). From that point of view MML can be
judged as a General Purpose Language.
For the definition of Domain Specific Languages it is often useful to use terms and modeling
concepts tailored to the specific audience. This can even be a single company or development team.
In contrast, a more general language like MML must be accessible for a broader audience. Thus, it
is useful to reuse as much as possible existing common modeling concepts developers might already
be familiar with; i.e. mainly the de-facto standard UML. Reusing established modeling concepts also
ensures the quality of the resulting language.
Two aspects of multimedia applications are already supported by existing modeling languages:
the application logic and the general aspects of the user interface. For the application logic, UML
is already established as a standard. It seems useful to use it for MML as well. In the area of user
interface modeling there is currently no such standard but many general concepts exist (sec. 4.1) which
should be reused in MML.
These two existing areas (modeling of application logic and user interface modeling) provide in
addition some advanced approaches for modeling specific features. For example, several approaches
from the user interface modeling area support context-sensitive user interfaces (section 4.1) or phys-
ical user interface objects [Gauffre et al.07]. UML-based approaches support various application
features like databases or real-time constraints. As MML aims to support applications in general, the
question arises whether such aspects must be integrated into MML as well. Of course, a multimedia
application can be context-sensitive and use physical user interface objects, include a database, and
have real-time features. Furthermore, the area of web applications provides for example concepts for
modeling client server communication which can also be relevant for multimedia applications. How-
ever, it seems very hard to combine all such aspects into a single modeling language. The resulting
language then would become very large and hard to handle. It would also require to select the “best
of” the existing proposals. Such a unified language is specified better by a consortium like the OMG
than by single research efforts. Instead it is much more promising to focus on the core concepts for
multimedia applications and define them in a way that still allows to extend or combine them with
other approaches later if needed (see also discussion in sec. 10.3).
Consequently, MML focuses only on the core concepts of multimedia applications and is designed
in a way that it can easily combined or extended with other modeling approaches. The core concepts
are those required to model a multimedia application in general – without any specific features beside
“multimedia” itself – so that it is possible to generate useful code for multimedia-specific implemen-
tation technologies like Flash.
for modeling the dialogue in user interface modeling. It is valuable to prefer established existing
concepts but only as long as they can be applied properly. Thus MML aims to reuse UML concepts
where this does not lead to any drawbacks, and introduces new customized concepts otherwise.
Based on these considerations, it seems useful to define MML either as UML Profile or at least
based on the UML metamodel. However, MML is supposed to act as conceptual model for multimedia
applications. Furthermore, potential reuse of UML concepts should not at all prevent the design from
selecting the optimal solution for each concept in MML. Thus, MML is defined as an own metamodel
which partially reuses the UML metamodel but defines a customized and independent conceptual
model of multimedia applications. In a second step, it might then – if required – still possible to
additionally define it as UML Profile later, e.g. to reuse a UML modeling tool as a solution for
modeling tool support (see section 6.7).
5.1.3 Notation
As a consequence from the decisions above, the language’s notation partially reuses the UML no-
tations. Model elements which are directly adopted from UML should obviously keep their UML
notation. For other elements different possibilities exist: 1) just to apply an existing UML notation
for them, 2) to mark them by an additional keyword (which is in UML denoted in guillemets «» anal-
ogous to stereotypes, see section 3.4) or 3) to define a completely new notation for them, either using
icons (analogous to stereotype icons) or even by more complex graphical elements.
The advantage of the first case is that visual primitives and components already established in
modeling can be reused. As UML is a large modeling language, many preferable notations are already
used by UML model elements. Reusing them can lead to diagrams with easy to use and already
approved notations. The disadvantage is that such elements can be misinterpreted as UML elements.
Thus, reuse of notations is only useful when either the custom element is a specialization of the
UML element and no distinction is required (e.g. because the UML element is not part of the custom
language) and/or if the difference becomes clear from the context where the notation can be used. An
example is reusing the notation for UML states in a diagram modeling the user interface dialogue.
In particular, for the notation of relationships only a limited number of possible notations exists as
the main difference between notations results only from line style and line ends. When using too many
different notations for relationships they can easily become difficult to distinguish or when using too
complex solutions, difficult to draw (ideally, it should also be possible to sketch diagrams by hand).
On the other hand, relationships can often be understood just by their context, i.e. the kind of elements
they connect. Thus, for relationships in many cases the UML notation can be reused.
The advantage of the second case is that adding a keyword to the notation unambiguously defines
the kind of element. The disadvantage is that when using too many elements with keywords the visual
character of the notation can get lost and the modeler has to read all the keywords in a diagram to
distinguish the elements.
The third possibility allows to create a meaningful notation for custom elements which allows a
clear distinction from UML elements. But it can be difficult to find a notation which is easy to handle
and can be easily understood and recognized by different people.
MML uses all three possibilities according to their advantages and disadvantages. The notation of
model elements reused from UML remains unchanged. Elements which can be seen as specialization
of UML elements are denoted using the respective UML notation as well. Ideally, modeling tools
should allow to optionally show and suppress additional keywords. Relationships are denoted using
the UML notation as well and can be identified due to their context. For important elements not
supported by UML, like abstract user interface elements and media components, a custom visual
82 5. Modeling Multimedia – MML Core Principles
notation is provided.
Appropriateness test “is conducted to determine which icons from a number of variations (typically
three) are perceived by users to be most appropriate for communicating their intended meanings.
The test is conducted by showing a single participant each of the variants for an icon depicted
on an individual card. The participant is told the context in which the icon would appear, and
the intended meaning for the icon. Then the participant is asked to rank order the supplied
5.1 Basic Decisions and Language Engineering 83
Figure 5.1: The trade-off in icon design illustrated by two alternative notations.
variants according to how appropriate they seem as representations of the intended meaning.”
[Misanchuk et al.00]
Comprehension test “is conducted by telling the participant the context in which icons will appear,
but not the intended meanings for the icons. Then the participant is shown individual icons that
have been created as a result from the prior appropriateness tests. Participants are asked to name
the function represented by each icon. The designs are not accompanied by the labels they will
have on screen.” [Misanchuk et al.00]
Matching test “is conducted to determine how well an entire set of icons works. Each participant
is shown the entire icon set and given one functional description to match with an icon out of
the set. In order to avoid a situation in which participants choose icons based on a process of
elimination, each participant should only be given one function for which to identify the correct
icon.” [Misanchuk et al.00]
Perceptibility test “is also conducted to determine how well an entire set of icons works. Each
participant is shown a screen representation from the product under development, including
the icons that would appear on that screen. Participants are given one task description at a
time and asked to identify the icon that should be used to complete or begin the task. Each
participant completes an entire list of tasks that covers the functions of all the icons, and each
function appears in more than one task so that the participant does not simply use the process
of elimination to guess the correct icons for tasks late in the test.” [Misanchuk et al.00]
In [Finkenzeller08], a project thesis supervised by the author, icons have been developed for the
most important MML model elements without an established notation: Abstract Interaction Objects
(see sec. 6.4) and Media Components (see sec. 5.2). The project started with a brainstorming under
consideration of some existing alternatives. For AIOs the notation from CUP [Van den Bergh and
Coninx05] shown above and from Canonical Abstract Prototypes (CAP) [Constantine03] have been
considered whereby the latter one could not be taken directly as it uses different AIO model elements
than MML. Figure 5.2a shows the usage of CAP in CanonSketch [Can], a visual editor based on the
Wisdom approach ([Nunes and Falcão e Cunha00, Nunes01], see also sec. 4.1.3). Figure 5.2b shows
a faceted notation in IdealXML [Ide], an editor for UsiXML (see sec. 4.1.2). It is an extension of CAP,
84 5. Modeling Multimedia – MML Core Principles
(a) Usage of CAP in CanonSketch [Can] (b) Extension of CAP with different icons and a faceted
notation in IdealXML [Ide]
Figure 5.2: Notations for Abstract Interaction Objects based on Canonical Abstract Prototypes (CAP).
using different icons and, in particular, a faceted notation: Each AIO supports the four facets input,
output, navigation, and control (see [Montero05]).
For Media Components common icons from operating systems or media player software have
been considered. The test were conducted in three iterations where each iteration included different
combinations of the four kinds of user tests described above (see [Finkenzeller08]). Altogether 18
participants took part. The small number of participants does not allow very general statements about
the icons although for some icons the trends shown in the test were very clear. Nevertheless, the
work ensures the quality of icons at least to a certain degree and exemplifies a possible way for more
systematic icon design in modeling language development.
The resulting icons are depicted later in figure 5.5, figure 5.13, and figure 6.12.
Containment Hierarchy Metamodels are usually built up in a containment hierarchy, i.e. a hier-
archical tree structure resulting from the containment relationships between the model elements. For
example in UML a package may own classes and a class may own operations. Each model element
is owned by exactly one parent element. The top-most model element in a UML model is usually an
instance of the metaclass Model which is a specific kind of Package. The containment relationship in
the metamodel is denoted like a composite relationship in UML. The containment hierarchy allows for
instance assigning each model element to exactly one namespace or mapping the model into formats
like XML. Also it ensures that, if a model element is deleted, all child elements are deleted as well.
Some metaclasses have multiple containment relationships; for example a Property in UML can be
5.1 Basic Decisions and Language Engineering 85
NamedElement
+ name : String
owned by a class or by an association. In this case the “or” has to be interpreted as “exclusive-or”, i.e.
when the model element is instanciated it always has only one parent.
In MML the metaclass MultimediaApplication represents the top-most root element. In the MML
metamodel all model elements have at least one containment relationship either to MultimediaAppli-
cation directly or to one of its children.
Advanced Structuring Mechanisms A basic principle or kind of “pattern” in the UML metamodel
is to initially separate different aspects by different (abstract) metaclasses and combine them later
again by multiple inheritance if required. For example, UML uses an abstract metaclass Namespace
to generally define the concept of namespaces and a metaclass Type to generally define the concept
of types. For instance a UML Classifier fulfills various different roles, including that it can be used as
namespace and also as a type, and thus inherits from both Namespace and Type.
Moreover, metaclass properties can be refined by subclasses. For example, one can define that the
abstract metaclass Namespace owns other model elements by an association ownedElement. How-
ever, the subclass Package owns PackagableElements which is specified by an association pack-
agedElements. To specify that packages can only own PackagableElements as indicated by pack-
agedElements (and not any model element as indicated by the association ownedElement inherited
from Namespace) some additional definitions are required. UML2 offers new features to model such
constraints: subset properties, (strict) union properties, and property redefinition (see e.g. [Alanen
and Porres08, Amelunxen and Schürr06] for discussion). In the example, the property packagedEle-
ments can be marked as redefining ownedElement by denoting “redefines ownedElement” at the
corresponding association end.
These mechanisms are heavily used in the UML2 metamodels. The advantage is that metamod-
els can be defined in a very modular way and relationships between properties of superclasses and
subclasses can be specified more precisely. Moreover, those relationships are visible now directly in
86 5. Modeling Multimedia – MML Core Principles
the metamodel diagram. The disadvantage is that the overall metamodel can become more complex.
Furthermore they must be considered for the metamodel implementation (see [Amelunxen et al.04]).
Usually it is possible to construct the metamodel without these constraints like in previous versions
of UML. Often the property in an abstract superclass can be just omitted when it is redefined by all
its subclasses. Also, the relationships between properties can be defined by conventional OCL con-
straints. As tool support for metamodel implementation did not support those constraints when the
MML metamodel development started they are used very sparsely in the MML metamodel.
Conventions for Presentation For the presentation of the metamodel in terms of diagrams the same
rules hold like described in the UML specification ([Obj07d], 6.4.2). These are the most important
(additional) conventions used in the metamodel diagrams in this thesis:
5.2.1 Rationale
The core characteristic of a multimedia application is the integration of different media types. The
choice of a media type determines the perception channels used to presented information to the user
and how the user can interact with it. Thus, it is a fundamental decision which media type to use
for an optimal presentation of a given piece of information to the user. Often the choice of media
type is determined a priori by the customer’s basic requirements or visions. For example, the learning
application later in figure 8.7 must contain video with synchronized text. In addition, in some cases
the media types can also be determined a priori by the application purpose, the target platforms or
target devices, e.g. when developing infotainment systems.
Furthermore, the production of media content can take much effort and time and requires specific
experts and tools. (Re-)using already existing media objects can require tasks like selection, post-
5.2 Modeling Media Components 87
processing, copyright management, etc. Creation of new media objects is either performed within a
multimedia authoring tool (like animations in Flash) or in a separate process (like video production).
For these reasons MML takes the position (in contrast to HyDev, sec. 4.3.1) that the developers
should be enabled to specify the media objects as early as possible in the development process. Due
to their possible high complexity and relevance for the development process they are considered as
first class entities and as part of the overall application structure (like in OMMMA, sec. 4.3.2).
MultimediaApplication
1 +multimediaApplication
+media 0..n
MediaElement MediaComponent
TemporalMedia DiscreteMedia
Animation2D Animation3D
graphics, like Movie Clips in Flash. An example for simple animations based on bitmaps are animated
GIF images. From the viewpoint of development it is also possible to classify them as images as they
are usually developed and handled similar to conventional still images. In 3D space there is no need to
distinguish between animated and non-animated 3D graphics as both are implemented and rendered
with 3D authoring tools and 3D rendering software.
A video is a sequence of images and can include synchronized audio. Audio usually refers to
captured sound but can also be synthesized using e.g. the Midi file format. However, there is usually
no significant difference in development. Text refers to any kind of text which can include formatting
and hyperlinks. Basically, any synthesized media object can be transformed into captured media either
using software which supports the export or just by capturing it, e.g. by taking a screenshot or a screen
video.
It is important to understand that in a MML model a media object should only be specified explic-
itly when it is relevant for the application development. Usually this means that the creation of the
media object requires some effort and/or the media object must be integrated with other parts of the
application. For instance, adding a conventional text label or an adorning image to a user interface
usually requires no specific development support and thus such media objects need not to be defined
in the model.
On a first look, media objects are purely documents, i.e. "‘content"’. However, in context of a
multimedia application the usage of a media object obviously implies the ability to present this con-
tent to the user. Hence, the media objects must be encoded and rendered or played. Furthermore,
there are some standard operations on the media elements. Some of them are often available at the
user-interface, like to pause and resume a video or to mute audio. Usually this is implemented by a
player component which presents the media content. In addition, standard operations on media ele-
ments must be available internally for the application logic to control the media objects, e.g. to start
an animation or set the location of an image. As this standard rendering functionality and standard
operations is in context of application development always part of media usage it would not be useful
if the modeler has to model it everytime. Thus, MML provides Media Components instead of purely
5.2 Modeling Media Components 89
media types. A Media Component encapsulates media content and standard player or rendering func-
tionality and provides some standard operations depending on the media type. Thus, in figure 5.4
all media types are defined as subclass of MediaComponent. The abstract metaclass MediaElement
represents any structural part of a Media Component including Media Components themselves.
Notation Basically, the notation of Media Components corresponds to classifiers in UML, i.e. a
solid-outline rectangle containing the Media Component’s name. Optionally it is shown with a com-
partment containing properties the Media Component’s inner structure (section 5.2.7).
MML provides icons to denote the different types of Media Components. Like in UML, the
modeler can optionally use the icon, a text label or both to denote the Media Component’s media
type (see example on UML stereotypes notation in fig. 3.6). Figure 5.5 shows the icons for Media
Components. They were developed based on user tests as explained in section 5.1.4.
Code Generation Media Components are mapped to placeholders for the actual media content
and an implementation for the player and rendering functionality. A placeholder is simple dummy
content corresponding to the component’s media type, e.g. a short dummy video, audio, animation,
image, graphic or text. The placeholders are then filled out or replaced by the media designer. The
(file) format for the placeholder depends on the implementation platform. For example, for the Flash
platform a video can be mapped to a dummy video in FLV file format while for the Java platform it
is mapped e.g. to AVI. A 2D animation in Flash is usually a Movie-Clip within a FLA file while in
Java it might be a Java class. In XML-based formats like SVG the media components are usually
implemented by corresponding XML tags; probably associated with some additional program code
like Java Script. For the player and rendering functionality the APIs of the target platform are used,
e.g. the MediaPlayer component in Flash.
5.2.3 Interfaces
As explained in the last section a Media Component provides standard operations. MML supports by
default the basic operations usually supported by any platform. They can be supported by automatic
code generation in straightforward manner. Moreover, it should be possible to specify additional
custom operations on Media Components. This includes operations realizing filters and transitions.
Filters and transitions are usually realized in implementation frameworks by classes or components
of their own [Gibbs and Tsichritzis95]. However, on platform-independent level they are considered
to be too implementation-specific. Thus, in MML they are considered just as operations (i.e. oper-
ation signatures) which can then be implemented using the respective classes and algorithms of the
implementation platform.
Consequently, different sets of operations are required for Media Components: Standard opera-
tions resulting from its media type and additional custom operations. The standard operations are the
same for each media component with the same media type. In addition, there are sets of operations
which apply to e.g. all temporal media types or all visual media types. It should also be possible to
90 5. Modeling Multimedia – MML Core Principles
define a custom operation only once and assign it to multiple Media Components, e.g. if multiple
Media Components should use the same kind of filter.
A useful modeling concept for this purpose are Interfaces as used in UML. The standard opera-
tions are defined once within standard interfaces. They can be classified into operations for temporal
media, visual media, and auditive media resulting in three standard interfaces TemporalDefault, Visu-
alDefault, and AuditiveDefault. Custom operations can just be modeled as – and if necessary grouped
by – additional interfaces which can be provided by one or more Media Components.
Table 5.1 shows the operations defined in the standard interfaces and the media type they are
assigned to. They are not defined directly in the MML metamodel as they are considered as instances
of the UML metaclass Operation and thus reside on model level (see [Atkinson and Kühne02], pp.8–
12). The standard interfaces are thus defined as model library elements. MML modeling tools must
automatically create them and assign them to the Media Components. Figure 5.6 shows the metamodel
extract connecting Media Components with interfaces. The reused parts of the UML metamodel
defining interfaces, operations, etc. is shown later in figure 6.5 and 6.4.
Figure 5.6b shows an example for an Audio Component EngineSound realizing the standard in-
terface TemporalDefault and a custom interface AudioFilter. Each MML Media Component realizes
by default the standard interfaces from Table 5.1 according to its media type. The modeler needs not
to specify them explicitly in the MML models.
Tool support The default interfaces are created automatically by the modeling tool. When a Media
Component is created the modeling tool automatically adds interface realization relationships to the
corresponding default interface.
5.2 Modeling Media Components 91
MediaComponent
+implementing
0..1
Component Tem poralDefault
EngineSound
+interfaceRe
0..n alization
InterfaceReali
AudioFilter
zation
(from uml) +setPan( percentage : Integer )
(a) MML metamodel extract. (b) Example for specifying interfaces for
Media Components.
Code Generation A Media Representation is mapped to a link between the domain class and the
Media Component. It can be realized for instance by a variable or association in the domain class
92 5. Modeling Multimedia – MML Core Principles
CarAnim ation
SkidSound
break()
Car
speed -x : Integer
Speedom eter -y : Integer Horn
-rotation : Integer
-speed : Integer
+move()
+break()
EngineSound
Relationship
(from uml)
+represented
Class MMA_Class Class MediaRepresentation 1 +media MediaComponent
(from uml) 1 0..n +mediaRepr 1
esentation
+represented +represented
Property 0..n 0..n Operation
Property Operation
(from uml) (from uml)
or by the design pattern Observer [Gamma et al.95]. If the media Representation is annotated with
a class property or operation then a property change or operation call potentially causes an update of
the Media Component. When using the Observer pattern, this can be implemented by notifying the
observer in the property’s setter operation (setSpeed() in the example) or at the end of the specified
operation (break() in the example). However, the details of the manipulation of the Media component
by the domain class have to be implemented manually.
Car Car
Media
Component:
instanceOf
Artifacts:
Porsche Porsche
Media
Designer
instanceOf instanceOf
y
Media
Instances:
Porsche1 Porsche1
x
Unit are kind of abstractions of the (probably unknown) concrete media components.
Moreover, an application can contain multiple instances of the same concrete media component.
For example, in the racing game application multiple Porsche cars might be visible on the screen.
Each Porsche can be represented by the same animation, i.e. the same media component, but has
a different location on the screen and is related to a different domain object (e.g. associated with
a different player). It is also possible that some visual properties vary over the different instances,
e.g. the different Porsche cars have different colors. This phenomenon is not restricted to a specific
media type: There can be multiple instances of the same image at different locations on screen (e.g.
in different scales) or multiple instances of the same video (having different states). Depending on
the technology this is usually implemented either by multiple references to the same media object
(e.g. to the same video) or by creating multiple copies (e.g. when placing a Flash MovieClip from
the library on the screen). From the viewpoint of object-oriented programming the latter mechanism
can be considered as similar to prototypes in “prototype-based” (or “object-based”, see e.g. [No-
ble et al.99]) programming languages. Anyway, the media components (e.g. Porsche and Ferrari)
have to be designed only once by the media designer. Figure 5.9a illustrates the observed different
abstractions.
Despite of the possible implementations in different platforms an abstract modeling language
should support these different conceptual views on media components. There are different ways which
might be used to model the observed abstractions. One can interpret them as kind of instantiation: the
Porsche is an instance of Car and can itself be instantiated multiple times on the screen (fig. 5.9b).
Another possibility is using inheritance and interpreting Car as an (abstract) superclass of Porsche
(fig. 5.9c). However, both interpretations raise the problem that media components are basically no
classes and concepts like inheritance and instantiation can not be directly applied to them without
further definitions. For instance, it would be necessary to define the impact of inheritance as MML
supports to define the inner structure of media components (see below).
A beneficial concept to model these relations can be taken from components in UML.2 In UML,
a component can be manifested by one or more artifacts. “An artifact is the specification of a physical
2
Please note that although Media Components reuse some selected concepts of UML components they are still an
independent concept. There are significant differences between components in UML and Media Components.
94 5. Modeling Multimedia – MML Core Principles
<<Animation2D>>
Car
(a) MML metamodel for Media Artifacts. (b) Example for Media Artifacts.
Notation The media artifacts are denoted similarly to artifacts in UML. They are optionally marked
by an icon and are connected to a media component by a manifestation relationship. Figure 5.10b
shows an example from the racing game application.
Code Generation For each Media Artifact one placeholder is generated as described in section 5.2.2
for Media Components. Each placeholder is named like the artifact in the model. If no Media Artifacts
are specified for a Media Component then a single placeholder is generated which is named like the
Media Component itself.
section briefly discusses whether there is an analogy to that for Media Representations. As discussed
in the previous section one can distinguish between artifacts and instances of Media Components.
Consequently, the situation becomes more complex and two different relations can be identified: First,
the number of media instances related to a single domain object. This relationship can be defined when
specifying the concrete instances on the user interface in the MML Presentation Diagram described
in section 6.4. Second, the number of media artifacts which can represent a single domain object and
vice-versa. There are four basic cases which can be distinguished:
1. The most simple case is that there is only one media artifact which represents all domain objects.
For example, in the racing game there might be only one sound artifact Horn which is the same
for all car objects. It can be interpreted as n:1 relation between the domain object and the
intended number of possible representations (i.e. not the number of media instances but the
number of media artifacts which could represent the domain object). On implementation level
this means that there is only one media artifact and thus it can be statically assigned to all
domain objects.
2. The second case is that each domain object is associated with its own representation. A typical
example is a museum application where usually each exhibit has a representation of its own.
In the racing game, for instance each track might have a visual representation of its own. It
can be interpreted as 1:1 relation. On implementation level it means that there needs to be e.g.
a list or table or mapping rule which assigns the correct representation to each domain object
(e.g. assign “MonaLisa.jpg” to the exhibit “Mona Lisa” and “VenusdeMilo.jpg” to the exhibit
“Venus de Milo”, etc.).
3. A domain object also can be represented by multiple media artifacts but a media artifact also
represents multiple domain objects. This is the usual case at racing games where each player
selects a car type but several players might select the same one. This can be interpreted as
n:n relation. On implementation level it requires to assign the media artifacts dynamically to
domain objects, e.g. depending on the user’s selection of a car type.
Car andreas' car : Car tom 's car : Car susan's car : Car
{unique}
Track
m onza : Track indianapolis : Track monaco : Track
{one-to-one}
Car
andreas' car : Car tom 's car : Car susan's car : Car
{dynamic}
Figure 5.11: Examples for Keywords for Media Representations: The left hand side shows the MML
example models, the right hand side corresponding example situations at runtime.
should support to define the inner structure in an abstract and simple way. It is not the intention
of MML to define complete media objects in the models. Rather, in the viewpoint of MML creative
media design should be performed using the established authoring tools for the respective media types.
Thus, the definition in the MML model should only define an agreement on abstract level between the
media designers and the software developers.
A Media Component can consist of different kinds of parts depending on the media type. Syn-
thesized media usually consists of primitives having some kind of semantics, e.g. shapes and lines
inside of vector graphics. Based on the primitives, more abstract parts can be identified, e.g. a wheel
within a graphic representing a car. In contrast, media captured by sensors can only be decomposed
by its natural dimensions, e.g. a specific region in a bitmap image is identified by its spatial x- and
y-coordinates. Temporal media always has a temporal dimension which can be used for its decompo-
sition, e.g. specific points of time in a video.
3D animation – as synthesized media type with the largest number of dimensions – has the most
complex inner structure. Relevant types of inner parts can be identified based on an existing abstract
modeling language for 3D applications called SSIML [Vitzthum and Pleuß05]. SSIML specifies the
concepts common in 3D standard formats (like VRML [ISO97a] and X3D [ISO04]) and 3D authoring
tools and is used as base for a model driven development approach for Virtual Reality and Augmented
5.2 Modeling Media Components 97
+owner 0..1 +owner 0..1 +owner 0..1 +owner 0..1 +owner 0..1
+part 0..n +part 0..n +part 0..n +part 0..n +part 0..n
Animation2D Animation3D AudioPart VideoPart ImagePart GraphicsPart TextPart
MediaElement
Figure 5.13: Icons for MML Media Components and Media Parts (some Media Parts do not have an
icon representation yet).
internally using transformation nodes or group nodes. Also the structure is always a simple tree
structure independently of whether it is implemented internally by reusing a node multiple times for
efficiency reasons. The nodes are called Media Parts, reusing concepts from Parts in UML Composite
Structure Diagrams which describe e.g. the inner structure of UML components (see e.g. [Hitz
et al.05], chap. 3.5). A Media Part represents a specific structural part of a media component. For
example for 3D animations the possible Media Parts derived from SSIML are Object3D which refers to
an arbitrary complex geometrical object, Transformation3D, Camera3D, Viewpoint3D, and Light3D3 .
Only those Media Parts are explicitly modeled in MML which are relevant for other parts of the
application, e.g. as they should be manipulated by the application logic. Other Media Parts which
are only required for the concrete realization of the Media component are omitted. A parent-child
relationship between two nodes specifies that the child node’s position is relative to it’s parent node.
An implementation for instance in VRML requires additional transformations between the elements
which are though not modeled explicitly in MML.
The metamodel in figure 5.12 shows the different kinds of Media Parts available in MML for the
different Media Types. Each temporal media can be structured by Cue Points which are abstract points
of time within a temporal Media Component’s timeline. A Cue Point can represent for instance the
beginning of a scene in a video or a specific point of time in an audio. The Cue Points are abstract as
well, i.e. they are described by a meaningful name while their concrete time values needs not to be
specified until the final implementation.
2D animations adopt those elements from 3D animations which make sense in 2D space, i.e.
objects (SubAnimation2D) and transformations (Transformation2D). Audio can be decomposed in dif-
ferent channels which represents on abstract level any decomposition beside CuePoints, for instance
a stereo channel or a MIDI channel. Video can be decomposed into regions like an image. Image,
Graphics and Text can be decomposed in the spatial dimension only. An ImageRegion represents
a spatial area within an image. A SubGraphics represents a part within a graphic. A TextPassage
represents a part within a text.
In addition, some types of Media Components can contain other Media Components. For example,
a video can contain sound, graphics can contain bitmaps, and animations often can contain bitmaps,
sound, or even videos. Such containment can be modeled by references to other Media Components
as shown in the next section 5.2.8.
For the Media Parts custom icons have been developed based on user tests as described in sec-
tion 5.1.4. They are shown in figure 5.13 A few Media Parts currently have not been considered yet:
Channel, VideoRegion, TextPassage, and CuePoint.
manifests manifests
MediaArtifact PartArtifact
instanceOf instanceOf
Figure 5.14: Illustration of different abstraction layers of media and their inner structure. In MML
structure diagrams the white colored model elements need not to be specified in the model. The light
yellow colored model elements are modeled only optionally.
to specify them in the MML model. Optionally, the name of the Media Part can be specified after
the Inner Property name separated by a ’:’, e.g. wheel_left:Wheel. Media Part names need only to be
specified explicitly if multiple Inner Properties refer to the same kind of Media Part, like wheel_left
and wheel_right which both refer to Wheel. Often a Media Property refers to a Media Part of its own
(e.g. a car contains only one hood). In that case the Media Part name can be omitted in the MML
model and is by default the same name as the Inner Property name (but starting with an uppercase
letter). For brevity it is also possible to specify a multiplicity for a Media Property to denote multiple
instances of the same type. This enables modeling in a compact way for instance multiple wheels
of a car or a large number of spectators at the stand. Specifying a property with the name n and the
multiplicity m corresponds to m properties of the same type named with the concatenation of n and
a consecutive number, i.e. n1, n2, n3, etc. Specifying a multiplicity range means that the concrete
number of properties is either decided during implementation or calculated at runtime.
Figure 5.15 shows as example a Media Component Car containing different Media Properties.
There are different Inner Properties referring to the Media Part Wheel. All Media Parts in this example
100 5. Modeling Multimedia – MML Core Principles
are from type SubAnimation. The frontwheels, fronwheel_left and frontwheel_right are both modeled
explicitly, while the two backwheels are modeled by a multiplicity. As explained above one can
reference them by the automatically generated names backwheel1 and backwheel2. For the other
Inner Properties in the example no Media Part names are specified which implies that front, back and
spoiler refer to Media Parts Front, Back and Spoiler. Furthermore the hierarchy of the Media Properties
specifies that frontwheel_left and frontwheel_right are located relative to front while backwheel and
spoiler are located relative to back.
Media Properties can not only refer to MediaParts but they may also refer to other Media Compo-
nents. This can be used to specify that a Media Component contains an instance of another one. For
example, in the racing game the track is represented by an animation TrackAnimation which contains
several instances of CarAnimation. The car animation instances are thus located inside the track ani-
mation and can be referred from it. Of course, the car animations still can be used at other places in the
application as well, for instance in the game’s menu when the user has to select a car. The metamodel
for Inner Properties is shown in the next section 5.2.8 when Part Instances have been introduced.
(a) Each Media Part is possibly manifested by an artifact of its own (default case)
Tool Support The Part Artifacts need not to be specified as model elements of its own in the MML
diagrams. They are just used to be referenced by Media Properties. Of course, a modeling tools
manages them and shows them in the containment tree view which is usually part of every modeling
tool. It is also a common standard functionality that if a modeler has to refer a Part Artifact the
modeler can either create a new one or choose an existing one from a selection provided by the tool.
5.2.10 Variations
Sometimes content must be produced in different variants. Typical examples are different qualities
of a video or text in different languages. For this purpose it is possible to specify Variation Types in
MML. A Variation Type consists of a descriptive name and a list of possible values (literals). MML
allows defining any custom Variation Type. A Media Component refers to a Variation Type to specify
that the Media Component varys according to this type. This means that there is one variant for each
value of the Variation Type. If a Media Component refers to multiple Variation Types then it has a
variant for each possible value combination. Figure 5.20 shows the corresponding metamodel.
In the example in figure 5.20 a Variation Type Quality has been defined with the possible values
low, medium, and high and a second Variation Type Language with the values english and german.
The text HelpText refers to Language, i.e. it must be created in the two different languages English
and German. The video IntroVideo should be created for the two different languages and the three
different qualities, which means altogether in six different variants.
At this point MML could be extended with concepts from modeling approaches for context-
sensitive applications like UsiXML (sec. 4.1.2) or Dynamo-Aid (sec. 4.1.2). Then it would be possible
to describe in more detail e.g. hardware properties like screen size or different user groups. These
approaches also allow to specify how the user interface changes according to the context (see sec. 4).
102 5. Modeling Multimedia – MML Core Principles
MediaElement
+type 1
MediaPart
MediaComponent 1 +innerProperty InnerProperty 0..1
+owner 0..n isUnique : Boolean = false +parent +owner 1
0..n 0..n
+property +child
MultiplicityElement
(from uml)
+partArtifact 0..n
+artifact 0..1
MultimediaApplication
1 +multimedia
Application
0..n +variationType
MediaComponent 0..n VariationType
+variations 1
+type
+literal 0..n
VariationLiteral
<<VariationType>>
<<VariationType>>
Quality
Language
low HelpText IntroVideo
english
medium
german {variations = Language} {variations = Quality, Language}
high
This chapter gives an overview on the Multimedia Modeling Language (MML) supporting model
driven development of multimedia applications. The language design follows the basic decisions and
the multimedia modeling concepts introduced in chapter 5. This chapter provides a more straightfor-
ward overall view on the whole language including the modeling process and modeling tool support.
The sections on the different models as well as the subsections on the contained model elements
are basically structured as follows: Rationale, Semantics, Notation , Example, Abstract Syntax, Tool
Support, and Modeling Hints. To ensure readability and keep the descriptions as compact as possible,
redundant or trivial passages are omitted or described only once for multiple elements. A more formal
specification of the modeling language’s semantics is given by the model transformation into code in
chapter 7.
Root*
|||
Control Speed Control Direction
MultimediaApplication
+multimedia Relationship
+multimedia 1
1 (from uml)
Application Application
1 +rightTask
Optional Iteration
language which can be found at [TERb]. Metamodels for Task Models exist for instance in [Bastide
and Basnyat06, Usi07]. The MML metamodel for Task Models shown in figure 6.2 has been made
compliant to the other parts of the MML metamodel. For example, relationships have been defined as
a subclass of the metaclass Relationship reused from UML as Relationship is already existing in other
parts of the MML metamodel.
Domain Model The Domain Model is specified in terms of conventional UML class diagrams.
The classes usually correspond to domain concepts. To distinguish them from other kinds of classes
in MML they are referred to as Domain Classes.
All conventional model elements from UML 2 class diagrams are supported, like Property and
Operation including Visibility and Parameters, the relationships Association and Generalization, and
Primitive Types and Interface.
The domain model can be mapped to program code analogously to common mappings from UML
class diagrams to e.g. Java code. For the class operations only the operation signatures are generated.
It is not intended in MML to define the operation bodies (i.e. their behavior) within a model for
the following reasons: The domain class operations are expected to contain the application logic
which can be very complex behavior. Modeling them in such a way that code can be generated
would mean a kind of visual programming which can quickly lead to very large models. Furthermore,
the implementation of complex effects combined with optimal performance often requires platform-
specific code. In particular, the operations in multimedia applications often should cause a specific
effect on the user interface. For example, in a racing game the car should move in such a way that
it appears realistic to the user. It requires much fine-tuning to provide the optimal level of difficulty
for the user so that the application is really appealing, challenging, and entertaining. It is often very
difficult to specify such behavior in advance within a model – in contrary, often the optimal algorithms
and parameters have to be found out incrementally by multiple test runs. Thus, the operation bodies
are preferably implemented directly within an appropriate development environment (like the Flash
authoring tool) where they can be directly executed and tested.
The domain model is denoted like conventional UML class diagrams. Optionally the domain
classes can be marked with a keyword DomainClass but this is usually not necessary as all classes
without specific notation or keyword are interpreted as domain classes. Figure 6.3 shows as example
the domain classes for the Racing Game application.
Figure 6.4 and 6.5 show the corresponding parts of the metamodel. They are extracts from the
UML 2 metamodel, restricted to those elements supported by MML. Thereby the original structure
has not been changed to enable compliance with other approaches and tools, e.g. UML modeling
tools.
Media In addition, the Media Components are defined in the Structural Model. All model elements
elaborated in section 5.2 can be used, i.e. MediaComponent (sec. 5.2.2), MediaArtifact (sec. 5.2.5),
MediaPart (sec. 5.2.7), InnerProperty (sec. 5.2.8), PartArtifact (sec. 5.2.9), VariationType and Vari-
ationLiteral (sec. 5.2.10). A Media Component can refer to an Interface by an InterfaceRealization
106 6. MML – A Modeling Language for Interactive Multimedia Applications
Relationship
0..1
+defaultValue
+ownerUpper +upperValue ValueSpecification
MultiplicityElement 0..1 0..1
+ownerLower +lowerValue
0..1 0..1
+defaultValue
0..1
+type
Type TypedElement
OpaqueExpression
0..1 LiteralSpecification
body : String
language : String
+enumeration
DataType Enumeration
0..1
LiteralString LiteralNull LiteralInteger
value : String value : Integer
0..n +literal
EnumerationLiteral
PrimitiveType
LiteralUnlimitedNatural LiteralBoolean
value : UnlimitedNatural value : Boolean
+ownerReturnParameter +owningPa
+returnResult rameter
0..1
+ownedOperation 0..1
0..1
0..n
Operation +operation
0..n
Parameter
visibility : VisibilityKind = public 0..1 +formalParameter
isStatic : Boolean = false
Type
+ownedOperation +interface
Operation
0..n 0..1
+contract 1
+implementing
Classifier 0..n InterfaceReali
Class Relationship
0..1 +interfaceRe zation
alization
relationship (sec. 5.2.3). The Media Components represent the Domain Classes which is specified by
the MediaRepresentation relationship (sec. 5.2.4). It is possible to assign one of keywords defined in
section 5.2.6 to a Media Representation.
The example in figure 6.6 shows the complete Structural Model for the racing game application,
i.e. the domain model from fig. 6.3 enhanced with Media Components. In the example, the domain
class Car is represented by an animation CarAnimation and by EngineSound. The EngineSound in
particular represents the car’s property speed. The Keyword unique at the Media Representation be-
tween EngineSound and Car specifies that the same audio artifact is used for all cars. The Media
Component EngineSound also provides an additional interface containing an operation setPitch. An
inner structure is defined for CarAnimation and TrackAnimation. Thereby, inner properties of TrackAni-
mation refer to the Media Components ObstacleAnimation and CheckpointAnimation. TrackAnimation
is manifested by three Media Artifacts Monza, Indianapolis, and Monaco. CarAnimation is manifested
by Porsche and Ferrari. All animations should be created in two different qualities low and high as
specified by the Variation Type Quality.
Figure 6.7 shows the part of the MML metamodel defining the overall structure of the MML Struc-
tural Model. As explained in section 5.1.5 the top-most model element in the containment hierarchy
is MultimediaApplication. DomainClass is defined as a subclass of UML class. They are connected to
Media Components via MediaRepresentation relationships like introduced in section 5.2.4.
Figure 6.8 shows the metamodel part which further defines Media Components. It is the com-
position of the different metamodel extracts elaborated in chapter 5.2. In addition, the metamodel in
figure 5.12 defines the subclasses for the abstract metaclass MediaPart. Figure 5.12 can be added as
it is and is thus not depicted here again.
<<Animation2D>> <<Animation2D>>
CarAnim ation TrackAnim ation
{variationType = Quality} {variationType = Quality}
Ferrari Porsche
Monza Indianapolis Monaco
Figure 6.6: Complete Structure Diagram for the Racing Game example
+data +multimedia
Type Application +multimedia
Application
DataType 0..n
MultimediaApplication 1 Association
(from uml) 1 0..n (from uml)
+association
1
+multimedia 1 +multimedia
Application Application
+interface
Interface 0..n Relationship
(from uml) (from uml)
+mma_Class
0..n
MMA_Class MediaRepres +mediaRepr 1
Class 1 0..n esentation MediaComponent
(from uml) +representedClass entation
1 +media
+implementing
InterfaceReali 0..n Component MediaComponent 1 +manifestation MediaArtifact PartArtifact
zation +interfaceRe 0..1
0..n fileName : String
(from uml) alization +component
+owner +partArtifact
1 0..n
0..n
+variations
0..n+innerProperty
+parent
VariationType InnerProperty +property 0..1 Artifact
+type 0..1
0..n +artifact
1 isUnique : Boolean = false
+variationType 0..n 0..n +child
Figure 6.8: MML metamodel for Media Components in the Structure Diagram.
Help
show GameHelp()
show Menu() show MenuHelp() resumeGame()
show Intro() {resume}
show Menu()
show Menu()
Intro Menu Game
startGame( p : Player, t : Track )
Score
Scene A Scene represents a specific state of the application. It is associated with a Presentation Unit.
However, an important multimedia-specific aspect of Scenes is their highly dynamic character. This
is caused on the one hand by the time-dependent behavior of temporal media instances in a Scene.
On the other hand, often the number, the position, and the presented artifacts of Media Components
is calculated at runtime. For example in a racing game the number of cars, the car types and the track
might be selected by the user at runtime. Often it is not possible or useful to specify all possible
configurations by a Scene of its own. Instead, a Scene is more generic and can receive parameter
values.
Every Scene is associated with exactly one (probably generic) Presentation Unit specified in the
MML Presentation Model (sec. 6.4). In contrast to OMMMA (sec. 4.3.2) the Scene Model specifies
only the application’s top-level behavior while the internal behavior of Scenes is specified in Interac-
tion Diagrams (sec. 6.5).
Scenes are denoted like a states in UML State Charts. Figure 6.9 shows an example Scene Diagram
for the racing game application. It contains the Scenes Intro, Menu, Help, Score, and Game.
In this example the Scene Game is generic and represents all possible races or levels the user
110 6. MML – A Modeling Language for Interactive Multimedia Applications
can play. In particular, when the different tracks, cars and configurations for a single race are loaded
dynamically it would not be useful to model each configuration as a scene of its own. Nevertheless,
it is of course still possible to model a scene of its own for each race if desired; for instance, if the
developers want to specify that there is always a fixed order of tracks (e.g. the user always has to play
the track Monza first, then the track Indianapolis, and finally Monaco).
Entry Operations, Exit Operations, and Transitions Due to its generic nature a Scene provides
Entry Operations. They can be used to initialize the Scene and pass parameters to it. During the final
implementation (after code generation), Entry Operations can be used in particular to initialize the
Scene’s associated Presentation Unit. This might include setting up media instances as well as estab-
lishing event listeners and connections between domain classes and user interface elements. The Entry
Operations also trigger associated behavior (according to the Interaction Diagrams in section 6.5), e.g.
invoke predefined behavior of contained Media Components.
Furthermore, each Scene has Exit Operations which can be used to clean up the Scene (e.g. to
free resources), call an Entry Operation of the next Scene, and pass parameters to it.
Transitions are defined between a source Scene and a target Scene analogous to transitions be-
tween states in UML State Charts. Basically, executing a transition means in MML that the target
Scene becomes active and its associated Presentation Unit is displayed while the source Scene be-
comes inactive and its Presentation Unit is no longer visible. Moreover, a Transition corresponds to
the execution of an Exit Operation in the source Scene followed by the execution of the Entry Opera-
tion in the target scene. Each Exit Operation is associated with exactly one Transition while an Entry
Operation can be targeted by multiple Transitions.
In the Scene Diagram a Transition is denoted as directed arrow leading from a source Scene to a
target Scene. A Transition is annotated with the name of the Entry Operation it addresses. The Exit
Operations need not to be specified explicitly in the diagram as a Scene has an Exit Operation for
each outgoing transition. As long as no name has been specified explicitly the Entry Operations can
be referenced by definition by a default name: The name of an Exit Operation is composed of the
prefix exitTo, the name of the target scene, and the name of the target Entry Operation, separated by
’_’, e.g. exitTo_Menu_showMenu().
In the example in figure 6.9, the Transitions specify that first the Scene Intro is shown followed
by the Scene Menu. From the Menu it is possible to proceed either to the Help or to the Game. From
the Game it is possible to call the Help as well. When the Game is finished the Score is shown and
afterwards the application returns to the Menu.
In the example the Game’s Entry Operation start is used to pass parameters from the Menu to the
Game Scene. The Scene Help provides two different Entry Operations showGameHelp and show-
MenuHelp which can be used to show different help content and to return to the foregoing Scene
afterwards. According to the naming convention for instance the Exit Operation which belongs to the
transition from Intro to Menu is named as exitTo_Menu_showMenu().
Start State, End State A Scene Model has exactly one StartState and one EndState specifying the
application’s start and its termination. They are denoted like initial states and final states in UML
providing specific kinds of Entry/Exit Operations. By definition, the Start State owns the operation
ApplicationStart which is automatically called when the application starts and triggers the Entry Op-
eration of a Scene as specified by the transitions in the Scene Model. The End State owns an operation
ApplicationExit which causes the application to terminate.
6.3 MML – Scene Model 111
+multimediaApplication 1 1 +multimediaApplication
MultimediaApplication
State
1 MMA_Class 1
+startState +endState
StartState EndState
+scene +scene
+startState 1 {redefines class} Scene {redefines class} 1 +endState
1 1
1
+transition
Relationship Transition 0..n
(from uml)
In the example in figure 6.9 the Start State calls the Entry Operation showIntro of Intro. From the
Menu it is also possible to exit the application.
Resuming Scenes As proposed by OMMMA (sec. 4.3.2) the Scene’s dynamic properties require to
distinguish between two different cases when entering a Scene: When a Scene has already been active
before it is possible to either initialize the Scene again or to return to its previous state. The former
case is the default case. The latter case is useful when a Scene has an inner state (e.g. resulting from
usage of temporal media) which should be resumed later. For example in the racing game the Scene
Game can be interrupted by calling the application’s Help and should be resumed afterwards.
Thus, it is possible to specify for an Entry Operation whether it resumes to the Scene’s previous
state or not. If a Scene is left by an Exit Operation which might (according to the Transitions in the
Scene Model) lead to an Entry Operation with resume set to true then the Scene instance is stored.
When the Scene is then entered again by an Entry Operation with resume set to true then the stored
previous instance is used instead of creating a new instance. If no previous instance of the Scene exists
then a new instance is created, i.e. the value of resume has no effect.
In the diagram the value of resume is specified as true by the attaching the keyword resume to
the corresponding Entry Operation1 . It should be mentioned that such an example is modeled in
the original statechart formalism by a throughout mechanism ([Harel87], p.26) which is a possible
alternative for future versions of MML.
In the example in fig. 6.9 the Game’s Entry Operation resumeGame() is marked with the keyword
resume. In contrast, the Game’s Entry Operation startGame(p:Player, t:Track) creates a new game and
initializes it with (new) parameters.
1
OMMMA uses History States for this purpose as OMMMA restricts to existing UML State Chart elements.
112 6. MML – A Modeling Language for Interactive Multimedia Applications
<<Scene>>
Intro
<<EntryOperation>>+show Intro()
<<ExitOperation>>+exitTo_Menu_show Menu()
Figure 6.10 shows the resulting metamodel for the model elements in Scene Models. MML Scene
Models have a more restricted structure than UML State Charts and contain only MML-specific model
elements. Thus, none of the UML metaclasses is reused here. The basic concept defined by abstract
metaclasses is that a State owns a StateEntry and a StateExit. A StateExit owns a Transformation
which refers another StateEntry. In case of a Scene, the StateExits must be ExitOperations and the
StateEntrys must be EntryOperations. The metaclass EntryOperation has a boolean attribute resume.
Class Character of Scenes Media Components usually represent Domain Classes. But in some
cases a Media Component has no relationship with a Domain Class but rather represents a specific
Scene. A typical example is help content like a text document. Although some parts of it certainly
refer to Domain Classes the document as a whole only represents the Scene Help itself. Likewise, a
Video for the application’s intro usually represents not a specific Domain Class but the Scene Intro.
Thus, a Scene can be represented by a Media Component just like a Domain Class.
Moreover, a Scene can own properties and operations like a class:
Thus, the character of a Scene is two-fold: on the one hand it can be interpreted as an application’s
State (regarding the application’s coarse-grained behavior defined in the Scene Model), on the other
hand it can be interpreted as a class owning properties and operations. During code generation a Scene
is mapped to a class associated with a user interface. Properties and operations owned by the Scene
are mapped to class properties and class operations.
To gain an overview on all a Scene’s properties and operations it is possible to denote it as a
specific kind of class in the Structural Model. A Scene can be denoted in the Structural Model like a
conventional class. It is marked with the keyword Scene to distinguish it from other kinds of classes
in MML. Entry Operations and Exit Operations are then also marked with keywords EntryOperation
and ExitOperation to distinguish them from other (conventional) operations a Scene may own. All
properties are denoted like class attributes.
Figure 6.11 shows an example: The Scene Intro is represented by three Media Components: In-
troVideo, IntroHeadline, and IntroMusic. According to the Scene Model from figure 6.9 it owns an
EntryOperation show Intro() and an Exit Operation exitTo_Menu_showMenu().
6.4 MML – Presentation Model 113
In the metamodel in figure 6.10 the metaclass Scene is defined as subclass of MMA_Class and
thus inherits its properties. Additional properties and operations for Scenes are defined in Presentation
Model and the Interaction Model explained in the following sections.
Modeling tools usually also provide a containment tree view listing all model elements in a tree
structure. Of course, this view can also be used to look up all properties of a Scene. Usually, it is also
possible to drag model elements from the containment tree into a diagram. A modeling tool should
thus support that Scenes can be dragged into an MML Structure Diagram where they are visualized
like in figure 6.11.
Composite Scenes It is also possible to define Composite Scenes in MML analogous to Composite
States in UML State Charts. This is mainly useful to specify that some parts of the user interface
elements should be available throughout multiple scenes (like in frame-based HTML pages). In that
case the user interface results from the unification of the Presentation Unit of the Sub-Scene and the
Presentation Unit of the Composite Scene. It is also possible to specify regions to specify that two
Scenes are active concurrently. This corresponds to e.g. two independent windows in a graphical user
interface. However, it is intended to use Composite Scenes sparsely to keep the models simple. Also
nested frames and multi-window applications are currently not that common in many multimedia ap-
plication domains and only little supported by authoring tools like Flash. For that reasons Composite
Scenes are not discussed here further in detail.
Future Extensions As mentioned in section 4.1 it is possible to calculate Enabled Task Sets (ETS)
from the task models which help to identify the Presentation Units. All tasks within an ETS must be
provided within the same Presentation Unit. [Luyten04] for example shows a concrete algorithm to
calculate the ETS and to derive a State Transition Network with ETS as nodes, transitions between
them as well as initial and finishing states. It then still has to be decided which ETSs to put together in a
single Presentation Unit (as a Presentation Unit often contains multiple ETS) and how to map the tasks
to user interface elements. Nevertheless, automatic derivation can provide a useful starting point for
the developer and also helps to validate the created results. Analogously such a transformation could
be applied to MML to derive a starting point for the Scene Model from the Task Model. Integrating
such a transformation for would thus be a possible enhancement for future version of MML but has
not been implemented yet.
In a second step, the user interface design and the Media Components have to be integrated.
Section 6.4.2 shows how this is supported in MML by UI Realization relationships to instances of
Media Components. At this point the user interface model is no longer independent from modality
as the modality of each media component is already determined by its media type. However, as
pointed out in section 6.1 the user interface of a multimedia application usually contains standard user
interface elements as well – not media objects only. For those standard elements it is still possible
to select between different modalities. For example, it is possible to present the user some piece of
information by audio instead of by a visual component, e.g. the lap time after each lap in the racing
game.
In a third step, Sensors are added to the Presentation Model. They represent specific events result-
ing from temporal media objects. These model elements are introduced in section 6.4.3.
Finally, it is possible to refine the Presentation Model in an additional step in terms of a Concrete
User Interface Model, as common in user interface modeling. It specifies the user interface in terms
of Concrete Interaction Objects for a specific modality. The Concrete Interaction Objects are concrete
(but usually still platform-independent) widgets derived from the Abstract Interaction Objects.
The current version of MML concentrates here on the scope defined in section 5.1.1. Thus, it re-
stricts on some basic concepts from user interface modeling to clearly demonstrate the integration with
media objects and enable code generation. The transformation from Task Models into the Abstract
User Interface as well as the Concrete User Interface model are not further investigated here.
Abstract Interaction Objects: Types An Abstract Interaction Object (AIO) is a platform- and
modality-independent abstraction of user interface widgets like a button, a text field, etc. The set of
AIOs provided by existing user interface modeling approaches varies. Many of them, like [da Silva
and Paton03, Van den Bergh06, Görlich and Breiner07], provide a small set of simple, very abstract
AIOs like Input Component, Output Component, etc. Another possibility would be a faceted approach
like in UsiXML (sec. 4.1.2) or [Trætteberg02] where each AIO is more generic and has multiple
facets like input, output, navigation, and control. This approach is more flexible but the elements
and their notation becomes somewhat more complex. Others like Canonical Abstract Prototypes
[Constantine03] use more fine-grained distinction and provide various AIOs for different kinds of
actions, like move, duplicate, modify, etc. Then, the models can become more expressive but is
also more difficult to learn the different AIOs. Such a fine-grained distinction is not mandatory as
the purpose of an AIO becomes apparent also by its name and by the domain object, property, or
operation it refers to (see UI Representation relationship below).
MML sticks to the simplest solution and provides a small set of AIOs: An Input Component
enables the user to freely input data like a text field. An Output Component shows information to the
user like a text label. An Edit Component enables the user to edit data like a slider. It is a combination
of Input Component and Output Component. An Action Component enables the user to trigger an
action of the system like a button. A Selection Component enables to select an element from a given
6.4 MML – Presentation Model 115
InputCom ponent OutputCom ponent EditCom ponent ActionCom ponent NotificationComponent SelectionComponent
+container
0..1
InputComponent OutputComponent ActionComponent SelectionComponent UIContainer
EditComponent NotificationComponent
set of choices like a drop-down listbox. A UI Container is a container for any kind of AIOs and is used
to structure the AIOs within the Presentation Unit like a panel. Finally, MML provides in addition a
Notification Component which is a specific case of Output Component but is more conspicuous than
a conventional Output Component. By default it is not visible to the user and is only displayed during
runtime like a dialog box, e.g. after an event of a temporal media object. For instance, in the racing
game application a Notification Component can be used to notify the user when the race is finished
which can be implemented for example as a text banner or an animation.
Figure 6.12 shows the visual notation for AIOs in MML developed as described in section 5.1.4.
An example is shown in figure 6.14. It shows the Presentation Unit for the Scene Game. It
contains Output Components for information like the player’s name, the laps already completed, etc.
Also the track and the obstacles on the track must be shown to the user and are represented by an
Output Component. The car is shown to the user but in parallel the user can edit some parameters of
the car like its speed and rotation. Thus, car is defined as an Edit Component. There are also Action
Components to trigger functionality like starting the race or call the help.
Figure 6.13 shows the metamodel part for the AIOs available in MML. Abstract Interaction Object
is defined as an abstract superclass.
Extending MML with additional AIOs is relatively easy possible by adding an additional sub-
classes to the metamodel and adding an additional rule in the ATL transformation (for the mapping
from MML models to code, see chapter 7).
Abstract Interaction Objects: Properties For each AIO it is possible to specify that the AIO
is initially invisible on the user interface. This can be useful for multimedia user interfaces where
sometimes elements become visible only in specific situations, e.g. when an animation appears on the
screen at a specific point of time. For code generation this means that the user interface element is
created but not initially visible on the user interface, e.g. by setting a corresponding parameter or by
putting it outside the visible screen area. The most common case is the Notification Component which
is invisible by default. All other AIO types are visible by default but can be defined as invisible as
well. In case that the AIO should be realized by another modality like sound it might have no effect.
An invisible AIO can be denoted in the diagram by a dashed bounding box around the element.
116 6. MML – A Modeling Language for Interactive Multimedia Applications
An AIO in the Presentation Diagram can have a multiplicity. Multiplicities are very useful in
context of multimedia applications as the user interface is often dynamic and number and placement
of user interface elements can depend e.g. on user input. For example, there might be a varying
number of obstacles on the track in a racing game An AIO with a multiplicity corresponds to a set of
AIOs whose names are composed of the AIO name specified in the model and a consecutive number.
During code generation it has to be decided how many AIOs to initially instantiate on the generated
user interface. This can be done according to the following rule: For a multiplicity n..m, m elements
are generated if m is a number (i.e. not ’*’). Else, n elements are generated if n is greater than zero. If
the multiplicity is 0..* then three example elements are instantiated. Multiplicities are denoted behind
the AIO’s name.
An example can be found in figure 6.14: A multiplicity is specified for the Output Component
obstacle as there is a varying number of obstacles. According to the rule described above three
obstacles will be generated from the model named as obstacle1, obstacle2, and obstacle3.
Domain Objects and UI Representations Like in most user interface modeling approaches an AIO
is associated with the application logic. This is specified by UI Representation relationships between
AIOs and domain objects.
A Domain Object represents an instance of a Domain Class from the Structure Model (sec. 6.2).
More precisely, it is a placeholder for an instance having a specific role within the Scene (not a
concrete instance with concrete values defined in the model)2 . They can be interpreted as properties
of the Scene and are mapped to properties of the Scene class during code generation.
The domain objects are denoted as a solid-outline rectangle containing its name and, separated by
colon, its type, i.e. the name of the domain class it instantiates.
A UI Representation relationship specifies that an AIO represents a domain object. Analogous
to Media Representation relationships (sec. 5.2.4) it is possible to specify concrete properties and/or
operations of the domain object which are represented by the AIO. The detailed meaning of the UI
Representation differs according to the AIO type: An Output Component represents either a property
or an operation, i.e. its return result. An Input Component refers to a property or an operation which
implies that it sets the value of the property or of the operation’s parameters. An Action Component
usually refers to an operation which means that the Action Component triggers the operation when it
is activated by the user. A specific case is the Selection Component as it consists of multiple choices
(which basically could be interpreted as kind or output elements). Thus, a Selection Component refers
either to a property with multiplicity greater than one or to an operation which returns a collection of
elements.
In general, the relationship between AIO and represented domain object is always 1:1 in MML. If
no specific property or operation is specified, it means that it is either not decided yet or that the AIO
represents the domain class as a whole.
The UI Representations are denoted as a solid line between an AIO and a Domain Object. It
can be annotated with the names of Domain Object’s properties and/or operations represented by the
AIO. Sometimes an AIO represents a property or operation of the containing Scene itself, like an Exit
Operation of the Scene. In this case no UI Representation relationship is depicted in the diagram.
Instead, the name of the represented property or operation is denoted in curly brackets below the AIO.
2
One can distinguish between three layers of abstraction: 1) the “object level” describes properties for concrete objects
with concrete values 2) the “class level” describes properties which hold for all instances of a class. The “role level” resides
between those two and describes properties which hold for all instances of a class in a specific context. For example, class
attributes reside on role level as a property defined for a class attribute holds for all objects referenced by the attribute. See
[Hitz et al.05]
6.4 MML – Presentation Model 117
<<Scene>>
Gam e
car quit
{exitTo_Menu_show Menu()}
help
checkpoint [1..*] track obstacle [0..*] {exitTo_Help_show GameHelp()}
Figure 6.14: MML Presentation Diagram containing the Presentation Unit for the Scene Game.
Figure 6.14 shows a Presentation Diagram for the Scene Game from the racing game example.
For instance, the Edit Component car, the Output Component lapsCompleted, and the Action Compo-
nent start all represent an instance car of the class Car. Thereby, lapsCompleted represents the class
attribute completedLaps, start represents the operation start(), while the EditComponent car repre-
sents the whole car object (i.e. multiple properties not further specified in the model). The Action
Components help and quit all represent operations of the Scene itself.
The metaclasses for the Abstract User Interface will be shown later in figure 6.16 together with
the metaclasses for UI Realizations.
Abstract Layout Existing user interface modeling approaches usually support to define the layout
of the AIOs on the user interface in an abstract way as well. It can be specified in an abstract way by
constraints on the AIOs and by relationships between them. For example, one can define that a user
interface element should always have a quadratic shape or that one element should be positioned left
to another. A discussion can be found e.g. in [Feuerstack et al.08].
For approaches which address independence from modality it is important to specify the abstract
layout independent from modality as well. For instance in a vocal user interface there are no spatial
relationships like “left-to”. Thus, they use more abstract relationships between the models. [Lim-
bourg04] uses the 13 basic relationships identified by [Allen83]. These relationships originally define
the temporal relation between to time intervals, e.g. “before”, “starts with”, “overlays”, “during”, etc.
They can also be applied to the visual dimension (e.g. one visual user interface element is placed
before another). Moreover, by composition they can also be applied to multiple dimensions like 2D
space or 3D space.
An alternative approach is to specify the designer’s intention instead of resulting physical layout
properties: for instance “grouping” , “ordering”, “hierarchy”, “relation”. For example, “grouping”
user interface elements can be realized on a visual user interface e.g. by “lining them vertically or
horizontally, or with the same colour or with bullets” [Paternò and Sansone06].
118 6. MML – A Modeling Language for Interactive Multimedia Applications
In the current MML version no layout mechanisms are implemented. When generating code for an
authoring tool like Flash the designer can specify the layout visually in the authoring tool. However,
MML can easily be extended e.g. with abstract layout relationships like specified in UsiXML [Usib].
6.4.2 UI Realizations
Until now, the Abstract User Interface has been specified like in user interface modeling approaches.
In conventional applications they would then be implemented by standard widgets. However, in mul-
timedia applications the AIOs can also be realized by instances of the Media Components instead.
MML enables to specify this by UI Realization relationships between AIOs and Media Instances.
Media Instance A Media Instance is an instance of a Media Component from the Structure Diagram
(sec. 5.2). Analogous to AIOs and Domain Objects, the Media Instances are interpreted as properties
of the Scene as well. Although in fact (during implementation) a Media Instance is always an instance
of a concrete Media Artifact, the Media Instances in MML Presentation Diagrams are specified more
abstractly as instances of Media Components. This is necessary as the concrete Media Artifact might
be selected at runtime. However, it is optionally possible to specify a specific Media Artifact name
for the Media Instance.
The Media Instances are denoted like Media Components but in addition with an instance name,
separated by a colon, before the name of the Media Component. Thereby, the different alternatives to
depict a Media Component are all allowed, e.g. collapsed or with a compartment showing its inner
structure (see sec. 5.2.2).
UI Realizations: Media type vs. AIO type The most obvious case is that a Media Instance realizes
an Output Component. But in interactive applications Media Instances can also be used for user
interaction. For example, it can be possible to select a specific region in an image or to drag an
animation with a pointing device. It depends on the media type whether and how a media instance
may act as an interactive AIO, i.e. as an Input Component, Edit Component, Selection Component
or Action Component. Audio can usually not act as an interactive AIO as it can not be manipulated.
Of course it is possible to record and parse audio using a microphone as accomplished in speech
recognition. However, this has no relationship at all to playing an auditive media object (see distinction
between the terms “multimedia” and “multimodality” in sec. 2.1). The same holds for video, where a
camera and gesture recognition are necessary for user inputs. However, all visual elements, including
6.4 MML – Presentation Model 119
<<Scene>>
Game
engineSound : EngineSound
car quit
{exitTo_Menu_show Menu()}
carAnim : CarAnimation
help
checkpoint [1..*] track obstacle [0..*] {exitTo_Help_show GameHelp()}
<<Animation2D>>
trackAnim : TrackAnim ation
Figure 6.15: MML Presentation Diagram including UI Realizations for the Scene Game.
video, appear on the screen and can therefore receive user events, e.g. when selected by a pointing
device. Thus, all visual objects can act as Action Components.
As animations can dynamically change their content dependent on the application logic, they can
additionally act as Edit Components or Input Components. An example is a car animation which
represents e.g. the current rotation of the car. The user might manipulate the animation with an input
device to edit the car’s rotation value.
All visual objects can also act as Selection Component. As mentioned above Selection Compo-
nents are more complex as they consist of multiple choices. A visual Media Instance can act either
as the Selection Component as a whole or can represent a single choice. The former case requires
that the Media Instance consists of several parts which act as choices, for instance an image of a map
where different image regions can be selected. The latter case implies that there are multiple Media
Instances – one for each choice. The distinguish between this two cases in the model and for code
generation the latter case is specified by assigning the keyword choices (denoted in curly braces) to
the UI Realization.
instance be possible to select the kind of tires (rain tires or dry-weather tires) for a car by clicking on
the wheels in the car animation.
In case of an Action Component, the part for instance triggers an event. In case of an Edit Com-
ponent, the part can for instance be manipulated by drag and drop. In case of a Selection Component,
the part can be selected.
In the Presentation Model this is specified by attaching a reference on the Inner Property (referring
to a specific part of a Media Component, see sec. 5.2.8) to the UI Realization.
In the diagram, the UI Realization can be annotated with the name of one ore more Inner Proper-
ties. Alternatively it is possible to draw the UI Realization directly as connection between the Inner
Property and the AIO like in figure 6.15. Of course, the latter alternative requires that the Inner Prop-
erty is visible in the diagram (i.e. the Media Instance must not be depicted in collapsed style) and that
only one Inner Property is referenced by the UI Realization.
In the example in figure 6.15 the AIO checkpoint is realized by the Inner Property checkpoint of
trackAnim and the AIO obstacle is realized by the Inner Property obstacle of trackAnim.
Figure 6.16 shows the metamodel for the MML Presentation Model introduced so far. The middle
part shows the basic metaclasses: a PresentationUnit is owned by a Scene and containts AbstractIn-
teractionObjects. The subclasses of AbstractInteractionObject have been shown in figure 6.13. The
upper part defines the UIRepresentation from an AIO to a DomainObject. Analogous to MediaRepre-
sentation (see fig. 6.7) a UIRepresentation can refer to properties and operations. The UIRealization
refers to a MediaInstance. A MediaInstance instantiates a MediaComponent and may in addition refer
to a specific MediaArtifact. The UIRealization may refer to a number of InnerProperty elements. The
Domain Objects and the Media Instances are owned by the Scene and can be interpreted as properties
of the Scene (see above).
6.4.3 Sensors
Another specific property of multimedia user interfaces is caused by temporal Media Components:
They can invoke actions independently from the user [Vazirgiannis and Boll97]. First of all, temporal
Media Components can trigger time-related events, e.g. when they reach a specific point on their
timeline or have finished. Second, there are further events depending on the media type caused by
dynamic behavior. For instance, a moving animation can trigger an event when it collides with other
animations or touches a specific region on the screen. However, a Media Component often does not
trigger such events by default. Instead, the developers often have to implement the corresponding
functionality (e.g. collision detection) themselves and integrate it with the Media Components. Thus,
a modeling language should provide support to specify such event triggers in the models. Moreover,
they are required in the Interaction Model (sec. 6.5) to specify the Scene’s behavior.
MML uses a metaphor from 3D domain called Sensor to model such event triggers. One can
distinguish between different types of sensors. The Time Sensor models temporal events in general.
In addition, there are other sensors for specific events which can be caused by temporal media. They
can be derived from 3D domain as the media type with the most dimensions. Common sensor types
are touch, proximity, visibility, and collision [Vitzthum08]. The following section discusses how and
to which media types they apply in MML.
Types of Sensors A Touch Sensor is attached to a visual object and triggers an event when the user
touches the object with a pointing device. Visual objects in MML are: Animation3D, Object3D, Ani-
mation2D, SubAnimation2D, Video, VideoRegion, Image, ImageRegion, Graphics, and SubGraphics.
However, this kind of sensor corresponds to user interaction which is in MML already covered by the
6.4 MML – Presentation Model 121
DomainObject +class
+object DomainClass
0..n
1
Property 1
(from uml) +representedObject
+represented
Operation 0..n Property
property and operation
(from uml) 0..n (if specified) must
belong to
+represented DomainObject
Operation
UIRepresentation
+uiRepresentation 1
+owner
1
+present
1 +aio
Presentatio ationUnit 0..n Multiplicity
Scene +scene 0..1
nUnit AbstractInteractionObject Relationship
+present +aio Element
1 1 (from uml)
ationUnit (from uml)
1 +realizedAIO 1
+owner
+realization 0..n
InnerProperty +realizingPart UIRealization
0..n choices : Boolean = false
+realization 0..n
part must belong to
media component
+realizingMedia
1 +media
+media
0..n MediaInstance MediaComponent
1
AIOs. The semantics of a touch sensor can be described more precisely in MML by defining a UI Re-
alization between a part of a Media Instance and an Action Component, Edit Component, or Selection
Component. Thus, Touch Sensors are not required in MML.
A Visibility Sensor can be attached to visual object and triggers an event when the object becomes
visible, e.g. after it has been covered by another object or was located outside the screen. In MML
this applies to Presentation Units which contain animations. An animation might not only become
visible itself (e.g. by moving from outside into the screen) but it can also overlay other visual objects
on the user interface which then become visible when the animation moves. Thus, a Visibility Sensor
can be attached to any visual object in MML.
A Proximity Sensor is attached to a 3D object in a 3D scene and triggers an event when the user
navigates within the 3D scene close to this object. More precisely, this means that the difference
between the camera position and the object is lower than a specified threshold value (defined during
implementation). This sensor can only be owned by 3D animations as there is no analogy for other
media types3 .
A Collision Sensor can be attached to animated objects and triggers an event when the object
collides (i.e. intersects) with another visual object. Possible moving visual objects in MML are
Animation3D, Object3D, Animation2D, and SubAnimation2D. The set of objects which are tested for
3
In 2D domain one can also argue that there is a kind of camera which can be used for zooming. However, zooming in
2D domain is actually just a transformation on a 2D animation and is handled as such in MML. There is no useful semantics
for a Proximity Sensor in 2D space which is not already covered by the Visibility Sensor
122 6. MML – A Modeling Language for Interactive Multimedia Applications
a collision has to be specified in MML by a relationship Collision Test between the Collision Sensor
and the opponent objects.
A Time Sensor triggers an event at specific points of time in the application. In MML this points
of time can be either frequently after a given time interval (not further specified in MML) or one or
more Cue Points of temporal Media Components. In the first case the Time Sensor act as a kind of
clock in the application which can be used e.g. to frequently execute an action on the user interface,
like starting an animation. This is the default case if no Cue Points are associated with the sensor. The
second case means that the sensor triggers an event at specific point of time defined by Cue Points.
This can be for example used to execute an action when a temporal media object has reached a specific
point in its timeline or has finished.
Currently, there is no specific icon notation for Sensors. They are denoted with a solid-outline
rectangle containing the type of sensor (denoted as keyword in guillemets) and the Sensor’s name.
Usage of Sensors As discussed above, a sensor can either be assigned to a whole Media Component
(like an animation) or only to specific parts of it (i.e. to an Inner Property) like a single geometrical
3D object within a 3D animation. Moreover, a sensor can be owned either by a Media Component
or by a Media Instance. In the former case, the sensor is a part of the Media Component and is
globally available in all its instances. Then the sensor can only reference to Inner Properties within
this Media Component. In the latter case the sensor is only available in the specific instance of the
Media Component in the respective Presentation Unit. In this case it might also refer to other Media
Instances within this Presentation Unit. This is mainly important for Collision Sensors as they refer
to other objects by the Collision Test relationship.
In the diagram, Sensors are assigned to Media Components or Media Instances by a solid line
between the Media Component/Media Instance and the Sensor. If the Sensor is assigned to an Inner
Property then Inner Property’s name can be annotated at the relationship. Alternatively, it is possible
to draw the relationship directly as connection between the Inner Property and the Sensor.
The CollisionTest relationship is denoted by a dashed line between the Collision Sensor and the
element observed and is marked with the keyword CollisionTest.
Figure 6.17 shows as example the Scene Game containing two Collision Sensors obstacleSen-
sor and checkpointSensor. They belong to the Media Instance carAnim and test for collisions with
obstacle and checkpoint.
Figure 6.18 shows the metamodel for sensors. A Sensor is always owned either by a MediaCom-
ponent or a MediaInstance. (This relationship is not defined as a metaclass of its own as it has no
further properties.) A Sensor may in addition refer to an InnerProperty which must belong to the Sen-
sor’s owner, i.e. the MediaComponent or the MediaInstance. A CollisionSensor owns one or more
relationships CollisionTest which refer either to a MediaInstance or an InnerProperty.
Tool Support for Presentation Diagrams The Presentation Diagram contains three different as-
pects: The Presentation Units with UI Realizations, the UI Realizations, and the Sensors. Thus, a
modeling tool should support the modeler to view only one or two of these aspects and hide all other
model elements by selecting between the different views. The modeler should be able to hide the UI
Realizations and domain objects, the UI Realizations and Media Components, and the Sensors with
all their relationships. Hiding can mean either to set them completely invisible or to set them into
background by displaying them in light gray color or with an increased alpha value.
6.5 MML – Interaction Model 123
<<Scene>>
Game
engineSound : EngineSound
car quit
{exitTo_Menu_show Menu()}
carAnim : CarAnim ation
help
checkpoint [1..*] track obstacle [0..*] {exitTo_Help_show GameHelp()}
<<CollisionSensor>> <<Animation2D>>
obstacleSensor trackAnim : TrackAnimation
<<test>>
checkpoint : CheckpointGraphic [1..*]
obstacle : ObstacleAnim ation [*]
<<test>>
Figure 6.17: MML Presentation Diagram for the Scene Game enhanced with Sensors.
6.5.1 Rationale
Main Concept The different MML models defined so far consist of various elements which can
influence the application’s behavior within a Scene. Some of them, like user events, trigger behavior
while others, like domain class operations, encapsulate some behavior to be executed. The coordina-
tion of triggers and triggered behavior is managed by the Scenes. In detail, the following triggers are
available within a Scene:
• Events from contained AIOs (possibly realized by Media Components) defined in the Scene’s
124 6. MML – A Modeling Language for Interactive Multimedia Applications
Relationship
(from uml)
+observes +observes
1..n 1
+observes
1..n +opponentPart
0..n
InnerProperty
0..1
+observes
Level of Abstraction According to the general goals of MML (p. 34) it is intended to specify
the Interaction Model on a level of abstraction which enables to generate code from the models.
4
The datatype OCLAny is used to refer to any kind of model element.
6.5 MML – Interaction Model 125
As stated in section 6.4, a Scene is mapped to a class and its contained elements are mapped to
class properties. As the lists above show, all elements (AIOs, domain objects, Media Instances, and
Sensors) are already defined in the foregoing models and are thus available as properties in the Scene.
The Interaction Model thus has to specify only the behavioral relationships between them. The idea is
that the behavior within a Scene does usually not require much complex algorithms – those are usually
encapsulated in the domain class operations. Thus, it is mostly possible to model a Scene’s behavior
with acceptable effort. Consequently, basically the complete code for a Scene (i.e. including the the
operation bodies) can be generated from the models. In turn, it is necessary to provide modeling
concepts on a sufficiently low level of abstraction so that the modeler is able to specify all details of
the Scene’s behavior if desired.
Reuse of Modeling Concepts Given the basic concept for Interaction Models above, this paragraph
now briefly discusses possible existing modeling concepts and notations which can be used for MML
Interaction Diagrams.
The basic behavior of Scenes is already defined by the temporal relationships defined in the Task
Model (sec. 6.1). For less dynamic user interfaces the information in the Task Model is sufficient
to directly generate code – as realized in many existing approaches in user interface modeling area
(see sec. 4.1). For example, the Menu Scene in the racing game example requires only AIOs to
input the player’s name and select a car and a track. The Task Model specifies that these tasks can be
performed in any order. The Presentation Model specifies how the AIOs are related to domain objects.
If the relationships between Tasks and corresponding AIOs is available in the model (defined e.g. by
isExecutedIn relationships like in UsiXML, see sec. 4.1.2) it is possible to generate the complete code
for the Scene analogous to existing user interface modeling approaches. In this case, an additional
Interaction Model is not mandatory.
However, for complex, dynamic Scenes, like the Scene Game in the racing game example, it
might be desired to specify the Interaction Model on a lower level of abstraction. For example, it
can be an important decision in the Scene Game whether user input is handled asynchronous, i.e. by
executing an event listener for each occurring event, or synchronized by polling for input in a specified
order. The latter mechanism is commonly used for highly dynamic and time-dependent user interfaces
126 6. MML – A Modeling Language for Interactive Multimedia Applications
[Besley et al.03, Pol08, Lord07]. In general, Task Models focus on the viewpoint of user tasks – not on
the system to be implemented [Paternò01]. Thus, MML complements the Task Models with another
diagram type supporting a more system-related point of view and modeling detailed behavior. For this
purpose MML reuses UML Activity Diagrams.
UML Activity Diagrams are part of the UML standard and provide the possibility to model a
system’s behavior very close to implementation if desired. Moreover, extended Activity Diagrams
are already used in other UML-oriented user interface modeling approaches like UMLi [da Silva
and Paton00] and CUP [Van den Bergh06] (see sec. 4.1.3) as UML-based variant of Task Models.
Moreover, the semantics of UML 2 Activity Diagrams has already been formally defined [Störrle04].
A general introduction and discussion of UML2 Activities can be found in the article series by Bock
[Bock03a, Bock03b, Bock03c, Bock04a, Bock04b].
As discussed in [Van den Bergh06] and [Nóbrega et al.05] Task Models can be mapped to (ex-
tended) Activity Diagrams. Thereby, each task is represented by an UML Action while the temporal
relationships are mapped to corresponding control flow. This can be used for MML as well to auto-
matically derive an Activity Diagram (i.e. MML Interaction Model) from the Task Models – either as
starting point to add more implementation-specific details or for direct transformation into code.
Activities An Activity specifies the behavior of an operation of the Scene. These operations are
mainly the Scene’s Entry-Operations. But it is also possible to define additional (helper) operations
for a Scene to encapsulate some behavior (e.g. behavior which should be reused in multiple Entry-
Operations). An Activity is always associated with a Scene (the operation owner) and can access all
properties of the Scene.
The Activities are denoted like in UML. Their names result from a concatenation of the name of
the Scene and (separated by ’_’) the name of the the represented operation. Figure 6.19 shows as
example the Activity for the operation start of the Scene Game.
Objects All properties of a Scene defined in the Presentation Model can be represented as Object
Nodes in the Activity. This includes domain objects, AIOs and sensors. In addition, the operation’s
parameters are represented by Activity Parameters, like in UML. All Object Nodes, including Activity
Parameters, can be used as targets of Actions and as parameter values for Actions.
If an Object Node’s type has a specific icon notation then the icon is used to denote the Object
Node itself as well. For example, an Object Node from type MML Input Component is denoted by
the icon for MML Input Components. The Object Node’s name is denoted below the icon. Optionally
it is possible to place the type of the node behind its name, separated by ’:’. If the Object Node’s type
has no specific icon notation (e.g. domain classes) it is denoted like as a rectangle like conventional
Object Nodes in UML. Activity Parameters are denoted like in UML as well.
In the example in figure 6.19 the Object Node representing the Action Component start is denoted
like an MML Action Component. There are two Activity Parameters :Player and :Track which corre-
spond to the operation parameters defined in fig. 6.9. In addition, the is an Object Node car from type
Car.
6.5 MML – Interaction Model 127
Figure 6.19: MML Interaction Diagram for Entry Operation start of Scene Game.
Actions The primary kind of Action to be used in MML Interaction Diagrams is the CallOperation-
Action from UML. It represents an operation call on a target object. The target object can be specified
by an Object Flow to an Input Pin target of the Action. If no target object is specified then the tar-
get object is by definition the Scene itself.5 If the called operation has parameters then they must be
passed to the CallOperationAction via Input Pins marked as with the parameter name and optionally
with the parameter type (separated by ’:’). As discussed in sec. 6.5.1 the available operations can
belong to a domain object, a Media Instance, an AIO, or a sensor.
Besides CallOperationActions it is possible to use other kinds of UML Actions like Object Actions
to e.g. create new objects, Structural Feature Actions to e.g. read a property value, or Variable Actions
to e.g. store a value in a local variable, etc. (see chapter 11 in the UML specification [Obj07c]).
The Actions and Pins are denoted like in UML: CallOperationActions show the name of the oper-
ation they represent. The name of the class may optionally appear below the name of the operation, in
parentheses postfixed by a double colon. Other kinds of Actions are marked with a keyword indicating
their type. If an CallOperationAction refers to another operation (of the Scene) which is defined by
an Activity itself then this is marked (like in UML) by a rake symbol within the Action.
The example in figure 6.19 shows the different possibilities: The first four Actions are just used to
initialize the Scene’s class properties player, car, and track. The values for player and track are passed
as the Entry-Operations parameters. The value for car is fetched from the player object by calling its
operation getCar().
The next step in the example is a CallOperationAction initUI which encapsulates the initialization
of the user interface and is not further specified in the example. No target object is specified for initUI
which indicates that the operation is owned by the Scene itself.
5
in UML the owner of an Activity (here: the Scene) would be retrieved by ReadSelfAction.
128 6. MML – A Modeling Language for Interactive Multimedia Applications
Action
(from uml)
AcceptEventAction
In the next step, the operation enable of the AIO start is called. This operation has been defined
in the AIOs standard interface. There are two more CallOperationActions: start is an operation of the
domain object car and main is an operation of the Scene itself which encapsulates the Scene’s main
behavior. The rake symbol indicates that main is defined in another Activity (see figure 6.21).
Events The events from AIOs and Sensors can be modeled in terms of UML AcceptEventActions.
MML specifies specialized subclasses for the different types of events triggered by AIOs and Sen-
sors: An AcceptUIEventAction is associated with an AIO and indicates that the AIO has triggered
an event. In case of an Input Component or Edit Component it means that the user has input some
data. In case of an Action Component it means that the user has triggered the Action Component. An
AcceptSensorEventAction specifies that a sensor reports the occurrence of the observed event.
All types of AcceptEventAction in MML are denoted like in UML as a concave pentagon. They
are anonymous and contain the name of the associated AIO or sensor instead of a name of its own.
In addition, the type of AIO or Sensor is indicated by the corresponding icon or keyword defined in
section 6.4.
Figure 6.19 shows as example an AcceptUIEventAction triggered by the Action Component start.
It calls the operation start() of the domain object car. This adheres to the Presentation Model in
figure 6.14 which already specifies that the Action Component start represents the domain object
car. However, the Interaction Model can refine the specification from the Presentation Model. For
instance, figure 6.14 shows that the operation main() is called after the operation start().
Like in UML, the AcceptEventActions can be used in combination with InterruptibleActivityRe-
gions. When an InterruptibleActivityRegion is left via an edge defined as interruptible edge then all
remaining tokens inside the InterruptibleActivityRegion are terminated. This mechanism can be used
to model that an event interrupts the control flow. For example, figure 6.21 shows (on the bottom left
side) an AcceptUIEventAction associated with the Action Component help. If help triggers an event,
the Scene’s main control flow is terminated and the Exit Operation exitTo_Help_showGameHelp is
executed.
Figure 6.20 shows the metamodel for the MML-specific actions.
Further Elements Besides the elements described above, the Interaction Model supports the model
elements from conventional UML Activity Diagrams to model behavior, like Control Flow, Control
Node, Object Flow, etc.
6.5 MML – Interaction Model 129
Figure 6.21 shows a more complex example specifying the operation main from the Scene Game.
It shows the core control flow for the racing game. In this model the input from AIOs and sensors is
polled by synchronized operation calls instead of using event listeners which is a common mechanism
in highly interactive and dynamic Scenes6 . Conditional activity nodes are used to specify decisions.
The final actions in the example calls an Exit Operation of the Scene.
For such complex Scenes the Interaction Model provides additional support for the developers as
it clearly reflects the intended main program flow. This provides for instance the software developers
a good orientation for the final implementation of the domain class operations.
Figure 6.22 shows a simplified metamodel extract from UML for the basic Activity Diagram el-
ements. The abstract metaclass Action is refined by the MML specific actions previously shown in
figure 6.20. In addition, the UML subclasses of Action mentioned above (like AddStructuralFeature-
Action, etc.) are reused from the UML specification (see [Obj07d], chapter 11). In MML each Activity
is owned by an operation of a Scene (figure 6.23).
value
getValue accelerate
accelerate (AIO::) (Car::)
target target
update move
car (AIO::) (Car::)
target target
test <<CollisionSensor>>
hasSensed
obstacleSensor
(ObstacleSensor::)
target test
hasSensed <<CollisionSensor>>
(CheckpointSensor::) checkpointSensor
target
body
getTrigger body
(ObstacleSensor::) getTrigger
(CheckpointSensor::)
target
target
getDamage
getNumber
(Obstacle::)
(Checkpoint::)
value nr
damage addCheckpoint
(Car::) (Car::)
target target
car : Car
car : Car
test
test isInFinish
target
isBroken (Car::)
(Car::)
target
body
body exitTo_Score_show
exitTo_Score_show (Game::)
(Game::)
help
exitTo_Help_show
GameHelp
(Game::)
Figure 6.21: MML Interaction Diagram for operation main of Scene Game.
6.5 MML – Interaction Model 131
+decisionInput
InitialNode
ControlNode
TypedElement ObjectNode
Action ForkNode
FinalNode MergeNode
Pin
isControl : Boolean
ActivityFinalNode FlowFinalNode
Figure 6.22: Simplified extract from the UML metamodel for Activities.
+specification
0..1
Operation +operation
(from uml) 1
operation is
owned by scene
Figure 6.24: MML Interaction Diagram for operation show of Scene Intro.
Temporal Dimension The vertical axis in figure 6.25 shows the temporal dimension in the process.
Modeling languages like MML support the design phase in the development process, i.e. MML
builds a bridge between the analysis phase and implementation phase. Thus, MML models should
base on the results of analysis. Those are e.g. textual specifications like a detailed listing of expected
functionalities, visual examples like sketches, mock-ups, and storyboards , but also analysis models
like domain models or flowcharts (see [Bailey and Konstan03, Osswald03, Mallon95]). It is assumed
here that the analysis phase is not different from that in projects without MML. A small example for
a possible concrete overall development process is also shown later in figure 8.3.
The requirement analysis builds the starting point for the MML modeling process shown in the
diagram. The Task Models are located on topmost as they can be classified as on the borderline
between requirements analysis and design phase. While the other models describe the system to be
6.6 Model Interrelations and Modeling Process 133
MML Model
Task Model
Structural Model
representedClass scene
Abstract
Media
Interaction
Components
Objects
media realizedAIO
operation
Presentation Model
uIComponent, sensor
Interaction
Model
time
implemented, the Task Model is still on a higher level of abstraction. It can be used in MML to derive
other MML models from it but (if MML Interaction models are fully specified) it is not mandatory for
the code generation.
Role Dimension One of the main goals of MML is the integration of multimedia design, software
design, and user interface design (p. 34). As discussed in section 3.1.1 the models specifies an in-
terface for the respective application part and form a kind of contract between the developers. The
horizontal axis in figure 6.25 shows how the MML models can be assigned to the corresponding de-
veloper roles to indicate which expert knowledge is considered for a specific kind of MML model. Of
course, in practice one role can be assumed by multiple developers or, in small projects, one developer
can assume multiple roles.
Some models require knowledge of multiple developer roles. This means that the developer
groups have to define the relationships between different expert areas in cooperation. In addition
to the three developer roles above, it can be useful to establish the role of a “modeling expert” in
the modeling process. This can be a software designer with good knowledge in MML. The model-
ing expert supports the other developers in modeling and takes care that the models are correct and
consistent.
Model Interrelations The center of figure 6.25 shows the MML models introduced in the foregoing
sections. Some of them are split up into several parts to arrange them according to the two axes. The
arrows show how the models build up on each other. If a model builds up on another one, e.g. by
referencing elements, this often means in turn that the existing model is refined during this step. For
example, the modeler might detect that some elements in the existing model are still missing or that
the structure must be refined.
Task and Structural Model The modeling starts with the Task Model (sec. 6.1) and the Structural
Model (sec. 6.2). They can be specified independently from each other. The Structural Model can
be divided into domain classes and the Media Components. The domain classes are specified by the
software designer. They can be derived from the requirement specification in the same way as in any
conventional object-oriented software development process.
The media designer specifies the Media Components identified during requirement analysis. The
Media Representation relationships between domain classes and Media Components have to be spec-
ified in cooperation between software designer and media designer. They also specify together the
inner structure for Media Components. This is necessary for Media Components where inner parts
should be modified or accessed by domain classes or should trigger events. During this steps the
software designer adds domain classes to the Structural Model or refines them, if necessary.
Scene and Presentation Model The Scene Model (sec. 6.3) is specified by the user interface de-
signer. The Scenes and the transitions between them can be derived from the Task Model as explained
in section 6.3. Each Scene is associated with a Presentation Unit specified in an Presentation Model.
The Presentation Model (sec. 6.4) can be split into several parts. The Abstract Interaction Objects
are, similar like the Scene Model, specified by the user interface designer and can be derived from
the Task Model as well. They are associated with domain objects which refer to domain classes from
the Structural Model. If some domain classes are missing or must be refined then the user interface
designer has to coordinate this with the software designer at this point.
6.6 Model Interrelations and Modeling Process 135
In the next step the Presentation Model is complemented with Media Components and Sensors. At
this point the user interface designer and the media designer have to cooperate. They specify together
Media Representation relationships between the Abstract Interaction Objects and Media Instances.
The Media Instances refer to Media Components from the Structural Model. If Media Components
are missing they must be added to the Structural Model. In case that added Media Components are
related with application logic then it has to be coordinated with the software designer. If inner parts of
a Media Component, which has not been specified explicitly yet, should trigger user interface events
then these inner parts must be specified in the Structural Model. In addition, the user interface designer
and the media designer can add Sensors to Media Components.
Interaction Model Finally, the Interaction Model (sec. 6.5) is specified in cooperation between
the software designer and the user interface designer. It specifies the how the user interface events
and Sensor events trigger operation calls on domain objects. Basically, the user interface designer is
responsible for the interaction. The interaction can be derived from the Task Model as well – at least
to some degree, depending on the Scene’s complexity. The software designer’s knowledge is mainly
required for specifying the behavior of complex, dynamic Scenes like the Scene Game in figure 6.21.
The Interaction Model refers to Abstract Interaction Objects, Sensors and domain objects from the
Presentation Diagram. If Abstract Interaction Objects or Sensors are missing they have to be added to
the diagram. Domain objects usually need not to be added to the Presentation Model at this point as
often they can be accessed via properties or operations of available domain objects or as parameter of
the Scene’s Entry Operation. As the Interaction Model refers to operations of domain objects it thus
refers also to the Structural Model where they are defined. If class operations are missing or should
be refined then the Structural Model must be changed accordingly.
Alternatives It is not mandatory to follow the modeling process always as described here. Basi-
cally it is possible to start with any kind of MML model. An iterative process is possible as well. Of
course, model elements from other models must be defined at least at the moment when they should
be referenced. For example, it is possible to start the process with the Scene Models and the Presen-
tation Models. Specifying the UI Representations then requires domain objects which in turn requires
domain classes. Of course it is possible that the user interface designer initially creates them. The soft-
ware designer then still can create the Structural Model on that base. Alternatively, in a more iterative
process it is also possible that the UI Representations are added later to the Presentation Diagram.
Indeed, it is also possible that all three developer groups iteratively specify all models in coopera-
tion together.
Domain
Classes
represent represent
Interaction
Abstract
Media
Interaction
Components partially
realize
Objects
Figure 6.27 shows a screenshot of the tree editor generated from the MML metamodel. The with
using the racing game application from this work as example MML model. The editor automatically
ensures that created models comply to the abstract syntax specified in the metamodel, like the con-
tainment hierarchy, attributes types, relationships, multiplicities, etc. For example in figure 6.27 a new
model element is added as child to the 2D animation CarAnimation. The context menu allows only to
select metaclasses which are valid children of 2D animation.
6.7 Modeling Tool Support 137
The EMF-based editor also automatically provides basic editor features like loading and saving
models as files. The file format is XMI, the XML-based exchange format for models defined by the
OMG (see sec. 3.4.2).
EMF-based models and metamodels have a large advantage: They are supported as input in vari-
ous other Eclipse-based MDE tools. For example, the MDT OCL plugin for Eclipse has been applied
in [Shaykhit07] to automatically validate whether an MML model complies to the OCL constraints
from the MML metamodel. Another example used in this thesis (chapters 7 and 8.1) is the Eclipse
plugin for ATL model transformations.
Visual Modeling Editor The next logical step is to build a visual editor on top of the EMF-based
MML implementation. The common way for this was at that time the Eclipse Graphical Editing
Framework (GEF) which supports creating visual editors. However, GEF does neither provide any
specific support for modeling tool functionality nor support for integration with EMF. Today the
Eclipse Graphical Modeling Framework (GMF) is available for this purpose but it was just under
development at this time in 2004. An available framework which provides semi-automatic support for
creating GEF modeling editors was openArchitectureWare (oAW [oAW, Völter and Kolb05]). Two
project theses [Eicher05, Mbakop06] supervised by the author of this thesis conducted very first pro-
totypes using GEF and oAW. However, it turned out that implementing a usable visual modeling tool
for all types of MML diagrams would require too much time and effort.
An alternative solution would be using Meta-CASE tools like MetaEdit or GME2000. However,
these tools provide their own proprietary mechanisms and were not compliant to Eclipse-based tools
from the research community while they still need considerably learning effort.
To gain results quickly, it was decided to extend an existing UML tool, Magic Draw, instead.
Magic Draw has established in the last years as one of the most successful professional UML tools and
provides good and easy to use support for UML extensions (UML Profiles). In addition, it provides
138 6. MML – A Modeling Language for Interactive Multimedia Applications
academic classroom licenses for free which includes that students may install a version at home.
The prerequisite for using Magic Draw is that MML has to be defined as UML Profile (see
sec. 3.6). The implementation as Magic Draw Profile could be finished very quickly in a project
thesis [Shaykhit06] supervised by the author of this thesis. Indeed, defining MML as a UML Profile
is just a workaround and not the original intension of MML. Nevertheless, the result works very well.
The main drawback of this solution is that is that Magic Draw did not support custom constraints
at that time. This means that it does not prevent the modeler to create models which do not comply
to the MML metamodel. This could be improved to some extent as Magic Draw allowed to create
custom diagram types with customized tool bars. So it is possible to provide the modeler for each
MML diagram type a toolbar containing only customized model elements (using UML stereotypes
and a custom icon notation) valid for the respective diagram type. The advantage of Magic Draw
beside the very quick implementation of the Profiles is its very good basic usability. Professional
UML tools like Magic Draw provide high robustness, very quick creation of models, various support
for diagram layout, easy switch between different notations, functions for managing large models, etc.
This is very important for the modelers in practice.
Figure 6.28 and 6.29 show screenshots from Magic Draw with the custom MML diagrams. They
show as example an MML Structure Diagram (figure 6.28) and a MML Presentation Diagram. The
customized toolbars contain only the MML-specific elements for the diagrams, e.g. Media Compo-
nents and Media Parts in the Structural Diagram or Abstract Interation Objects in the Presentation
Diagram. The MML-specific visual notation is supported to a large extent. The plugins work for
all Magic Draw versions since version 11.6 at least up to the current version 15. All MML models
6.7 Modeling Tool Support 139
depicted in this thesis have been created with the Magic Draw MML plugins.
Transformation from Magic Draw to EMF The final step in creating tool support was bridging
the gap between Magic Draw and EMF, so that models created with Magic Draw can be further
processed by the various Eclipse-based modeling tools. Magic Draw and EMF both save models in
the XMI format. However, there is a large difference between them: in Magic Draw MML is defined
as a UML Profile. Thus, the resulting models are UML models with some (MML) extensions (UML
Stereotypes). In contrast, EMF handles MML as a language of its own without any relationship to
UML.
To solve this issue, an XSLT transformation was created to automatically transform the models
MML Model
Magic Draw as extended XSLT Processor EMF-compliant
UML Model MML Model
Developer
created with Magic Draw into EMF-compliant models. It was implemented in [Shaykhit06] and has
been extended and maintained by the author of this thesis. Figure 6.30 illustrates the resulting tool
chain. After this transformation, the models can be opened with the EMF-based tree editor described
above and can be e.g. processed with ATL model transformations for code generation purposes.
Lessons Learned As concluding remarks for future work it can be said that the solution chosen here
is a workaround. New frameworks like the Graphical Modeling Framework (GMF [GMF]), integrated
in modeling environments like Topcased [Top], provide a good possibility to create real metamodel-
compliant and custom visual modeling editors today. However, Magic Draw still remains as a very
fast solution. In addition, the latest versions of Magic Draw provide even a “DSL-Engine” supporting
custom metamodels and modeling constraints. But this has not been tested in the context of this thesis
yet.
Using XSLT for the transformation turned out to be not an optimal solution. The XSLT transfor-
mation is complex and difficult to maintain. The main reason is that models contain many references
between model elements. XSLT does not provide sufficient support for references, e.g. it is not di-
rectly possible to refer in the transformation to the target element created from a given source element.
Thus, either such an mechanism must be implemented manually or the transformation has to be coded
in an imperative style which makes it very complex. A better solution would be using a model trans-
formation language. This is possible, as Magic Draw supports also exporting models into EMF UML2
[EMFa] format which is now for example supported by the transformation language ATL.
Chapter 7
This section presents the transformation from MML models to code skeletons. As example target
platform Flash has been selected as it is one of the most relevant professional multimedia authoring
tools today (see section 2.3.3). The chapter shows how the MML approach targets the integration of
creative design into the systematic model-driven development process (goal 3 from page 34).
The transformation is performed in two steps. The first step is a model-to-model transformation
from the platform-independent MML model to a model for the Flash platform. This step captures the
conceptual mapping on the abstraction level of models – without the need to consider the concrete
syntax and file formats of the target platform. The second step then transforms the Flash model into
the final code skeletons. The transformations adhere to the concepts of Model Driven Engineering.
They are specified as an explicit transformation written in the Atlas Transformation Language (ATL,
[AMM], see sec. 3.4.2).
The chapter is structured as follows: The first section gives a more detailed introduction into
the target platform Flash by hand of a metamodel: The metamodel has been defined in the context
of MML for the transformation from MML to platform-specific Flash models. The second section
discusses how the resulting Flash applications can be structured. This is necessary as no common sys-
tematic structuring mechanism for Flash application yet exists. The third section describes the trans-
formations and a solution how to generate files in the authoring tool’s proprietary, binary file format.
While the foregoing sections are more technical, the fourth section finally illustrates by screenshots
how easy to work with the generated code skeletons in the authoring tool. It demonstrates the tight
integration of systematic model-driven development and the authoring tool’s advanced support for
creative design.
It consists of two parts – one for Flash Documents and one for ActionScript – which are explained in
the succeeding two sections1 .
Purpose The main purpose of the metamodel in this thesis is to build the base for an intermediate
step in the transformation from MML to the final code skeletons, i.e. a first transformation from
MML to Flash models and a second transformation from Flash models to code. This provides several
benefits: First, it separates the conceptual mapping from MML to Flash from the concrete syntax for
Flash applications and is thus easier to maintain and extend. Second, the Flash metamodel and the
transformation into the concrete Flash syntax can be directly reused by other modeling approaches
which want to use Flash as target platform.
It is not necessary for the MML approach to edit the generated Flash models as they can be
transformed directly into the final code. Instead, the Flash authoring tool should be used to finalize
the application. Thus, no concrete visual syntax and no visual modeling tool has been defined for the
Flash models yet. However, an EMF-based tree editor analogous to that for MML (see figure 6.27)
exists for the Flash models. It can be used to check, modify, or even create Flash models if desired.
Of course, it is also possible in the future to add a concrete syntax to the Flash metamodel and create
and edit Flash models directly in a visual modeling tool.
Deriving the Metamodel from the Flash JavaScript API It is not always trivial to figure out all
possible elements in Flash Documents and the relationships between them as they are partially hidden
by the authoring tool. Existing literature (see section7.2) and documentation [Adobec]2 provide only
step-by-step instruction for typical tasks in Flash but do not provide a precise systematic overview.
Thus, this thesis proposes the solution to use the Flash JavaScript API to derive the metamodel in
a systematic way. The following paragraph provides a brief excursus into the Flash JavaScript API
and the associated scripting language JSFL. A basic understanding of them is also required later in
section 7.3).
Excursus: JSFL and the Flash JavaScript API Since Flash MX 2004 it is possible to write custom
extensions for the authoring tool. They have to be written in a scripting language JSFL (Java Script
for Flash, [Yard and Peters04, Ado05c]). This is a version of JavaScript to be used together with the
Flash JavaScript API. A JSFL file is a simple text file with the file extension jsfl which is interpreted
and executed in the authoring tool. It can be created using the authoring tool or any text editor. It
1
The term ‘Flash’ refers to the overall applications while ‘Flash Document’ refers to the Flash Documents only, i.e. FLA
files without ActionScript classes).
2
[Adobec] refers to a complete online version of the Flash documentation. Each chapter is alternatively available for
download as PDF manual. In the following we refer to the PDF manuals but the reader might also use [Adobec] instead.
7.1 A Metamodel for Flash and ActionScript 143
is possbile to use it in combination with custom dialogue boxes defined in XMLUI as subset of the
XML-based user interface description language XUL ([XUL], see also section 4.1.1).
The intended purpose of JSFL scripts is to extend the Flash authoring tool with custom function-
ality. Therefore, JSFL files and XMLUI files (and other resources) can be packed in a Flash Extension
file with the file extension mxi. The mxi files can be distributed and installed as extension for the
Flash authoring tool. Alternatively, it is possible to execute a JSFL file directly in the authoring tool.
As third alternative, JSFL files can also be started directly from the command line which causes the
Flash authoring tool to start and execute the file.
While JSFL itself is a simple JavaScript version without any specific features, the associated Flash
JavaScript API provides full control over the Flash authoring tool. It provides access in terms of a
Document Object Model (DOM) similar to that implemented by web browsers for HTML. The Flash
DOM provides full access on the content of a Flash Document. It enables to browse, manipulate, and
create new elements within the document. Moreover, another part of the API (sometimes called Flash
file API) allows common file management functionality. Consequently, it is possible for instance to
load a Flash Document into the authoring tool, manipulate it, and save it, or even to create an entirely
new Flash Document via JSFL.
Listing 7.1 shows a simple example JSFL script. The variable fl in line 1 is a predefined global
variable which refers to the Flash Object representing the Flash authoring tool. Here an operation of
the Flash Object is used which retrieves the current active Flash Document in the tool. Line 2 draws
a simple rectangle shape within the document. Finally, line 3 saves the document with the filename
“MyDocument.fla”.
var document = fl.getDocumentDOM();
document.addNewRectangle({left:0,top:0,right:100,bottom:100},0);
fl.saveDocument(document, "MyDocument.fla");
Rules for Metamodel Derivation The metamodel for Flash Documents is derived from the Flash
JavaScript API as follows:
• An API class representing an entity in a Flash Document (i.e. a part of the document itself
instead of a functionality of the authoring tool) is mapped to a metaclass. Other API classes
(like the Tools object [Ado05c]) are omitted in the metamodel.
• A property in the API representing a structural property (like the name) or a basic visual prop-
erty (like x- and y-coordinates on the screen) is mapped to a property in the corresponding
metaclass. Properties representing the internal state of the authoring tool or visual details are
omitted.
• A properties or operation representing an reference to other API classes is mapped to an asso-
ciation in the metamodel.
• A generalization in the API is mapped to a generalization relationship in the metamodel.
• The API often uses class properties to specify the type of a class more in detail (like the prop-
erty symbolType for the class Symbol). For each possible property value defined in the API a
subclass is created in the metamodel.
In this way, also the semantics for the Flash metamodel is defined indirectly by the operational
semantics of its counterpart in the Flash JavaScript API.
144 7. Integrating Creative Design: From MML to Flash
Compo-
nents
Timeline
Stage
Library
Tool-
Property
bar
Window
The Flash JavaScript API defines only Flash Documents. The resulting metamodel part is in-
troduced in the next section ( 7.1.2). Afterwards section 7.1.3 introduces the metamodel part for
ActionScript which is similar to metamodels for other programming languages like Java.
Timeline The Timeline consists of multiple Frames. A Frame represents a point of time in the
Timeline and is associated with content on the Stage. Figure 7.2 shows a larger image of the Timeline.
The Frames are ordered in horizontal direction from left to right on the Timeline. The Playhead
indicates the current Frame displayed on the stage. It is possible to play the Timeline directly in the
7.1 A Metamodel for Flash and ActionScript 145
Playhead
Keyframe
Layer
Tweens
on Stage
Figure 7.2: Timeline and Stage (containing some Tweens) in the Authoring Tool
authoring tool to preview the application: Then the Playhead moves continuously along the Frames.
Otherwise, it is possible to select a Frame by placing the Playhead onto a Frame.
By default, the Timeline is played in a loop when a Flash application is executed. As this is to
always useful it is possible to control the behavior of the Timeline by ActionScript commands. The
script commands can be used for example to stop playing and set the Playhead to a specific Frame. In
interactive applications the Timeline is usually used only for animations while the overall application
is controlled by script commands. For instance, when the user clicks a button the Playhead is set to
another Frame associated with different content.
In vertical direction the Timeline can be separated into multiple Layers. In the example there are
three Layers named as Layer1, Layer2, and Layer3. They represent an additional z-axis for the content
on the stage to define which object is the topmost when several objects overlap each other. Moreover,
there are some specific kinds of Layers, for instance a Guide Layer which is invisible in the final
application and is used to define a path along which an animation moves.
In the example, Frames are defined in all three Layers until frame 20. The Frames marked with
a black filled ball represent Keyframes. Only Keyframes are associated with content defined by the
developer. Other Frame’s content is automatically derived from the foregoing Frames: If a Tweening
is defined then the content is calculated accordingly, otherwise it remains the same as in the foregoing
Keyframe.
Tweenings are used in Flash to visually create 2D animations. A Tweening is an automatic in-
terpolation between two states of a graphical object. The start state and the end state are defined
in Keyframes. Flash then automatically calculates the intermediate states in between these two
Keyframes to create a smooth animation. A Motion Tween can manipulate the position, size, and ro-
tation of a graphical object. A Shape Tween can manipulate the shape and color of a graphical object.
In figure 7.2 the green ball on the Stage moves according to a Motion Tween and the polygon changes
its shape defined by a Shape Tween. A Tween is indicated in the Timeline by an arrow between two
Keyframes (figure 7.2, upper part). It is possible to fine-tune Tweenings by several parameters, for
instance the animation’s acceleration.
The metamodel extract in figure 7.3 shows the basic elements and their relationships: A Timeline
is divided into one or more Layers. Each Layer consists of multiple frames. A Frame can be associated
with graphical content on the Stage (represented by the abstract metaclass Element; see paragraph
“Stage Content” below). If a Frame is associated with content then it is automatically a Keyframe. A
Tween attached to a Frame runs until the next Keyframe. Finally, it is possible to attach ActionScript
code (ASCode) to a Frame. The code is executed each time the application enters the Frame.
146 7. Integrating Creative Design: From MML to Flash
FlashDocument
backgroundColor : String
frameRate : Double
height : Integer
width : Integer
+document 0..1
ASScript
script : String
1..n +timeline Frame number >= 0.
0..1 +actionScript
Timeline The frame number is
unique within a layer
name : String
1 +timeline
Library Flash supports a prototype-based paradigm, i.e. it is possible to create multiple instances
of a media element. When a new media object is created then it automatically serves as prototype for
potential further instances. For this purpose, it is automatically added to the Library – for instance,
when the developer imports a bitmap or a video into the authoring tool. The so-called Items in the
Library can be instantiated in any number by just dragging them onto the Stage.
A specific type of Library Item in Flash is the so-called Symbol. A Symbol is a complex 2D
graphics element. There are three kinds of Symbols: A Button is used to visually create custom
buttons, i.e. user interface elements which can be used to trigger some behavior. A so-called Graphic
is static graphic or a simple kind of animation.
The most important type of Symbol is the MovieClip. MovieClips are the most frequently used
type of user interface element in Flash as it is the most flexible and powerful kind of element. A
MovieClip is an arbitrary complex 2D graphic or animation. It owns a Timeline of its own that is
independent from the application’s main Timeline. The Frame’s in its internal Timeline can contain
all content like the main Timeline, including other media objects, interactive controls, ActionScript
code, etc. As it can contain other MovieClip instances as well, it is possible to nest MovieClips up
to any depth. Nesting MovieClips is a very common mechanism to achieve complex animations. For
instance, creating an animated character is usually performed by nested MovieClips for its different
body parts, e.g. a nested MovieClip moves the character’s arms when the character moves and in turn
another nested MovieClip moves the character’s hands when its arms moves.
Since ActionScript supports object-oriented concepts it is now possible to attach a custom Ac-
tionScript class to a MovieClip. Then each MovieClip instance is automatically associated with an
instance of this ActionScript class. Section 7.1.3 will provide more details on ActionScript.
Besides Symbols, Flash supports Bitmaps, Sound, and Video. Text is not supported by the Library;
it is created directly on the Stage or imported from from external text files. 3D graphics is currently
not supported by Flash yet.
Figure 7.4 shows the metamodel for Library Items. Each Flash Document contains a Library
7.1 A Metamodel for Flash and ActionScript 147
FlashDocument
1 +document
+library 1
Library
+library 1
0..n +item
Item
+actionScript Class
+item name : String
0..1
0..n sourceFilePath : URL
containing Library Items. Beside the types of Items introduced above there is a FontItem which
represents a specific text font and a FolderItem which is used to structure the Library into folders
and subfolders. Figure 7.5 shows the concrete subclasses for media formats supported by Flash (see
[Ado05c] for details). Some kinds of Items (usually MovieClips) can be associated with ActionScript
classes. A SymbolItem owns a Timeline of its own.
Stage Content The content on the Stage can be either created directly with tools from the Toolbar
(shapes and text) or by instantiating an Item from the Library. Beside Library Items it is also possible
to instantiate a predefined Component from the Component Palette (upper left in fig. 7.1). Figure 7.6
shows the corresponding metamodel.
As visible in the metamodel, it is also possible in Flash to assign ActionScript code to a single
SymbolInstance. However, this mechanism is deprecated and should no longer be used.
Files and Folders A Flash Application often consists of multiple Flash Documents. Moreover, it
can include external media files, like audio or video files. Often it is useful to structure them into
folders in the file system.
Figure 7.7 shows the metamodel. The metaclass FlashApplication is the metamodel’s root ele-
ment. It consists of different files (abstracted by the metaclass MediaArtifact) including FlashDocu-
ment (which have been further specified above), MediaFile, and Folder.
7.1.3 ActionScript
ActionScript is the built-in scripting language in Flash. As briefly introduced in section 2.3.3 Action-
Script is close to the ECMA standard [Ecm99] and supports object-oriented constructs since version
2. The following section introduces ActionScript 2 and presents a metamodel.
Placement in Flash Documents The starting point for Flash applications is always a Flash Docu-
ment (explained in the foregoing section). There is no kind of main() operation in ActionScript. Even
148 7. Integrating Creative Design: From MML to Flash
Item
+item 0..n
BitmapLossy Button
- quality : Integer = -1
SoundADPCM SoundSpeech
bits : ADPCMBits - sampleRate : SoundSampleRate
sampleRate : SoundSampleRate
SoundMP3
SoundRaw
bitRate : MP3BitRate
- convertStereoToMono : Boolean
convertStereoToMono : Boolea...
- sampleRate : SoundSampleRate
quality : MP3Quality
if a Flash application consists only of ActionScript code it is still necessary to have a Flash Document
around which invokes the ActionScript code.
According to the metamodel in section 7.1.2 there are three kinds where to place ActionScript
code within a Flash Document:
1. Frames: It is possible to add code to a Frame in the Timeline (fig. 7.3). The code is executed
each time the Playhead enters the Frame.
2. Symbols: It is possible to add code to a Symbol – usually a MovieClip – in the Library (fig. 7.4).
It must be an ActionScript class which is then associated with the MovieClip. Each instance of
the MovieClip then is represented by an instance of the corresponding ActionScript class. An
ActionScript class must be a external text file, similar like a class file in Java.
3. Instances: It is possible to add code directly to a Symbol Instance (fig. 7.6). In this case the
possible code is restricted to event handling code. It is executed each time the corresponding
event occurs at this instance.
Consequently, there are two alternatives how code is created:
1. Embedded Code: Code added to a Frame or to an Instance is directly embedded in the Flash
Document. The developer types the code into the Actions window in the authoring tool. The
Actions window provides the basic features of simple source code editors, like a simple way of
syntax checking.
2. External Code: ActionScript classes are external class files analogous to class files in other
programming language like Java. They can be created in the Actions window as well but also
with any other external text editor. There are also plugins for ActionScript support for program-
ming environments like Eclipse [Powerflasher, ASD].
7.1 A Metamodel for Flash and ActionScript 149
Element
+actionScript 0..1
SymbolInstance ComponentInstance Ellipse Line StaticText InputText
ASScript
0..1
+symbol
1
Rectangle DynamicText
roundness : Integer = 0
+instance
0..n
+parameter 1 +component
ComponentParameter
Component
name : String
value : String
FlashApplication
name : String
0..1 +application
+media 1..n
+media MediaArtifact
0..n name : String
+folder
0..1
Folder MediaFile
extension : String FlashDocument
description : String
Language Basics The language’s syntax complies to the ECMA standard and is thus similar to
JavaScript. Attributes and variables are defined using the keyword var:
var myText:String = "Hello World";
Functions are defined using the keyword function:
function increment(i:Number):Number {...}
ActionScript 2 offers the following primitive types: String, Boolean, Number, Undefined, and
Void. Number is the only numeric type in ActionScript and contains double-precision floating point
numbers as well as 64-bit integers. Undefined indicates that a variable has no value or an object
instance does not exist yet. Void is used to specify that a function has no return value.
Listing 7.2 shows an example for a class definition. ActionScript 2 also supports interfaces and
packages.
import game.*; //imports all classes from package ’game’
Built-in Classes and Components ActionScript includes various built-in classes which allow to
control the application. Some of them directly correspond to visual elements in the Flash Document
and provide an interface to control it via ActionScript. An important example is the MovieClip class.
To give the reader an idea of its properties and operations they are listed in appendix B.
Other classes provide additional functionality which can not be achieved in the authoring tool
without ActionScript. An example is the XML class which provides support to to load, parse, send,
build, and manipulate XML documents. All ActionScript classes are subclasses of the class Object
which provides basic properties and operations inherited by all other classes. A complete documenta-
tion on ActionScript classes can be found in [Ado05a].
The Components from the Component Window (see sec. 7.1.2) are represented by ActionScript
classes as well. Basically, each component in Flash consists of a visual representation, a set of pa-
rameters, and an ActionScript class. It is possible to create custom components and add them to the
authoring tool. The set of standard components delivered with the authoring tool includes components
for the user interface (widgets), media (like a video player), or data handling (e.g. for connection to
web services). The component reference for Flash 8 is available in [Ado05b].
Figure 7.8 shows the metamodel part for ActionScript. FlashApplication is the root element like
in fig. 7.7. According to the descriptions above, ActionScript elements can be classified in Action-
ScriptArtifacts defined by the developer – like classes, interfaces, and packages – and BuiltInTypes –
like BuiltInClass, Component, and PrimitiveType. All of them, except PrimitiveType, are a subclass of
Classifier. Classifier and PrimitiveType both are a Type.
The lower part of figure 7.8 further specifies Classifier. This part is similar to metamodels for other
object-oriented languages like Java [Obj04a, INR05]. ActionScript statements in operation bodies are
not further modeled by the metamodel. They are just handled as strings so that source code can be
specified directly. Otherwise the models would become too complicated and the additional level of
abstraction provides no additional benefit for our purposes. Likewise, embedded ActionScript code
7.1 A Metamodel for Flash and ActionScript 151
<<enumeration>> <<enumeration>>
FlashApplication PrimitiveTypeKind
VisibilityKind
+application +application public boolean
0..1 1 private string
number
+package +actionScript null
0..1 0..n 0..n +actionScript 0..n +builtInType void
Package ActionScriptArtifact BuiltInType
name : String + isInLibrary : Boolean = false component name
includes package (e.g.
'mx.controls.Button')
+bodyText
BodyTextLine Line 1 Function
text : String 0..n +functionisConstructor : Boolean = false
{ordered}
+function 1
contains only
declaration of
functions (not their +parameter
0..n
implementation) and Parameter
public attributes
name : String
attached to a Frame in the Timeline or to a MovieClip instance is specified directly as a string (see
class ASScript in the metamodels in fig. 7.3 and 7.6).
The metamodel part presented here, together with the metamodel parts fro Flash Documents from
section 7.1.2, build the overall metamodel for Flash applications.
Accessing Stage Content So far, the metamodel has been presented and where ActionScript can be
placed within a Flash Document. This paragraph now explains how ActionScript code can access the
visual content in a Flash Document.
The authoring tool enables to assign an instance name to each instance on the Stage (fig. 7.6).
These elements can be accessed from ActionScript code by their instance name. Thereby, the available
namespace depends on where the ActionScript code is placed:
• Script code in a Timeline can directly access instances located in Frames on that Timeline by
their instance name.
• A class assigned to a MovieClip can directly access instances on the MovieClip’s Timeline as
class attributes by their instance name.
• It is possible to navigate within the hierarchy of Timelines using the ’.’syntax. For example
if the main Timeline contains a MovieClip instance car1 which in turn contains an instance
frontwheel_left it is possible to access the frontwheel from the Timeline by car1.frontwheel_left.
The property _parent refers to the parent Timeline of a MovieClip. The global variable _root
refers to the main Timeline of a Flash Document.
152 7. Integrating Creative Design: From MML to Flash
When assigning a custom ActionScript class to a MovieClip it is useful to specify the custom class
as subclass of the ActionScript class MovieClip. In that way the custom class inherits the properties
and operations of MovieClip (see appendix B). In particular, the custom class then can override the
event handling operations like onPress(). This is an easy way to define custom event handling code
for a MovieClips on the Stage.
It is also possible to create or remove Stage content dynamically by ActionScript code. In Action-
Script 2 the developer must use one the predefined MovieClip operations attachMovie, createEmp-
tyMovieClip, or duplicateMovieClip (see appendix B) which provide the created MovieClip as return
result. (In ActionScript 2 there is no possibility to create a MovieClip in a more object-oriented way
using e.g. the keyword new).
7.2.1 Principles
This section describes the problem and elaborates general principles for a framework for structuring
Flash applications.
Problem When reviewing the existing literature and resources on the web, it turns out that such a
framework currently not exist. When reviewing the existing literature one can observe that it reflects
again the central observation from the end of section 2.1.3 – it can be classified in two ctaegories:
• Visual Design/Authoring: Books and articles focusing on the authoring tool like [Franklin and
Makar03, Macromedia03, Kannengiesser and Kannengiesser06, Wenz et al.07] usually provide
step-by-step instructions how to perform common tasks in the authoring tool. The main Action-
Script code is usually just placed into the first Frame of the main Timeline. Since ActionScript 2
most books promote to use ActionScript classes for the application’s main entities and also give
some general advice on object-orientation like basic design patterns. But this usually affects
only the Domain Classes themselves but still the remaining code (main programm flow, user
interface management, event handling, etc.) still remains as a monolithic block in the Timeline.
Other, purely design-related books like [Dawes01, Capraro et al.04] do not cover ActionScript
at all.
• Programming: In contrast, several books like [Hall and Wan02, Moock04, Moock07] indeed
focus on a well-structured application. They show how to structure the whole application in an
object-oriented way using ActionScript classes. Unfortunately, these approaches do not use the
authoring tool at all. Instead, the whole user interface is defined by ActionScript code – e.g.
drawing MovieClips by ActionScript operations. This is a major drawback as abstaining from
the authoring tool capabilities results in a step backwards concerning the visual creative design.
7.2 A General Structure for Flash Applications 153
Existing frameworks like Flex (page 18) and related frameworks like Cairngorm [Adobea] also
fall into this category.
Consequently, to avoid the drawbacks of both viewpoints found in literature it is necessary to
design a framework which integrates Flash Documents for the visual elements to be designed in the
authoring tool and well-structured object-oriented ActionScript code for the non-visual, functional
application parts. A first step into this direction is given in [deHaan06] which discusses existing
mechanisms and gives useful recommendations which are considered in the structure proposed here.
Principles As concluded above, the basic goal for the framework is to integrate Flash Documents
for the visual elements with well-structured application code. Nevertheless, there are still various dif-
ferent solution how to realize such an application structure in Flash. Basically, simple straightforward
structure can sometimes be useful, e.g. for smaller applications or for lightweight applications like
for mobile devices. Here we aim for a very modular and flexible structure which is suitable to fit for
large and complex projects. It is then still possible to simplify the structure if desired (see sec. 8.1.3).
Thus, the framework here aims to provide a large degree of modularity. This enables scalability
up to large and complex applications and provides large developer groups to work in parallel. The
latter is especially important for Flash applications as Flash provides only poor support for cooper-
ative work on single Flash Documents. As Flash Documents are binary files they also can not be
handled using conventional file version control systems. Thus, it can be significant for large projects
to systematically divide the application into multiple Flash Documents.
The solution proposed here thus applies the following principles:
1. Modular, object-oriented style: As far as possible all ActionScript code is placed in external
ActionScript classes.
2. Separation of different aspects: Aspects like user interface, interaction, and application logic
are separated. Therefore, the framework orients towards the common Model-View-Controller
pattern (MVC, [Krasner and Pope88]) which is also proposed in [deHaan06].
3. Separation of the user interface: Different Scenes (see sec. 6.3) of the application are sepa-
rated into different Flash Documents so that they can be edited independently from each other.
Moreover, this enables that each Scene in the final application can be loaded on demand (in-
stead of being forced to load the whole application at once) which is a common mechanism
in web-based Flash applications. It is possible to load them in background and perform other
operations during the loading time.
4. Separation of Media Components: Complex Media Components are placed into a document of
their own so that it can be edited independently from other documents. Moreover, this enables
to apply a Media Component multiple times within different Scenes.
The following paragraphs present the realization of these principles and the resulting structure.
7.2.2 Scenes
The user interface should be modularized into multiple Scenes realized by independent Flash Docu-
ments (principle 3). ActionScript code for the Scene (e.g. to initialize its user interface and establish
relationships to the application logic) should be placed in an ActionScript class associated with the
Scene’s Flash Document (principle 1). In addition, a mechanism is required to perform the transitions
between Scenes at runtime.
154 7. Integrating Creative Design: From MML to Flash
Listing 7.3: Implementation of the Singleton pattern in an example Scene class MyScene.
Accessing Scenes Basically, two different principles can be considered for their implementation:
Either manage the different Scenes by a central instance (using e.g. the design pattern State [Gamma
et al.95]) or by implementing them as independent objects without a central instance (using e.g. the
design pattern Singleton [Gamma et al.95]). Here, the latter approach is used as it is more modular and
enables to add additional Scenes more easily to the application. Therefore the Scenes are implemented
using the Singleton design pattern so that they can be accessed and activated from any other Scene.
Using Singleton, the Scene class instantiates itself and thus has full control whether to keep or re-
initialize its inner state (see also “Resuming Scenes” on page 111). The transitions are managed
directly by the Scene class itself as well.
Listing 7.3 shows the resulting code for an example Scene class MyScene. The class construc-
tor is declared as private according to the Singleton pattern. The class provides a static operation
which returns the current unique instance of the class. Its name is in the original Singleton pattern is
getInstance(). As for our purposes we have to combine this with a loading mechanism (explained
below) its name is loadInstance(). All concrete Scenes are subclasses of the interface Scene defined
in our framework.
Loading Scenes As mentioned above, it should be possible to load Scenes separately. Be default,
Scenes are loaded on demand, i.e. when a Scene should be invoked the first time. To allow execution of
other operations during the loading time, an event listener (called SceneLoadingListener) is passed
to the Scene which notifies (call of operation sceneLoaded(s: Scene)) when the loading process has
finished. Listing 7.4 shows the resulting implementation of the operation loadInstance().
The loading itself is performed using the built-in ActionScript class MovieClipLoader. As ex-
plained on page 150 listeners can be implemented using the object-based mechanisms of ActionScript
as ActionScript 2 does not support anonymous inner classes.
Listing 7.5 shows how another Scene defines a SceneLoadingListener to load MyScene. In ad-
dition, it calls as example the operation startMyScene of MyScene. The example also shows how a
parameter can be passed (here to the operation startMyScene).
Connecting a Scene with an ActionScript Class In the Flash versions examined here, it is only
possible to associate an ActionScript class to a MovieClip. As Flash Documents are no MovieClips,
it is remains the question how a Flash Document representing a Scene can be associated with the Ac-
7.2 A General Structure for Flash Applications 155
Listing 7.5: Example how to use the SceneLoadingListener to load the Scene MyScene and invoke an
example operation startMyScene.
tionScript class for the Scene. Our proposed structure provides the following solution: A MovieClip
is created which has no visual representation of its own and acts as container for the Scenes. When
a Scene is loaded it is placed into the container MovieClip. This can be achieved using the built-in
ActionScript class MovieClipLoader whose operation loadClip(url:String, target:Object) specifies as
target a MovieClip where an SWF file from the URL is loaded into. The ActionScript class for the
Scene can then be assigned to the container MovieClip.
Listing 7.6 shows the resulting (final) version of the operation loadInstance().
Alternatives Flash offers some alternative mechanisms which should be briefly discussed in context
of Scenes:
• Flash “Scenes”: Earlier versions of Flash already provided a mechanism called “Scenes” to
divide the user interface into multiple independent units. However, it is deprecated today for
several reasons explained in [deHaan06].
• Flash “Screens”: Since Flash 83 it is possible to structure an application into multiple Screens
which are a quite similar concept like the Scene concept here in this thesis. It is also possible to
load the content of a Screen dynamically from a separate document and to associate a Screen
with a custom ActionScript class. Moreover, the Flash authoring provides an additional view
3
in Flash Professional edition only
156 7. Integrating Creative Design: From MML to Flash
for Screen-based applications showing the application’s Screen hierarchy and the transitions
between the Screens.
A drawback of Screen usage is that Screens are not completely transparent, i.e. some of their
properties and behavior can not be (directly) accessed by ActionScript code. For instance, the
transitions between the Screens must be defined by predefined “Behaviors” instead of within
ActionScript classes. Thus, the overall structure using Screens becomes even more complex.
Nevertheless, the Screens concept fits well to the structure proposed here and could be a useful
future extension.
Application Logic The application logic is implemented in conventional way as ActionScript classes
(principle 1). They constitute the ‘model’ in terms of MVC and are placed in a package model (prin-
ciple 2).
In the Racing Game example, the folder model would contain ActionScript classes Car, Track,
Player, etc. (fig. 7.9).
Media According to principle 4, (complex) Media Components are located in separate files in a
central folder media so that it is possible to apply them multiple times within the application. Graph-
ics and animations are implemented as a Flash Document containing the graphic or animation as
MovieClip. In general, audio, video and images are not created in Flash itself but just imported into
Flash Documents. Thus, within our structure, the audio, video or image files are placed into the folder
media as well from where they can be imported into multiple Flash Documents.
7.2 A General Structure for Flash Applications 157
Game
media model
CarAnimation.fla Car.as
refers to CarAnimation
Track.as once for the
TrackAnimation.fla whole application
Player.as
TrackAnimation
refers to
EngineSound.mp3 ...
IntroVideo.flv
...
To apply media from folder media in different Scenes it is possible to either create a reference in
the Scenes’ Libraries or to load them dynamically during runtime into the Scenes. For the purpose
here, the former possibility should be preferred as it enables the developer to visually integrate the ex-
ternal MovieClip into the user interface at authoring time. A reference in the Library can be specified
in the properties dialog of Library Items (invoked in their context-menu). For example, in case of a
MovieClip, it is possible to specify a reference on a MovieClip in an external Flash Document. As
result, the MovieClip adopts the content from the referenced external file. The relationship between
source and target MovieClip is by reference, i.e. changes in the external MovieClip are adopted in the
referencing MovieClip.
The folder media in in figure 7.9 contains for instance a Flash Document CarAnimation.fla which
contains the actual MovieClip CarAnimation. It also contains sound and video files. The files in the
folder media are referenced from elements e.g. in the Scene Game.
User Interface Elements The user interface elements are located in the Scene on the Stage. They
are either instances of Media or from Flash user interface components. In our structure they constitute
the ‘view’ in terms of the MVC pattern (principle 2).
The user interface elements are associated with ActionScript classes as well (principle 1). It de-
pends on the type of element whether this is directly possible in Flash. For instance, for Flash user
interface components can be not be associated with custom classes directly. It is also not possible to
subtype them as no inheritance mechanism exists for Flash Components. Thus, all user interface ele-
ments are encapsulated into MovieClips which are associated with an ActionScript class. As explained
in section 7.1.3 (“Accessing Stage Content”) the MovieClip’s content (e.g. a Flash Component) can
158 7. Integrating Creative Design: From MML to Flash
be accessed in the ActionScript class as class properties via their instance name. The ActionScript
classes are placed into a folder with the name of the Scene they belong to.
In the example in figure 7.9 the Scene Game contains for instance the user interface elements car
and time. They are encapsulated into MovieClips so that they can be associated to the ActionScript
classes Car and Time in the folder Game. The MovieClip time conatins two Flash Components, a text
label for the name and a text field for the actual value. The MovieClip car contains two media instances
engineSound and carAnimation which refer to EngineSound.mp3 and the MovieClip CarAnimation
in the central folder media.
The relationship between user interface elements and application logic is implemented by the
design pattern Observer [Gamma et al.95] (associations between ActionScript classes are not shown
in fig. 7.9). ‘View’ classes thus implement the interface Observer while ‘model’ classes extend the
class Observable and notify their Observers after they have changed.
Like in many other implementations the ‘Controller’ part (in terms of MVC) is simplified by
placing the event listening operations directly into the ‘View’ class to avoid a very large number
of small classes. Event handling operations are specified either by overwriting operations of the
MovieClip directly (e.g. defining an operation onKeyDown()) or by attaching anonymous listeners
to its content (e.g. a mouse listener for a contained user interface component). As explained in
section 7.2.2 (“Loading Scenes”) ActionScript 2 does not support anonymous inner classes but the
object-based mechanisms can be used instead.
Scenes Finally, at some point the application must be initialized and the relationships between
‘Model’, ‘View’, and ‘Controller’ must be established. As the Scenes are the application’s main
building blocks they are used for this task. They contain the user interface elements on their stage
so that they are available as class properties in the Scene’s ActionScript class. This class thus initial-
izes the application logic by creating new domain instances or receiving them by parameters of Entry
Operations. It initializes the connections to ‘View’ classes by (due to the Observer pattern) calling
addObserver() operations. Besides, the Scenes are implemented as described in section 7.2.2.
Figure 7.9 shows as example the Scene Game. It is represented by a Flash Document containing
user interface elements, an associated ActionScript class, and a folder containing the ActionScript
classes for the user interface elements.
7.3 Transformations
This section describes the transformation from MML models into skeletons for Flash applications.
According to the general idea described in section 3.3, the overall application structure is generated
from the models while for the concrete Media Components, final visual layout, and detailed applica-
tion logic only placeholders are generated to be filled out in the authoring tool.
As explained in section 7.1.1 the transformation is split into two steps. The first step performs
the conceptual mapping from MML models into Flash models while the second step performs the
mapping to the final code.
The detailed mapping rules are described as text in appendix C. The main ideas are summarized
in the following.
Domain Classes are mapped to ActionScript classes in the folder model. As operation bodies (i.e.
the detailed domain logic) is not specified in MML, they are also not part of the transformation and
have to be filled out manually by the software developer.
Media Components are mapped to placeholders in the folder media. Graphics and 2D Animations
are mapped to FLA files containing a placeholder MovieClip in the library. The placeholder can be a
simple rectangle shape with text inside showing the Media Component’s name. The media designer
can just replace the placeholder with the actual graphic or animation. Other media types are mapped
to corresponding files containing dummy content – e.g. a simple dummy image, video, or sound – to
be replaced by the media designer.
A Scene is mapped to a FLA file containing its user interface, an ActionScript class, and a folder
containing ActionScript classes for each user interface element. The FLA file contains instances of
user interface elements. The ActionScript class contains the user interface elements as class prop-
erties. It also contains the domain objects specified for the Scene as class properties. Moreover, it
initializes them by e.g. attaching user interface elements as Observer to domain objects. It also con-
tains the code for Entry- and Exit-Operations and the Transitions between the Scenes. The basic code
generated for the Scene class follows that proposed in section 7.2.2.
An AIOs is mapped to a MovieClip in the Scene and to an ActionScript class in the folder gen-
erated for the Scene. The MovieClip is located in the Scene’s library and instantiated on the Scene’s
stage. It encapsulates instances of widgets (Flash Components) and/or Media Instances (if the AIO is
realized by a Media Component). In the latter case, a reference is generated to the Media Component
in the folder media (see sec. 7.2.3). The ActionScript class contains event handling operations and is
attached to the MovieClip. It also implements the Observer pattern.
A detailed description of the mapping is described in appendix C. A fully functional prototype has
been implemented in ATL.
Extended Media Support by Third-Party Tools The basic mapping described here focuses on
Graphics and 2D Animations as they can be directly created within Flash. However, it is of course
possible to generate additional code to integrates third-party tools into the development process. The
diploma thesis in [Shaykhit07], supervised by the author of this thesis, discusses and implements sev-
eral examples into this direction: For instance, videos in Flash must be in FLV format. However, in
practice, videos are often encoded in a different video format like MPEG or AVI. Moreover, often
a video should be encoded in different qualities, e.g. as specified by Variations (sec. 5.2.10). The
approach in [Shaykhit07] uses a command line based video encoder FFmpeg [FFm] to address these
issues. The URL of a source video can be specified as additional property in the MML model. In
[Shaykhit07] the transformations have been extended to generate a shell script (a batch file in Win-
dows) from the information in the MML model to automatically execute FFmpeg and convert all
source videos into the FLV format – possibly in different versions with different qualities.
In general, by generating shell script commands from the models it is possible to integrate various
advanced support for Media Components. The shell scripts are executed in the same step like the JSFL
script for the Flash Documents. Of course, it is possible to generate a shell script which automatically
invokes all other generated scripts, including the JSFL script, so that the developer needs only to start
a single file.
160 7. Integrating Creative Design: From MML to Flash
Execution of
JSFL file
FLA Files
MML Model
JSFL File FLA Files
MML Flash
Model Model
FLA Files
ActionScript
MML Model
Class Files
ATL
Transformation
Flash Model to Code This transformation step maps the Flash model into the concrete implemen-
tation, i.e. Flash Documents (FLA files) and ActionScript code. However, this step rises a problem:
ActionScript classes can be generated in a straightforward manner as they are simple source code files
analogous to Java files. Thus, a conventional model transformation language can be used for their
generation. However, Flash Documents (FLA files) can not be generated directly as the FLA format
is a proprietary binary file format. The compiled format for Flash applications (SWF files) has been
made publically available by Adobe [Ado08] but it does not help here as the generated code skeletons
should be processed in the authoring tool. Basically, it is possible to reverse engineer a SWF file into a
FLA file using third-party tools like [Softwareb, Softwarea] but then still much authoring information
– like Symbol names – is missing.
Thus, MML proposes a different solution to create Flash Documents: As introduced in sec-
tion 7.1.1, JSFL scripts enable to create Flash Documents automatically. JSFL is well supported by
Adobe and the scripts are conventional text-based source code files which can be directly generated
by a transformation. Thus, the part of a Flash Model which describes the Flash Documents is mapped
to a JSFL file in the transformation. Using JSFL, the mapping to Flash is relatively straightforward.
The JSFL code which must be generated to create a FLA file looks similar like that in listing 7.1. The
resulting JSFL file then just has to be executed to create the final FLA files.
Figure 7.10 summarizes the resulting transformation steps: The first transformation maps an MML
model to a Flash model. The second transformation is split into two parts. ActionScript class files are
generated directly from the Flash model. For the document part, a JSFL file is generated. The JSFL
file then has to be executed on a system with Flash installed.
A fully functional prototype for this transformation has been written in ATL.
Supported Flash Versions The metamodel presented here reflects the Flash versions 7 and 8.
Over the years MML support has been developed for several Flash versions. Table 7.1 provides
an overview: The left hand side gibes an overview on the Flash versions, its version number, the
release date and the latest ActionScript version supported (all Flash versions support also previous
ActionScript versions for backward compatibility).
The table’s right hand side gives an overview which versions MML currently supports. The meta-
model and the transformations described in this thesis can be used for Flash 7 and Flash 8. While the
metamodel is exactly the same for both versions, the transformation from the Flash Model to Flash
Code provides a parameter to set the target version as there are slight changes in the JSFL file between
7.3 Transformations 161
Flash 7 and Flash 8. Flash CS3 brought major changes, in particular introduction of ActionScript 3.
[Meyer08], supervised by the author of this thesis, discusses and fully implements an update of the
metamodel and the transformation for Flash CS 3 and ActionScript 3. As Flash CS4 does not provide
such structural changes it is expected that the implementation by [Meyer08] is still sufficient but this
has not been further tested yet.
7.3.1 Round-Trip-Engineering
An important practical aspect to be discussed in context of transformations is the so-called Round-Trip
Engineering [Sendall and Küster04, Hettel et al.08]. Round-Trip Engineering means that a source
model and code generated from the model are kept synchronous. If changes are made in the code
which affect the model, then the model is synchronized and vise-versa. In context of transformation
between models, Round-Trip Engineering is also called Model Synchronization.4
2. Deciding whether the changes cause any inconsistencies with the other models, and
3. Once inconsistencies have been detected, updating the other models so that they become con-
sistent again.
4
In context of Model Driven Engineering code is treated as a specific kind of model as well – in the following the term
“target model” refers to any kind of transformation result including code.
162 7. Integrating Creative Design: From MML to Flash
A change means that an element is either added, modified, or deleted. To synchronize models it
is necessary to keep additional trace information, i.e. information to trace an element in the target
model back to its causing element in the source model (see examples in [Sendall and Küster04]). In
addition, it must be ensured that information added manually is not overwritten when synchronizing
the models. These two requirements correspond to the postulated properties of model transformations
from section 3.4.2: traceability and incremental consistency.
Incremental consistency on source code can be achieved by using a merge mechanisms as provided
e.g. by JMerge [JMe] which is part of the EMF. Ideally, a tool does not only preserve the custom code
but also updates the custom code when e.g. names of properties or operations have changed (using
e.g. refactoring functionality like provided by the Eclipse Java Development Tools [JDT]).
For keeping trace information two common ways exist: Either augment the target model with
the additional information, for instance comments in code containing specific tags, or store the trace
information externally, for instance in an additional model.
Several tool support already exists like SyncATL [Xiong et al.07, Syn], a synchronization tool
based on Eclipse supporting ATL. An important concept in this tool is to work on the modifications
performed by the user on a model since the last transformation. Thus, it requires as input the 1) original
source model, 2) the modified source model, 3) the modified target model, and 4) the transformation
(the original target model can just be calculated from the original source model and the transforma-
tion). The tool requires that each model element is always annotated with a unique identifier which
can not be changed by the user. The synchronization process first calculates the modifications between
original model and its modified version for both, source and target model. This calculation uses the
IDs to distinguish whether e.g. a model element has been added or renamed. As result of the calcu-
lation, an annotation is added to each element and property in the model to indicate the modification
by one of this four tags: insert, delete, replace, or none. The modifications on the target model are
propagated back to the source model and merged with the modifications on the source model. The
modifications in the resulting source model are then propagated to the target model and finally merged
with the modified target model. In that way, both models are synchronized while preserving all modi-
fication made by users on the source and the target model. For details, like merging rules, see [Xiong
et al.07]. Basic concepts for differencing and merging models can also be found in various other work
like [Abi-Antoun et al.08, Mehra et al.05].
Another important tool is the Atlas Model Weaver (AMW, [AMW]) based on Eclipse and ATL as
well. Its purpose is more general: AMW establishes links between two models and stores them in a so-
called Weaving Model. On that base various different use cases are available for download including
support for traceability relationships between models and calculating the differences between two
models.
Even with complete trace information there are still various cases where this information is not
sufficient to synchronize the models. For instance, if an element is added to the target model, multiple
alternative possibilities where to add corresponding elements in the source model may occur. Such
cases can be solved for instance by rules for default behavior or by additional user input. More
information on advanced issues can be found e.g. at [Oldevik et al.08].
Round-Trip Engineering for MML Basically, the general principles of Round-Trip Engineering
can also be applied to MML. In particular, the ActionScript classes can be treated like any other kind
of source code. But two specific problems must be considered: First, most existing solutions require
annotations on the model and code. Thus, it must be ensured that it is possible to annotate elements
in Flash Documents with custom data. Second, parts of the MML models reside on a quite high level
7.3 Transformations 163
of abstraction compared to the generated Flash implementation. Thus, it must be discussed for which
kind of modifications it is useful to propagate them back to the MML model. They are discussed in
the following.
ActionScript classes can be handled like conventional source code and be annotated with com-
ments. Annotations are important for Round-Trip Engineering, for instance to store trace information
or for unique IDs to calculate modifications between models like in SyncATL (see above).
Fortunately, the Flash Java Script API enables to store additional information to the most important
elements used in our structure: Data of any kind of primitive types can be added, read, and removed to
Flash Documents (method document.addDataToDocument()), to all Library Items (item.addData()),
and some types of Elements on the Stage including MovieClip instances and Component instances
(element.setPersistentData(), see figure 7.6 for metaclass Element). These elements cover already
the major part of the generated structure as elements on the Stage are encapsulated into MovieClips
(see “MML to Flash Model” on page 158).
Annotating the Flash elements with unique identifiers can help to ensure incremental consistency
for Flash Documents. The basic idea is to calculate modifications on the Flash model. The JSFL file
then propagates only these modifications to the Flash Documents. For instance, when a MovieClip
is renamed in the model, the JSFL file searches for the MovieClip by its identifier and modifies its
property name while leaving all other properties and content unchanged.
The second problem is the partially high level of abstraction. Thus, for some parts of the MML
models it is not trivial to synchronize a MML models when changes appeared in the generated code.
A general requirement is that modifications in the Flash application must comply to the generated
structure for Flash applications. If a developer adds an element which does not fit to the intended
structure at all, it is almost impossible to interpret its meaning in terms of the MML model.
The main MML elements can be handled as follows:
• MML Domain Classes are mapped 1:1 into ActionScript classes in the folder model. All
changes can be directly propagated to the MML Structure diagram just like in mappings from
UML class diagrams to Java.
• An MML Scene is mapped to a large number of elements and code. Thus, even modifications
like renaming can become tedious in the code. It is often better to add new Scenes only in the
model and re-generate the code. Modifying conventional class properties or class operations
of the Scene’s ActionScript class is unproblematic and can be directly propagated to the MML
model.
• Each AIO in MML is mapped to a MovieClip in the Scene and a listener class. Basically, it
should be possible to add, modify, or delete these MovieClips directly in Flash. The changes
can be propagated to the model. The corresponding listener classes could then just be updated
when re-generating code. However, it must be considered that adornments on the user interface
should not be interpreted as AIOs in MML. A useful solution is that only MovieClips instances
on the Stage having an instance name are interpreted as AIOs (in Flash, instances have no
instance name by default) while all other elements are interpreted as adornments.
• MML Media Components are directly mapped into the folder media. Adding, deleting or re-
naming a Media Component directly in the folder media is possible and can be propagated back
to the model. However, the developer has to consider Media Instances which refer to this Media
Component. Advanced modifications, concerning inner structure or different variations, are not
propagated back to the model.
Of course, when the developer fills out generated placeholders or operation bodies, this has not to
be propagated back to the model as specifying their content is not part of MML models.
164 7. Integrating Creative Design: From MML to Flash
• Round-Trip Engineering: The tool gives the possibility to reuse existing Round-Trip Engineer-
ing tools operating on models. The precondition is that the transformation back to the Flash
code preserves incremental consistency.
• Reverse Engineering: The resulting Flash models can be used as starting point for a transfor-
mation from Flash models to MML models to Reverse Engineer Flash applications. A very first
prototype for such a transformation has been implemented in [Mbakop07].
• Migration and Refactoring: In particular, it is possible to refactor the Flash Model and trans-
form it back to a Flash application. Thereby, Flash Documents can automatically be updated
to another Flash version. For instance, executing the transformation from [Meyer08] automat-
ically results in Flash Documents for Flash version 9. (Converting ActionScript to another
ActionScript version as well would require to write an additional transformation for this pur-
pose as the Flash model treats operation bodies and embedded scrips just as text strings – so the
currently existing transformations can only be used to create Flash 9 Documents with Action-
Script2 code.) This use case requires incremental consistency for the transformations back to
Flash.
Figure 7.12: The generated application skeleton can be directly executed. The user can trigger transi-
tions between the Scenes as far as specified in the MML model.
166 7. Integrating Creative Design: From MML to Flash
Figure 7.13: The generated FLA file for the Scene Game.
mapped to buttons, the user can use this buttons to trigger the transitions and navigate through the
Scenes.
Figure 7.12 shows the generated SWF files when they are executed by the user. It shows from left
to right how the user navigates through some generated Scenes. According to the Scene model, the
application start with the Into Scene (left screenshot) which contains a placeholder for the IntroHead-
line, a dummy video for IntroVideo, and a button skip. As specified in the Presentation Model, the
user can navigate to the Menu Scene (middle screenshot) by clicking the button. The Menu contains
a button startGame which leads the user to the Scene Game (right screenshot). In the Game Scene
the user can use the button quit to navigate back to the Menu. The application, as shown here, is the
direct result from the transformation – it has not been modified by the developer yet5 . The following
sections show how the developers edit and complete the generated skeletons in the Flash authoring
tool.
The generated FLA files can be directly opened and processed in the authoring tool. Figure 7.13
shows the FLA file for the Scene Game generated according to the MML model in figure 6.17. The
graphics and animations have been mapped to placeholder MovieClips. Their Inner Structure is rep-
resented by contained Movie Clips. AIOs not realized by Media Components have been mapped to
widgets components. All generated elements can be very easily adapted and modified using the large
spectrum of tools available in Flash. For instance, they can be arranged by drag and drop and be
resized, rotated, skewed, reshaped, etc. using the transformation tool (like the button quit in fig. 7.13).
The generated instance names are visible in the Property Window while the generated connection be-
tween Movie Clips and ActionScript classes are visible via the context menu in the library (not visible
in the screenshot).
5
except the spatial layout of the graphical elements as the current implementation does not include an algorithm for the
initial layout yet
7.4 Working with the Code Skeletons in the Authoring Tool 167
Figure 7.14 shows the content of the folder media in the file explorer. The FLA files generated for
graphics and animations contain only placeholders to be filled out by the media designers. Figure 7.15
shows how easy to fill out for instance the generated placeholders in the FLA file for CarAnimation.
The media designer can use all tools of the Flash authoring tool like normally. After the modified
CarAnimation is saved and compiled it is automatically available in all Scenes which refer to it (like
Game, see fig. 7.16a). For instance, the CarAnimation is used not only in the Scene Game but also in
Menu where the user can select between different cars. Several properties can be changed individually
for each instance including size, rotation (fig. 7.16b), and color properties like brightness, tint, alpha,
etc.
Other media types which are not directly created within Flash, like images, audio, and video, are
represented by files containing dummy content and are usually replaced directly in the file explorer.
Text files can be edited directly in a text editor. For instance, in figure 7.17a the dummy file for video
IntroVideo.flv is replaced in the file explorer. As result, all instances of IntroVideo in all Scenes are
updated in the application (like the Scene Intro in fig. 7.17b).
Besides filling out the placeholders in the authoring tool and replacing dummy files, the software
developers have to complete the ActionScript code. This will usually take some time as MML is not
a prototyping tool. The developers have to perform the following tasks on the ActionScript skeletons:
For instance, in the Racing Game example the developers would place the code to move the car
into the operation move of the class Car in the folder model. As the design pattern Observer is
generated for the connection to the user interface, the developers also have to fill out the operation
update in the class Car in the folder Game6 .
All other basic relationships are already generated from the models: the class Car in the folder
Game is already assigned to MovieClip Car, the MovieClip is already instantiated on the Stage and
has an instance name, and the corresponding instance is accessible in the class Scene and already
registered as Observer for the Domain Class Car. Thus, it is already possible to directly compile,
execute, and test any added code. A possible result could look like in figure 7.18.
6
The Domain Class and the AIO both have the same name in this example
7.4 Working with the Code Skeletons in the Authoring Tool 169
(a) Select wheel in the library (b) Select the placeholder shape of wheel
(e) Arrange the wheels (f) Add two more wheel instances
(g) Replace car’s placeholder with custom drawing (h) Finalize CarAnimation
(a) Updated CarAnimation (b) Modifying rotation and size of a single instance
(a) Replacing IntroVideo.flv in folder media (b) All instances of IntroVideo are automatically re-
placed.
Figure 7.17: Media files need just to be replaced in the file explorer.
7.4 Working with the Code Skeletons in the Authoring Tool 171
Validation
The basic problem addressed in this thesis is the lack of systematic development methods for the
interactive multimedia applications. As discussed in section 3.1, this problem statement is supported
by the existing research literature as well as by existing industry studies. A promising contribution to
solve this problem is to apply concepts from model-driven development to the multimedia application
domain (sec. 3.2). Thus, a modeling language and model-transformations were proposed. This section
aims to validate the presented approach.
Unfortunately, development methods and development processes, such as MML, are difficult to
evaluate. This is a specific problem of Software Engineering research: For instance, Human-Computer
Interaction research mostly target end users. Often it is possible with limited effort to acquire people
from the addressed target group and to perform user studies with them. For Software Engineering
research which addresses large real-world development projects, no such straightforward way exists.
Thus, the next paragraph provides a short analysis to find possible validation methods for MML.
The subsequent three section then present the validation based on the identified methods.
etc.) as well as the desired properties of the solution (expressiveness, usability, etc.) are hard to
formalize.
Evaluation against empirical data again is difficult for research like in this thesis. There are rarely
some opportunities to apply a new research approach directly in a real-world projects in a company.
Alone the tool support is certainly not sufficient for a really professional project.
Validation based on new Experience in industry is not possible for the same reasons. Of course,
already existing experience has already been considered carefully by the discussion of existing studies
provided in section 3.1.
An alternative to gain empirical data empirical data (for Evaluation against empirical data) is to
perform controlled experiments in the research lab. However – in contrast to other areas, like Inter-
action Design – development methods are hard to test due to many factors like the required learning
effort and the large number of variables which includes experience, skills, project type, project size,
etc. [Olsen07, Walker et al.03, Kitchenham et al.02]. Thus, it is usually not possible to create with rea-
sonable effort an experiment which allows to proof the effect of a development approach in industrial
practice.
Finally, Evaluation against given criteria is a feasible and important validation technique for
development approaches and modeling languages in particular. Also Evaluation in comparison to
other approaches could be examined at least on a theoretical level. Both methods are applied for
MML in section 8.3.
Nevertheless, all feasible validation techniques identified so far are still on a theoretical level. This
kind of validation is often called internal validation as it is usually conducted by the developers of
the research approach themselves. The danger is that their point of view is too optimistic. They also
certainly have a very different access to their own approach than other people would have. Hence, it
is strongly desirable to perform an external validation as far as possible – even if it is not possible
to definitely proof the effect of MML in industrial practice. To meet this demand, different kinds of
student projects have been conducted which are described in section 8.2.
Together with Flash, the first two examples cover all three categories of implementation platforms
identified in section 2.3: frameworks, declarative languages, and authoring tools. The third example,
Flash Lite, demonstrates that platform independence also adheres to the target devices.
While some of these transformations are (prototypically) implemented to a large extent, some are
only realized as a proof of concept. The following sections briefly describe them.
• The overall application is structured into packages model, view, controller, and media. In addi-
tion, [Kaczkowski07] provides a package mml containing library classes like a class Scene as
superclass for all Scenes and classes for the different media types.
• An application is mapped to a main class which creates the application’s main window on the
user interface.
• Each Scene (sec. 6.3) is mapped to a class which initiates instances used in the Scene and
connects model and view classes by the Observer pattern [Gamma et al.95]. It contains Entry
and Exit Operations which pass the application’s main window as parameter so that a Scene can
set the actual user interface content.
• Domain Classes (sec. 6.2) are mapped to Java classes in the package model.
• Media Components (sec. 6.2) are mapped to classes in the package media. The package mml
provides a library class for each media type with standard functionality. They are specialized
by the classes in media.
• Each Presentation Unit (sec. 6.4) is mapped to a class in the package view. It inherits from
Piccolo classes and provides different operations to easily add Piccolo Nodes as well as Java
Swing elements as children1 . Media Instances are mapped to instances from the package media
and added as children. AIOs not realized by Media Instances are mapped to Java Swing widgets
and added as children.
• For each Scene there is a Controller class in the package controller which contains event han-
dling operations. They are assigned to the user interface elements in the Scene’s view class.
The transformation was implemented in [Kaczkowski07] using ATL. [Kaczkowski07] also pro-
vides a metamodel for Java Piccolo applications. It consists of a part for Java classes and a part repre-
senting the Piccolo framework (which of course consists of Java classes as well but is represented on
a higher level of abstraction).
1
As described in section2.3.1, Piccolo code is structured in terms of a Scene Graph
176 8. Validation
The Java classes generated by the transformation can directly be compiled and executed. The
application then shows a window with the (skeleton) user interface for the first Scene.
Main.fla
Game
time_textfield
engineSound ...
carAnimation
...
associated with
Car.as ...
Figure 8.1: Simple target structure for Flash Lite applications and small Flash applications.
• Each Scene is mapped to a MovieClip in the main Flash Document’s library. They are dynam-
ically attached to the container MovieClip on the Stage. There are no ActionScript classes for
the Scenes.
• The user interface elements are directly placed into the Scenes without an encapsulating MovieClip.
They are not associated with ActionScript classes. Instead, the event handling code is placed
directly on the main Timeline in the main Flash Document.
• As there is only a single Flash Document, the media objects need just to be placed in its library.
They can then be instantiated in the MovieClips for the Scenes.
• The Domain Classes are mapped to ActionScript classes.
Figure 8.1 shows an example for the resulting simple structure. The figure shows the Racing Game
example so that it can be easily compared to the Flash framework in figure 7.9. There is only a single
Flash Document for the whole application (Main.fla). Each Scene is represented by a MovieClip (e.g.
Game) which directly contains all Media Instances (e.g. carAnimation) and user interface elements
(e.g. time_textfield). As all Media Components are located in the library of the main Flash Document,
it is still possible to instantiate a Media Component multiple times within different Scenes. Only the
Domain Classes are represented by external ActionScript classes (e.g. Car). Any other code (like
event listeners) is embedded directly in the Flash Document.
This structure can also be used for conventional (desktop computer) Flash applications if a simple
straightforward structure is desired. This is useful e.g. for applications with limited application logic
like the CMD Tutorial later in section 8.2.2.
The transformation has not been implemented yet. However, Maurer demonstrates the feasibility
by a manual mapping for the Blockout Game example from [Pleuß05a]. Figure 8.2 shows some
screenshots from the resulting application. Despite of its high dynamics and fast animations, it runs
without any performance problems on the test device.
178 8. Validation
Preliminary Experience in 2004 and 2005 The course in 2004 [MMPa] had no connection to
MML. However, the students had to apply the Extreme Programming paradigm to their practical
projects. They were supported to apply it as far as possible and also had to frequently report to their
supervisors about their experience. Also, a questionnaire was filled out by all participating students at
the end of the project. This provided new insights on problems and benefits when applying Extreme
Programming to a multimedia project. Some of them are mentioned in section 3.2.
The applications to be developed by the students in 2004 were Racing Game applications similar
to the example in this thesis. A restricted version of the final results can be found at [MMPb]. Please
note that all applications (also in the following editions of the course) also provide a multiplayer mode
(which makes a significant part of the overall development effort) which is not available in the versions
on the webpage as it requires an additional multiplayer server.
In 2005 [MMPc], MML was applied the first time but only to a very limited extent. MML itself
was applied only as part of an exercise. The students then had to submit a modeling task with MML as
their homework. All submissions were briefly reviewed and each student received written feedback on
his/her models. This time, the students had to apply in their projects either the Extreme Programming
paradigm or a simplified version of the process proposed by Osswald [Osswald03]. Osswald’s process
is a version of the Rational Unified Process specifically adapted for multimedia applications (see
sec. 3.1).
Application and Questionnaire in 2006 In 2006 [MMPd], MML was applied in exercises and as
homework as well. But this time the students also had to use MML in the practical project. Altogether
35 students took part in the practical project in six teams of six to seven students each. Each team
had to apply a given development process which was an adapted version of the process from Osswald
based on the experience from 2005. It is depicted in figure 8.3. After each phase a milestone was
defined which had to be met by the students to ensure that they adhere to the process.
According to the process (fig. 8.3), each team first had to plan the team organization (communi-
cation, infrastructure, etc.) and to fix the main agreements in a written document. Subsequently, they
had to find ideas how to realize the application in terms of the gameplay and the overall theme for the
visual design. These ideas had to be presented to the supervisors by created prototypes. Additional
prototypes were created to get an idea on the implementation and the required algorithms.
On that base, each team had to design the application in terms of an MML model which was
then discussed with their supervisor and, if necessary, revised. They had to use all kinds of MML
180 8. Validation
models, i.e. Structural Model, Scene Model, Presentation Model, and Interaction Model. However,
the Interaction Model was used only for a purely informative description of the interaction concepts
in their application as it is the least supported model type yet (see sec. 6.5).
The students used the MagicDraw-based editor (sec. 6.7) to create and edit their MML models.
The transformations for the mapping into Flash code were not finally implemented to that time. How-
ever, the framework proposed in section 7.2 for structuring Flash was already available. There was
a written documentation for the framework and an example project which students could start with.
So the students could manually map their MML models into a Flash implementation. However, using
this framework was optional for the students.
The task was to develop a ‘Jump and Run’ game with multiplayer support. Besides others, the
main requirements were:
• Animated characters,
• collision detection of animated characters with walls, platforms, bonus objects etc.,
• a camera which shows the current part of the level and moves with the player’s character,
• different kinds of bonus objects and obstacles,
• a singleplayer mode and a multiplayer mode including chat functionality, and
• different screens for menu, options, help, highscore, etc.
Figure 8.4 shows some exemplary screenshots from one of the six results. All results can be found
at [MMPe] (the multiplayer mode is disabled).
An important result from the project were the general observations on the usage of MML, what
worked, and what needed to be improved. Problems with the modeling language itself, like missing
expressiveness, were collected in a list and considered in the next version of MML. An example issue
is that Sensors are not always children of a Media Component but can also be assigned to a Media
Instance in a Scene (see sec. 6.4.3).
After the project was finished, the students had to answer a questionnaire about
• their previous experience on programming and development,
• the usage of MML in their project,
8.2 External Validation 181
(a) (b)
(c) (d)
It turned out that students had very different opinions about the development process with MML.
The resulting average of the most answers was slightly positive (average values slightly above 3) but
without significant findings. Also, no correlation was found between the stated previous experience
on programming and development and the grading of MML.
The students also had the possibility to add own comments. Again, some comments were very
positive about MML while others were very critical against it. Critical comments included that it
is difficult and takes too much effort to plan the application in such a level of detail like in MML.
Students who added positive comments to the questionnaire stated that they found MML helpful to
182 8. Validation
plan the application, structure the system, and distribute the development tasks within the team.
Application in 2007 In 2007 [MMPf], MML was used again in the exercise and in the project.
Seven teams with altogether 37 students participated the project. The development process, the usage
of the modeling language, and the usage of Magic Draw was analogous to 2006. However, this
time the ATL transformations were already available to automatically generate Flash code skeletons
from the models (see sec. 7). However, the students were allowed to decide themselves whether they
wanted to use the automatic transformation or not. Four of the seven teams (team3, team 4, team 5,
team6) asked for automatic code generation. As executing the ATL transformations requires some
basic knowledge of ATL, it was executed by the author of this thesis. All teams had to submit their
models and those teams interested in code generation received the resulting code.
The task that year was a minigolf game with multiplayer mode. The basic requirements were as
follows:
Figure 8.5 shows screenshots of some of the resulting games. One result was even published on
the website of München TV, a local TV station [Wie].
The experience in that year was that there were rarely problems with the modeling language itself.
One expected problem for the code generation was that the simple modeling tool based on MagicDraw
does not provide support to create valid models. Surprisingly, it took only little effort to generate code
from the models received from the teams. Problems were mainly caused by incomplete information
about Domain Classes, like missing or undefined attribute types, missing names of association ends,
or artifacts which unintentionally were deleted only from the diagrams but not from the model, etc.
Such mistakes seem not to indicate conceptual problems. However, it should be mentioned that one
of the seven teams had general problems with the modeling phase and needed detailed help from the
supervisor to finally create a meaningful model.
Unfortunately, the students did not make use of the generated code or the proposed Flash frame-
work that year. All teams which asked for automatic code generation stated that they first planned
to use this opportunity, as it was for free. However, as the resulting code consists of a large amount
of files and folders (see sec. 7.2) they were concerned that it would take too much effort to learn the
structure. They also stated, that it is very difficult, in particular for team members without previous
knowledge of Flash, to learn Flash and the generated structure in parallel. Nevertheless, some students
who are more interested in modeling later asked for future topics on MML and performed on their on
initiative a project thesis in the context of MML.
In general, it was conspicuous, that in this year the teams, independent from MML, did not make
use of tools or structuring mechanisms beyond the Flash authoring tool. For instance, in 2006 almost
all teams used third-party Eclipse plugins for programming the ActionScript code. They also made
heavy usage of structuring mechanisms like the proposed framework for Flash as well as own ideas
8.2 External Validation 183
(a) (b)
(c) (d)
to structure the code in a modular way. In contrast, in 2007 only one team used the Eclipse plugin
and most teams used a much more monolithic structure for their application. There was no specific
reason found for this difference. At least, this shows that even with a large number of participants the
influencing factors for such projects are too complex to generalize the experience in general.
The StyleAdvisor for a Munich Hairdresser Kraiker [Kraiker07] developed an application for a
Munich hairdresser called StyleAdvisor. Its purpose is to determine the best fitting color scheme for
the user in terms of clothing, jewelery, and make-up. It mainly uses text and images to provide the
user with several questions and calculates from the answers the user’s color scheme. Figure 8.6 shows
a screenshot from the application.
184 8. Validation
The entire code generated from the MML models was used for the final implementation with-
out noteworthy problems (see discussion in [Kraiker07]). In his final project presentation the student
reported that he actually was surprised about the good result the code generator produced from the
models. He also had the feeling that the model-driven process with MML and automatic code gener-
ation saved an significant amount of time compared to manual implementation.
An Authoring Tool for the “Unterrichtsmitschau” In his project thesis [Kauntz07] Kauntz de-
veloped an authoring tool for the group for Unterrichtsmitschau und didaktische Forschung (short:
Unterrichtsmitschau; [Unta]) at the Department für Pädagogik und Rehabilitation (department for
pedagogy) at the University of Munich. This group produces, amongst others, multimedia learning
applications for pedagogues and teachers. The applications are commercial products and can be or-
dered via online shop [Untb].
Figure 8.7 shows an example for such an application (here from taken from [Jungwirth and
Stadler03]). It consists of different regions and tabs containing different kinds of learning content.
The most important content are the videos which show for instance a teaching lesson in a school.
The videos are accompanied by a transcript which runs synchronously to the videos but can also
be viewed or printed independently from the videos. Other content is for instance explanations of
important observations from the video or control questions.
The task in [Kauntz07] was to develop an authoring tool which supports the Unterrichtsmitschau
for the production of such applications. Thereby, it should fulfill the following requirements:
Figure 8.8 shows screenshots from the authoring tool. Figure 8.8a show the main screen of the
8.2 External Validation 185
tool. The center area shows the learning application under development. Some parts can be edited
directly in the center screen and some with help of the items in the toolbar on the left hand side.
Figures 8.8b-8.8d show dialogues for creating sections (in the learning application to be created),
importing documents, and synchronizing videos and transcripts.
To a large extent the project thesis was supervised by an external supervisor from the Unter-
richtsmitschau. The author of this thesis provided supervision for the development process itself but
was not involved in the requirements specification for the tool. Those were elaborated by Kauntz in
cooperation with his external supervisor who was the “customer” for this project. Kauntz used several
techniques for the requirement analysis, including (see [Kauntz07] for details):
Subsequently, the application design was specified using MML models. The models were trans-
formed into code skeletons for Flash/ActionScript which were then finalized as described in section 7.
The authoring tool uses mainly Media Components which are generated at runtime. In these cases, the
generated placeholders were just deleted and, instead, code was added to the generated ActionScript
classes which creates or loads the Media Components at runtime. [Kauntz07] reports that the final im-
plementation is very close to the MML models. Also, there was no need to change the generated code
structure. Similar like Kraiker (see above), Kauntz had the feeling that the process with MML was
significantly faster than if he would have had to plan and implement application structure manually.
CMD Tutorial for Siemens Finkenzeller [Finkenzeller08] developed in a tutorial for an existing
application for customer relationship management at Siemens called Corporate Master Data (CMD)
. The tutorial is called CMD Tutorial. It shows the different screens of CMD and explains them. The
user can also click directly on user interface elements in the depicted screens which opens additional
help for the selected element.
186 8. Validation
Figure 8.8: Screenshots from the authoring tool for the Unterrichtsmitschau.
Figure 8.9 shows a screenshot of the application. The buttons on the left hand side enable navigat-
ing between the different chapters. The center area shows a part of a screen from the CMD application
while the right hand side shows the corresponding explanations.
This application provides only a small degree of interactivity and application logic; only naviga-
tion and the possibility to select elements in the images of CMD. It was specified as MML model
from which code was generated. However, in such cases the resulting very modular code structure is
unnecessary. Thus, Finkenzeller implemented two versions: one manual implementation for Siemens
with a much more simplified structure (e.g. a single FLA file for the whole application instead of one
FLA file for each Scene) and one prototype from the generated code to demonstrate that the gener-
ated structure is basically also sufficient for such a kind of application. Beside the complexity of the
generated code, no other problems with MML occurred.
This case shows that the code structure generated from the models is not optimal for all kinds of
applications. As described in section (sec. 7.2.1) the goal for the proposed Flash framework used as
target structure for the transformation was a high degree of flexibility and modularity to support large
and complex applications. It is possible, of course, to create an alternative transformation which maps
8.3 Internal Validation 187
an MML model into a Flash application with a simple structure. This can be useful for quite “simple”
applications like the CMD Tutorial but also, for instance, for applications on target platforms with
limited hardware resources. A concrete example for such an alternative transformation is presented
in section 8.1.3 for the example platform Flash Lite (it was not available at the time when the CMD
Tutorial was developed).
Nevertheless, the project also shows that MML itself can also be applied for applications like the
CMD Tutorial.
8.2.3 Conclusions
The projects in multimedia programming enabled to gain practical experience on the development
with MML. However, the experience from these projects confirms the expected problems explained
in section 8: It is indeed very hard to validate a complex development approach like MML in academic
context. Due to the large amount of influencing factors it is hardly possible to generalize the observed
results.
Nevertheless, the observations made during the usage of MML by many different external people
were considerably helpful to improve and refine MML. During the projects, no fundamental problems
occurred with MML. Minor problems observed on single modeling concepts have been taken up and
considered for the MML version presented here. The proposed framework for Flash applications was
graded very well by all participants who used it. Also the transformation itself worked for all models
it was applied on. Altogether, this provides at least a positive indication for the general feasibility of
MML.
examines whether they are fulfilled by MML. On the other hand, several goals and requirements to be
fulfilled by the solution have been elaborated during this thesis. They are examined in section 8.3.2.
Validation compared to other approaches can only be performed here on a theoretical base by
a brief comparison to existing modeling languages based on the related work from chapter 4. It is
presented in section 8.3.3.
1. Object-oriented concepts
The MML Structure Model is based on UML class diagrams and supports all basic object-
oriented concepts. The concept of modeling Media Components is derived from UML Com-
ponents.
2. Concepts for modularization of models
The Structure Model in MML supports the same modularization concepts like UML. It is
possible to us packages to structure the Domain Classes if necessary. If necessary, Composite
Scenes can be used to structure the Scene Model. The Presentation Model and the Interaction
Models are structured by the Scenes.
3. Concepts for modeling the application’s dynamic behavior
The coarse-grained behavior within a Scene is described in the Interaction Model. The
detailed behavior of Domain Classes is explicitly not part of the model as it is intended to
implement it manually for the target platform. Basically, as the MML reuses UML, it is
possible to add UML concepts to model the behavior of Domain Classes
4. Concepts for modeling concurrency and parallel processing
Can be modeled in Interaction Models but is not specifically supported in MML yet.
5. Concepts for process-oriented modeling, like business processes
Basically supported by the Interaction Model.
6. Integration of modeling concepts
The integration of all modeling concepts is defined in the metamodel and in section 6.6.
3. Notation:
1. Diagram types to visualize different aspects of the application
Each model in MML is supported by a diagram type of its own, i.e. Structure Diagram, Scene
Diagram, Presentation Diagram, and Interaction Diagram. They provide different views on
the system analogous like in other modeling approaches (like OMMMA, sec. 4.3.2).
2. Notation of diagram elements and resulting usability of the modeling language
MML reuses as much as possible established existing notations. New visual icons for me-
dia components have been evaluated in first user tests. The notation for inner properties of
Media Components is partially taken from UML Components (different compartments, Me-
dia Artifacts, etc.) and from Scene Graphs (inner structure). A definitive evaluation of the
notation for Media Components would be a useful task for future work.
3. Annotations
MML supports to add comments to any kind of model element, like UML.
3. Application
1. Views
1. User’s View – support for communication between developers and tool support
MML is designed in such a way that all information of a model can be visualized in the
diagram and thus also in print-outs. It is possible to draw MML diagrams by hand (e.g. on a
paper or whiteboard for discussions). MML is supported by a visual modeling tool described
in section 6.7.
2. Meta view – extension and specialization of the language
MML is defined as explicit metamodel and is intended to be combined with other ap-
proaches. This issue is briefly discussed in section 10.3.
2. Purpose
1. Purpose and intended coverage of the modeling language The purpose and intended cover-
age of MML are defined in section 5.1.1.
3. Development tasks:
190 8. Validation
1. Analysis
MML aims not to provide support for an analysis phase. The relationships to typical artifacts
from an analysis phase are explained in section 6.6.1.
2. Design
As explained above, section 6.6.1 describes how MML models are created starting with
the results from the analysis phase. MML enables to specify the application so that it is
possible to derive the implementation from the models (see transformation in section 7 and
transformations for other platforms in section 8.1).
3. Implementation
MML supports the implementation by the transformation into code skeletons. Section 7.4
describes how to work with the code skeletons.
4. Verification and Validation Due to the usage of concepts from Model-Driven Engineering,
it is possible to validate models using OCL constraints. [Shaykhit07] (a diploma thesis
supervised by the author of this thesis) demonstrates this by applying an Eclipse OCL plugin
[Ecla, Damus07].
5. Integration of concepts for different phases
See sections 6.6.1 and 7.4.
4. General criteria
1. User-related criteria:
1. Feasibility of the modeling language
The feasibility is demonstrated by the running example in this thesis and the projects in
section 8.2.
2. Clearness and understandability of the language and the resulting models
Clearness and understandability are addressed by the extensive reuse of existing established
modeling concepts. The student projects in section 8.2 have been used to test the clearness
and understandability with external participants.
3. The language should be adequate compared to its purpose
A comparison to the goals of MML is provided in section 8.3.2.
4. Models can be validated compared to the reality to be modeled
The automatic transformations into code can help to find out whether a model specifies a
system as intended.
5. Expressiveness of the modeling language
The examples in student projects (sec. 8.2), the coverage of different kinds of multimedia
applications (sec. 8.3.3), and the possibility to generate code for different platforms (sec. 8.1)
indicate that the language is expressive enough to meet the goals of this work.
2. Model-related critera:
1. Abstract syntax and semantics must not be ambiguous
The transformations from MML models to code help to avoid ambiguousness as they indi-
rectly define the meaning of a model element.
2. The language should support consistency of the models
The abstract syntax in the metamodel and the well-formedness rules aim to some extent to
contribute that the models are consistent.
3. Adequate degree of formalization
The transformation into code indirectly provides to some degree a formal definition of
MML’s semantics.
4. Integration of the modeling concepts
The integration of models is described in the metamodel and in section 6.6.
8.3 Internal Validation 191
3. Economical criteria:
1. Reusability of language elements and model elements
Language elements can be reused as they are defined in an explicit metamodel according
to the concepts of Model Driven Engineering (see sec. 8.3.2). Within the models (and the
resulting code) itself, MML provides explicit support to reuse elements from the Structural
Model in multiple Scenes. Reuse of user interface elements is not supported yet. A possible
extension would be to allow e.g. a UIContainer to be reused in multiple PresentationUnits
(see sec. 6.4.2).
2. Extensibility of the modeling language
This issue is briefly discussed in section 10.3.
Altogether, the list shows that MML addresses all criteria. Two minor issues have been identified
for possible future work on MML:
• Find possible alternative notations for Media Components (beyond the icons) and evaluate them
in user tests (issue 2).
• Support for reuse of user interface elements like in other existing user interface modeling ap-
proaches (issue 1).
Fulfillment of Basic Goals Section3.3 defined three general goals for MML (page 34). They are
fulfilled as follows:
1. Integration of media design, user interface design, and software design into a single, consistent
modeling approach.
The modeling language integrates these three areas. This is illustrated in figure 6.25.
2. A level of abstraction which enables code generation but ensures a lightweight approach.
Section 7.3 demonstrates that the level of abstraction in MML is sufficient for code generation.
In addition, section 8.1 provides transformations to other target platforms.
The approach is ‘lightweight’ in that way that the models contain only information about the
overall application structure while those application parts which are very tedious to model (like
the detailed application logic, user interface layout, and the media design etc.) are not part of
the models. They have to be implemented directly in the authoring tool.
Coverage according to the Classification for Multimedia Applications Table 2.1 in section 2.4
provides a classification of multimedia applications. This section examines to which extent the iden-
tified spectrum of multimedia applications is covered by the examples presented in this thesis.
In table 8.1, the examples from the external validation (sec. 8.2) were added to the table (see the
highlighted classes).
192 8. Validation
The table shows that the examples presented in this thesis cover all three degrees of interactivity
and at least four of the five application domains. Moreover, they cover all three kinds of ‘media
origin’. Finally, they cover also all media types, except 3D animation:
• Video is covered by the authoring tool for the “Unterrichtsmitschau”,
• Sound is covered by the various games from “Multimedia-Programmierung”,
• 2D animation is covered by the games from “Multimedia-Programmierung”,
• Image is covered by the StyleAdvisor, the CMD Tutorial, and the games from “Multimedia-
Programmierung”, and
• Graphics is covered by the games from “Multimedia-Programmierung”.
3D animation is not covered yet as it is not supported by Flash. However, the work in [Vitzthum08]
has already demonstrated that it is feasible to generate useful code skeletons for 3D formats like
VRML [ISO97a] or X3D [ISO04].
Altogether, the MML modeling examples from external evaluation cover all values (except 3D) of
all four facets from the identified classification for multimedia applications. This indicates that MML
is basically adequate to model any kind of multimedia application.
Flash
Meta-
model
MML
Flash2String
MML
(PIM)
ATL Java/
MML2Java Piccolo
Meta-
model
ATL
Java2String
Java/Piccolo Java/Piccolo
Model (PSM) Code
(using the with the Eclipse Modeling Framework, see sec. 6.7) which is an implementation of
E-MOF (see [Gruhn et al.06]).
• Automatic transformation.
The automatic transformations is implemented with ATL (sec. 7.3).
Figure 8.10 applies the models and transformations presented in this thesis to the MDA framework
from figure 3.33 .
Thus, MML is compliant to MDA and hence to MDE.
Requirements for Modeling Advanced Interactive Multimedia Applications The following lists
summarizes requirements identified during the discussions in section 5.2 and chapter 6. They are
formulated independent from MML.
1. Media as First Class Entities: It should be possible to define media as first class entities as
the existence of specific (possibly complex) media can be direct requirement of the application.
3
It should be mentioned that the Computation Independent Model (CIM) part of the MDA framework is outside the
scope of MML as MML focuses on the design phase. However, it is basically possible to derive the MML Domain Model
from a computation independent Domain Model or to create a transformation from a computation independent Task Model
onto the Scene Models and the Presentation Model.
194 8. Validation
Comparison of Selected Approaches Table 8.2 compares some representative modeling approaches
from section 4: UsiXML [Usi07] as representative for the User Interface Modeling Domain, UWE
[Koch et al.07] from Web Engineering Domain, OMMMA [Engels and Sauer02] as one of the most
influencing multimedia modeling approaches and two document-oriented multimedia modeling ap-
proaches, the one from Boll [Boll01] and Madeus [Villard et al.00]. They are introduced in chapter 4.
The comparison considers the support for application logic, user interface design, and interaction
in general (first three rows in table 8.2). The support modeling for media is considered in more detail
by the identified requirements from the list above.
8.3 Internal Validation 195
As visible in the table, none of the approaches besides MML covers the user interface, interaction,
application logic together with comprehensive media support.
It should also be kept in mind, that the integration of the listed requirements for advanced media
usage is not trivial. This thesis has shown a detailed discussion of such a integration (see different
abstraction layers in fig. 5.9 and 5.14) and provides a resulting consistent modeling concept for them.
To the best knowledge of the author, MML is the only approach which provides such a concept.
The presented comparison regards only the features of the modeling language itself. Regarding
model-driven development for interactive multimedia, including code generation for multimedia au-
thoring tools like Flash, there is (to the knowledge of the author) no existing approach with similar
goals besides MML.
Chapter 9
This section gives an outlook on further work addressing a better integration of Software Engineering
and creative design. It generalizes the idea presented in this thesis, to integrate models for systematic
and well-structured software development and visual tools for creative design. Parts of this chapter
are close to [Pleuß and Hußmann07].
Graphics
Design
Photoshop FreeHand
Illustrator Cinema 4D
Powerpoint
...
Microsoft Visio Flash
MindManager Java
… HTML
Conceptual Prototype
Design Implementation
Figure 9.1: Simplified user interface design process and used tools in practice (based on [Ziegler08].
this department [Ziegler08]1 , co-supervised by the author of this thesis. Ziegler was directly involved
as a team member into the design process and gained her results by personal observation as well as by
a large number of semi-structured interviews.
The advantage of using a large palette of different tools is that designers can select for each task
the most efficient tool. Thereby, it is important that they are used to the tool so that they can quickly
perform their tasks. On the other hand, the tool must be powerful enough to precisely realize the
designer’s creative ideas. However, the drawback is that the different tools are highly heterogeneous.
They provide neither support for cooperative work nor for managing the created artifacts. Moreover,
they use different file formats which are often incompatible.
Thus, handling the large amount of artifacts created over the time can become tedious. Possible
problems are for instance [Ziegler08]:
• The different artifacts have to be managed manually, e.g. by storing them in a common folder
structure.
• Changes in existing artifacts have to be propagated manually or by personal communication to
other collaborators.
• Reuse of parts from existing artifacts is only possible by copy and paste, e.g. by searching for a
specific part of a graphic in one document, cut it, and copy it into another screen.
• Often, results received from a previous step performed with a different tool have to be recreated
again in the next step. A simple example is that user interface screens provided by the designer
have to be manually recreated during prototype implementation.
One of the main ideas in this thesis is to use models and transformations for the integration of
multimedia authoring tools and systematic development. The next section describes a proposal to
generalize this idea like following: models and transformations can be used to integrate various het-
erogeneous tools with a more systematic development.
Flash: Click-Dummy
GUI Builder:
Photoshop: Mock-Up Functional Prototype
Transformations
Model
and artifacts. This ensures consistency between the artifacts produced by heterogeneous tools and fur-
thermore reduces effort. For instance, the results from previous development tasks can automatically
be transformed into skeletons for subsequent tasks instead of taking them over manually.
Figure 9.2 visualizes this idea on models acting as a “central hub”. The upper part shows ex-
amples for earlier development phases where prototypes play a central role in interactive systems
development. For example, Photoshop mock-ups can be used to select first ideas about the system to
be developed. When this step is finished, transformations are used to transmit the relevant informa-
tion from the mock-ups into the model where it can be used for further development steps. A simple
example for extracting information from Photoshop mock-ups is provided in the next section.
A possible subsequent step could be creating Flash click-dummies for gaining more specific user
feedback. During this step, additional information about the system is added which should again
be kept in a central place, i.e. in the model. Thus, it is important to allow transitions into both
directions: extraction of relevant abstract information from the tools (kind of “reverse engineering”)
and generation of artifacts for the desired tools based on the existing model information. The ideal case
would be seamless transitions between the model and different heterogeneous tools, like in Round-
Trip Engineering (see sec. 7.3.1).
The lower part of figure 9.2 shows examples for later development steps, such as implementation
of a final release. Here, the kinds of tools are more diverse and depend on the application domain
and the target platforms. Models can be used to distribute the final implementation on different tools
optimized for realizing different aspects of the system. For example, in multimedia development with
Flash, it is a common practice to develop the code for system’s application logic within an external
programming IDE (like FDT [Powerflasher]), instead of using the Flash authoring tool’s built-in code
editor.
Extracting Information from Photoshop Photoshop is an image editing software which can be
used for the very fast creation of user interface mock-ups, i.e. images to present possible ideas about
the user interface to the customer or the target user group. Based on the mock-ups the most promising
approaches are selected and can then be further refined using more advanced prototypes e.g. created
with Flash or Java2
The information shown in the mock-up includes for instance the user interface elements which
should be provided on a specific screen. It also contains information about the intended layout, the
size of elements, the color scheme, etc. However, since the mock-ups are just images (raster graphics),
this information is not stored within the mock-ups. Instead, it has to be recreated manually in later
steps, e.g. when creating a click-dummy with Flash or Java.
Thus, the idea is to extract the relevant information from the mock-ups and store it in a model.
For this purpose, the designers working with Photoshop have to obey a convention: Each part of
the image which represents a user interface element is placed on a layer of its own. Indeed, it is a
common practice to use a large number of layers when working with Photoshop, as otherwise it is
not possible to move elements later. By convention, the designer has to specify a specific layer name
to each layer containing a user interface element which indicates the element’s name and type (for
instance <name>_<type>). The possible types can be for instance taken from user interface modeling
approaches.
Indeed, introducing an additional convention is to some extent a drawback. However, it is not
necessarily a problem, as designers are basically used to consider conventions and the convention
does not restrict the design or functionality of Photoshop.
Based on this convention, the information can be extracted as follows: Photoshop provides a built-
in command “Save Layers” which causes all layers to be saved on disk in separate files. The resulting
file names then correspond to the layer names which contain by convention the type and the name of
the user interface element. A simple Java application then collects the file names, parses them, and
creates a corresponding model, e.g. a simple kind of user interface model. Moreover, the graphics for
the single user interface elements are stored separately in this way and can be directly reused.
The model is used as base for further development steps, which may include, for instance, trans-
formations to code skeletons for a Flash click-dummy according to the mock-ups.
Application based on XAML The Extensible Application Markup Language (XAML [XAM]) from
Microsoft (briefly introduced in section 4.1.1) is a specification language for concrete user interfaces.
It is used for Microsoft technologies like the Windows Presentation Foundation. Applications with
XAML user interfaces can be interpreted in a for instance in the Silverlight [Sil] plugin for web-
browsers. It is also possible to edit and process them in Microsoft Visual Studio [Vis] and compile
them for .NET applications.
Microsoft has recently developed two tools for user interface design which can be used to create
XAML documents: Expression Design [Expb] is a drawing tool with similar coverage like Photoshop.
Expression Blend [Expa] is an authoring tool for XAML user interfaces. Its functionality is, roughly
spoken, similar to Flash.
Altogether, XAML and the related technologies realize already our vision to some extent: Ex-
pression Design and Expression Blend can be used for various steps in creative design. The results
2
Please note that this is a very simple example for illustration purposes compared to a user interface design process like
in [Ziegler08].
9.3 First Steps 201
Graphics
Design
Expression Design
Expression Blend
Powerpoint Aurora XAML Designer
Microsoft Visio
MindManager Expression Blend
… Visual Basic
are stored in XAML which can be used even for the final implementation with Visual Studio. This
enables a seamless transition between different tools and different developers.
Such a process was applied in a real-world project in a large user interface design department
in [Ziegler08]. Beside Expression Blend and Expression Design, Aurora XAML designer, a third-
party tool for creating XAML user interfaces, was used. Figure 9.3 shows the resulting situation:
The “Graphic Designers” perform their tasks using Expression Design. Their results are stored in
XAML and can be directly used for the prototype implementation. Due to XAML as “central hub”, all
subsequent changes can be automatically propagated back and forth between the different developer
groups.
[Ziegler08] observed the resulting development process and interviewed the different developers
about their experience. As result, she identified several problems. Many of these problems concern
technical details of the tools, for instance missing functionality compared to Photoshop. As the tools
are new, some of these problems might disappear in future versions.
More problematically was the observed problem, that only some the graphic designers were able
to structure the XAML user interface in such a way that it can be reused for the prototype implemen-
tation. This regards for instance usage of hierarchically nested user interface container components.
This means, that the advanced cooperation based on XAML would require also some learning effort
on conceptual level for the graphic designers. At this point it is hard to predict how difficult this would
be in practice and whether it is realistic or not.
Compared to the vision from section 9.2, XAML also has some drawbacks. First, the technology
is proprietary and restricted to Windows. Second, XAML is only in the broadest sense a modeling
language – it is much more a user interface specification languages. It provides only a low level
of abstraction and covers, in terms of user interface modeling, at most the Concrete User Interface
level. Consequently, [Ziegler08] found no way how to integrate e.g. the “Conceptual Design” into the
XAML-based approach.
Summary Altogether there are still many open questions. The presented vision is certainly not
much elaborated yet. Nevertheless, technologies like XAML show that this is indeed a relevant topic
in industry.
XAML represents an already very comprehensive example. However, the vision as described in
section 9.2 aims for a more general solution based on more profound concepts like standard-compliant
modeling languages and different levels of abstraction. A proposal for a next step can be found in
[Schweizer08] (supervised by the author of this thesis) which proposes to create transformations be-
202 9. Outlook: Towards Better Integration of Software Engineering and Creative Design
tween UsiXML and XAML in both directions and provides a (very first) prototype. A transformation
from UsiXML to XAML can also be found in [Martinez-Ruiz et al.06a].
Chapter 10
This section provides a summary, lists the contributions, discusses future work and finally draws some
conclusions.
10.1 Summary
This work has presented a model-driven development approach for interactive multimedia applica-
tions. It consists of the Multimedia Modeling Language (MML) (sec. 5 and 6) and automatic trans-
formations into code skeletons for different platforms (sec. 7 and 8.1). MML is platform independent
and bases on existing modeling approaches like UML, user interface modeling approaches, and multi-
media modeling (sec. 4 and 8.3.3). The resulting modeling language provides support for integration
of software design, media design, and user interface design (sec. 6.6). In addition, it allows modeling
advanced concepts of media objects, such as interactivity and dynamic alterations (sec. 5.2). Both,
models and transformations, are defined in compliance to the concepts of Model-Driven Engineering
(sec. 3.3 and 8.3.2).
Several model transformations exist for different target platforms. The most important target
platforms addressed here are multimedia authoring tools. The authoring tool Flash was chosen as
example because it is one of the most important professional platforms for multimedia application
development (sec. 2.3.3). It is possible to automatically generate code skeletons from MML models
which can be directly loaded and processed within the authoring tool (sec. 7.3). Thereby, the overall
application structure and the relationships between its different parts are generated from the models
(sec. 7.2). In contrast, for concrete media objects, user interface elements, and detailed application
logic, only placeholders are generated. The placeholders are filled out in the authoring tool making
use of its powerful support for visual creative design (sec. 7.4). In this way, the strengths of models
(systematic structuring) and authoring tools (creative design) are both combined.
The approach presented here has been carefully validated. This includes demonstration by various
implementations (sec. 6.7, 7.3, and 8.1), practical application in various projects (sec. 8.2), as well as
theoretical examination from different points of view (sec. 8.3.2). In addition, it is shown that MML is
the first modeling language which covers all three aspects to be modeled for an interactive multimedia
application, which are application logic, interactivity, and Media Components (sec. 8.3.3). Moreover,
MML is the first approach integrating existing well-established authoring tools into model-driven
development.
204 10. Summary and Conclusions
10.2 Contributions
In summary, this thesis provides the following general conceptual research contributions:
Refinements on MML During the validation in section 8.3.1 two issues for future work have been
identified:
• Find possible alternative notations for Media Components (beyond the icons) and evaluate them
in user tests.
• Support for reuse of user interface elements like in other existing user interface modeling ap-
proaches.
In addition, several useful extensions on the different MML language parts have been discussed
in section 6:
• Transformation from the Task Model to an initial Scene Model and Interaction Model (“Future
Extensions” in sec. 6.3).
• Extending the Scene Model with support for Composite Scenes (“Composite Scenes” in sec. 6.3).
• Further work on the Interaction Model; its current tool support is still on a more prototypical
stage compared to the other models and it has not been used extensively during the external
validation yet.
Practical Application The most important future step for MML is obviously to gain more practical
experience. Ideally, it should be applied in real-world projects in industrial practice. However, the
most important problem is probably the missing professional tool support. Although the existing
tools are sufficient to use MML in student projects, it is still far away from a really usable and stable
10.3 Future Work 205
professional tool which could be extensively used by other people on their own (i.e. without some
support by the author of this thesis or good previous knowledge on the Eclipse tools). The same
problems holds for many related approaches e.g. from user interface modeling domain [Clerckx
et al.04].
Nevertheless, there is a rapid progress in tool support in Model-Driven Engineering in the last
years. A very favorable fact is that projects like the Eclipse Modeling Project ([Ecld], see sec. 3.4.3
and 6.7) bundle the efforts on tool development for MDE. In the past, it often happened that research
concepts were implemented by different research groups independently and from scratch. This led in
the end to a variety of many incompatible alternative implementations where none of them was really
elaborated enough to help in practice. In contrast, the various Eclipse projects have grown together
and it has already emerged a very powerful collection of compatible and already very stable tools. The
existing tools are continuously extended and refined and make development of custom modeling tools
significantly easier than a few years before. Due to this pleasing situation it indeed becomes realistic
that it is possible to extend and refine the tool support for MML in the next years as MML was, from
start, developed in compliance to these tools.
Combination with other approaches The initial scope of MML (sec. 5.1.1) includes comprehen-
sive support for interactive multimedia combined with the basic concepts from UML and from user
interface modeling. It is thus an obvious opportunity to extend this scope towards additional concepts
from user interface modeling. The MML metamodel was designed with this in mind. For instance,
there is an abstract metaclass Abstract Interaction Object, analogous to other metamodels from user in-
terface modeling area. It is possible, for instance, to extend or replace the current subclasses with those
e.g. from UsiXML (sec. 4.1.2) or to add additional metaclasses for covering context-sensitiveness.
Another useful extension would be a combination with modeling approaches for Web and Rich
Internet Applications, similar like e.g. the combination described in [Preciado et al.08]. Such a
combination has already been discussed with one of the current contributors to UWE (sec. 4.2) and
might be realized in the next time.
General Integration of Different Aspects in User Interface Modeling In general, there are var-
ious kinds of models in user interfaces modeling area, covering different aspects like multimedia,
context-sensitivity, physical objects, etc. Even more aspects may arise in the future due to new in-
teraction techniques or from the area of Ubiquitous Computing. As discussed for instance on the
MDDAUI workshop in 2007 [Pleuß et al.07c], it raises the question how to manage and combine all
the models for these different aspects in long-term.
One possibility is, to agree on a kind of “unified” modeling language, like the UML, which in-
tegrates all these aspects (i.e. supports multimedia and context and physical objects and any other
possible kind of user interface). This would be mainly a matter of organization and is probably af-
fected by many practical problems.
A second alternative is to omit a general integration and instead create over the time many different
Domain Specific Languages (DSL) (see sec. 3.4.1). These DSLs can then be tailored and optimized
for the kind of user interface required in a specific project or for a specific company. In such an
approach, the existing (more general) metamodels from research would probably be used only as
orientation or starting point but could not be directly reused.
A third alternative would be a kind of “construction kit” mechanism: metamodels for various
aspects (like multimedia, context, etc.) are collected in a kind of library together with a common
framework for combining them. Different researchers could contribute with metamodels supporting
206 10. Summary and Conclusions
different or new aspects of user interfaces. The metamodels would have to follow a common structure
or to provide a kind of interface so that they could be combined. Maybe the combination (which
then would still be performed by modeling language specialists – not by end users) could be partially
supported by predefined transformations or some kind of “metamodel weaving”. A similar idea was
for instance proposed for UML Profiles in their early days (see the OMG White Paper on UML Profiles
in [Obj99]). Some first libraries for metamodels can be found for instance at [Atlb]. Certainly, such an
approach is currently far away from a practical realization and would require a lot of future research
on MDE and Language Engineering.
10.4 Conclusions
Based on the experiences and results mentioned in this thesis, Model Driven Engineering seems to
be able to fulfill many of its expectations. In the author’s experience, the explicit and declarative
form of metamodels and transformations and the corresponding tools were helpful during the devel-
opment of MML. For instance, maintenance of MML (with currently around 120 metaclasses) was
relatively easy and convenient by just visually editing the metamodel and automatically generating an
implementation and a tree-editor (which is sufficient for testing pruposes) with EMF (see sec. 3.4.3).
Moreover, based on the existing ATL transformation for Flash, students without any previous know-
ledge on MDE were able to create additional transformations (Java/Piccolo, sec. 8.1.1; ActionScript 3,
sec. 7.3) in short time. In the authors’s opinion, models and MDE certainly have the power to become
(as envisioned e.g. in [Bézivin05]) a new basic paradigm for Software Engineering.
Clearly, there are still some limitations. The external validation with students (see questionnaire
on p. 180), as well as personal talks to different people from industry, has shown that – beside many
positive findings – there are still software developers who are very critical against such systematic and
quite “formal” methods like MDE. Such skepticism regarding new approaches from research have
always occurred in Software Engineering – e.g. object-orientation was introduced. On the other hand,
it can be learned the past, that it is certainly useful to prevent overrated expectations. New paradigms
can never be the only “silver bullet” solving all existing problems – there are still some areas where
e.g. object-orientation plays no role or where e.g. procedural programming is sufficient. Likewise,
there will always be projects and situations where MDE is not sufficient or, at least, must be combined
with other approaches.
Certainly, it is of great importance for MDE, that it is not applied in a too isolated and dogmatic
way. Instead, bridges have to be build to other areas so that the strengths of MDE are emphasized
while its limitations are compensated by other solutions. For instance, good user interface design is
essential for an application’s quality. It cannot be the solution for MDE to neglect creative design
or just to discard the established existing methods and tools for user interface design. Instead, it
is necessary to build a bridge to this area. This thesis has shown through very concrete examples
a possible way for such a bridge – towards a better integration of Model-Driven Engineering and
creative design.
Appendix A
The next page shows the facets and their values of the taxonomy for multimedia applications taken
from Hannington and Reed [Hannington and Reed02].
208 A. Multimedia Taxonomy by Hannington and Reed
Figure A.1: factes and possible values for the taxonomy for multimedia applications taken from [Han-
nington and Reed02].
Appendix B
B.1 Properties
Property Description
_alpha:Number The alpha transparency value of the movie clip.
blendMode:Object The blend mode for this movie clip.
cacheAsBitmap:Boolean If set to true, Flash Player caches an internal bitmap
representation of the movie clip.
_currentframe:Number Returns the number of the frame in which the play-
[read-only] head is located in the movie clip’s timeline.
_droptarget:String Returns the absolute path in slash-syntax notation of
[read-only] the movie clip instance on which this movie clip was
dropped.
enabled:Boolean A Boolean value that indicates whether a movie clip
is enabled.
filters:Array An indexed array containing each filter object cur-
rently associated with the movie clip.
focusEnabled:Boolean If the value is undefined or false, a movie clip cannot
receive input focus unless it is a button.
_focusrect:Boolean A Boolean value that specifies whether a movie clip
has a yellow rectangle around it when it has key-
board focus.
_framesloaded:Number The number of frames that are loaded from a stream-
[read-only] ing SWF file.
_height:Number The height of the movie clip, in pixels.
_highquality:Number Deprecated since Flash Player 7. This property was
deprecated in favor of MovieClip._quality.
B.3 Operations
Signature Description
attachAudio(id:Object) Specifies the audio source to be played.
:Void
attachBitmap(bmp Attaches a bitmap image to a movie clip.
:BitmapData, depth:Number,
[pixelSnapping:String],
[smoothing:Boolean]):Void
attachMovie(id:String, Takes a symbol from the library and attaches it to the
name:String, depth:Number, movie clip.
[initObject:Object])
:MovieClip
beginBitmapFill(bmp Fills a drawing area with a bitmap image.
:BitmapData, [matrix
:Matrix], [repeat
:Boolean], [smoothing
:Boolean]):Void
212 B. ActionScript Class MovieClip – Documentation
nextFrame():Void Sends the playhead to the next frame and stops it.
play():Void Moves the playhead in the timeline of the movie
clip.
prevFrame():Void Sends the playhead to the previous frame and stops
it.
removeMovieClip():Void Removes a movie clip instance created with dupli-
cateMovieClip(), MovieClip.duplicateMovieClip(),
MovieClip.createEmptyMovieClip(), or
MovieClip.attachMovie().
setMask(mc:Object):Void Makes the movie clip in the parameter mc a mask
that reveals the calling movie clip.
startDrag([lockCenter Lets the user drag the specified movie clip.
:Boolean], [left:Number],
[top:Number], [right
:Number], [bottom:Number])
:Void
stop():Void Stops the movie clip that is currently playing.
stopDrag():Void Ends a MovieClip.startDrag() method.
swapDepths(target:Object) Swaps the stacking, or depth level (z-order), of this
:Void movie clip with the movie clip that is specified by
the target parameter, or with the movie clip that cur-
rently occupies the depth level that is specified in the
target parameter.
unloadMovie():Void Removes the contents of a movie clip instance.
Event Description
onData():Void Invoked when a movie clip receives data
from a MovieClip.loadVariables() call or a
MovieClip.loadMovie() call.
onDragOut():Void Invoked when the mouse button is pressed and the
pointer rolls outside the object.
onDragOver():Void Invoked when the pointer is dragged outside and
then over the movie clip.
onEnterFrame():Void Invoked repeatedly at the frame rate of the SWF file.
onKeyDown():Void Invoked when a movie clip has input focus and user
presses a key.
onKeyUp():Void Invoked when a key is released.
onKillFocus(newFocus Invoked when a movie clip loses keyboard focus.
:Object):Void
onLoad():Void Invoked when the movie clip is instantiated and ap-
pears in the timeline.
onMouseDown():Void Invoked when the mouse button is pressed.
onMouseMove():Void Invoked when the mouse moves.
B.4 Event Handling Operations 215
Main:
1. For each application, a new main folder is generated named by the application. It contains
a folder media and a folder model. (For the ActionScript classes a folder corresponds to a
package).
2. A folder util is generated where some library classes and interfaces are copied into.
Domain Classes:
5. A Domain Class is mapped to an ActionScript class file in the folder model. For each class:
Media Components:
7. A Media Components is mapped to a file in the folder media containing a simple placeholder to
be replaced by the media designer. The filename corresponds to the Media Component’s name.
Its type depends on the media type:
218 C. Transformation from MML to Flash Model
8. In addition, an ActionScript class is created which may provide general operations and proper-
ties of the media component. It is generated in the folder media and is automatically attached
to the placeholder, e.g. the MovieClip in case of an animation.
9. Properties and Operations from Interfaces in MML are mapped to properties and operations in
the ActionScript class from rule 8.
10. If a Media Component is manifested by Media Artifacts (sec. 5.2.5) then a subfolder of the
folder media is generated named after the Media Component and containing a file for each
Media Artifact.
11. Inner Structure of Media Components is defined by Media Parts, Part Artifacts, and Inner Prop-
erties. Their mapping depends on the media type. As only animations and graphics are created
within Flash itself, the inner structure is only fully supported for these two media types as
example:
In Flash itself it is possible to distinguish between the two stereo channels and mod-
ify the panning. It is also possible to play synchronize multiple pieces of audio in the
timeline.
11.3. 3D animation is not supported by Flash. Basically, the inner structure of 3D ani-
mations can be mapped to VRML or X3D code analogous to SSIML [Vitzthum and
Pleuß05]. An Object3D is mapped to an external file. Each instance corresponds
to an Inline Node referring to this file. Transformation3D, Camera3D, Light3D, and
Viewpoint3D are mapped to corresponding VRML/X3D nodes.
11.4. A Text Region can be mapped to a text file. For each Inner Property code is gener-
ated which adds the Text Region at runtime to Text Areas.
12. If a Media Component has different variants (see sec. 5.2.10) then a file is generated for each
value combination. The Variation Type values of each file are attached as suffixes to the file-
name, separated by ‘_’ (e.g. video1_english_low, video1_english_high, video1_german_low,
video1_german_high, etc.).
13. Note that Media Representations are not explicitly reflected in the generated code as the imple-
mentation proposed here uses only the Observer pattern between Domain Classes and AIOs to
manipulate user interface elements.
Scenes:
14. A scene from the MML model is mapped to a FLA file (representing the Presentation Unit) and
an ActionScript class. Both are located in the top-level folder. The ActionScript class for the
Scene complies to the structure described in section 7.2.2, i.e. it applies the Singleton design
pattern for accessing Scene, provides a loading mechanism, and is dynamically attached to the
content of the FLA file (the Presentation Unit).
15. The Application Start is mapped to a static operation main in the main ActionScript class from
rule 4 and to script code in the first frame of the timeline in the main Flash Document from
rule 3 which triggers the operation main. (The operation main is provided for compatibility
with the popular external third-party ActionScript compiler [Motion-Twin]).
16. An Entry Operation is mapped to an operation of its Scene’s ActionScript class named with the
prefix entry_.
18. A Transition from the Scene Model is mapped to code in the operation body of the correspond-
ing Exit Operation (resp. the operation main from rule 15). The code loads the target Scene and
afterwards invokes the target Entry Operation analogous to listing 7.5.
19. For each Scene class an operation init is generated where code to initialize contained user in-
terface elements is generated into. For example output components are initialized as observer
(with addObserver()) by default (see rule 25)
20. For each Scene a folder (package) is generated which is used to store the ActionScript classes
for contained user interface elements (see rule 22)
220 C. Transformation from MML to Flash Model
AIOs:
21. An AIO is mapped to a Movie Clip and an instance on the stage. The Movie Clip acts as
container and has content depending on the AIO type:
• For AIOs realized by Media Instances the container Movie Clip contains these Media
Instances. Therefore, a library item is generated in the Scene’s FLA file which refers to
the Media Component from the folder media (see 7.2.3).
• For AIOs not realized by a Media Instance the container Movie Clip contains one or more
widget instances according to the AIO type. For instance, for an Action Component an
instance of a button named with the name of the AIO while for an Input Component a text
label showing the name of the AIO and a text input field next to it.
22. For each AIO an ActionScript class is generated in the Scene’s folder which is attached to the
container Movie Clip. This class is used for event handling operations (“Controller” in terms of
MVC). The default code generated into this class initializes a default event listener depending
on the widget type. For instance, for buttons a click event listener and for text input fields an
enter event listener. The developer has to complete the body of the event handling operation
manually, except for Action Components referring to an operation – in this case the operation
call is generated automatically.
23. The instance on the stage is defined as property of the Scene class (to be directly accessible in
the class, see 7.1.3).
24. A domain object represented by an AIO is mapped to a class property in the Scene class.
25. A UI Representation between a domain object and an AIO from type Output Component or
Edit Component is mapped to code for the Observer pattern:
• The ActionScript class for the AIO implements the interface observer and provides an
operation update
• A line of code is added to the operation init in the Scene class which adds the AIO class
as observer to the domain object. (The domain object is available as property in the Scene
class and all Domain classes are defined as Observable, see above).
• Sensors are mapped to corresponding ActionScript code in the Scene class and attached to
the Media Instance they belong to. If a Sensor is owned by a Media Component (instead
of a single instance) then in Flash the sensor code is attached to all Media Instances. For
example a Collision Sensor is mapped to an onEnterFrame operation in the Scene class.
This operation is inherited from MovieClip and is called every time the Scene enters a new
frame. Within onEnterFrame the operation hitTest from class MovieClip is used to find out
whether a collision appeared.
Interaction:
26. The information from the Interaction Model is mapped to code within the corresponding Entry
Operation. The mapping mainly corresponds to general rules for mapping UML Activity Dia-
grams to source code. A discussion and a first prototypical implementation based on existing al-
gorithms has been discussed and implemented in the Diploma Thesis by Shaykhit [Shaykhit07]
supervised by the author of this work.
Appendix D
Questionnaire
The next four page show the questionnaire on MML which has been filled out by 27 participants after
the course “Multimedia-Programming” in 2006.
222 D. Questionnaire
I. Programmier-Vorkenntnisse:
Mit Flash/ActionScript hatte ich vor Beginn der Lehrveranstaltung folgende Vorerfahrungen:
Professionelle Hobby-Projekte Grundkenntnisse Keine Kenntnisse
Projekte
Java O O O O
Mit anderen Programmiersprachen habe ich folgende Erfahrungen:
Professionelle Hobby-Projekte Grundkenntnisse Keine Kenntnisse
Projekte
Java O O O O
C/C++ O O O O
JavaScript O O O O
PHP O O O O
__________ O O O O
__________ O O O O
Mit anderen Multimedia-Autorenwerkzeugen habe ich folgende
Erfahrungen:
Professionelle Hobby-Projekte Grundkenntnisse Keine Kenntnisse
Projekte
Director O O O O
Toolbook O O O O
__________ O O O O
__________ O O O O
Vor Beginn der Lehrveranstaltung hatte ich folgende Vorerfahrung mit graphischen
Modellierungssprachen wie UML oder MML:
Ich habe Modelle Ich habe Beispiel- Ich habe davon Keine Kenntnisse
für eigene Projekte Modelle (z.B. aus gehört oder
erstellt Übungsaufgaben) gelesen
erstellt.
UML O O O O
MML O O O O
__________ O O O O
Ich verfüge über grundlegende Kenntnisse im Bereich der Ja Nein
Softwaretechnik (Software-Engineering).
O O
Ich habe bereits im Rahmen des Softwarepraktikums ein Spiel Ja Nein
programmiert.
O O
Fachsemester: (Zahl)
Ich habe ….…. Prozent der Zeit des Gesamtprojekts für die Modellierung mit MML benötigt.
(bitte Zahl einsetzen)
Bezogen auf das Codegerüst („ExampleProject“), das Ihnen im MMP-Projekt zur Verfügung
gestellt wurde:
Ich Ich
stimme stimme
voll zu nicht zu
Der Einarbeitungsaufwand in das Codegerüst war gering.
O O O O O
Unser Team hat das Codegerüst verwendet.
O O O O O
Falls verwendet:
Die Qualität des Codes im Codegerüst ist hoch.
O O O O O
Die Verwendung von (generierten) Codegerüsten ist in
Multimedia-Projekten grundsätzlich sinnvoll.
O O O O O
225
Stellen Sie sich vor, der Code würde automatisch aus den MML-Modellen generiert.
Wie schätzen Sie den Gesamtansatz (Verwendung von MML und automatische
Codegenerierung aus den Modellen) ein im Vergleich zu „herkömmlichen“ Vorgehen (d.h.
Vorgehen ohne Entwurfsphase)?
viel besser gleich viel schlechter
Wartbarkeit, d.h. die Anwendung ist gut strukturiert und kann
nachher einfach geändert oder erweitert werden
O O O O O
Plattformunabhängigkeit, d.h. die Anwendung kann einfach
für verschiedene Plattformen (z.B. unterschiedliche Geräte)
O O O O O
implementiert werden.
Sonstige Kommentare:
226 D. Questionnaire
Bibliography
[Abrams and Helms04] M. Abrams and J. Helms, User Interface Markup Language (UIML)
Specification, 3rd ed., UIML.org, March 2004, wd-UIML-UIMLspecification-3.1.
URL: http://www.oasis-open.org/committees/download.php/5937/uiml-core-3.1-dra%
20ft-01-20040311.pdf
[Ado05a] Flash 8 – ActionScript 2.0 Language Reference, Adobe, San Francisco, CA, 9 2005.
URL: http://download.macromedia.com/pub/documentation/en/flash/fl8/fl8_as2lr.pdf
[Ado05b] Flash 8 – Components Language Reference, Adobe, San Francisco, CA, 9 2005. URL:
http://download.macromedia.com/pub/documentation/en/flash/fl8/fl8_clr.pdf
[Ado05c] Flash 8 – Extending Flash, Adobe, San Francisco, CA, 9 2005. URL:
http://download.macromedia.com/pub/documentation/en/flash/fl8/fl8_extending.pdf
[Ado08] SWF File Format Specification, 10th ed., Adobe, 11 2008. URL: http://www.adobe.
com/devnet/swf/pdf/swf_file_format_spec_v10.pdf
228 BIBLIOGRAPHY
[Aedo and Díaz01] I. Aedo and P. Díaz, “Applying software engineering methods for hypermedia
systems,” in ITiCSE ’01: Proceedings of the 6th annual conference on Innovation and
technology in computer science education. New York, NY, USA: ACM, 2001, pp.
5–8.
[Alanen and Porres08] M. Alanen and I. Porres, “A metamodeling language supporting subset and
union properties,” Software and System Modeling, vol. 7, no. 1, pp. 103–124, 2008.
[Allen83] J. F. Allen, “Maintaining knowledge about temporal intervals,” Commun. ACM, vol. 26,
no. 11, pp. 832–843, 1983.
[André95] E. André, Ein planbasierter Ansatz zur Generierung multimedialer Präsentationen, ser.
DISKI. Infix Verlag, St. Augustin, Germany, 1995, vol. 108.
[Apple88] Apple, Ed., Hypercard Script Language Guide: The Hypertalk Language. Boston,
MA, USA: Addison Wesley, 8 1988. URL: http://amazon.com/o/ASIN/0201176327/
[Arens and Hovy95] Y. Arens and E. Hovy, “The design of a model-based multimedia interaction
manager,” Artif. Intell. Rev., vol. 9, no. 2-3, pp. 167–188, 1995.
[Arndt99] T. Arndt, “The evolving role of software engineering in the production of multimedia
applications,” in Multimedia Computing and Systems, 1999. IEEE International Con-
ference on, vol. 1, 7-11 June 1999, pp. 79–84vol.1.
[ASD] “Action Script Development Tools (ASDT) and AXDT,” [Website]. URL: http:
//www.asdt.org/
[Atkinson and Kühne01] C. Atkinson and T. Kühne, “The Essence of Multilevel Metamodeling,” in
UML 2001 - The Unified Modeling Language, Modeling Languages, Concepts, and
Tools, 4th International Conference, Toronto, Canada, October 1-5, 2001, Proceed-
ings, ser. Lecture Notes in Computer Science, M. Gogolla and C. Kobryn, Eds., vol.
2185. Springer, 2001, pp. 19–33.
[Atkinson and Kühne02] C. Atkinson and T. Kühne, “Profiles in a strict metamodeling framework,”
Sci. Comput. Program., vol. 44, no. 1, pp. 5–22, 2002.
[Bailey and Konstan03] B. P. Bailey and J. A. Konstan, “Are informal tools better?: comparing DE-
MAIS, pencil and paper, and authorware for early multimedia design,” in CHI ’03:
Proceedings of the SIGCHI conference on Human factors in computing systems. New
York, NY, USA: ACM, 2003, pp. 313–320.
230 BIBLIOGRAPHY
[Balzert and Weidauer98] H. Balzert and C. Weidauer, “Multimedia-Systeme: Ein neues Anwen-
dungsgebiet für die Software-Technik,” Softwaretechnik-Trends, vol. 18, no. 4, pp. 4–9,
November 1998.
[Balzert et al.96] H. Balzert, F. Hofmann, V. Kruschinski, and C. Niemann, “The JANUS Application
Development Environment - Generating More than the User Interface,” in Computer-
Aided Design of User Interfaces I, Proceedings of the Second International Workshop
on Computer-Aided Design of User Interfaces, June 5-7, 1996, Namur, Belgium, J. Van-
derdonckt, Ed. Presses Universitaires de Namur, 1996, pp. 183–208.
[Balzert95] H. Balzert, “From OOA to GUIs - the JANUS System,” in Human-Computer Interac-
tion, INTERACT ’95, IFIP TC13 Interantional Conference on Human-Computer In-
teraction, 27-29 June 1995, Lillehammer, Norway, ser. IFIP Conference Proceedings,
K. Nordby, P. H. Helmersen, D. J. Gilmore, and S. A. Arnesen, Eds. Chapman & Hall,
1995, pp. 319–324.
[Bandelloni and Paternò04] R. Bandelloni and F. Paternò, “Flexible interface migration,” in Proceed-
ings of the 2004 International Conference on Intelligent User Interfaces, January 13-
16, 2004, Funchal, Madeira, Portugal, J. Vanderdonckt, N. J. Nunes, and C. Rich, Eds.
ACM, 2004, pp. 148–155.
[Baresi et al.01] L. Baresi, F. Garzotto, and P. Paolini, “Extending UML for Modeling Web Applica-
tions,” in HICSS ’01: Proceedings of the 34th Annual Hawaii International Conference
on System Sciences ( HICSS-34)-Volume 3. Washington, DC, USA: IEEE Computer
Society, 2001, p. 3055.
[Barry and Lang01] C. Barry and M. Lang, “A Survey of Multimedia and Web Development Tech-
niques and Methodology Usage,” IEEE MultiMedia, vol. 8, no. 2, pp. 52–60, 2001.
[Bastide and Basnyat06] R. Bastide and S. Basnyat, “Error Patterns: Systematic Investigation of De-
viations in Task Models,” in Task Models and Diagrams for Users Interface Design,
5th International Workshop, TAMODIA 2006, Hasselt, Belgium, October 23-24, 2006.
Revised Papers, ser. Lecture Notes in Computer Science, K. Coninx, K. Luyten, and
K. A. Schneider, Eds., vol. 4385. Springer, 2006, pp. 109–121.
[Beck and Andres04] K. Beck and C. Andres, Extreme Programming Explained: Embrace Change,
2nd ed. Addison-Wesley Professional, 2004.
[Bederson et al.04] B. B. Bederson, J. Grosjean, and J. Meyer, “Toolkit Design for Interactive Struc-
tured Graphics,” IEEE Trans. Softw. Eng., vol. 30, no. 8, pp. 535–546, 2004.
[Berti et al.05] S. Berti, F. Paternò, and C. Santoro, “A Taxonomy for Migratory User Interfaces,” in
Interactive Systems, Design, Specification, and Verification, 12th International Work-
shop, DSVIS 2005, Newcastle upon Tyne, UK, July 13-15, 2005, Revised Papers, ser.
Lecture Notes in Computer Science, S. W. Gilroy and M. D. Harrison, Eds., vol. 3941.
Springer, 2005, pp. 149–160.
[Bertino and Ferrari98] E. Bertino and E. Ferrari, “Temporal Synchronization Models for Multimedia
Data,” IEEE Trans. on Knowl. and Data Eng., vol. 10, no. 4, pp. 612–631, 1998.
[Besley et al.03] K. Besley, S. Bhangal, G. Rhodes, B. Monnone, S. Young, K. Peters, A. Eden, and
B. Ferguson, Macromedia Flash MX 2004 Games Most Wanted, 1st ed. Berkeley,
CA, USA: friends of ED, 11 2003. URL: http://amazon.com/o/ASIN/1590592360/
[Bézivin and Heckel05] J. Bézivin and R. Heckel, Eds., Language Engineering for Model-Driven
Software Development, 29. February - 5. March 2004, ser. Dagstuhl Seminar Proceed-
ings, vol. 04101. Internationales Begegnungs- und Forschungszentrum für Informatik
(IBFI), Schloss Dagstuhl, Germany, 2005.
[Bézivin et al.04] J. Bézivin, F. Jouault, and P. Valduriez, “On the Need for Meg-
amodels,” in OOPSLA Workshop on Best Practices for Model-Driven Soft-
ware Development, 2004. URL: www.sciences.univ-nantes.fr/lina/atl/www/papers/
OOPSLA04bezivin-megamodel.pdf
[Bézivin05] J. Bézivin, “On the unification power of models,” Software and System Modeling,
vol. 4, no. 2, pp. 171–188, 2005.
[Bilas05] S. Bilas, “What About Flash? Can You Really Make Games With It?” in
Game Developers Conference 2005, 2005. URL: http://www.drizzle.com/~scottb/gdc/
flash-paper.htm
232 BIBLIOGRAPHY
[Blair et al.97] G. Blair, L. Blair, H. Bowman, and A. Chetwynd, Formal Specification of Distributed
Multimedia Systems. University College London Press, September 1997. URL:
http://www.cs.kent.ac.uk/pubs/1997/339
[Bock03a] C. Bock, “UML 2 Activity and Action Models,” Journal of Object Technology, vol. 2,
no. 4, pp. 43–53, 2003.
[Bock03b] C. Bock, “UML 2 Activity and Action Models, Part 2,” Journal of Object Technology,
vol. 2, no. 5, pp. 41–56, 2003.
[Bock03c] C. Bock, “UML 2 Activity and Action Models, Part 3: Control Nodes,” Journal of
Object Technology, vol. 2, no. 6, pp. 7–23, 2003.
[Bock04a] C. Bock, “UML 2 Activity and Action Models, Part 4: Object Nodes,” Journal of
Object Technology, vol. 3, no. 1, pp. 27–41, 2004.
[Bock04b] C. Bock, “UML 2 Activity and Action Models, Part 5: Partitions,” Journal of Object
Technology, vol. 3, no. 7, pp. 37–56, 2004.
[Bodart et al.95] F. Bodart, A.-M. Hennebert, J.-M. Leheureux, I. Provot, B. Sacré, and J. Vander-
donckt, “Towards a Systematic Building of Software Architectures: the TRIDENT
Methodological Guide,” in Design, Specification and Verification of Interactive Sys-
tems ’95, Proceedings of the Eurographics Workshop in Toulouse, France June 7-9,
1995, P. A. Palanque and R. Bastide, Eds. Springer, 1995, pp. 262–278.
[Bodoff et al.05] D. Bodoff, M. Ben-Menachem, and P. C. K. Hung, “Web Metadata Standards: Ob-
servations and Prescriptions,” IEEE Softw., vol. 22, no. 1, pp. 78–85, 2005.
[Boles et al.98] D. Boles, P. Dawabi, M. Schlattmann, E. Boles, C. Trunk, and F. Wigger, “Ob-
jektorientierte Multimedia-Softwareentwicklung: Vom UML-Modell zur Director-
Anwendung am Beispiel virtueller naturwissenschaftlich-technischer Labore,” in Work-
shop Multimedia-Systeme, GI Jahrestagung, 1998, pp. 33–51.
[Boll01] S. Boll, “Zyx – Towards flexible multimedia document models for reuse and
adaptation,” Phd, Vienna University of Technology, Vienna, Austria, August 2001.
URL: http://medien.informatik.uni-oldenburg.de/index.php?id=31
[Bolt80] R. A. Bolt, “P̈ut-that-there:̈ Voice and gesture at the graphics interface,” in SIGGRAPH
’80: Proceedings of the 7th annual conference on Computer graphics and interactive
techniques. New York, NY, USA: ACM, 1980, pp. 262–270.
[Bourguin et al.07] G. Bourguin, A. Lewandowski, and J.-C. Tarby, “Defining Task Oriented Com-
ponents,” in Task Models and Diagrams for User Interface Design, 6th International
Workshop, TAMODIA 2007, Toulouse, France, November 7-9, 2007, Proceedings, ser.
Lecture Notes in Computer Science, M. Winckler, H. Johnson, and P. A. Palanque,
Eds., vol. 4849. Springer, 2007, pp. 170–183.
[Box98] D. Box, Essential COM. Boston, MA, USA: Addison-Wesley Professional, 1 1998.
URL: http://amazon.com/o/ASIN/0201634465/
[Bozzon et al.06] A. Bozzon, S. Comai, P. Fraternali, and G. T. Carughi, “Conceptual modeling and
code generation for rich internet applications,” in ICWE ’06: Proceedings of the 6th
international conference on Web engineering. New York, NY, USA: ACM, 2006, pp.
353–360.
[Braun and Mühlhäuser05] E. Braun and M. Mühlhäuser, “Automatically Generating User Interfaces
for Device Federations,” in Seventh IEEE International Symposium on Multimedia
(ISM 2005), 12-14 December 2005, Irvine, CA, USA. IEEE Computer Society, 2005,
pp. 261–268.
[Briand and Williams05] L. C. Briand and C. Williams, Eds., Model Driven Engineering Languages
and Systems, 8th International Conference, MoDELS 2005, Montego Bay, Jamaica,
October 2-7, 2005, Proceedings, ser. Lecture Notes in Computer Science, vol. 3713.
Springer, 2005.
[Britton et al.97] C. Britton, S. Jones, M. Myers, and M. Sharif, “A survey of current practice in
the development of multimedia systems,” Information & Software Technology, vol. 39,
no. 10, pp. 695–705, 1997.
[Broy et al.05] M. Broy, J. Dingel, A. Hartman, B. Rumpe, and B. Selic, Eds., A Formal Semantics
for UML, Workshop on European Conference on Model Driven Architecture ECMDA
2005, 2005. URL: http://www.cs.queensu.ca/~stl/internal/uml2/ECMDA2005/index.
html
234 BIBLIOGRAPHY
[Bruck and Hussey07] J. Bruck and K. Hussey, “Customizing UML: Which Technique is Right
for You?” 2007. URL: http://www.eclipse.org/modeling/mdt/uml2/docs/articles/
Customizing_UML2_Which_Technique_is_Right_For_You/article.html
[Bruel06] J.-M. Bruel, Ed., Satellite Events at the MoDELS 2005 Conference, MoDELS 2005
International Workshops, Doctoral Symposium, Educators Symposium, Montego Bay,
Jamaica, October 2-7, 2005, Revised Selected Papers, ser. Lecture Notes in Computer
Science, vol. 3844. Springer, 2006.
[Buchanan and Zellweger05] M. C. Buchanan and P. T. Zellweger, “Automatic temporal layout mech-
anisms revisited,” ACM Trans. Multimedia Comput. Commun. Appl., vol. 1, no. 1, pp.
60–88, 2005.
[Bulterman and Rutledge04] D. C. Bulterman and L. W. Rutledge, SMIL 2.0. Heidelberg, Germany:
Springer, 2004.
[Bulterman et al.91] D. C. A. Bulterman, G. van Rossum, and R. van Liere, “A Structure for Trans-
portable, Dynamic Multimedia Documents,” in Proceedings of the Summer 1991
USENIX Conference, Nashville, TN. USENIX Association, 1991, pp. 137–155.
[Clerckx et al.05a] T. Clerckx, K. Luyten, and K. Coninx, “Designing Interactive Systems in Context:
From Prototype to Deployment,” in People and Computers XIX Ů The Bigger Picture -
Proceedings of HCI 2005. London: Springer, 2005, pp. 85–100.
[Clerckx et al.05b] T. Clerckx, F. Winters, and K. Coninx, “Tool support for designing context-
sensitive user interfaces using a model-based approach,” in Task Models and Diagrams
for User Interface Design: Proceedings of the Forth International Workshop on Task
Models and Diagrams for User Interface Design - TAMODIA 2005, Gdansk, Poland,
September 26-27, 2005, M. Sikorski, Ed. ACM, 2005, pp. 11–18.
[Cockton87] G. Cockton, “Interaction ergonomics, control and separation: open problems in user
interface management,” Inf. Softw. Technol., vol. 29, no. 4, pp. 176–191, 1987.
[Cohen et al.97] P. R. Cohen, M. Johnston, D. McGee, S. Oviatt, J. Pittman, I. Smith, L. Chen, and
J. Clow, “QuickSet: multimodal interaction for distributed applications,” in MULTI-
MEDIA ’97: Proceedings of the fifth ACM international conference on Multimedia.
New York, NY, USA: ACM, 1997, pp. 31–40.
[Conallen00] J. Conallen, Building Web applications with UML. Boston, MA, USA: Addison-
Wesley Longman Publishing Co., Inc., 2000.
[Conallen02] J. Conallen, Building Web Applications with Uml, 2nd ed. Boston, MA, USA:
Addison-Wesley Longman Publishing Co., Inc., 2002.
[Coninx et al.03] K. Coninx, K. Luyten, C. Vandervelpen, J. V. den Bergh, and B. Creemers, “Dy-
gimes: Dynamically Generating Interfaces for Mobile Computing Devices and Em-
bedded Systems,” in Human-Computer Interaction with Mobile Devices and Services,
5th International Symposium, Mobile HCI 2003, Udine, Italy, September 8-11, 2003,
Proceedings, ser. Lecture Notes in Computer Science, L. Chittaro, Ed., vol. 2795.
Springer, 2003, pp. 256–270.
[Coninx et al.07] K. Coninx, K. Luyten, and K. A. Schneider, Eds., Task Models and Diagrams for
Users Interface Design, 5th International Workshop, TAMODIA 2006, Hasselt, Bel-
gium, October 23-24, 2006. Revised Papers, ser. Lecture Notes in Computer Science,
vol. 4385. Springer, 2007.
[Constantine and Lockwood99] L. L. Constantine and L. A. Lockwood, Software for Use: A Prac-
tical Guide to the Models and Methods of Usage-Centered Design (ACM Press).
Addison-Wesley, 1999.
[Constantine03] L. L. Constantine, “Canonical Abstract Prototypes for Abstract Visual and Interac-
tion,” in Interactive Systems. Design, Specification, and Verification, 10th International
Workshop, DSV-IS 2003, Funchal, Madeira Island, Portugal, June 11-13, 2003, Re-
vised Papers, ser. Lecture Notes in Computer Science, J. A. Jorge, N. J. Nunes, and
J. ao Falcão e Cunha, Eds., vol. 2844. Springer, 2003, pp. 1–15.
BIBLIOGRAPHY 237
[Cook et al.07] S. Cook, G. Jones, S. Kent, and A. C. Wills, Domain-Specific Development with
Visual Studio DSL Tools. Boston, MA, USA: Addison Wesley, 6 2007. URL:
http://amazon.com/o/ASIN/0321398203/
[Coutaz and Caelen91] J. Coutaz and J. Caelen, “A Taxonomy for Multimedia and Multimodal
User Interfaces,” in Proceedings of the ERCIM Workshop on User Interfaces and
Multimedia, 1991, pp. 143–147. URL: http://iihm.imag.fr/publs/1991/ERCIM91_
PoleIHMM.ps.gz
[Coutaz and Rey02] J. Coutaz and G. Rey, “Foundations for a Theory of Contextors,” in Computer-
Aided Design of User Interfaces III, Proceedings of the Fourth International Confer-
ence on Computer-Aided Design of User Interfaces, May, 15-17, 2002, Valenciennes,
France, C. Kolski and J. Vanderdonckt, Eds. Kluwer, 2002, pp. 13–34.
[Coutaz et al.07] J. Coutaz, L. Balme, X. Alvaro, G. Calvary, A. Demeure, and J.-S. Sottet, “An
MDE-SOA Approach to Support Plastic User Interfaces in Ambient Spaces,” in Uni-
versal Access in Human-Computer Interaction. Ambient Interaction, 4th International
Conference on Universal Access in Human-Computer Interaction, UAHCI 2007 Held
as Part of HCI International 2007 Beijing, China, July 22-27, 2007 Proceedings, Part
II, ser. Lecture Notes in Computer Science, C. Stephanidis, Ed., vol. 4555. Springer,
2007, pp. 63–72.
[Coutaz06] J. Coutaz, “Meta-User Interfaces for Ambient Spaces,” in Task Models and Diagrams
for Users Interface Design, 5th International Workshop, TAMODIA 2006, Hasselt, Bel-
gium, October 23-24, 2006. Revised Papers, ser. Lecture Notes in Computer Science,
K. Coninx, K. Luyten, and K. A. Schneider, Eds., vol. 4385. Springer, 2006, pp. 1–15.
[Csertán et al.02] G. Csertán, G. Huszerl, I. Majzik, Z. Pap, A. Pataricza, and D. Varró, “VIATRA
– Visual Automated Transformations for Formal Verification and Validation of UML
Models,” in ASE ’02: Proceedings of the 17th IEEE international conference on Auto-
mated software engineering. Washington, DC, USA: IEEE Computer Society, 2002,
p. 267.
[CWI] “Centrum Wiskunde & Informatica (CWI), Netherlands,” [Website]. URL: http:
//www.cwi.nl/
[Czarnecki and Helsen06] K. Czarnecki and S. Helsen, “Feature-based survey of model transforma-
tion approaches,” IBM Syst. J., vol. 45, no. 3, pp. 621–645, 2006.
238 BIBLIOGRAPHY
[da Silva and Paton00] P. P. da Silva and N. W. Paton, “UMLi: The Unified Modeling Language for
Interactive Applications,” in UML 2000 - The Unified Modeling Language, Advancing
the Standard, Third International Conference, York, UK, October 2-6, 2000, Proceed-
ings, ser. Lecture Notes in Computer Science, A. Evans, S. Kent, and B. Selic, Eds.,
vol. 1939. Springer, 2000, pp. 117–132.
[da Silva and Paton03] P. P. da Silva and N. W. Paton, “User Interface Modeling in UMLi,” IEEE
Software, vol. 20, no. 4, pp. 62–69, 2003.
[da Silva00] P. P. da Silva, “User Interface Declarative Models and Development Environments: A
Survey,” in DSV-IS, 2000, pp. 207–226.
[Dawes01] B. Dawes, Drag, Slide, Fade – Flash ActionScript for Designers. Indianapolis, IN,
USA: New Riders, 11 2001. URL: http://amazon.de/o/ASIN/0735710473/
[DBL05] Seventh IEEE International Symposium on Multimedia (ISM 2005), 12-14 December
2005, Irvine, CA, USA. IEEE Computer Society, 2005.
[Depke et al.99] R. Depke, G. Engels, K. Mehner, S. Sauer, and A. Wagner, “Ein Vorgehensmod-
ell für die Multimedia-Entwicklung mit Autorensystemen,” Inform., Forsch. Entwickl.,
vol. 14, no. 2, pp. 83–94, 1999.
[Dix et al.03] A. Dix, J. E. Finlay, G. D. Abowd, and R. Beale, Human-Computer Interaction, 3rd ed.
Prentice Hall, 2003.
[Doherty and Blandford07] G. J. Doherty and A. Blandford, Eds., Interactive Systems. Design, Spec-
ification, and Verification, 13th International Workshop, DSVIS 2006, Dublin, Ireland,
July 26-28, 2006. Revised Papers, ser. Lecture Notes in Computer Science, vol. 4323.
Springer, 2007.
[Dospisil and Polgar94] J. Dospisil and T. Polgar, “Conceptual modelling in the hypermedia develop-
ment process,” in SIGCPR ’94: Proceedings of the 1994 computer personnel research
conference on Reinventing IS : managing information technology in changing organi-
zations. New York, NY, USA: ACM, 1994, pp. 97–104.
BIBLIOGRAPHY 239
[DSV] “DSV-IS 2008 – The XVth International Workshop on Design, Specification and
Verification of Interactive Systems,” [Website]. URL: http://www.cs.queensu.ca/
dsvis2008/
[Duyne et al.02] D. K. V. Duyne, J. Landay, and J. I. Hong, The Design of Sites: Patterns, Principles,
and Processes for Crafting a Customer-Centered Web Experience. Boston, MA, USA:
Addison-Wesley Longman Publishing Co., Inc., 2002.
[Eckstein04] J. Eckstein, Agile Softwareentwicklung im Gros̈sen. Ein Eintauchen in die Untiefen
erfolgreicher Projekte. Heidelberg: Dpunkt Verlag, 2004.
[Ecla] “Eclipse – Model Development Tools (MDT) – OCL,” [Website]. URL: http:
//www.eclipse.org/modeling/mdt/?project=ocl
[Eclb] “Eclipse - an open development platform,” [Website]. URL: http://www.eclipse.org/
[Eclc] “Eclipse M2M Project,” [Website]. URL: http://www.eclipse.org/m2m/
[Ecld] “Eclipse Modeling Project,” [Website]. URL: http://www.eclipse.org/modeling/
[Ecm99] Standard ECMA-262 – ECMAScript Language Specification, Ecma International,
Geneva, Switzerland, 1999, [Website]. URL: http://www.ecma-international.org/
publications/standards/Ecma-262.htm
[Eicher05] C. Eicher, “Konzeption und prototypische Realisierung eines Graphischen Editors zur
Unterstützung von Präsentationsdiagrammen,” Project Thesis, University of Munich,
Munich, August 2005.
[EIS] “EIS 2008 – Engineering Interactive Systems,” [Website]. URL: http://www.se-hci.
org/ehci-hcse-dsvis07/
[Elwert and Schlungbaum95] T. Elwert and E. Schlungbaum, “Modelling and Generation of Graph-
ical User Interfaces in the TADEUS Approach,” in Design, Specification and Verifica-
tion of Interactive Systems ’95, Proceedings of the Eurographics Workshop in Toulouse,
France June 7-9, 1995, P. A. Palanque and R. Bastide, Eds. Springer, 1995, pp. 193–
208.
[EMFa] “Eclipse Modeling - MDT - EMF UML2,” [Website]. URL: http://www.eclipse.org/
modeling/mdt/?project=uml2
[EMFb] “Eclipse Modeling Framework Project (EMF),” [Website]. URL: http://www.eclipse.
org/modeling/emf/
[Engels and Sauer02] G. Engels and S. Sauer, “Object-oriented Modeling of Multimedia Appli-
cations,” in Handbook of Software Engineering and Knowledge Engineering, S. K.
Chang, Ed. Singapore: World Scientific, 2002, vol. 2, pp. 21–53.
[Engels et al.00] G. Engels, J. H. Hausmann, R. Heckel, and S. Sauer, “Dynamic Meta Modeling: A
Graphical Approach to the Operational Semantics of Behavioral Diagrams in UML,”
in UML 2000 - The Unified Modeling Language, Advancing the Standard, Third Inter-
national Conference, York, UK, October 2-6, 2000, Proceedings, ser. Lecture Notes in
Computer Science, A. Evans, S. Kent, and B. Selic, Eds., vol. 1939. Springer, 2000,
pp. 323–337.
240 BIBLIOGRAPHY
[Eun et al.94] S. Eun, E. S. No, H. C. Kim, H. Yoon, and S. R. Maeng, “Eventor: an authoring system
for interactive multimedia applications,” Multimedia Syst., vol. 2, no. 3, pp. 129–140,
1994.
[Evans et al.00] A. Evans, S. Kent, and B. Selic, Eds., UML 2000 - The Unified Modeling Language,
Advancing the Standard, Third International Conference, York, UK, October 2-6, 2000,
Proceedings, ser. Lecture Notes in Computer Science, vol. 1939. Springer, 2000.
[Fabro et al.06] M. D. D. Fabro, J. Bézivin, and P. Valduriez, “Weaving Models with the Eclipse
AMW plugin,” in Eclipse Modeling Symposium, Eclipse Summit Europe 2006,
Esslingen, Germany, 2006. URL: http://www.eclipsecon.org/summiteurope2006/
presentations/ESE2006-EclipseModelingSymposium2_WeavingModels.pdf
[Favre and Nguyen05] J.-M. Favre and T. Nguyen, “Towards a Megamodel to Model Software Evo-
lution Through Transformations,” Electr. Notes Theor. Comput. Sci., vol. 127, no. 3,
pp. 59–74, 2005.
[Favre04b] J.-M. Favre, “Foundations of Model (Driven) (Reverse) Engineering : Models - Episode
I: Stories of The Fidus Papyrus and of The Solarus,” in Language Engineering for
Model-Driven Software Development, 29. February - 5. March 2004, ser. Dagstuhl
Seminar Proceedings, J. Bézivin and R. Heckel, Eds., vol. 04101. Internationales
Begegnungs- und Forschungszentrum für Informatik (IBFI), Schloss Dagstuhl, Ger-
many, 2004.
[Favre04c] J.-M. Favre, “Towards a Basic Theory to Model Model Driven Engineering,” in
Workshop on Software Model Engineering (WISME 2004), joint event with UML2004,
2004. URL: http://www-adele.imag.fr/users/Jean-Marie.Favre/
[Foley et al.91] J. Foley, W. C. Kim, S. Kovacevic, and K. Murray, “UIDE–an intelligent user inter-
face design environment,” in Intelligent user interfaces. New York, NY, USA: ACM,
1991, pp. 339–384.
[Frank and Prasse97] U. Frank and M. Prasse, “Ein Bezugsrahmen zur Beurteilung Ob-
jektorientierter Modellierungssprachen – Veranschaulicht Am Beispiel von
OML und UML,” Universität Koblenz-Landau, Tech. Rep. 6, 1997. URL:
http://www.wi-inf.uni-duisburg-essen.de/MobisPortal/upload/Nr6.pdf
[Franklin and Makar03] D. Franklin and J. Makar, Macromedia Flash MX 2004 ActionScript:
Training from the Source. Berkeley, CA, USA: Macromedia Press, 11 2003. URL:
http://amazon.com/o/ASIN/0321213432/
[Fraternali and Paolini98] P. Fraternali and P. Paolini, “A Conceptual Model and a Tool Environ-
ment for Developing More Scalable, Dynamic, and Customizable Web Applications,”
in EDBT ’98: Proceedings of the 6th International Conference on Extending Database
Technology. London, UK: Springer-Verlag, 1998, pp. 421–435.
[Gajos and Weld04] K. Gajos and D. S. Weld, “SUPPLE: automatically generating user interfaces,”
in Proceedings of the 2004 International Conference on Intelligent User Interfaces,
January 13-16, 2004, Funchal, Madeira, Portugal, J. Vanderdonckt, N. J. Nunes, and
C. Rich, Eds. ACM, 2004, pp. 93–100.
[Gallagher and Webb97] S. Gallagher and B. Webb, “Competing Paradigms in Multimedia Systems
Development: Who Shall Be The Aristocracy,” in Proceedings of the Fifth European
Conference on Information Systems. Cork, Ireland: Cork Publishing Ltd, 1997, pp.
1113–1120.
[Gamma et al.95] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design patterns: elements of
reusable object-oriented software. Boston, MA, USA: Addison-Wesley Longman
Publishing Co., Inc., 1995.
[Garzotto et al.95] F. Garzotto, L. Mainetti, and P. Paolini, “Hypermedia Design, Analysis, and Eval-
uation Issues,” Commun. ACM, vol. 38, no. 8, pp. 74–86, 1995.
[Gauffre et al.07] G. Gauffre, E. Dubois, and R. Bastide, “Domain Specific Methods and Tools for
the Design of Advanced Interactive Techniques,” in Proceedings of the MoDELS 2007
Workshop on Model Driven Development of Advanced User Interfaces, Nashville, Ten-
nessee, USA, October 1, 2007, ser. CEUR Workshop Proceedings, A. Pleuß, J. V. den
Bergh, H. Hußmann, S. Sauer, and D. Görlich, Eds., vol. 297. CEUR-WS.org, 2007.
[Génova et al.03] G. Génova, C. R. del Castillo, and J. Lloréns, “Mapping UML Associations into
Java Code,” Journal of Object Technology, vol. 2, no. 5, pp. 135–162, 2003.
[Gibbs and Tsichritzis95] S. J. Gibbs and D. Tsichritzis, Multimedia programming: objects, environ-
ments and frameworks. New York, NY, USA: ACM Press/Addison-Wesley Publishing
Co., 1995.
[Gibbs et al.94] S. J. Gibbs, C. Breiteneder, and D. Tsichritzis, “Data Modeling of Time-Based Me-
dia,” in Proceedings of the 1994 ACM SIGMOD International Conference on Man-
agement of Data, Minneapolis, Minnesota, May 24-27, 1994, R. T. Snodgrass and
M. Winslett, Eds. ACM Press, 1994, pp. 91–102.
[Gilroy and Harrison06] S. W. Gilroy and M. D. Harrison, Eds., Interactive Systems, Design, Speci-
fication, and Verification, 12th International Workshop, DSVIS 2005, Newcastle upon
Tyne, UK, July 13-15, 2005, Revised Papers, ser. Lecture Notes in Computer Science,
vol. 3941. Springer, 2006.
[GMF] “The Eclipse Graphical Modeling Framework (GMF),” [Website]. URL: http:
//www.eclipse.org/modeling/gmf/
[GNO04] GNOME Human Interface Guidelines 2.0, The GNOME Usability Project, 2004.
URL: http://library.gnome.org/devel/hig-book/stable/
BIBLIOGRAPHY 243
[Gomaa et al.05] M. Gomaa, A. Salah, and S. Rahman, “Towards A Better Model Based
User Interface Development Environment: A Comprehensive Survey,” in Midwest
Instruction and Computing Symposium, April 8 - 9, 2005, Eau Claire, Wisconsin, USA,
April 2005. URL: http://www.micsymposium.org/mics_2005/papers/paper72.pdf
[Gómez et al.01] J. Gómez, C. Cachero, and O. Pastor, “Conceptual Modeling of Device-Independent
Web Applications,” IEEE MultiMedia, vol. 8, no. 2, pp. 26–39, 2001.
[Gonzalez00] R. Gonzalez, “Disciplining Multimedia,” IEEE MultiMedia, vol. 7, no. 3, pp. 72–78,
2000.
[Goo] “Google Maps,” [Website]. URL: http://maps.google.com/
[Görlich and Breiner07] D. Görlich and K. Breiner, “Useware Modeling for Ambient Intelligent Pro-
duction Environments,” in Proceedings of the MoDELS 2007 Workshop on Model
Driven Development of Advanced User Interfaces, Nashville, Tennessee, USA, October
1, 2007, ser. CEUR Workshop Proceedings, A. Pleuß, J. V. den Bergh, H. Hußmann,
S. Sauer, and D. Görlich, Eds., vol. 297. CEUR-WS.org, 2007.
[Gra] “UsiXML – GrafiXML,” [Website]. URL: http://www.usixml.org/index.php?mod=
pages&id=12
[Grana et al.05] C. Grana, G. Tardini, and R. Cucchiara, “MPEG-7 Compliant Shot Detection in
Sport Videos,” in Seventh IEEE International Symposium on Multimedia (ISM 2005),
12-14 December 2005, Irvine, CA, USA. IEEE Computer Society, 2005, pp. 395–402.
[Green and Petre96] T. R. G. Green and M. Petre, “Usability Analysis of Visual Programming En-
vironments: A ’Cognitive Dimensions’ Framework,” Journal of Visual Languages and
Computing, vol. 7, no. 2, pp. 131–174, 1996.
[Green00] T. R. G. Green, “Instructions and descriptions: some cognitive aspects of programming
and similar activities,” in AVI ’00: Proceedings of the working conference on Advanced
visual interfaces. New York, NY, USA: ACM, 2000, pp. 21–28.
[Griffiths et al.98] T. Griffiths, J. McKirdy, G. Forrester, N. W. Paton, J. B. Kennedy, P. J. Barclay,
R. Cooper, C. A. Goble, and P. D. Gray, “Exploiting Model-based Techniques for User
Interfaces to Databases,” in Visual Database Systems 4 (VDB4), IFIP TC2/WG 2.6
Fourth Working Conference on Visual Database Systems, L’Aquila, Italy, 27-29 May
1998, ser. IFIP Conference Proceedings, Y. E. Ioannidis and W. Klas, Eds., vol. 126.
Chapman & Hall, 1998, pp. 21–46.
[Griffiths et al.99] T. Griffiths, P. J. Barclay, J. McKirdy, N. W. Paton, P. D. Gray, J. B. Kennedy,
R. Cooper, C. A. Goble, A. West, and M. Smyth, “Teallach: A Model-Based User
Interface Development Environment for Object Databases,” in UIDIS, 1999, pp. 86–
96.
[Gruhn et al.06] V. Gruhn, D. Pieper, and C. Röttgers, MDA: Effektives Softwareengineering
mit UML2 und Eclipse, 1st ed. Springer, Berlin, 7 2006. URL: http:
//amazon.de/o/ASIN/3540287442/
[Gruhn07] R. Gruhn, “Entwicklung von Rich Internet Applications mit dem Adobe Flex Frame-
work,” Project Thesis, University of Munich, Munich, December 2007.
244 BIBLIOGRAPHY
[Halasz and Schwartz94] F. Halasz and M. Schwartz, “The Dexter hypertext reference model,” Com-
mun. ACM, vol. 37, no. 2, pp. 30–39, 1994.
[Hall and Wan02] B. Hall and S. Wan, Object-Oriented Programming with Actionscript, 1st ed.
Indianapolis, IN, USA: New Riders, 12 2002. URL: http://amazon.de/o/ASIN/
0735711836/
[Hannington and Reed02] A. Hannington and K. Reed, “Towards a Taxonomy for Guiding Multime-
dia Application Development,” in APSEC ’02: Proceedings of the Ninth Asia-Pacific
Software Engineering Conference. Washington, DC, USA: IEEE Computer Society,
2002, p. 97.
[Hannington and Reed06] A. Hannington and K. Reed, “Preliminary Results from a Survey of
Multimedia Development Practices in Australia,” in Product-Focused Software Pro-
cess Improvement, 7th International Conference, PROFES 2006, Amsterdam, The
Netherlands, June 12-14, 2006, Proceedings, ser. Lecture Notes in Computer Science,
J. Münch and M. Vierimaa, Eds., vol. 4034. Springer, 2006, pp. 192–207.
[Hannington and Reed07] A. Hannington and K. Reed, “Factors in Multimedia Project and Process
Management–Australian Survey Findings,” in ASWEC ’07: Proceedings of the 2007
Australian Software Engineering Conference. Washington, DC, USA: IEEE Computer
Society, 2007, pp. 379–388.
[Hardman et al.94] L. Hardman, D. C. A. Bulterman, and G. van Rossum, “The Amsterdam hyper-
media model: adding time and context to the Dexter model,” Commun. ACM, vol. 37,
no. 2, pp. 50–62, 1994.
[Harel and Naamad96] D. Harel and A. Naamad, “The STATEMATE Semantics of Statecharts,”
ACM Trans. Softw. Eng. Methodol., vol. 5, no. 4, pp. 293–333, 1996.
[Harel and Rumpe00] D. Harel and B. Rumpe, “Modeling Languages: Syntax, Semantics and All
That Stuff, Part I: The Basic Stuff,” Weizmann Institute Of Science, Jerusalem, Israel,
Israel, Tech. Rep. MCS00-16, 2000.
[Harel87] D. Harel, “Statecharts: A visual formalism for complex systems,” Sci. Comput. Pro-
gram., vol. 8, no. 3, pp. 231–274, 1987.
[Hausmann et al.01] J. H. Hausmann, R. Heckel, and S. Sauer, “Towards Dynamic Meta Modeling
of UML Extensions: An Extensible Semantics for UML Sequence Diagrams,” in 2002
IEEE CS International Symposium on Human-Centric Computing Languages and En-
vironments (HCC 2001), September 5-7, 2001 Stresa, Italy. IEEE Computer Society,
2001, pp. 80–87.
[Hausmann et al.04] J. H. Hausmann, R. Heckel, and S. Sauer, “Dynamic Meta Modeling with time:
Specifying the semantics of multimedia sequence diagrams,” Software and System
Modeling, vol. 3, no. 3, pp. 181–193, 2004.
BIBLIOGRAPHY 245
[Hayes et al.85] P. J. Hayes, P. A. Szekely, and R. A. Lerner, “Design alternatives for user interface
management sytems based on experience with COUSIN,” in CHI ’85: Proceedings of
the SIGCHI conference on Human factors in computing systems. New York, NY,
USA: ACM, 1985, pp. 169–175.
[Hayward et al.04] V. Hayward, O. R. Astley, M. Cruz-Hernandez, D. Grant, and G. Robles-De-La-
Torre, “Haptic interfaces and devices,” Sensor Review, vol. 24, no. 1, pp. 16–29, 2004.
[Heller et al.01] R. S. Heller, C. D. Martin, N. Haneef, and S. Gievska-Krliu, “Using a theoretical
multimedia taxonomy framework,” J. Educ. Resour. Comput., vol. 1, p. 6, 2001.
[Hennicker and Koch01] R. Hennicker and N. Koch, “Modeling the User Interface of Web Applica-
tions with UML,” in Practical UML-Based Rigorous Development Methods - Counter-
ing or Integrating the eXtremists, Workshop of the pUML-Group held together with the
UML2001, October 1st, 2001 in Toronto, Canada, ser. LNI, A. Evans, R. B. France,
A. M. D. Moreira, and B. Rumpe, Eds., vol. 7. GI, 2001, pp. 158–172.
[Henning01] P. A. Henning, Taschenbuch Multimedia. Fachbuchverlag Leipzig, 6 2001. URL:
http://amazon.com/o/ASIN/3446217517/
[Hettel et al.08] T. Hettel, M. Lawley, and K. Raymond, “Model Synchronisation: Definitions for
Round-Trip Engineering,” in Theory and Practice of Model Transformations, First In-
ternational Conference, ICMT 2008, Zürich, Switzerland, July 1-2, 2008, Proceedings,
ser. Lecture Notes in Computer Science, A. Vallecillo, J. Gray, and A. Pierantonio,
Eds., vol. 5063. Springer, 2008, pp. 31–45.
[Hewett et al.92] T. T. Hewett, R. Baecker, S. Card, T. Carey, J. Gasen, M. Mantei, G. Perlman,
G. Strong, and W. Verplank, “ACM SIGCHI curricula for human-computer interac-
tion,” ACM, New York, NY, USA, Tech. Rep., 1992, chairman-Thomas T. Hewett.
[Hilliges et al.06] O. Hilliges, P. Holzer, R. Klüber, and A. Butz, “AudioRadar: A metaphorical visu-
alization for the navigation of large music collections,” in Proceedings of the Interna-
tional Symposium on Smart Graphics 2006, Vancouver Canada, 2006.
[Hirakawa99] M. Hirakawa, “Do software engineers like multimedia?” in Multimedia Computing
and Systems, 1999. IEEE International Conference on, vol. 1, 7-11 June 1999, pp.
85–90vol.1.
[Hitz et al.05] M. Hitz, G. Kappel, E. Kapsammer, and W. Retschitzegger, UML @ Work, 3rd ed.
Heidelberg: Dpunkt Verlag, 2005.
[Hoogeveen97] M. Hoogeveen, “Towards a Theory of the Effectiveness of Multimedia Systems,”
International Journal of Human Computer Interaction, vol. 9, no. 2, pp. 151–168,
1997. URL: http://www.cyber-ventures.com/mh/paper/mmtheory.htm
[Hußmann and Pleuß04] H. Hußmann and A. Pleuß, “Model-Driven Development of Multimedia
Applications,” in The Monterey Workshop 2004 – Workshop on Software Engineering
Tools: Compatibility and Integration, 2004. URL: http://www.medien.ifi.lmu.de/
pubdb/publications/pub/hussmann2004monterey/hussmann2004monterey.pdf
[Hussmann07] H. Hussmann, “Vorlesung Multimedia-Programmierung,” pp. 2–50, 6 2007. URL:
http://www.medien.ifi.lmu.de/lehre/ss07/mmp/vorlesung/mmp3b.pdf
246 BIBLIOGRAPHY
[Isakowitz et al.98] T. Isakowitz, A. Kamis, and M. Koufaris, “Reconciling Top-Down and Bottom-
Up Design Approaches in RMM,” DATA BASE, vol. 29, no. 4, pp. 58–67, 1998.
[Isazadeh and Lamb97] H. Isazadeh and D. A. Lamb, “CASE Environments and MetaCASE
Tools,” Queen’s University, Canada, Tech. Rep. 1997-403, 1997. URL: http:
//ftp.qucis.queensu.ca/TechReports/Reports/1997-403.pdf
[ISO97a] The Virtual Reality Modeling Language 1.0, ISO, 1997, iSO/IEC 14772-1:1997. URL:
http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/
[ISO98] Ergonomics of Human System Interaction – Part 11: Guidance on usability, ISO, 1998,
iSO 9241-11.
[ISO04] ISO/IEC 19775:2004 – Extensible 3D (X3D), ISO, 2004, iSO/IEC 19775:2004. URL:
http://www.web3d.org/x3d/specifications/ISO-IEC-19775-X3DAbstractSpecification/
[Jacobson et al.99] I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development
Process. Addison-Wesley Professional, 2 1999. URL: http://amazon.com/o/ASIN/
0201571692/
[Janssen et al.93] C. Janssen, A. Weisbecker, and J. Ziegler, “Generating user interfaces from data
models and dialogue net specifications,” in Human-Computer Interaction, INTER-
ACT ’93, IFIP TC13 International Conference on Human-Computer Interaction, 24-29
BIBLIOGRAPHY 247
April 1993, Amsterdam, The Netherlands, jointly organised with ACM Conference on
Human Aspects in Computing Systems CHI’93, S. Ashlund, K. Mullet, A. Henderson,
E. Hollnagel, and T. N. White, Eds. ACM, 1993, pp. 418–423.
[Jeckle et al.04] M. Jeckle, C. Rupp, J. Hahn, B. Zengler, and S. Queins, UML 2 glasklar. München,
Wien: Carl Hanser Verlag, 2004.
[Jeckle04] M. Jeckle, “Unified Modeling Language (UML) Tools,” 2004, [Website]. URL:
http://www.jeckle.de/umltools.htm
[JET] “Eclipse – Model to Text (M2T) project – JET,” [Website]. URL: http:
//www.eclipse.org/modeling/m2t/?project=jet
[Johnson and Johnson89] P. Johnson and H. Johnson, “Knowledge analysis of task : Task analysis
and specification for human-computer systems,” in Engineering the human-computer
interface, A. Downton, Ed. New York, NY, USA: McGraw-Hill, Inc., 1989. URL:
http://portal.acm.org/citation.cfm?id=141687
[Jorge et al.03] J. A. Jorge, N. J. Nunes, and J. ao Falcão e Cunha, Eds., Interactive Systems. Design,
Specification, and Verification, 10th International Workshop, DSV-IS 2003, Funchal,
Madeira Island, Portugal, June 11-13, 2003, Revised Papers, ser. Lecture Notes in
Computer Science, vol. 2844. Springer, 2003.
[Jouault and Bézivin06] F. Jouault and J. Bézivin, “KM3: A DSL for Metamodel Specification,” in
Formal Methods for Open Object-Based Distributed Systems, 8th IFIP WG 6.1 Inter-
national Conference, FMOODS 2006, Bologna, Italy, June 14-16, 2006, Proceedings,
ser. Lecture Notes in Computer Science, R. Gorrieri and H. Wehrheim, Eds., vol. 4037.
Springer, 2006, pp. 171–185.
[Jouault and Kurtev05] F. Jouault and I. Kurtev, “Transforming Models with ATL,” in Satellite Events
at the MoDELS 2005 Conference, MoDELS 2005 International Workshops, Doctoral
Symposium, Educators Symposium, Montego Bay, Jamaica, October 2-7, 2005, Revised
Selected Papers, ser. Lecture Notes in Computer Science, J.-M. Bruel, Ed., vol. 3844.
Springer, 2005, pp. 128–138.
[Jouault and Kurtev06] F. Jouault and I. Kurtev, “On the architectural alignment of ATL and QVT,”
in SAC ’06: Proceedings of the 2006 ACM symposium on Applied computing. New
York, NY, USA: ACM, 2006, pp. 1188–1195.
248 BIBLIOGRAPHY
[Jungwirth and Stadler03] H. Jungwirth and H. Stadler, Ansichten - Videoanalysen zur Lehrer/-
innenbildung (CD-ROM). Innsbruck, Austria: Studienverlag, 2003.
[Kaczkowski07] M. Kaczkowski, “Realisierung einer Transformation von MML-Modellen nach
Java-Code,” Project Thesis, University of Munich, Munich, July 2007.
[Kannengiesser and Kannengiesser06] C. Kannengiesser and M. Kannengiesser, Flash 8, 2nd ed.
Poing, Germany: Franzis Verlag GmbH, 5 2006. URL: http://amazon.de/o/ASIN/
3772370950/
[Kappel et al.03] G. Kappel, B. Pröll, S. Reich, and W. Retschitzegger, Web Engineering. Systema-
tische Entwicklung von Webanwendungen. Heidelberg: Dpunkt Verlag, 2003.
[Kauntz07] G. Kauntz, “MMLbasierte Entwicklung eines Autorenwerkzeugs für Lernanwendun-
gen der Unterrichtsmitschau,” Project Thesis, University of Munich, Munich, Mai
2007.
[Kazoun and Lott07] C. Kazoun and J. Lott, Programming Flex 2: The comprehensive guide to
creating rich media applications with Adobe Flex (Programming). Sebastopol, CA,
USA: OŠReilly, 4 2007. URL: http://amazon.com/o/ASIN/059652689X/
[Kelly and Tolvanen08] S. Kelly and J.-P. Tolvanen, Domain-Specific Modeling: Enabling Full
Code Generation. New York, NY, USA: John Wiley & Sons, Inc., 3 2008. URL:
http://amazon.com/o/ASIN/0470036664/
[Kent05] S. Kent, “A DSL or UML Profile. Which Would You Use? - Panel Discussion,”
in Model Driven Engineering Languages and Systems, 8th International Conference,
MoDELS 2005, Montego Bay, Jamaica, October 2-7, 2005, Proceedings, ser. Lecture
Notes in Computer Science, L. C. Briand and C. Williams, Eds., vol. 3713. Springer,
2005, p. 719.
[Kieburtz et al.96] R. B. Kieburtz, L. McKinney, J. M. Bell, J. Hook, A. Kotov, J. Lewis, D. P. Oliva,
T. Sheard, I. Smith, and L. Walton, “A software engineering experiment in software
component generation,” in ICSE ’96: Proceedings of the 18th international conference
on Software engineering. Washington, DC, USA: IEEE Computer Society, 1996, pp.
542–552.
[Kitchenham et al.02] B. A. Kitchenham, S. L. Pfleeger, L. M. Pickard, P. W. Jones, D. C. Hoaglin,
K. E. Emam, and J. Rosenberg, “Preliminary guidelines for empirical research in soft-
ware engineering,” IEEE Trans. Softw. Eng., vol. 28, no. 8, pp. 721–734, 2002.
[Kleppe et al.03] A. Kleppe, J. Warmer, and W. Bast, MDA Explained: The Model Driven
Architecture: Practice and Promise. Addison-Wesley Professional, 5 2003. URL:
http://amazon.com/o/ASIN/032119442X/
[Klußmann01] N. Klußmann, Lexikon der Kommunikations- und Informationstechnik, 3rd ed.
Heidelberg, Germany: Hüthig, 10 2001. URL: http://amazon.de/o/ASIN/3778539515/
[Koch et al.07] N. Koch, A. Knapp, G. Zhang, and H. Baumeister, “Uml-Based Web Engineering:
An Approach Based on Standards,” in Web Engineering: Modelling and Implementing
Web Applications, G. Rossi, O. Pastor, D. Schwabe, and L. Olsina, Eds. London, UK:
Springer, 2007, pp. 157–191.
BIBLIOGRAPHY 249
[Kolski and Vanderdonckt02] C. Kolski and J. Vanderdonckt, Eds., Computer-Aided Design of User
Interfaces III, Proceedings of the Fourth International Conference on Computer-Aided
Design of User Interfaces, May, 15-17, 2002, Valenciennes, France. Kluwer, 2002.
[Kozel96] K. Kozel, “The Interactive Killing Fields,” Multimedia Producer, no. 5, May 1996.
[Krasner and Pope88] G. E. Krasner and S. T. Pope, “A cookbook for using the model-view controller
user interface paradigm in Smalltalk-80,” J. Object Oriented Program., vol. 1, no. 3,
pp. 26–49, 1988.
[Kühne07] T. Kühne, Ed., Models in Software Engineering, Workshops and Symposia at MoD-
ELS 2006, Genoa, Italy, October 1-6, 2006, Reports and Revised Selected Papers, ser.
Lecture Notes in Computer Science, vol. 4364. Springer, 2007.
[Kurtev et al.02] I. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces: An Initial Appraisal,”
in CoopIS, DOA’2002 Federated Conferences, Industrial track, Irvine, 2002. URL:
http://fparreiras/papers/TechnologicalSpaces.pdf
[Kurtev et al.06] I. Kurtev, J. Bézivin, F. Jouault, and P. Valduriez, “Model-based DSL frameworks,”
in Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Pro-
gramming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26,
2006, Portland, Oregon, USA, P. L. Tarr and W. R. Cook, Eds. ACM, 2006, pp.
602–616.
[Lang and Fitzgerald05] M. Lang and B. Fitzgerald, “Hypermedia Systems Development Practices:
A Survey,” IEEE Softw., vol. 22, no. 2, pp. 68–75, 2005.
[Lang and Fitzgerald06] M. Lang and B. Fitzgerald, “New Branches, Old Roots: A Study of Methods
and Techniques in Web/Hypermedia Systems Design,” Information Systems Manage-
ment, vol. 23, no. 3, pp. 62–74, June 2006.
[Lang01a] M. Lang, “Issues and Challenges in the Development of Hypermedia Information Sys-
tems,” in Proceedings of 11th Annual Business Information Technology Conference
(BIT 2001), R. Hackney, Ed. Machester, UK: Manchester Metropolitan University,
2001.
[Lienhart et al.07] R. Lienhart, A. R. Prasad, A. Hanjalic, S. Choi, B. P. Bailey, and N. Sebe, Eds.,
Proceedings of the 15th International Conference on Multimedia 2007, Augsburg, Ger-
many, September 24-29, 2007. ACM, 2007.
250 BIBLIOGRAPHY
[Limbourg et al.00] Q. Limbourg, J. Vanderdonckt, and N. Souchon, “The Task-Dialog and Task-
Presentation Mapping Problem: Some Preliminary Results,” in DSV-IS, 2000, pp. 227–
246.
[Limbourg et al.01] Q. Limbourg, C. Pribeanu, and J. Vanderdonckt, “Towards Uniformed Task Mod-
els in a Model-Based Approach,” in Interactive Systems: Design, Specification, and
Verification, 8th International Workshop, DSV-IS 2001, Glasgow, Scotland, UK, June
13-15, 2001, Revised Papers, ser. Lecture Notes in Computer Science, C. Johnson, Ed.,
vol. 2220. Springer, 2001, pp. 164–182.
[Linaje et al.07] M. Linaje, J. C. Preciado, and F. Sánchez-Figueroa, “Engineering Rich Internet Ap-
plication User Interfaces over Legacy Web Models,” IEEE Internet Computing, vol. 11,
no. 6, pp. 53–59, 2007.
[Long et al.98] E. Long, A. Misra, and J. Sztipanovits, “Increasing productivity at Saturn,” Computer,
vol. 31, no. 8, pp. 35–43, 1998.
[Lord07] R. Lord, “Polling the keyboard in Actionscript 3,” September 2007, [Website]. URL:
http://www.bigroom.co.uk/blog/polling-the-keyboard-in-actionscript-3
[Lowe and Hall99] D. Lowe and W. Hall, Hypermedia and the Web: An Engineering Approach. New
York, NY, USA: John Wiley & Sons, Inc., 1999.
[Luna08] F. D. Luna, Introduction to 3D Game Programming with DirectX 10. Plexo, TX, USA:
Wordware Publishing, Inc., 10 2008. URL: http://amazon.com/o/ASIN/1598220535/
[Luyten and Coninx05] K. Luyten and K. Coninx, “Distributed User Interface Elements to support
Smart Interaction Spaces,” in Seventh IEEE International Symposium on Multimedia
(ISM 2005), 12-14 December 2005, Irvine, CA, USA. IEEE Computer Society, 2005,
pp. 277–286.
BIBLIOGRAPHY 251
[Luyten04] K. Luyten, “Dynamic User Interface Generation for Mobile and Embedded Systems
with Model-Based User Interface Development,” Phd, Transnationale Universiteit
Limburg, Diepenbeek, Belgium, October 2004. URL: http://research.edm.uhasselt.be/
~kris/research/phd/phd-luyten.pdf
[Markopoulos et al.92] P. Markopoulos, J. Pycock, S. Wilson, and P. Johnson, “Adept-a task based
design environment,” in Proc. Twenty-Fifth Hawaii International Conference on System
Sciences, J. Pycock, Ed., vol. ii, 1992, pp. 587–596 vol.2.
[Märtin96] C. Märtin, “Software Life Cycle Automation for Interactive Applications: The AME
Design Environment,” in Computer-Aided Design of User Interfaces I, Proceedings of
the Second International Workshop on Computer-Aided Design of User Interfaces, June
5-7, 1996, Namur, Belgium, J. Vanderdonckt, Ed. Presses Universitaires de Namur,
1996, pp. 57–76.
[Mehra et al.05] A. Mehra, J. Grundy, and J. Hosking, “A generic approach to supporting diagram
differencing and merging for collaborative design,” in ASE ’05: Proceedings of the
20th IEEE/ACM international Conference on Automated software engineering. New
York, NY, USA: ACM, 2005, pp. 204–213.
[Meyer08] R. Meyer, “MML Code Generation for ActionScript 3,” Project Thesis, University of
Munich, Munich, 11 2008.
[Miller and (Eds.)03] J. Miller and J. M. (Eds.), MDA Guide Version 1.0.1, Object Management
Group, June 2003, omg/2003-06-01.
[Misanchuk et al.00] E. R. Misanchuk, R. A. Schwier, and E. Boling, Visual design for instructional
multimedia. CD-ROM hypertextbook, 2000. URL: http://www.indiana.edu/~vdim/
Start.HTM
[Moock04] C. Moock, Essential ActionScript 2.0, 1st ed. Sebastopol, CA, USA: O’Reilly Media,
6 2004. URL: http://amazon.de/o/ASIN/0596006527/
[Moock07] C. Moock, Essential ActionScript 3.0, 1st ed. Sebastopol, CA, USA: O’Reilly Media,
7 2007. URL: http://amazon.de/o/ASIN/0596526946/
[Mori et al.04] G. Mori, F. Paternò, and C. Santoro, “Design and Development of Multidevice User
Interfaces through Multiple Logical Descriptions,” IEEE Trans. Software Eng., vol. 30,
no. 8, pp. 507–520, 2004.
254 BIBLIOGRAPHY
[Morris and Finkelstein96] S. J. Morris and A. C. W. Finkelstein, “Integrating Design and Devel-
opment in the Production of Multimedia Documents,” in MMSD ’96: Proceedings of
the 1996 International Workshop on Multimedia Software Development (MMSD ’96).
Washington, DC, USA: IEEE Computer Society, 1996, p. 98.
[Moyes and Jordan93] J. Moyes and P. W. Jordan, “Icon design and its ef-
fect on guessability, learnability, and experienced user performance,” in
People and Computers VIII, L. Alty, D. Diaper, and S. Guest,
Eds. Cambridge, England: Cambridge University Press, 1993.
URL: http://books.google.de/books?hl=en&lr=&id=Jzwbj9B1vpQC&oi=fnd&pg=
PA49&dq=icon+design&ots=1t0zrEbkIp&sig=3YWMa_bs0BwcXxDy-4YDhyq0jh4
[Mühlhäuser and Gecsei96] M. Mühlhäuser and J. Gecsei, “Services, Frameworks, and Paradigms
for Distributed Multimedia Applications,” IEEE MultiMedia, vol. 3, no. 3, pp. 48–61,
1996.
[Murata and Murata89] T. Murata and T. Murata, “Petri nets: Properties, analysis and applications,”
Proceedings of the IEEE, vol. 77, no. 4, pp. 541–580, 1989.
[Myers et al.00] B. A. Myers, S. E. Hudson, and R. F. Pausch, “Past, present, and future of user
interface software tools,” ACM Trans. Comput.-Hum. Interact., vol. 7, no. 1, pp. 3–28,
2000.
[Nielsen93] J. Nielsen, Usability Engineering. San Francisco, CA, USA: Morgan Kaufmann Pub-
lishers Inc., 1993.
[Noble et al.99] J. Noble, A. Taivalsaari, and I. Moore, Eds., Prototype-Based Programming: Con-
cepts, Languages and Applications, 1st ed. Singapore: Springer, 2 1999.
[Nóbrega et al.05] L. Nóbrega, N. J. Nunes, and H. Coelho, “Mapping ConcurTaskTrees into UML
2.0,” in Interactive Systems, Design, Specification, and Verification, 12th International
Workshop, DSVIS 2005, Newcastle upon Tyne, UK, July 13-15, 2005, Revised Papers,
ser. Lecture Notes in Computer Science, S. W. Gilroy and M. D. Harrison, Eds., vol.
3941. Springer, 2005, pp. 237–248.
[Nunes and Falcão e Cunha00] N. J. Nunes and J. Falcão e Cunha, “Towards a UML profile for inter-
action design: the Wisdom approach,” in UML 2000 - The Unified Modeling Language,
BIBLIOGRAPHY 255
Advancing the Standard, Third International Conference, York, UK, October 2-6, 2000,
Proceedings, ser. Lecture Notes in Computer Science, A. Evans, S. Kent, and B. Selic,
Eds., vol. 1939. Springer, 2000, pp. 101–116.
[Nunes01] N. J. Nunes, “Object Modeling for User-Centered Development and User Interface
Design: The Wisdom Approach,” Ph.D. dissertation, University of Madrid, Madrid,
Spain, 2001.
[Obj99] Requirements for UML Profiles, Object Management Group (OMG), 1999, oMG doc-
ument ad/99-12-32.
[Obj04a] Metmodel and UML Profile for Java and EJB Specification, Object Management
Group (OMG), February 2004, formal/04-02-02. URL: http://www.omg.org/docs/
formal/04-02-02.pdf
[Obj04b] An ORMSC Definition of MDA, Object Management Group (OMG), August 2004,
ormsc/04-08-02. URL: http://www.omg.org/docs/ormsc/04-08-02.pdf
[Obj05] Meta Object Facility (MOF) Specification, Version 1.4.1, Object Management Group,
July 2005, formal/05-05-05. URL: http://www.omg.org/docs/formal/05-05-05.pdf
[Obj06a] Meta Object Facility (MOF) Core Specification, Version 2.0, Object Management
Group, January 2006, formal/06-01-01. URL: http://www.omg.org/docs/formal/
06-01-01.pdf
[Obj06b] Object Constraint Language OMG Available Specification Version 2.0, Object
Management Group, May 2006, formal/2006-05-01. URL: http://www.omg.org/docs/
formal/06-05-01.pdf
[Obj07b] MOF 2.0/XMI Mapping, Version 2.1.1, Object Management Group, December 2007,
formal/2007-12-01. URL: http://www.omg.org/docs/formal/07-12-01.pdf
[Obj07c] OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2, Object
Management Group, November 2007, formal/2007-11-04. URL: http://www.omg.org/
spec/UML/2.1.2/Infrastructure/PDF
[Obj07d] OMG Unified Modeling Language (OMG UML), Superstructure, V2.1.2, Object
Management Group, November 2007, formal/2007-11-02. URL: http://www.omg.org/
spec/UML/2.1.2/Superstructure/PDF
256 BIBLIOGRAPHY
[Paternò and Santoro02] F. Paternò and C. Santoro, “One Model, Many Interfaces,” in Computer-
Aided Design of User Interfaces III, Proceedings of the Fourth International Confer-
ence on Computer-Aided Design of User Interfaces, May, 15-17, 2002, Valenciennes,
France, C. Kolski and J. Vanderdonckt, Eds. Kluwer, 2002, pp. 143–154.
[Paternò et al.97] F. Paternò, C. Mancini, and S. Meniconi, “ConcurTaskTrees: A Diagrammatic No-
tation for Specifying Task Models,” in Human-Computer Interaction, INTERACT ’97,
IFIP TC13 Interantional Conference on Human-Computer Interaction, 14th-18th July
1997, Sydney, Australia, ser. IFIP Conference Proceedings, S. Howard, J. Hammond,
and G. Lindgaard, Eds., vol. 96. Chapman & Hall, 1997, pp. 362–369.
[Paternò99] F. Paternò, Model-Based Design and Evaluation of Interactive Applications. London,
UK: Springer-Verlag, 1999.
[Paternò01] F. Paternò, “Towards a UML for Interactive Systems,” in Engineering for Human-
Computer Interaction, 8th IFIP International Conference, EHCI 2001, Toronto,
Canada, May 11-13, 2001, Revised Papers, ser. Lecture Notes in Computer Science,
M. R. Little and L. Nigay, Eds., vol. 2254. Springer, 2001, pp. 7–18.
[Pauen and Voss98] P. Pauen and J. Voss, “The HyDev Approach to model-based Development of
Hypermedia Applications,” in Proceedings Hypertext ’98 Workshop, 1st International
Workshop on Hypermedia Development: Processes, Methods and Models, Pittsburgh,
Juni 1998. URL: http://voss.fernuni-hagen.de/pi3/hydev/hypertext98/index.htm
[Pauen et al.98a] P. Pauen, J. Voss, and H.-W. Six, “Modeling Hypermedia Applications with Hy-
Dev,” in Designing Effective and Usable Multimedia Systems: Proceedings of the IFIP
Working Group 13.2 Conference on Designing Effective and Usable Multimedia Sys-
tems, Stuttgart, Germany, September 1998, ser. IFIP Conference Proceedings, A. G.
Sutcliffe, J. Ziegler, and P. Johnson, Eds., vol. 133. Kluwer, 1998.
[Pauen et al.98b] P. Pauen, J. Voss, and H.-W. Six, “Modeling of Hypermedia Applications with
HyDev,” in Proceedings CHI-98 Workshop Hyped-Media to Hyper-Media: Toward
Theoretical Foundations of Design, Use and Evaluation, Los Angeles, April 1998.
URL: http://www.informatik.fernuni-hagen.de/import/pi3/PDFs/chi98.pdf
[Phanouriou00] C. Phanouriou, “UIML: A Device-Independent User Interface Markup Lan-
guage,” Phd, Virginia Polytechnic Institute and State University, Blacksburg,
Virginia, USA, September 2000. URL: http://scholar.lib.vt.edu/theses/available/
etd-08122000-19510051/unrestricted/PhanouriouETD.pdf
[Phoa] “Adobe Photoshop,” [Website]. URL: http://www.adobe.com/products/photoshop/
photoshop/
[Phob] “Photoplay Games,” january 25, 2008. URL: http://www.photoplay.com/
[Pla] “Planet MDE,” january 30, 2008. URL: http://planetmde.org/
[Pleuß and Hußmann07] A. Pleuß and H. Hußmann, “Integrating Authoring Tools into Model-Driven
Development of Interactive Multimedia Applications,” in Human-Computer Interac-
tion. Interaction Design and Usability, 12th International Conference, HCI Interna-
tional 2007, Beijing, China, July 22-27, 2007, Proceedings, Part I, ser. Lecture Notes
in Computer Science, J. A. Jacko, Ed., vol. 4550. Springer, 2007, pp. 1168–1177.
258 BIBLIOGRAPHY
[Pleuß et al.05a] A. Pleuß, J. V. den Bergh, H. Hußmann, and S. Sauer, Eds., MDDAUI ’05, Model
Driven Development of Advanced User Interfaces 2005, Proceedings of the MoD-
ELS’05 Workshop on Model Driven Development of Advanced User Interfaces, Mon-
tego Bay, Jamaica, October 2, 2005, ser. CEUR Workshop Proceedings, vol. 159.
CEUR-WS.org, 2005.
[Pleuß et al.05b] A. Pleuß, J. V. den Bergh, S. Sauer, and H. Hußmann, “Workshop Report: Model
Driven Development of Advanced User Interfaces (MDDAUI),” in Satellite Events
at the MoDELS 2005 Conference, MoDELS 2005 International Workshops, Doctoral
Symposium, Educators Symposium, Montego Bay, Jamaica, October 2-7, 2005, Re-
vised Selected Papers, ser. Lecture Notes in Computer Science, J.-M. Bruel, Ed., vol.
3844. Springer, 2005, pp. 182–190.
[Pleuß et al.06a] A. Pleuß, J. V. den Bergh, H. Hußmann, S. Sauer, and A. Bödcher, Eds., MDDAUI
’06, Model Driven Development of Advanced User Interfaces 2007, Proceedings of the
MoDELS’06 Workshop on Model Driven Development of Advanced User Interfaces,
Genova, Italy, October 2, 2006, ser. CEUR Workshop Proceedings, vol. 214. CEUR-
WS.org, 2006.
[Pleuß et al.06b] A. Pleuß, J. V. den Bergh, S. Sauer, H. Hußmann, and A. Bödcher, “Model Driven
Development of Advanced User Interfaces (MDDAUI) - MDDAUI’06 Workshop Re-
port,” in Models in Software Engineering, Workshops and Symposia at MoDELS 2006,
Genoa, Italy, October 1-6, 2006, Reports and Revised Selected Papers, ser. Lecture
Notes in Computer Science, T. Kühne, Ed., vol. 4364. Springer, 2006, pp. 101–105.
[Pleuß et al.07a] A. Pleuß, J. V. den Bergh, H. Hußmann, S. Sauer, and D. Görlich, Eds., MDDAUI
’07, Model Driven Development of Advanced User Interfaces 2007, Proceedings of the
MoDELS’07 Workshop on Model Driven Development of Advanced User Interfaces,
Nashville, Tennessee, USA, October 1, 2007, ser. CEUR Workshop Proceedings, vol.
297. CEUR-WS.org, 2007.
[Pleuß et al.07b] A. Pleuß, J. V. den Bergh, H. Hußmann, S. Sauer, and D. Görlich, Eds., Proceedings
of the MoDELS 2007 Workshop on Model Driven Development of Advanced User Inter-
faces, Nashville, Tennessee, USA, October 1, 2007, ser. CEUR Workshop Proceedings,
vol. 297. CEUR-WS.org, 2007.
[Pleuß et al.07c] A. Pleuß, J. V. den Bergh, S. Sauer, D. Görlich, and H. Hußmann, “Third Interna-
tional Workshop on Model Driven Development of Advanced User Interfaces,” in Mod-
els in Software Engineering, Workshops and Symposia at MoDELS 2007, Nashville,
TN, USA, September 30 - October 5, 2007, Reports and Revised Selected Papers, ser.
Lecture Notes in Computer Science, H. Giese, Ed., vol. 5002. Springer, 2007, pp.
59–64.
[Pleuß05b] A. Pleuß, “Modeling the User Interface of Multimedia Applications,” in Model Driven
Engineering Languages and Systems, 8th International Conference, MoDELS 2005,
Montego Bay, Jamaica, October 2-7, 2005, Proceedings, ser. Lecture Notes in Com-
puter Science, L. C. Briand and C. Williams, Eds., vol. 3713. Springer, 2005, pp.
676–690.
[Potter et al.96] B. Potter, J. Sinclair, and D. Till, An introduction to formal specification and Z.
London, New York: Prentice-Hall, Inc., 1996.
[Powerflasher] Powerflasher, “FDT Development Tool for Flash,” [Website]. URL: http:
//fdt.powerflasher.com/
[Preece et al.94] J. Preece, Y. Rogers, H. Sharp, D. Benyon, S. Holland, and T. Carey, Human-
Computer Interaction: Concepts And Design (ICS). Addison Wesley, 1994.
[Puerta and Eisenstein99] A. R. Puerta and J. Eisenstein, “Towards a General Computational Frame-
work for Model-Based Interface Development Systems,” in Intelligent User Interfaces,
1999, pp. 171–178.
[Puerta and Maulsby97] A. R. Puerta and D. Maulsby, “Management of Interface Design Knowledge
with MOBI-D,” in Intelligent User Interfaces, 1997, pp. 249–252.
[Puerta96] A. R. Puerta, “The MECANO Project: Comprehensive and Integrated Support for
Model-Based Interface Development,” in Computer-Aided Design of User Interfaces
I, Proceedings of the Second International Workshop on Computer-Aided Design of
260 BIBLIOGRAPHY
User Interfaces, June 5-7, 1996, Namur, Belgium, J. Vanderdonckt, Ed. Presses Uni-
versitaires de Namur, 1996, pp. 19–36.
[Radeke and Forbrig07] F. Radeke and P. Forbrig, “Patterns in Task-Based Modeling of User In-
terfaces,” in Task Models and Diagrams for User Interface Design, 6th International
Workshop, TAMODIA 2007, Toulouse, France, November 7-9, 2007, Proceedings, ser.
Lecture Notes in Computer Science, M. Winckler, H. Johnson, and P. A. Palanque,
Eds., vol. 4849. Springer, 2007, pp. 184–197.
[Radeke et al.06] F. Radeke, P. Forbrig, A. Seffah, and D. Sinnig, “PIM Tool: Support for Pattern-
Driven and Model-Based UI Development,” in Task Models and Diagrams for Users
Interface Design, 5th International Workshop, TAMODIA 2006, Hasselt, Belgium, Oc-
tober 23-24, 2006. Revised Papers, ser. Lecture Notes in Computer Science, K. Coninx,
K. Luyten, and K. A. Schneider, Eds., vol. 4385. Springer, 2006, pp. 82–96.
[Reisman98] S. Reisman, “Multimedia Is Dead,” IEEE MultiMedia, vol. 5, no. 1, pp. 4–5, 1998.
[Rosson and Gilmore07] M. B. Rosson and D. J. Gilmore, Eds., Proceedings of the 2007 Conference
on Human Factors in Computing Systems, CHI 2007, San Jose, California, USA, April
28 - May 3, 2007. ACM, 2007.
[Rout and Sherwood99] T. Rout and C. Sherwood, “Software engineering standards and the devel-
opment of multimedia-based systems,” in Software Engineering Standards, 1999. Pro-
ceedings. Fourth IEEE International Symposium and Forum on, 17-21 May 1999, pp.
192–198.
BIBLIOGRAPHY 261
[Rozenberg97] G. Rozenberg, Ed., Handbook of graph grammars and computing by graph transfor-
mation: volume I. foundations. River Edge, NJ, USA: World Scientific Publishing
Co., Inc., 1997.
[Rumpe04] B. Rumpe, Modellierung mit UML : Sprache, Konzepte und Methodik (Xpert.press).
Berlin Heidelberg: Springer, June 2004.
[Rupp et al.07] C. Rupp, S. Queins, and B. Zengler, UML 2 glasklar. Praxiswissen für die UML-
Modellierung, 3rd ed. München Wien: Carl Hanser Verlag, 2007.
[Salembier and Sikora02] P. Salembier and T. Sikora, Introduction to MPEG-7: Multimedia Content
Description Interface, B. Manjunath, Ed. New York, NY, USA: John Wiley & Sons,
Inc., 2002.
[Satoh et al.08] S. Satoh, F. Nack, and M. Etoh, Eds., Advances in Multimedia Modeling, 14th Inter-
national Multimedia Modeling Conference, MMM 2008, Kyoto, Japan, January 9-11,
2008, Proceedings, ser. Lecture Notes in Computer Science, vol. 4903. Springer,
2008.
[Sauer and Engels99a] S. Sauer and G. Engels, “Extending UML for Modeling of Multimedia Appli-
cations,” in VL ’99: Proceedings of the IEEE Symposium on Visual Languages, M. Hi-
rakawa and P. Mussio, Eds. Washington, DC, USA: IEEE Computer Society, 1999,
p. 80.
[Sauer and Engels99b] S. Sauer and G. Engels, “UML-basierte Modellierung von Multimediaanwen-
dungen,” in Modellierung 1999, Workshop der Gesellschaft für Informatik e. V. (GI),
März 1999 in Karlsruhe, J. Desel, K. Pohl, and A. Schürr, Eds. Teubner, 1999, pp.
155–170.
[Sauer and Engels01] S. Sauer and G. Engels, “UML-based Behavior Specification of Interactive
Multimedia Applications,” in 2002 IEEE CS International Symposium on Human-
Centric Computing Languages and Environments (HCC 2001), September 5-7, 2001
Stresa, Italy. IEEE Computer Society, 2001, pp. 248–255.
[Schwabe et al.02] D. Schwabe, a. Robson Mattos Guimar and G. Rossi, “Cohesive Design of Per-
sonalized Web Applications,” IEEE Internet Computing, vol. 6, no. 2, pp. 34–43, 2002.
[Seffah and Metzker04] A. Seffah and E. Metzker, “The obstacles and myths of usability and software
engineering,” Commun. ACM, vol. 47, no. 12, pp. 71–76, 2004.
[Seidewitz03] E. Seidewitz, “What Models Mean,” IEEE Softw., vol. 20, no. 5, pp. 26–32, 2003.
[Sendall and Küster04] S. Sendall and J. M. Küster, “Taming Model Round-Trip Engineering,” in
Proceedings of Workshop on Best Practices for Model-Driven Software Development
on OOPSLA 2004, Vancouver, Canada, 2004. URL: http://www.zurich.ibm.com/pdf/
csc/position-paper-mdsd04_sendall.pdf
[Shaw01] M. Shaw, “The coming-of-age of software architecture research,” in ICSE ’01: Pro-
ceedings of the 23rd International Conference on Software Engineering. Washington,
DC, USA: IEEE Computer Society, 2001, p. 656.
[Shaykhit07] D. Shaykhit, “A Flexible Code Generator for the Model-Driven Development of Mul-
timedia Applications,” Diploma Thesis, University of Munich, Munich, October 2007.
[Shehory and Sturm01] O. Shehory and A. Sturm, “Evaluation of modeling techniques for agent-
based systems,” in AGENTS ’01: Proceedings of the fifth international conference on
Autonomous agents. New York, NY, USA: ACM, 2001, pp. 624–631.
BIBLIOGRAPHY 263
[Sherrod06] A. Sherrod, Ultimate Game Programming With DirectX, 1st ed. Boston, MA, USA:
Charles River Media, 5 2006. URL: http://amazon.com/o/ASIN/1584504587/
[Shneiderman and Plaisant04] B. Shneiderman and C. Plaisant, Designing the User Interface: Strate-
gies for Effective Human-Computer Interaction, 4th ed. Addison Wesley, 2004.
[Sikorski05] M. Sikorski, Ed., Task Models and Diagrams for User Interface Design: Proceedings
of the Forth International Workshop on Task Models and Diagrams for User Interface
Design - TAMODIA 2005, Gdansk, Poland, September 26-27, 2005. ACM, 2005.
[Sinnig et al.07] D. Sinnig, P. Chalin, and F. Khendek, “Common Semantics for Use Cases and
Task Models,” in Integrated Formal Methods, 6th International Conference, IFM 2007,
Oxford, UK, July 2-5, 2007, Proceedings, ser. Lecture Notes in Computer Science,
J. Davies and J. Gibbons, Eds., vol. 4591. Springer, 2007, pp. 579–598.
[Sottet et al.06] J.-S. Sottet, G. Calvary, and J.-M. Favre, “Mapping Model: A First Step to Ensure
Usability for sustaining User Interface Plasticity,” in MDDAUI’06, ser. CEUR Work-
shop Proceedings, A. Pleuß, J. V. den Bergh, H. Hußmann, S. Sauer, and A. Bödcher,
Eds., vol. 214. CEUR-WS.org, 2006.
[Sottet et al.07a] J.-S. Sottet, G. Calvary, J. Coutaz, and J.-M. Favre, “A Model-Driven Engineering
Approach for the Usability of User Interfaces,” in Proc. Engineering Interactive
Systems 2007. Springer (to appear), 2007. URL: http://iihm.imag.fr/publs/2007/
EIS07-sottet.pdf
[Sottet et al.07b] J.-S. Sottet, V. Ganneau, G. Calvary, J. Coutaz, A. Demeure, J.-M. Favre, and
R. Demumieux, “Model-Driven Adaptation for Plastic User Interfaces,” in Human-
Computer Interaction - INTERACT 2007, 11th IFIP TC 13 International Conference,
Rio de Janeiro, Brazil, September 10-14, 2007, Proceedings, Part I, ser. Lecture Notes
in Computer Science, M. C. C. Baranauskas, P. A. Palanque, J. Abascal, and S. D. J.
Barbosa, Eds., vol. 4662. Springer, 2007, pp. 397–410.
[Specht and Zoller00] G. Specht and P. Zoller, “HMT: Modeling Temporal Aspects in Hypermedia
Applications,” in Web-Age Information Management, First International Conference,
WAIM 2000, Shanghai, China, June 21-23, 2000, Proceedings, ser. Lecture Notes in
Computer Science, H. Lu and A. Zhou, Eds., vol. 1846. Springer, 2000, pp. 259–270.
264 BIBLIOGRAPHY
[Stankowski and Duschek94] A. Stankowski and K. Duschek, Eds., Visuelle Kommunikation: Ein
Design-Handbuch, 2nd ed. Berlin: Dietrich Reimer Verlag, 12 1994. URL:
http://amazon.de/o/ASIN/3496011068/
[Steinmetz and Nahrstedt04] R. Steinmetz and K. Nahrstedt, Multimedia Applications, 1st ed.
Berlin: Springer, 1 2004. URL: http://amazon.de/o/ASIN/3540408495/
[Stephens and Rosenberg03] M. Stephens and D. Rosenberg, Extreme Programming Refactored: The
Case Against XP. Apress, 2003.
[Szekely et al.92] P. Szekely, P. Luo, and R. Neches, “Facilitating the exploration of interface design
alternatives: the HUMANOID model of interface design,” in CHI ’92: Proceedings
of the SIGCHI conference on Human factors in computing systems. New York, NY,
USA: ACM, 1992, pp. 507–515.
[Taentzer00] G. Taentzer, “AGG: A Tool Environment for Algebraic Graph Transformation,” in AG-
TIVE ’99: Proceedings of the International Workshop on Applications of Graph Trans-
formations with Industrial Relevance. London, UK: Springer-Verlag, 2000, pp. 481–
488.
BIBLIOGRAPHY 265
[TAM] “TAMODIA 2007 – 6th International workshop on TAsk MOdels and DIAgrams,”
[Website]. URL: http://liihs.irit.fr/tamodia2007/
[Tavares] A. Tavares, “An Interactive Home Media Center,” [Website]. URL: http://www.
adrianatavares.com/iyro/
[Tidwell05] J. Tidwell, Designing Interfaces: Patterns for Effective Interaction Design. Se-
bastopol, CA, USA: O’Reilly Media, Inc., 2005.
[Tonella and Potrich04] P. Tonella and A. Potrich, Reverse Engineering of Object Oriented Code.
Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2004.
[Tran-Thuong and Roisin03] T. Tran-Thuong and C. Roisin, “Multimedia modeling using MPEG-
7 for authoring multimedia integration,” in MIR ’03: Proceedings of the 5th ACM
SIGMM international workshop on Multimedia information retrieval. New York,
NY, USA: ACM, 2003, pp. 171–178.
[Troyer and Decruyenaere00] O. D. Troyer and T. Decruyenaere, “Conceptual modelling of web sites
for end-users,” World Wide Web Journal, vol. 3, no. 1, pp. 27–42, 2000.
[Tufte01] E. R. Tufte, The Visual Display of Quantitative Information, 2nd ed. Chesire, CT,
USA: Graphics Press, 2001.
[Urbieta et al.07] M. Urbieta, M. Urbieta, G. Rossi, J. Ginzburg, and D. Schwabe, “Designing the
Interface of Rich Internet Applications,” in Proc. Latin American Web Congress LA-
WEB 2007, G. Rossi, Ed., 2007, pp. 144–153.
[Usib] “UsiXML - Home of the USer Interface eXtensible Markup Language,” february 27,
2008. URL: http://www.usixml.org/
[Usi06] “UsiXML v1.6.4 Metamodel as Rational Rose file,” 2006. URL: http://www.usixml.
org/index.php?mod=download&file=usixml-doc/UsiXML-v1.6.4.mdl
[Van den Bergh and Coninx05] J. Van den Bergh and K. Coninx, “Towards modeling context-
sensitive interactive applications: the context-sensitive user interface profile (CUP),”
in Proceedings of the ACM 2005 Symposium on Software Visualization, St. Louis, Mis-
souri, USA, May 14-15, 2005, T. L. Naps and W. D. Pauw, Eds. ACM, 2005, pp.
87–94.
[Van den Bergh and Coninx06] J. Van den Bergh and K. Coninx, “CUP 2.0: High-Level Modeling of
Context-Sensitive Interactive Applications,” in Model Driven Engineering Languages
and Systems, 9th International Conference, MoDELS 2006, Genova, Italy, October 1-6,
2006, Proceedings, ser. Lecture Notes in Computer Science, O. Nierstrasz, J. Whittle,
D. Harel, and G. Reggio, Eds., vol. 4199. Springer, 2006, pp. 140–154.
[Van den Bergh06] J. Van den Bergh, “High-Level User Interface Models for Model-Driven Design
of Context-Sensitive User Interfaces,” PhD, Hasselt University, Diepenbeek, Belgium,
2006. URL: http://research.edm.uhasselt.be/~jvandenbergh/phd/phd-JanVandenBergh.
pdf
[van Welie] M. van Welie, “A Pattern Library for Interaction Design,” [Website]. URL:
http://www.welie.com/
[Vanderdonckt and Bodart93] J. M. Vanderdonckt and F. Bodart, “Encapsulating knowledge for in-
telligent automatic interaction objects selection,” in CHI ’93: Proceedings of the IN-
TERACT ’93 and CHI ’93 conference on Human factors in computing systems. New
York, NY, USA: ACM, 1993, pp. 424–429.
[Vanderdonckt et al.04] J. Vanderdonckt, N. J. Nunes, and C. Rich, Eds., Proceedings of the 2004
International Conference on Intelligent User Interfaces, January 13-16, 2004, Funchal,
Madeira, Portugal. ACM, 2004.
[Völter and Kolb05] M. Völter and B. Kolb, “openArchitectureWare und Eclipse,” Eclipse Magazin,
vol. 3, Mai 2005.
[Voss et al.99] J. Voss, P. Pauen, H.-W. Six, M. Nagl, A. Behle, B. Westfechtel, H. Balzert, C. Wei-
dauer, W. Schäfer, J. Wadsack, and U. Kelter, Eds., Studie über Softwaretechnische An-
forderungen an multimediale Lehr- und Lernsysteme. Forschergruppe SofTec NRW,
September 1999.
[Vredenburg et al.02] K. Vredenburg, J.-Y. Mao, P. W. Smith, and T. Carey, “A survey of user-
centered design practice,” in CHI ’02: Proceedings of the SIGCHI conference on Hu-
man factors in computing systems. New York, NY, USA: ACM, 2002, pp. 471–478.
[W3C03] Scalable Vector Graphics (SVG) 1.1 Specification, W3C, January 2003. URL:
http://www.w3.org/TR/SVG11/
[Wahl and Rothermel94] T. Wahl and K. Rothermel, “Representing time in multimedia systems,” in
Proc. International Conference on Multimedia Computing and Systems, 1994, pp. 538–
543.
[Ware04] C. Ware, Information Visualization, 2nd ed. San Francisco, CA, USA: Morgan Kauf-
mann, 2004.
[Warmer and Kleppe03] J. Warmer and A. Kleppe, The Object Constraint Language: Getting
Your Models Ready for MDA, 2nd ed. Addison-Wesley Professional, 9 2003. URL:
http://amazon.com/o/ASIN/0321179366/
[Weiser99] M. Weiser, “The computer for the 21st century,” SIGMOBILE Mob. Comput. Commun.
Rev., vol. 3, no. 3, pp. 3–11, 1999.
[Wenz et al.07] C. Wenz, T. Hauser, and A. Kappler, ActionScript 3 – Das Praxisbuch, 1st ed. Bonn,
Germany: GALILEO PRESS, 12 2007. URL: http://amazon.de/o/ASIN/3836210525/
[Winckler et al.07] M. Winckler, H. Johnson, and P. A. Palanque, Eds., Task Models and Diagrams
for User Interface Design, 6th International Workshop, TAMODIA 2007, Toulouse,
France, November 7-9, 2007, Proceedings, ser. Lecture Notes in Computer Science,
vol. 4849. Springer, 2007.
[Wisneski et al.98] C. Wisneski, H. Ishii, A. Dahley, M. G. Gorbet, S. Brave, B. Ullmer, and P. Yarin,
“Ambient Displays: Turning Architectural Space into an Interface between People and
Digital Information,” in CoBuild ’98: Proceedings of the First International Workshop
on Cooperative Buildings, Integrating Information, Organization, and Architecture.
London, UK: Springer-Verlag, 1998, pp. 22–32.
[Wolff et al.05] A. Wolff, P. Forbrig, A. Dittmar, and D. Reichart, “Linking GUI elements to tasks:
supporting an evolutionary design process,” in Task Models and Diagrams for User
Interface Design: Proceedings of the Forth International Workshop on Task Models and
Diagrams for User Interface Design - TAMODIA 2005, Gdansk, Poland, September
26-27, 2005, M. Sikorski, Ed. ACM, 2005, pp. 27–34.
[Wolff05] C. Wolff, “Media Design Patterns,” in Designing Information Systems, ser. Schriften
zur Informationswissenschaft, M. Eibl, C. Wolff, and C. Womser-Hacker, Eds. Kon-
stanz: UVK, 2005, vol. 43, pp. 209–217.
[Wu06a] W.-W. Wu, “Abbildung von MML-Modellen in Code für das Java-Framework Piccolo,”
Project Thesis, University of Munich, Munich, February 2006.
[Wu06b] W.-W. Wu, “Analyse und Vergleich ausgewählter Ansätze zur modellgetriebenen En-
twicklung von Benutzerschnittstellen,” Diploma Thesis, University of Munich, Mu-
nich, November 2006.
[WWWb] “WWW2007 – 16th International World Wide Web Conference,” [Website]. URL:
http://www2007.org/
[Xiong et al.07] Y. Xiong, D. Liu, Z. Hu, H. Zhao, M. Takeichi, and H. Mei, “Towards automatic
model synchronization from model transformations,” in ASE ’07: Proceedings of the
twenty-second IEEE/ACM international conference on Automated software engineer-
ing. New York, NY, USA: ACM, 2007, pp. 164–173.
[Yard and Peters04] T. Yard and K. Peters, Extending Macromedia Flash MX 2004: Complete Guide
and Reference to JavaScript Flash, 1st ed. Berkeley, CA, USA: friends of ED, 1
2004. URL: http://amazon.com/o/ASIN/1590593049/
[Zendler98] A. Zendler, Multimedia Development Systems (with methods for modeling multimedia
applications), R. Haggenmüller and H. Schwärtzel, Eds. Marburg, Germany: Tectum
Verlag, 1998. URL: http://amazon.de/o/ASIN/3896089285/
[Zhao and Zou07] X. Zhao and Y. Zou, “A Framework for Incorporating Usability into Model Trans-
formations,” in MDDAUI’07, ser. CEUR Workshop Proceedings, A. Pleuß, J. V. den
Bergh, H. Hußmann, S. Sauer, and D. Görlich, Eds., vol. 297. CEUR-WS.org, 2007.
[Ziegler08] S. Ziegler, “Steigerung der Effizienz bei der UI-Gestaltung im Kontext der interdiszi-
plinären Zusammenarbeit unter Einsatz von WPF,” Diploma Thesis, University of Mu-
nich, Munich, January 2008.
[Zoller01] P. Zoller, “HMT: Modeling Interactive and Adaptive Hypermedia Applications,” in In-
formation Modeling in the New Millennium, M. Rossi and K. Siau, Eds. Hershey, PA,
USA: IGI Publishing, 2001, pp. 383–405.
First of all, I would like to thank Prof. Hußmann for his continuous support, his good advice, and the
constructive and positive working atmosphere he created as head the research group.
I would like to thank Prof. Forbrig and Prof. Vanderdonckt for their willingness to be reviewers
for this thesis and for their contributions and remarks.
I would like to thank all my colleagues for the fruitful and pleasant collaboration in our research
group. In particular, I would like to thank my former colleague Arnd Vitzthum for the fruitful discus-
sions on modeling and multimedia.
Finally, I would like to thank my family for their sincere support throughout all times and, in
particular, Astrid Weiland whose support is the most important to me.