<!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>A Design Rationale Representation for Model-Based Designs in Software Engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Adriana Pereira de Medeiros</string-name>
          <email>adri@inf.puc-rio.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Schwabe</string-name>
          <email>dschwabe@inf.puc-rio.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bruno Feijó</string-name>
          <email>bruno@inf.puc-rio.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. of Informatics</institution>
          ,
          <addr-line>PUC-Rio, Rua Marquês de São Vicente 225, 22453-900, Rio de Janeiro - RJ</addr-line>
          ,
          <country country="BR">Brasil</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>ion level, where rationales are re-employed in designing a new artifact. This kind of reuse is possible in knowledge domains where there are formal models describing the artifacts, in particular, in the Software Design domain.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Designing a software artifact typically involves understanding the problem being
addressed, identifying possible solution alternatives, analyzing them, and deciding
which solutions will be used to construct the final artifact. The final products of this
process, the artifact and its specifications, represent the final solution chosen for the
particular design problem, but do not represent the reasons that led the designers to
choose that one among the other available alternatives, and why the others were
discarded. In other words, they do not capture the Design Rationale (DR).</p>
      <p>DR is the reasons behind design decisions. In most cases the DR is not adequately
documented, which leads to requiring a high degree of verbal communication among
persons that must work with an artifact, in order to understand the reasoning followed
by the designer. For instance, this is fundamental when maintaining a software artifact
designed by another person, or when trying to reuse it in the context of a new design.
Therefore, recording the DR during the design is critical to allow its reuse.</p>
      <p>
        There are several proposals in the literature for representing DR, such as IBIS [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
and DRL [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Most of them are incomplete or informal, not enabling
machineprocessable computations over the represented DR. Consequently, it is not possible to
guarantee that the representation is consistent and even that it does actually provide
some sort of explanation about the captured design. Furthermore, when applying them
to formally defined artifacts (such as software), their informality prevents
automatically taking into consideration alternatives prescribed by the design methods,
as well as incorporating their restrictions. In other words, it is not possible to leverage
the semantics of the artifact provided by the formal model that describes it.
      </p>
      <p>
        For many knowledge domains, particularly in software design, there are formal
models that describe the artifacts and present semantic descriptions, which allow
reasoning over the artifacts being produced. In this paper, this special type of design
domain is called "model-based design". An example of such a formal model is the
UML specification language [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] used to describe a class diagram. A formally defined
DR representation may allow integrating the formal semantics of the artifacts being
designed, and allows automated computations over such representations. When such
representations are available in a distributed environment, it is possible to envisage
the collaboration between designers with semi-automated support, where DR
representations can be searched for, recovered and integrated during the process of
designing a new artifact. The integration of different DRs is possible only if the
following conditions are satisfied: the artifacts are build from the same type of formal
model (e.g. two UML class diagrams); the DRs are used to represent the same domain
of application (e.g. a CD catalogue) and the DR of the artifacts is represented using
the same (or compatible) representation scheme(s) - e.g. an ontology vocabulary.
      </p>
      <p>A semi-automated computational environment is being built to support designers
through processing of formal DR representations. This environment uses the formal
model for the artifact being designed to suggest design options at each step in the
design, and records the corresponding choices made by the designer, using a special
purpose description language that will be described later. Depending on the richness
of the formal model of the artifact being designed, the system may suggest new
alternatives, and also check the consistency of decisions made by the designer.
Theoretically, fully automated systems could be constructed, but this is not the
approach taken in this paper.</p>
      <p>Consider the following motivating example shown in Fig.1. This example shows
three design options defined by different designers to model the “Genre” information
item in an UML class diagram modeling a CD catalogue. In Fig.1-a, the designer
decided to model “Genre” as an attribute with multiplicity one or more. In Fig.1-b,
the designer decided to model “Genre” as a class that has an association with a CD
class, and in Fig.1-c another designer decided to model a “Category” information
item instead of “Genre" to represent the same kind of information. This designer
decided to model Category as a class with a self-relation of type aggregation to
represent the subcategory concept.</p>
      <p>Since these artifacts are described in the same formal model (UML class
diagrams), and refer to the same domain (CD catalogues), a fourth designer could
retrieve the DR representations of these artifacts (for instance, in a distributed
environment), and integrate both rationales to design a new class diagram for this
domain, reusing existing (partial) solutions.</p>
      <p>In this particular case, the fourth designer could consider the “Genre” and
“Category” information items to be really the same, and thus integrate the DR
representations for each. For instance, he may consider modeling “Category” as an
aggregation, but also taking the idea of allowing multiplicity one or greater, taken
from the other modeling alternative. Thus, this designer could incorporate into her
design the reasoning (arguments for each alternative considered) used by the other
designers, and add her own reasons as well, finally making her own decisions
generating a new DR. From this point of view, both software maintenance and
evolution can be considered as simply a continuation of a previous design process,
captured in a given DR. This DR enables a type of reuse at the highest abstraction
level, where rationales are re-employed in designing a new artifact.</p>
      <p>In this paper, we next present a DR representation vocabulary for software designs,
using the Kuaba1 ontology. Next, we address the issue of how the formal semantics of
the artifacts being described can be integrated with the design process. Next, we
present the operations needed to support their reuse when designing new artifacts. We
conclude by pointing out further work.</p>
    </sec>
    <sec id="sec-2">
      <title>2 Kuaba: the Design Rationale Ontology</title>
      <p>As previously mentioned, it is desirable to represent DR in a formally precise and
computable way. Ontologies are good candidates for representing DR in a formally
precise and computable way, since, they are knowledge representations, where a set
of objects and their relationships are described through a defined vocabulary.</p>
      <p>
        The Kuaba ontology describes a set of elements that express the DR domain. Our
objective in proposing this ontology is to provide a vocabulary for DR described in an
ontology definition language, such as F-Logic [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], that allows attributing semantics to
recorded DR content, and to define a set of rules and computable operations to
support the use of DR in designing new software artifacts.
      </p>
      <p>The vocabulary described by Kuaba extends the argumentation structure of the
Issue Based Information System (IBIS), composed by issues, positions and
arguments. The extension enriches this argumentation structure by explicating the
representation of the decisions made during design and their justifications, and
integrating this argumentation structure with descriptions of the produced artifact, and
with information about the design history (when decisions were made, who made
them, what design method was used, etc). Fig. 2 shows the elements of the vocabulary
defined by the Kuaba ontology, using the UML notation only to help visualization;
some relations and constraints were hidden to simplify the presentation.
1 “Kuaba” means “knowledge” in Tupy-guarany, the language of one of the native peoples in
Brazil.</p>
      <p>Briefly described, the Kuaba vocabulary represents the people involved in a design
activity, their respective roles and the reasoning elements used for organizing and
recording their solution ideas about the artifact that is being constructed. These
reasoning elements represent the design problems (questions) that the designer should
deal with, the possible solution ideas for these problems and the presented arguments,
described according to formal model prescribed by the design method used. People
involved in the artifact design make decisions about the acceptance or rejection of the
solution ideas presented. Each decision must have a justification that explains the
“why” it was made. Justification is always derived from one or more arguments. The
ideas accepted during the design process originate artifacts that can be either atomic
artifacts or composite artifacts. All reasoning elements and artifacts have a
“isversion-of” relation, representing the fact that any one of them may be based on an
existing element, that may be either part of a previous version of this same artifact,
and therefore the design is actually evolving it, or part of a different design that is
being reused in a new context.
2.1</p>
      <p>
        Representing Design Rationale
Normally, the first activity done by the designer in designing a software artifact is the
choice of design method or process that will be used to achieve the design. When the
designer chooses a design method, he indirectly determines the formal model(s) that
will be used to describe the artifact. The existence of a formal model for the artifact
determines, to a great extent, the questions and ideas that the designer can propose,
since they are pre-defined by this model. For example, in the motivating example in
Fig.1 if the designers have chosen the Unified Process [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the DR will be expressed
in terms of reasoning elements defined by the UML formal model for class diagrams.
      </p>
      <p>Fig.3 shows a graphical representation we have created to help visualizing
instances of the Kuaba vocabulary, showing the portion of the design regarding the
alternatives to model “Genre” in the motivating example.
Following the UML formal model, the initial question (represented as rectangles),
“What are the model elements?”, represents the first problem to be solved in
designing a class diagram - the identification of its constituting elements. This
question is addressed by the ideas “CD”, “Genre” and “Name” (represented as
ellipses), whose values are determined by the designer’s knowledge of the domain, or
were extracted from the DR of a previous phase, requirements elicitation, which is not
addressed in this paper.</p>
      <p>After establishing these first alternative ideas for the CD Catalogue model
elements, the designer must decide how each one of them will be modeled using the
UML, to make up the final class diagram. This next step is represented in by the
“suggests” relation, which determines questions entailed by ideas – “How to model
CD?”, “How to model Genre?” and “How to model Name?”. The possible ideas that
address these questions are determined by the formal model for UML class diagrams
– elements can essentially be a class, an attribute, or an association. Accordingly, the
“Class” and “Attribute” ideas linked to the “How to model Genre?” node are
established as an instantiation of the UML formal model. Since the “Attribute” idea,
in turn, must be associated with a “Class” according to the UML model, the question
“Whose?” is suggested, which in turn will be addressed by the idea corresponding to
the class with that attribute it is. The “Argument” element instances represent the
experiences and the knowledge that the designers are employing in the artifact design.</p>
      <p>
        In addition, we also show the final decision made, indicating each alternative
answer to each question with an “A” (for accepted) or “R” (for rejected) label. Thus,
the example represents the fact that the designer decided to accept the “Attribute”
alternative to the question “How to model Genre?”, in detriment of the “Class”
alternative. The sub-graph of the DR made up of “Question” and “Ideas” is actually
an AND/OR graph [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] that can be seen as a goal decomposition of the root node,
which is always a “Question”. This allows us to define rules that can suggest
decisions about the acceptance or not of the proposed solution ideas. For example, the
software could suggest rejecting certain ideas based in the following rule: if an idea
associated with a question of type “OR” is accepted by the designer, then all other
ideas associated to this question will be rejected.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3 Using the Representations of Design Rationale</title>
      <p>The use of the DR representations requires different kinds of operations on the
recorded content. The explicit and semantic representation of DR in a language
formally defined and specifically designed for the description of ontologies, allows
these operations to be computable by engines to support the design of new artifacts.
The operations over DR representations can be grouped into queries, operations for
manipulating an existing DR representation, and operations for integrating of two or
more DR representations (Kuaba ontology instances).</p>
      <p>The first group allows formulating relevant questions about the design process and
about the produced artifact. The operations of the second group involve the creation
and destruction of instances of the classes and properties defined in the Kuaba
ontology. The operations for the integration of two or more DR representations
involve matching different instances of the Kuaba ontology. The types of operations
identified until now for the integration of two or more DR representations are: search,
copy, union and substitution.</p>
    </sec>
    <sec id="sec-4">
      <title>4 Further Work</title>
      <p>Our current research includes: the implementation of the operations defined in this
paper to validate the reuse of software artifacts through the integration of existing DR
representations; and the investigation of the use of the Kuaba ontology to represent
DR also in domains where there are no well defined formal models to describe
artifacts. For an extended version, see
http://www-di.inf.pucrio.br/~dschwabe//papers/DesignRationale_and_Ontologies.PDF</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Kunz</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rittel</surname>
            ,
            <given-names>H. W. J.</given-names>
          </string-name>
          :
          <article-title>Issues as Elements of Information Systems</article-title>
          .
          <source>Institute of Urban and Regional Development Working Paper</source>
          <volume>131</volume>
          , University of California, Berkeley, CA (
          <year>1970</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lai</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>What's in Design Rationale</article-title>
          .
          <source>Human-Comput. Interaction</source>
          , No.
          <volume>6</volume>
          (
          <issue>3</issue>
          -4) (
          <year>1991</year>
          )
          <fpage>251</fpage>
          -
          <lpage>280</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <source>OMG: Unified Modeling Language Specification version 1</source>
          .5.
          <string-name>
            <surname>March</surname>
          </string-name>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Kifer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lausen</surname>
          </string-name>
          , G.:
          <article-title>F-Logic: A Higher-Order Language for Reasoning about Objects, Inheritance and Scheme</article-title>
          . ACM SIGMOD May (
          <year>1989</year>
          )
          <fpage>134</fpage>
          -
          <lpage>146</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Booch</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumbaugh</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <source>The Unified Software Development Process</source>
          . Reading, MA.:
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          (
          <year>1999</year>
          ) 463p
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Nilsson</surname>
          </string-name>
          , N.:
          <source>Principles of Artificial Intelligence</source>
          . Morgan Kaufman Publishers (
          <year>1986</year>
          ) 476p
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>