
 
 
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