and skills borrowed from the design domain, such as
drawing on paper, the use of (low-fidelity)
prototypes, or storyboarding. These skills, though
useful, are not taught to engineers nor computer
scientists; moreover, they do not belong to our
students' set of professional values (see discussion
about differences between design and engineering
way of thinking in (Stolterman, 2008)). According
to the students drawing on paper takes time,
breaking the workflow of the group and interfering
with the process of analysis. One of the students told
us that they often have to: "Draw, erase and draw
again" before an icon can be accepted by all the
group-mates and they can proceed with the analysis,
hence: "Just having a [software] tool would help!".
Furthermore, during the task completion, we
noticed that the students were precise in selecting
the icons from the background picture; they even
refined their icons with the external painter, which
was not required by our task. Thus, combining our
observations and their statements, it seems as they
do not like to make graphics but have high standards
about the visual rendering of their rich pictures.
To draw we currently rely on a free external
painter (Java Image Editor, by JH Labs). In future
releases we would like to have internal painting
capabilities. It would help when drawing arrows,
provide a smoother workflow and possibly result in
a more uniform environment to work on rich
pictures.
4.2 Events
The assigned task explicitly required the students to
represent events like “customer pays waiter”. Since
support for events was missing, our students seemed
a little lost at first, but managed to find a creative
way to use the tool for the given task. Interestingly
both groups independently represented an event as a
sequence of scenes in a storyboard, but did not
mentioned it explicitly, as it is not traditionally part
of developers' skills However, they interpreted
differently the connections and internal structures of
scenes, keeping the same approach they used in the
representation of complex objects, like the menu of
the restaurant. The first group clustered a few
frames in an empty area and connected them with
arrows (figure 5), the second group instead nested
the frames into a new one (figure 6).
A particular workflow emerged during the test: a
user would create some frames, give them names
and tags, and cluster them spatially in an empty area
of the rich picture. Later the user will proceed to
create new frames by cloning the ones in the cluster.
Effectively the cluster was used as an extension to
the FSSE palette: instead of just having tags in the
palette, the user wanted to add reusable frames in it.
Each of these reusable frames can be referred to as
prototype of its own tag, i.e. a typical representative
of the tag. Interestingly all the students
independently adopted this prototype clustering
approach, especially when trying to cope with
events. In the next version of FSSE the prototype
clustering will be promoted to a full-fledged feature,
in the form of an extended palette. This new palette
will have an area to store prototypes for each tag.
Furthermore, our testers asked to have vectorial
labeled arrows in FSSE, to connect frames (e.g. the
menus and the pizzas). While implementing arrows
between frames, we realized that it made sense also
to draw arrows between prototypes (inside the
palette). An arrow connecting two prototypes will
simply represent an event changing the first
prototype into the second. For example, the tag
“Pizza” could contain 2 prototypes: “rawPizza” and
“cookedPizza”, with different icons and possibly
different nested frames. An arrow with label “bake”
could link the first and the second prototype. A
FSSE user could then instantiate a Pizza, and get a
new frame, cloned from the “rawPizza” prototype;
applying the “bake” event, that new frame would
change into a clone of “cookedPizza”.
The use of labeled arrows to define events is also
consistent with previous knowledge that our students
typically have about UML state chart diagrams.
4.3 Use of Names and Tags
The distinction between names and tags, and how to
assign them to a new frame, did not seem clear to
students and was criticized. Their perplexity was
visible through the discussions they had, to decide
how to use coherently the two labels. After a while
they all understood that tags correspond more or less
to types and names are just identifiers, that help in
reading aloud a rich picture, in once natural
language. One of the students was eager to solve this
ambiguity and said: “If it is a type, why do not just
call it type?!”. However, tags are not exactly types,
since they are less structured to better support
incomplete and incremental modeling (also called
middle-out modeling in (Valente, 2009)).
Finally, another student suggested showing more
clearly the relationship between a tag and its
instances: when a user selects a tag of a frame, all
frames with the same tag could be highlighted,
throughout the rich picture. We are considering to
INNOV 2010 - International Multi-Conference on Innovative Developments in ICT
130