<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>UML Usage in Open Source Software Development : A Field Study</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Hafeez Osman</string-name>
          <email>hosman@liacs.nl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michel R.V. Chaudron</string-name>
          <email>chaudron@chalmers.se</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Joint Department of Computer Science and Engineering Chalmers University of Technology and Goteborg University</institution>
          ,
          <country country="SE">Sweden</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Leiden Institute of Advanced Computer Science, Leiden University</institution>
          ,
          <country country="NL">the Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>UML is the de facto standard for modeling software designs and is commonly used in commercial software development. However, little is known about the use of UML in Open-source Software Development. This paper evaluates the usage of UML modeling in ten opensource projects selected from common open-source repositories. We evaluated the usage of UML diagrams based on the information available in the open-source projects repositories. Our study covers the types of UML diagrams that are used and how frequently UML models are updated. Our ndings also include the change in focus on types of diagram used over time and researches on how the size of models relates to the size of the implementation.</p>
      </abstract>
      <kwd-group>
        <kwd>UML</kwd>
        <kwd>Open-source Software Development</kwd>
        <kwd>Reverse Engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        UML provides the facility for software engineers to specify, construct,
visualize and document the artifacts of a software-intensive system and to facilitate
communication of ideas [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. For commercial software development, the use of
UML is commonly prescribed as part of a company-wide software development
process while in open-source software development (OSSD), there is typically no
mandate on the use of UML. Only if the community of developers of the OSSD
feels needs (e.g. for their communication) then UML diagrams are produced.
Even though some open-source projects employ UML diagrams, these diagrams
do not completely correspond with the implementation code. For instance, the
number of classes used in class diagrams is typically less than the number of
classes that exist in the implementation source code. The usage of UML class
diagrams also varies across projects. Almost all OSSD projects that use UML
choose to produce class diagrams. Some projects also constructed other types
of UML diagrams such as use case diagrams, sequence diagrams and activity
diagrams.
      </p>
      <p>One of the bene ts of UML is to ease communication between software
developers. The nature of OSSD is that software developers normally communicate
with each other using some online communication medium (e.g discussion forum,
e-mail, IRC) rather than through physical interaction. There is an anecdotal
belief that UML is rarely used in OSSD. However, there is no quantitative research
to prove this perception. In this paper, we aim at evaluating the usage of UML
diagrams in OSSD projects. We want to discover how UML is used in OSSD
without the in uence of the stakeholders or users of the system. We explore
the publicly software documentation to answer the following questions: 1) What
types of UML diagrams are used? 2) How does the size of the design relates
to the size of the implementation? and 3) How does timing of changes in the
implementation relate to changes in UML diagrams/documentation?</p>
      <p>The paper is structured as follows: Section 2 discusses related work. Section
3 describes the case studies used in this research. Section 4 describes the study
approach while Section 5 presents the results and ndings. This is followed by
our conclusion and future work in Section 6.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Dobing and Parsons [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] performed a survey to nd out to what extent the UML
is used and for what purpose, di erences in the level of diagram use and how
successful UML usage is for communication in a team. The research found that
the most used types of UML diagrams were use case diagram and class diagram
while collaboration diagram was used the least. Dobing and Parsons also
conducted another survey to discover the current practice in the use of UML in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
The ndings of this survey highlighted that the most used UML diagrams were
class diagram, use case diagram and sequence diagram.
      </p>
      <p>
        Grossman et. al [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] performed a study to research the perspective of
individuals using UML using the task-technology t model. This study also addressed
the characteristics that a ect the usage of UML. Similar to [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], the
result of the most three important diagrams in ranking are use case, class and
sequence Diagram. Those studies also found out that it is di cult to discover
whether UML provides too much detail or too little detail because it depends
on the software technology (i.e. Enterprise System, Web-based system, real-time
system) that requires UML to be tailored to the environment.
      </p>
      <p>
        Yatani et. al [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] conducted an evaluation on the use of diagramming for
