<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A Design Rationale Representation for Model-Based Designs in Software Engineering</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Adriana</forename><surname>Pereira De Medeiros</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Dept. of Informatics</orgName>
								<orgName type="institution">PUC-Rio</orgName>
								<address>
									<addrLine>Rua Marquês de São Vicente 225</addrLine>
									<postCode>22453-900</postCode>
									<settlement>Rio de Janeiro -RJ</settlement>
									<country key="BR">Brasil</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Daniel</forename><surname>Schwabe</surname></persName>
							<email>dschwabe@inf.puc-rio.br</email>
							<affiliation key="aff0">
								<orgName type="department">Dept. of Informatics</orgName>
								<orgName type="institution">PUC-Rio</orgName>
								<address>
									<addrLine>Rua Marquês de São Vicente 225</addrLine>
									<postCode>22453-900</postCode>
									<settlement>Rio de Janeiro -RJ</settlement>
									<country key="BR">Brasil</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Bruno</forename><surname>Feijó</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Dept. of Informatics</orgName>
								<orgName type="institution">PUC-Rio</orgName>
								<address>
									<addrLine>Rua Marquês de São Vicente 225</addrLine>
									<postCode>22453-900</postCode>
									<settlement>Rio de Janeiro -RJ</settlement>
									<country key="BR">Brasil</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Design Rationale Representation for Model-Based Designs in Software Engineering</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">B111E694FB6484BCA31050345F725D02</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T06:10+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This paper presents the Kuaba Ontology, a vocabulary for Design Rationale described in an ontology definition language that allows attributing semantics to recorded content, and defining rules that enable performing computable operations and inferences on this content. This vocabulary extends the argumentation structure of the Issue Based Information System (IBIS) explicating the representation of the decisions made during design and their justifications, and the relations between the argumentation and generated artifacts. Furthermore, we propose to support the design process through the use of the semantic descriptions defined by formal models of the artifacts. Representing Design Rationale using an ontology definition language and the artifacts formal model, enables a type of software reuse at the highest abstraction 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><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 <ref type="bibr" target="#b0">[1]</ref> and DRL <ref type="bibr" target="#b1">[2]</ref>. 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 <ref type="bibr" target="#b2">[3]</ref> 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. Consider the following motivating example shown in Fig. <ref type="figure" target="#fig_0">1</ref>. 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. <ref type="figure" target="#fig_0">1-a</ref>, the designer decided to model "Genre" as an attribute with multiplicity one or more. In Fig. <ref type="figure" target="#fig_0">1-b</ref>, the designer decided to model "Genre" as a class that has an association with a CD class, and in Fig. <ref type="figure" target="#fig_0">1-c</ref> 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. 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 Kuaba<ref type="foot" target="#foot_1">1</ref> 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Kuaba: the Design Rationale Ontology</head><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 <ref type="bibr" target="#b3">[4]</ref>, 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. <ref type="figure">2</ref> 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig. 2. The elements of the Kuaba Ontology Vocabulary</head><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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Representing Design Rationale</head><p>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. <ref type="figure" target="#fig_0">1</ref> if the designers have chosen the Unified Process <ref type="bibr" target="#b4">[5]</ref>, the DR will be expressed in terms of reasoning elements defined by the UML formal model for class diagrams.</p><p>Fig. <ref type="figure" target="#fig_1">3</ref> 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 <ref type="bibr" target="#b5">[6]</ref> 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Using the Representations of Design Rationale</head><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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Further Work</head><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.</p><p>For an extended version, see http://www-di.inf.pucrio.br/~dschwabe//papers/DesignRationale_and_Ontologies.PDF</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Design options to model Genre item information</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. A DR representation regarding "Genre" in the motivating example (Fig. 1)</figDesc><graphic coords="5,41.73,62.51,356.34,185.52" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="4,41.79,62.57,345.72,168.48" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">Proceedings of the CAiSE'05 Forum -O. Belo, J. Eder, J. Falcão e Cunha, O. Pastor (Eds.) © Faculdade de Engenharia da Universidade do Porto, Portugal 2005 -ISBN 972-752-078-2</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_1">"Kuaba" means "knowledge" in Tupy-guarany, the language of one of the native peoples in Brazil.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Issues as Elements of Information Systems</title>
		<author>
			<persName><forename type="first">W</forename><surname>Kunz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">W J</forename><surname>Rittel</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1970">1970</date>
			<biblScope unit="volume">131</biblScope>
			<pubPlace>Berkeley, CA</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Institute of Urban and Regional Development Working Paper ; University of California</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">What&apos;s in Design Rationale</title>
		<author>
			<persName><forename type="first">J</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Lai</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Human-Comput. Interaction</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">3-4</biblScope>
			<biblScope unit="page" from="251" to="280" />
			<date type="published" when="1991">1991</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m">OMG: Unified Modeling Language Specification version 1</title>
				<imprint>
			<date type="published" when="2003-03">March (2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">F-Logic: A Higher-Order Language for Reasoning about Objects, Inheritance and Scheme</title>
		<author>
			<persName><forename type="first">M</forename><surname>Kifer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Lausen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM SIGMOD May</title>
		<imprint>
			<biblScope unit="page" from="134" to="146" />
			<date type="published" when="1989">1989</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">The Unified Software Development Process</title>
		<author>
			<persName><forename type="first">I</forename><surname>Jacobson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Booch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Rumbaugh</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1999">1999</date>
			<publisher>Addison-Wesley</publisher>
			<biblScope unit="page">463</biblScope>
			<pubPlace>Reading, MA</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Principles of Artificial Intelligence</title>
		<author>
			<persName><forename type="first">N</forename><surname>Nilsson</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1986">1986</date>
			<publisher>Morgan Kaufman Publishers</publisher>
			<biblScope unit="page">476</biblScope>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