communication among OSSD developers and also performed a semi-structured
interview with developers from a large OSSD project. This study highlighted
diverse type of diagram which is used for the communication between the
contributors of the system. Not all diagrams used for communication purposes were
updated during the project. The study extended by Chung et. al [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] with a
survey participated by 230 OSSD developers and designers. For the frequency of
updating designs, even though 76% agree that diagrams have value, only 27%
practice diagramming very often or all the time during the software development.
      </p>
      <p>
        Most of the related works use surveys to discover the usage of UML
diagram. These surveys are based on the UML practitioners' perspective of how
they use UML. In contrast, our study evaluates the use of UML modeling in
OSSD projects by mining the project documentation. Hence, this re ects the
real artifacts produced by using the UML notation.
Based on researches by Hutchinson et. al [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], Dobing and Parsons [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], and
Erickson et. al [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], we know that the most used UML diagram is the class
diagram. Therefore, we performed a search for UML class diagram images using
the Google search engine. In particular, we targeted our search on four
opensource repositories: SourceForge, Google Code, GitHub and BerliOS. The main
keyword used for the search was \class diagram". Based on the hits of these
searches, we browsed the project repositories. Our initial list of candidate cases
consisted of 57 projects. We re ned the selection by using the following criteria:
The project should have UML diagrams and corresponding source code
(project that have multiple versions is preferred)
      </p>
      <p>The source code should be written in Java
Projects that are developed in Java is selected because we need to reverse
engineer the source code to class diagram for analysis purposes. The reverse
engineering tools that we used for this study performs best with Java source codes.
We found ten software projects which are suitable that are listed in Table 1.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Approach</title>
      <p>This section describes the approach we used in this study. We had three main
activities in order to answer the following research questions :
RQ1 : What types of UML diagrams are used? Based on the project
repository, we manually browsed the documentation and other provided information
to nd all the UML diagrams that were used in the project.</p>
      <p>RQ2 : How does the size of the design relate to the size of the
implementation? Our aim was to use one single tool for counting classes of both
the design and implementation. Furthermore, for source code, we only wanted
to count classes that were actually designed for the project's system, hence to
exclude library classes that are imported, and would typically not be modeled.
To this end, source codes were reverse engineered using several Computer Aided
Software Engineering (CASE) tools i.e MagicDraw 17.03 and Enterprise
Architect 7.54. The reverse engineered design was then exported to XML Metadata
Interchange (XMI) les. From the resulting XMI les, software design metrics
were computed using the SDMetrics 5 tool and all library classes were removed.
RQ3 : How does timing of changes in the implementation relates to
changes in UML diagrams/documentation? For source code, we manually
extracted the dates of releases from the project repositories. For UML diagrams,
we looked at the date-information provided by the system documentation,
developer's manual and other related documents in the project repository.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Results and Findings</title>
      <p>In this section, we present the results. We group our results into the three
questions presented in the previous section.
5.1</p>
      <p>
        Usage of UML Diagrams
The UML diagram that was mostly used in our set of open-source projects is
the class diagram. This is to be expected because our main keyword of searching
3 http://www.nomagic.com/
4 http://www.sparxsystems.com.au/
5 http://www.SDMetrics.com/
for case study was based on class diagrams. Table 2 shows which other types
of diagrams were used. The term `yes' in Table 2 means that the project used
at least one instance of a UML diagram speci ed in the table. The use of UML
in OSSD projects seems driven by a need to codify high level knowledge. For
example, ArgoUML did not use sequence diagrams in their modeling until there
was a new feature. Only this new feature was explained by a sequence diagram.
In general, the case studies show that the most used UML diagrams in OSSD are
use case, component, package, class, sequence/interaction and activity diagram.
The following subsections describe the results in more detail.
Use Case Diagram. Use case diagrams were used by only one OSSD project:
JPMC (see Table 2). A use case diagram is used to describe the desired
functionality of the software product [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Most of these OSSD projects have speci ed
their goal but the speci cation and the interaction between the user and system
were explained in text.
      </p>
      <p>
        Component Diagram. Component diagrams are used to divide the system
into components and show their interrelationships through the breakdown of
components into a lower-level structure [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. ArgoUML provided one component
diagram from an old design document to illustrate the interaction between early
developed component and packages. The Mars Simulation project provided two
component diagrams i.e. 1)`Top Level Diagram' illustrated dependencies between
three components, and 2)`Simulation Component Diagram' illustrated more
details about the relationship between a simulation component and other related
components.
      </p>
      <p>
        Package Diagram. Package diagrams provide a grouping construct that
allows to group design elements together into higher-level units [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The JPMC
project presents almost all main packages and their dependencies in a package
diagram. Meanwhile, ArgoUML presented two package diagrams. The rst
package diagram in this project illustrated the dependencies between packages with
two other package representing external libraries. The second package diagram
illustrated the high level package in this project.
      </p>
      <p>Class Diagram. Class diagram is the most used diagram type in these case
studies. Most of the case studies only show classes that are important in the
system. The correspondence between classes and implementation is discussed in
section 5.2.</p>
      <p>Sequence/Interaction Diagram. Sequence diagrams were used by two OSSD
projects. However, both projects have only one sequence diagram per project.
ArgoUML introduced a sequence diagram after eight version releases. Table 4
shows that only after version 0.26, a sequence diagram was introduced in the
documentation. Perhaps, it is di cult to construct the sequence diagram for
the entire release hence, the developer of this project used sequence diagram
for a new feature. The gwt-portlets project used only one sequence diagram.
We assume that the described ow contains crucial information for the system
because the classes that were involved in the sequence diagram were presented
in a class diagram that shows the key classes of the system.</p>
      <p>
        Activity Diagram. Activity diagramming or activity modeling emphasizes the
ow and conditions for coordinating lower-level behaviours [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. This study found
that there were two OSSD projects used the activity diagram. However, not
all activity diagrams in these projects are related to the software development.
ArgoUML used an activity diagram to present the ow of managing issues in
the project. Meanwhile, the Mars Simulation project used one activity diagram
for specifying a speci c feature of the project.
This subsection presents the results of analyzing the ratio between classes in the
design and classes in the implementation. Since there are multiple versions of
both the design and implementation in most of the case studies, we chose a pair
with a high ratio of design to implementation. For example, for the Neuroph
project, we selected version 2.3 because this version has a high number of
designed classes due to the fact that the project starts updating UML diagrams at
this point in time. The Maze project has the highest ratio of classes in design to
classes in implementation. This is a relatively small project which consisted of
69 classes in the implementation and 40 % of these classes were represented in
the UML design. In absolute numbers, the highest number of classes in a design
is found in the JavaClient project with 57 classes.
      </p>
      <p>45.00
n
ig40.00
s
e
D
m35.00
n
i
sm30.00
e
s
s
a
lC25.00
m
f
o20.00
m
e
g
ta15.00
n
e
c
re10.00
P
5.00
This subsection presents the frequency of updating the UML models of the
case studies. We would like to know whether UML diagram is used throughout
the projects or only in initial phases. We analysed the case studies that have
multiple versions of releases to assess the frequency of updating the diagrams
while the systems evolve through subsequent releases. Even though there were
multiple versions of system releases for the Mars Simulation, JavaClient, JPMC,
Gwt-Portlet, Maze and xUML-compiler project, their UML diagrams were not
changed. For instance, the Mars Simulation project has released 26 versions of
source code. The UML designs were only uploaded in Dec 2009. Based on that
date, we assume that this design corresponds with this release version 2.87 and
above. This indicates that the earlier 19 versions of the software did not have a
UML model. However, we could not disregard the fact that the design may be
created earlier than the date it was uploaded.</p>
      <p>
        The result also shows that the frequency of updating UML diagram is low. In
most of the case studies, a new UML diagram is created when there is a new
feature of the system introduced in a new version or release. Only the Neuroph and
ArgoUML project actually modi ed existing diagrams. Other project only added
new diagrams to their documentation, but did not modify previously existing
diagrams. In the ArgoUML project, we found that there was an increasing amount
of diagrams at the same time as the number of project contributors increases.
The work by Wen Zhang et. al [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] shows that there was an increasing amount
of participants in version 0.26. The ArgoUML project updated and added a lot
of UML diagrams in version 0.26. We hypothesize that the documentation was
elaborated to cater for a group of newcoming developers that are looking for
information about the design.
      </p>
      <p>Next, we discuss the ArgoUML project as an example of a project that did
update their UML designs across multiple versions of releases. Table 4 shows
which types of diagrams were used across subsequent versions over time. The
table shows in early stages of development, diagrams were made that
represent the high level structure of the system (component, package and class). As
development time progresses, diagrams are added that represent the dynamic
behaviour of the system through activity diagrams (v 0.16) and sequence
diagrams (v 0.26). Also, at the later stages of development, component diagrams
are no longer used. We believe this trend to be typical of the use of modeling
in software development in general : Firstly, the developers design the overall
structure and later continue to esh out behavioural aspects of the design.
Figure 2 shows the evolution of UML Diagrams in every versions of release. Figure
2 also shows the evolution of the number of classes. It is explicitly shown that
the UML diagrams are created in the early stage of software release and then
updated occasionally.
This section describes the threats to validity of this study. In term of case study
selection, there could be more case studies if we included more open-source
repository. The selected projects may not represent all the OSSD because the
selected case studies can be considered as small and medium type of system
development. In addition, we also did not have projects with the number of
classes between 250 and 800. The result could be di erent if more larger projects
would be included in this study. The study was done based only on using the
information in the project repositories and also the projects websites. It may be
the case that developers use UML in their communication or for internal use
without uploading their diagrams in the project repository. This study also only
used the date listed as the upload-date of the documents in the repositories. The
document may be created far before the uploaded date. Thus, the matching of
the date of documentation and the version may not be accurate.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>This study aims to discover the usage of UML diagram in the OSSD projects.
To this end, ten case studies were collected from online repositories. Three
main questions were studied: What types of UML diagrams are used?, How
does the size of the design relates to the size of the implementation? and How
does timing of changes in the implementation relate to changes in UML
diagrams/documentation? By studying the evolution of UML models across
versions, we found that the focus of modeling shifts from structural aspects in the
early phases of development, to dynamic behaviour in the later stages of
development. The frequency of updating UML models is low. We found two triggers for
updating UML diagrams: 1) if there are changes in the features of the system,
and 2) if there is a group of newcomers joining the project. The latter cause
con rms the role of UML models as a way of codifying design knowledge for
communicating the design. Overall, this paper shows that open-source projects
can be used as empirical source for studying usage of UML modeling.</p>
      <p>For future work, it would be interesting to extend this study by performing
a broader survey or interview OSSD developers to nd out the reasons for or
against using UML diagrams in their development. Also, it is interesting to
ask developers after their pattern in updating UML models. Finding more case
studies and extending the case studies to languages other than Java. This would
allow to di erentiate results between programming languages.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>J.</given-names>
            <surname>Hutchinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Rounce eld and S. Kristo ersen, "Empirical Assessment of MDE in Industry,"</article-title>
          <source>Proc. of the 33rd International Conference on Software Engineering(ICSE '11)</source>
          , pp.
          <volume>471</volume>
          {
          <fpage>480</fpage>
          . ACM New York (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Erickson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Siau</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Theoretical and Practical Complexity of Modeling Methods</article-title>
          ,
          <source>In: Communications of the ACM</source>
          , Vol.
          <volume>50</volume>
          <issue>Issue 8</issue>
          , pp.
          <volume>46</volume>
          {
          <fpage>51</fpage>
          . ACM New York (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Grechanik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McKinley</surname>
            ,
            <given-names>K.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perry</surname>
            ,
            <given-names>D.E.: Recovering</given-names>
          </string-name>
          <string-name>
            <surname>And Using Use-CaseDiagram-To-Source-Code Traceability</surname>
            <given-names>Links</given-names>
          </string-name>
          , In: ESEC-FSE '
          <article-title>07 Proc. of the 6th joint meeting of the European softw</article-title>
          .
          <source>eng. conference and the ACM SIGSOFT symposium on The foundations of softw. eng.</source>
          , pp.
          <volume>95</volume>
          {
          <issue>104</issue>
          ACM New York (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Object</given-names>
            <surname>Management</surname>
          </string-name>
          <article-title>Group(OMG): Uni ed Modeling Language Speci cation</article-title>
          ,
          <source>Superstructure Version 2.4</source>
          .1, http://www.omg.org/spec/UML/2.4.1/ Superstructure/PDF/,pp.
          <fpage>303</fpage>
          , (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>UML Distilled 3rd Edition. A Brief Guide to the Standard Object Modeling Language</article-title>
          , pp.
          <volume>89</volume>
          ,
          <issue>141</issue>
          .
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          :
          <article-title>Network Analysis of OSS Evolution: an Emperical Study on ArgoUML Project</article-title>
          .
          <source>In: IWPSE-EVOL '11 Proc. of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution</source>
          , pp.
          <volume>71</volume>
          {
          <issue>80</issue>
          , ACM New York (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dobing</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsons</surname>
          </string-name>
          ,J.:
          <article-title>How UML is used</article-title>
          ,
          <source>In: Communications of the ACM</source>
          , Vol.
          <volume>49</volume>
          , Issue 5, pp.
          <volume>109</volume>
          {
          <issue>113</issue>
          , ACM New York (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Dobing</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsons</surname>
          </string-name>
          ,J.:
          <article-title>Current Practice in the Use of UML, In: Proceeding of ER 2005 Workshops AOIS, BP-UML, CoMoGIS</article-title>
          , eCOMO, and QoIS, pp.
          <volume>2</volume>
          {
          <issue>11</issue>
          , SpringerVerlag Berlin Heidelberg (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Grossman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aronson</surname>
            ,
            <given-names>J.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McCarthy</surname>
            ,
            <given-names>R.V.</given-names>
          </string-name>
          :
          <article-title>Does UML make the grade? Insights from the software development community</article-title>
          ,
          <source>In: Information and Software Technology</source>
          , vol.
          <volume>47</volume>
          , Issue 6, pp
          <volume>383</volume>
          {
          <fpage>397</fpage>
          ,
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Yatani</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Chung</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jensen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Truong</surname>
            ,
            <given-names>K.N.</given-names>
          </string-name>
          :
          <article-title>Understanding how and why open source contributors use diagrams in the development of Ubuntu</article-title>
          ,
          <source>In: CHI '09 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems</source>
          , pp.
          <volume>995</volume>
          {
          <issue>1004</issue>
          , ACM New York (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Grady</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumbaugh</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>The Uni ed Modeling Language User Guide</article-title>
          , pp.
          <fpage>72</fpage>
          ,
          <string-name>
            <given-names>Addison</given-names>
            <surname>Wesley</surname>
          </string-name>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Chung</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jensen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yatani</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuechler</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Truong</surname>
            ,
            <given-names>K.N.</given-names>
          </string-name>
          :
          <article-title>Sketching and Drawing in the Design of Open Source Software</article-title>
          ,
          <source>In: VLHCC '10 Proc. of the 2010 IEEE Symposium on Visual Languages and Human-Centric Computing</source>
          , pp.
          <volume>195</volume>
          {
          <issue>202</issue>
          , IEEE Computer Society, USA (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>