<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0717-5000</journal-id>
<journal-title><![CDATA[CLEI Electronic Journal]]></journal-title>
<abbrev-journal-title><![CDATA[CLEIej]]></abbrev-journal-title>
<issn>0717-5000</issn>
<publisher>
<publisher-name><![CDATA[Centro Latinoamericano de Estudios en Informática]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0717-50002014000300002</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[Assisting software architects in architectural decision-making using Quark]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Ameller]]></surname>
<given-names><![CDATA[David]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Franch]]></surname>
<given-names><![CDATA[Xavier]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universitat Politècnica de Catalunya  ]]></institution>
<addr-line><![CDATA[Barcelona ]]></addr-line>
<country>Spain</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2014</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2014</year>
</pub-date>
<volume>17</volume>
<numero>3</numero>
<fpage>2</fpage>
<lpage>2</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_arttext&amp;pid=S0717-50002014000300002&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_abstract&amp;pid=S0717-50002014000300002&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_pdf&amp;pid=S0717-50002014000300002&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[Non-Functional Requirements (NFRs) and constraints are among the principal drivers of architectural decision-making. NFRs are improved or damaged by architectural decisions (ADs), while constraints directly include or exclude parts of the architecture (e.g., logical components or technologies). We may determine the impact of an AD, or which parts of the architecture are affected by a constraint, but at the end it is hard to know if we are respecting the NFRs and the imposed constraints with all the ADs made. In the usual approach, architects use their own experience to produce software architectures that comply with the NFRs and imposed constraints, but at the end, especially for crucial decisions, the architect has to deal with complex trade-offs between NFRs and juggle with possible incompatibilities raised by the imposed constraints. In this paper we present Quark, a method to assist software architects in architectural decision-making, and the conceptualization of the relationship between NFRs and ADs defined in Arteon, an ontology to represent and manage architectural knowledge. Finally, we provide an overview of the Quark and Arteon implementation, the ArchiTech tool.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[Los requisitos no funcionales (NFRs) y las restricciones se encuentran entre los principales impulsores de la toma de decisiones de la arquitectura. La satisfacción de los NFR se puede mejorar o empeorar por las decisiones arquitectónicas (ADs), mientras que las restricciones incluyen o excluyen directamente partes de la arquitectura (por ejemplo, componentes lógicos o tecnologías). Podemos determinar el impacto de una AD, o qué partes de la arquitectura se ven afectadas por una restricción, pero es difícil saber si estamos respetando los NFRs y de las restricciones impuestas con las decisiones tomadas. En el enfoque habitual, los arquitectos utilizar su propia experiencia para producir arquitecturas de software que cumplan con los NFR y las restricciones impuestas, pero al final, especialmente para las decisiones cruciales, el arquitecto tiene que hacer frente a complejas compensaciones entre los NFRs y hacer malabarismos con las posibles incompatibilidades emergentes por las restricciones impuestas. En este artículo presentamos Quark, un método para ayudar a los arquitectos de software en la toma de decisiones, y una conceptualización de la relación entre NFRs y ADs definidos en Artéon, una ontología para representar y gestionar el conocimiento arquitectónico. Finalmente, ofrecemos una visión general de la implementación de Quark y Artéon, la herramienta ArchiTech.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[Software quality]]></kwd>
<kwd lng="en"><![CDATA[non-functional requirements]]></kwd>
<kwd lng="en"><![CDATA[architectural decisions]]></kwd>
<kwd lng="en"><![CDATA[architectural knowledge]]></kwd>
<kwd lng="en"><![CDATA[software architecture design method]]></kwd>
<kwd lng="en"><![CDATA[decision-making]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <div class="maketitle">    <b><font face="Verdana" size="4">Assisting software architects in architectural decision-making using Quark</font></b>    <div class="author" >    <font face="Verdana" size="2"> <span  class="rm-lmbx-12">David Ameller and Xavier Franch</span> <br /> <span  class="rm-lmr-12">Universitat Politècnica de Catalunya,</span> <br />           <span  class="rm-lmr-12">Barcelona, Spain,</span> <br />   <span  class="lmsy-10x-x-120">{</span><span  class="rm-lmri-12"><a href="mailto:dameller@essi.upc.edu">dameller</a>, <a href="mailto:franch@essi.upc.edu">franch</a></span><span  class="lmsy-10x-x-120">}</span><span  class="rm-lmri-12">@essi.upc.edu </span></font></div> <font face="Verdana" size="2"><br /> </font>     <div class="date" ></div>    </div>        <div  class="abstract"  >     <div class="center"  > <!--l. 21-->    <p >     <div class="minipage">    <div class="center"  > <!--l. 21-->    <p > <font face="Verdana" size="2"> <!--l. 21--></font>    <p ><font face="Verdana" size="2"><span  class="rm-lmbx-10">Abstract</span></font></div> <!--l. 23-->    ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2">Non-Functional Requirements (NFRs) and constraints are among the principal drivers of architectural decision-making. NFRs are improved or damaged by architectural decisions (ADs), while constraints directly include or exclude parts of the architecture (e.g., logical components or technologies). We may determine the impact of an AD, or which parts of the architecture are affected by a constraint, but at the end it is hard to know if we are respecting the NFRs and the imposed constraints with all the ADs made. In the usual approach, architects use their own experience to produce software architectures that comply with the NFRs and imposed constraints, but at the end, especially for crucial decisions, the architect has to deal with complex trade-offs between NFRs and juggle with possible incompatibilities raised by the imposed constraints. In this paper we present Quark, a method to assist software architects in architectural decision-making, and the conceptualization of the relationship between NFRs and ADs defined in Arteon, an ontology to represent and manage architectural knowledge. Finally, we provide an overview of the Quark and Arteon implementation, the ArchiTech tool. Resumen: <br  class="newline" />Los requisitos no funcionales (NFRs) y las restricciones se encuentran entre los principales impulsores de la toma de decisiones de la arquitectura. La satisfacción de los NFR se puede mejorar o empeorar por las decisiones arquitectónicas (ADs), mientras que las restricciones incluyen o excluyen directamente partes de la arquitectura (por ejemplo, componentes lógicos o tecnologías). Podemos determinar el impacto de una AD, o qué partes de la arquitectura se ven afectadas por una restricción, pero es difícil saber si estamos respetando los NFRs y de las restricciones impuestas con las decisiones tomadas. En el enfoque habitual, los arquitectos utilizar su propia experiencia para producir arquitecturas de software que cumplan con los NFR y las restricciones impuestas, pero al final, especialmente para las decisiones cruciales, el arquitecto tiene que hacer frente a complejas compensaciones entre los NFRs y hacer malabarismos con las posibles incompatibilidades emergentes por las restricciones impuestas. En este artículo presentamos Quark, un método para ayudar a los arquitectos de software en la toma de decisiones, y una conceptualización de la relación entre NFRs y ADs definidos en Artéon, una ontología para representar y gestionar el conocimiento arquitectónico. Finalmente, ofrecemos una visión general de la implementación de Quark y Artéon, la herramienta ArchiTech. </font>  </div></div> </div> <!--l. 28-->    <p ><font face="Verdana" size="2"><span  class="rm-lmbx-10">Keywords: </span>Software quality, non-functional requirements, architectural decisions, architectural knowledge, software architecture design method, decision-making.<br  class="newline" />Palabras clave: Calidad del Software, requisitos no funcionales, decisiones arquitectónicas, conocimiento de arquitectura, método de diseño de la arquitectura de software, toma de decisiones. <br  class="newline" />Received: 2013-09-09, Revised: 2014-02-05, Accepted: 2014-02-05 </font>        <p><font face="Verdana" size="2"><span class="titlemark">1   </span> <a   id="x1-10001"></a>Introduction</font></p> <!--l. 34-->    <p ><font face="Verdana" size="2">In the last decade, software architecture has become one of the most active research areas in software engineering. As a significant trend in this community, many researchers have stated that architectural decisions (ADs) are the core of software architecture&#x00A0;<span class="cite"><a name="b1">[</a><a  href="#XTyree2005">1</a><a name="b2">,</a>&#x00A0;<a  href="#XJansen2005">2</a><a name="b3">,</a>&#x00A0;<a  href="#XKruchten2004">3</a>]</span>. Under this view, software architecture has evolved from a structural representation to a decision-centered viewpoint&#x00A0;<span class="cite"><a name="b4">[</a><a  href="#XKruchten2009">4</a>]</span>. <!--l. 36--></font>    <p >   <font face="Verdana" size="2">In this paper, we present Quark (Quality in Architectural Knowledge), a method to assist software architects in architectural decision-making. Quark builds upon Architectural Knowledge (AK)&#x00A0;<span class="cite"><a name="b5">[</a><a  href="#XKruchten2006">5</a><a name="b6">,</a>&#x00A0;<a  href="#XBoer2007">6</a>]</span> using an ontology (Arteon&#x00A0;<span class="cite"><a name="b7">[</a><a  href="#XAmeller2011">7</a>]</span>) to manage and reuse knowledge about ADs, their rationale and their link to Non-Functional Requirements (NFRs) and constraints. We also present in this paper the part of Arteon related to ADs (this part was not presented in&#x00A0;<span class="cite"><a name="b7">[</a><a  href="#XAmeller2011">7</a>]</span>). The concepts defined in Arteon are tightly related to the Quark method, in particular the conceptualization of the relationship between NFRs and ADs. Finally, we give an insight into the Quark and Arteon implementation, the ArchiTech tool. This tool was already presented in&#x00A0;<span class="cite"><a name="b8">[</a><a  href="#XAmeller2012-REDemo">8</a>]</span>, we only include a short description for completeness. <!--l. 38--></font>    <p >   <font face="Verdana" size="2">The highlights of Quark, Arteon, and ArchiTech are: first, they have been designed using empirical basis, we asked to architects what they want and need from an architectural design method; second, they use a decision-centered perspective, which is aligned with the trend in architectural research; and third, they use Non-Functional Requirements (NFRs) to drive the decision-making. <!--l. 40--></font>    <p >   <font face="Verdana" size="2">The rest of this paper is divided into the following sections: related work in Section&#x00A0;<a  href="#x1-20002">2<!--tex4ht:ref: relwork_section --></a>. The Quark method in Section&#x00A0;<a  href="#x1-60003">3<!--tex4ht:ref: quark_section --></a>. The Arteon ontology in Section&#x00A0;<a  href="#x1-110004">4<!--tex4ht:ref: arteon_section --></a>, in particular the module for decision-making knowledge. The overview of the ArchiTech tool in Section&#x00A0;<a  href="#x1-170005">5<!--tex4ht:ref: implementation_section --></a>. An example of use of Quark, Arteon, and ArchiTech in Section&#x00A0;<a  href="#x1-180006">6<!--tex4ht:ref: example_section --></a>. And finally, conclusions, limitations, and future work in Section&#x00A0;<a  href="#x1-230007">7<!--tex4ht:ref: conclusions_section --></a>. <!--l. 42--></font>    <p >        <p><font face="Verdana" size="2"><span class="titlemark">2   </span> <a   id="x1-20002"></a>Related Work</font></p> <!--l. 43-->    <p ><font face="Verdana" size="2">Related to AK, there are several topics that are of especial relevance for this work: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Software Architectural Design Methods. </span>SADMs are methods that help the architect to derive the      software architecture from the software requirements&#x00A0;<span class="cite"><a name="b9">[</a><a  href="#XFalessi2007">9</a>]</span>. In this paper is presented Quark, a SADM      which was inspired in some of the works presented in this section. </font>      </li>      <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Architectural Knowledge ontologies. </span>Ontologies are the principal way of representing knowledge, and      AK is no exception. These ontologies are presented is some cases, as models or metamodels, but always      as a way to organize the elements and concepts that are relevant to AK. In this paper is presented a      part of an ontology for AK, Arteon, which was inspired in some of the works presented in this section.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Architectural Knowledge tools. </span>AK tools help to manage and assist software architects in the design      and reasoning tasks. In this paper we show an overview of ArchiTech, a tool to manage AK and assist      software architects in architectural decision making.</font></li>    ]]></body>
<body><![CDATA[</ul> <!--l. 50-->    <p >   <font face="Verdana" size="2">Works related to these topics are presented in detail in the following sections.  <!--l. 52--></font>    <p >        <p><font face="Verdana" size="2"><span class="titlemark">2.1   </span> <a   id="x1-30002.1"></a>Software architectural design methods</font></p> <!--l. 53-->    <p ><font face="Verdana" size="2">In this section are analyzed some of the Software Architecture Design Methods (SADMs) available in the literature, and more concretely is important for the contents of this paper how these methods deal with NFRs. One of the principal producers of this type of methods is the Software Engineering Institute (SEI). SEI has created several design and analysis methods: SAAM&#x00A0;<span class="cite"><a name="b10">[</a><a  href="#XKazman1996">10</a>]</span>, ATAM&#x00A0;<span class="cite"><a name="b11">[</a><a  href="#XKazman1998">11</a>]</span>, CBAM, QAWs, QUASAR, ADD&#x00A0;<span class="cite"><a name="b12">[</a><a  href="#XBachmann2001">12</a>]</span>, ARID. Documentation for all of them can be found in SEI website (: <a  href="www.sei.cmu.edu/architecture" class="url" ><span  class="rm-lmtt-10">www.sei.cmu.edu/architecture</span></a>). The most relevant ones, in relation to the contents of this paper, are ADD and ATAM. </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2">Attribute-Driven Design Method (ADD, F. Bachmann and L. Bass)&#x00A0;<span class="cite"><a name="b12">[</a><a  href="#XBachmann2001">12</a>]</span>. A second version of this      method was published in 2007 (available in the SEI website). ADD is a method to design the software      architecture of a system based on quality goals for the system. The method is extensible for any      quality attributes but has been particularly elaborated for the attributes of performance, modifiability,      security, reliability, availability and usability. The method considers three architectural views: module      view, component and connector view, and deployment view. The method consist in decomposing the      system recursively into subsystems and then into components. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Architecture Tradeoff Analysis Method (ATAM, R. Kazman et al.)&#x00A0;<span class="cite"><a name="b11">[</a><a  href="#XKazman1998">11</a>]</span> is a methodology that evolved      from Software Architecture Analysis Method (SAAM, 1996). It is a method to understand the tradeoffs      of the architectures of software-intensive systems. This method analyzes the architecture for several      quality attributes (e.g., security, performance, etc.). The method guides the design decisions that have      an impact on quality attributes. It is a spiral method, consisting in four phases: requirements elicitation      including constraints, architectural views, modeling and analysis, and identification of tradeoffs.</font></li>    </ul> <!--l. 60-->    <p >   <font face="Verdana" size="2">SEI methods, namely ADD for design and ATAM for analysis, are heavyweight methods that require large-scale projects to achieve a balance between what the method offers and the effort that supposes for the architects to use it. This balance is hard to achieve when projects are low- or medium-scale. In our case, we based our method in suggestions from architects working in low- or medium-scale projects (see Section&#x00A0;<a  href="#x1-60003">3<!--tex4ht:ref: quark_section --></a>), therefore we believe that the method can be successfully applied to this kind of projects. <!--l. 62--></font>    <p >   <font face="Verdana" size="2">We did several searches in academic databases (e.g., Google Scholar, ISI Web of Science, etc.), complemented with other methods that we were already aware of to build a list of SADMs: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2">Quality Atribute-oriented Software ARchitecture (QASAR, J. Bosch)&#x00A0;<span class="cite"><a name="b13">[</a><a  href="#XBosch2000">13</a>]</span>. This method consists of      three steps: first, the functional requirements are implemented in components, then the architecture      is analyzed to decide whether the NFRs are fulfilled or not, and in the third step the architecture is      adapted to be in conformance with the NFRs. As Quark, QASAR relies on NFRs, but in QASAR first      there is a design based only on functional requirements, and then it is refined using the NFRs. Instead,      Quark uses NFRs from the very beginning as the main driver of the decision-making.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Quality-driven  Architecture  Design  and  Analysis  (QADA,  M.  Matinlassi  et  al.)&#x00A0;<span class="cite"><a name="b14">[</a><a  href="#XMatinlassi2002">14</a>]</span>  is  a  set  of      methods: one method for selecting an appropriate architecture approach, one method for quality-driven      architecture  design,  one  method  for  evaluating  the  maturity  and  quality  of  architecture,  and      one  technique  for  representing  variation  points  in  the  family  architecture.  As  Quark,  QADA  is      quality-driven and it is built upon a knowledge base, but it is not centered in ADs.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Quality Achievement at the Architectural Level (AQUA, H. Choi et al.)&#x00A0;<span class="cite"><a name="b15">[</a><a  href="#XChoi2006">15</a>]</span>. A method that provides      software architects means for achieving NFRs at the architectural level. AQUA involves two kinds      of activities, which are architectural evaluation and transformation. AQUA uses a decision-centered      approach as we do in Quark, the main differences between both methods are that AQUA does not      have an ontological foundation and their method is not based on empirical studies. On the first hand,      having an ontology to reason and mange knowledge is known as a good approach in many areas (e.g.,      artificial intelligence) but is true that currently it is not wide used in computer engineering research.      On the second hand, having an empirical study on the main target community (software architects)      helps to reduce the risk of having a solution disconnected from the real needs of this community.      </font>       </li>      <li class="itemize"><font face="Verdana" size="2">A. Bertolino et al.&#x00A0;<span class="cite"><a name="b16">[</a><a  href="#XBertolino2005">16</a>]</span> presented an approach to automate the architecture design and implementation.      The method starts from requirements in Natural Language (NL). The authors say that they want to      integrate several existing tools to accomplish the task: QuARS (Quality Analyzer for Requirements      Specifications, tool to obtain requirements from NL specifications), ModTest (a model-checking tool),      and Cow Suite (a testing tool). The main difference with Quark is that Bertolino&#8217;s method does not      deal with architectural decisions. Also, it is not clear what is the interaction with the software architect      in the method presented by Bertolino et al. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">T. Al-Naeem et al.&#x00A0;<span class="cite"><a name="b17">[</a><a  href="#XAlNaeem2005">17</a>]</span> proposed a method centered on the decision making process, but not on      generating the architecture. For the computation method, they rely on Multiple Attribute Decision      Making (MADM), in particular Analytic Hierarchy Process (AHP), to score each alternative decision.      Our method is based on artificial intelligence algorithms to score each alternative decision. We are not      in a position to say which option is best, but they are clearly different.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Tang et al. proposed the AREL method&#x00A0;<span class="cite"><a name="b18">[</a><a  href="#XTang2009">18</a>]</span> to improve the traceability of ADs by linking them to      the design rationale. They also propose a conceptual model to manage this rationale, and the concern      for software quality during the architecture design, but they do not describe which is the reasoning      method used (if any), in this situation it is hard to compare their approach with Quark.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Montero  and  Navarro  proposed  ATRIUM  method&#x00A0;<span class="cite"><a name="b19">[</a><a  href="#XMontero2009">19</a>]</span>,  Architecture  Traced  from  RequIrements      applying a Unified Methodology. ATRIUM is a methodology based in the MDD approach, its intention      is to guide the architects in the definition of the architecture, the method considers both functional      and non-functional requirements. Contrary to Quark, this method does not focus on decisions but in      scenarios and requirements. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">L. Chung et al.&#x00A0;<span class="cite"><a name="b20">[</a><a  href="#XChung2003b">20</a>]</span> proposed a framework, Proteus, to develop software architectures considering      NFRs in goal-oriented notation, using NFR Framework&#x00A0;<span class="cite"><a name="b21">[</a><a  href="#XChung2000">21</a>]</span>. However, Chung&#8217;s framework does not      support to explicitly trade-off analysis between alternate design decisions.</font></li>    </ul> <!--l. 74-->    <p >   <font face="Verdana" size="2">There are many other SADMs that improve or specialize one of the previous ones, the following are the ones found related to the improvement of the handle of quality or non-functional requirements: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2">S. Bode et al.&#x00A0;<span class="cite"><a name="b22">[</a><a  href="#XBode2009">22</a>]</span> presented a method based on QASAR to design the system&#8217;s security architecture.      The authors state that they considered methods form software engineering and security engineering to      deal with security requirements. This approach is specialized only in security, while Quark could be      used for any type of requirements (it all depends of the knowledge base provided).      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">S. Kim et al.&#x00A0;<span class="cite"><a name="b23">[</a><a  href="#XKim2009">23</a>]</span> presented a method that is based on architectural tactics. Architectural tactics      are explained in L. Bass et al. book &#8220;Software architecture in practice, second edition&#8221;&#x00A0;<span class="cite"><a name="b24">[</a><a  href="#XBass2003">24</a>]</span>, they      are basically reusable pieces of the architecture. This method uses feature models to generate the      architecture automatically. It is very similar to a product line for architectures. Product lines work for      known and repetitive problems, but in Quark we leave the door open to customize the knowledge to      any particular architectural area of interest (e.g., the architect may want to have many technological      alternatives but does not care much about styles because s/he uses always the same).      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">D.  Perovich  et  al.&#x00A0;<span class="cite"><a name="b25">[</a><a  href="#XPerovich2009">25</a>]</span>  presented  a  method  to  design  software  architectures  using  Model-Driven      Development (MDD)&#x00A0;<span class="cite"><a name="b26">[</a><a  href="#XBrambilla2012">26</a>]</span> considering quality aspects (based on ADD method). In this case they use      a &#8220;megamodel&#8221; (a model composed of models) to represent the software architecture. The method      uses feature models to construct the architecture. This approach has many similarities with ours, both      are based on architectural decisions, and are iterative methods. But there are also some differences,      Perovich&#8217;s method generates an architectural models following the MDA approach&#x00A0;<span class="cite"><a name="b27">[</a><a  href="#XKleppe2003">27</a>]</span>, while Quark is      more focused on the architectural decisions itself and the customization of the architectural knowledge.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">E. Niemelä and A. Immonen&#x00A0;<span class="cite"><a name="b28">[</a><a  href="#XNiemela2007">28</a>]</span> presented the QRF method, this method extends QADA by providing       a systematic method for eliciting and defining NFRs, tracing and mapping these requirements to      architectural models and for enabling quality evaluation. In Quark the elicitation of requirements is      performed previously, in fact, the architect is expected to only introduce the requirements that are      architecturally relevant. To this end the QRF method could help in the identification of requirements      relevant for the architectural design.</font></li>    ]]></body>
<body><![CDATA[</ul> <!--l. 82-->    <p >   <font face="Verdana" size="2">The Table&#x00A0;<a  href="#x1-30011">1<!--tex4ht:ref: tab:compsadms --></a> summarizes the studied SADMs. There are many SADMs that use the ideas behind product lines to design architectures. It is interesting to see that almost all are capable to deal with quality aspects or NFRs in general, not limiting to a particular type as it happens in some MDD approaches. It seems to be more common to speak about quality aspects than NFRs in this area. SADMs that are based on other SADMs are more specific and are oriented to facilitate the automation of the method. There are many SADMs that consider NFRs and some of them are able to generate an architecture in a semi-automatic way. <!--l. 84--></font>    <p >   <font face="Verdana" size="2">Last but not least important, it is worth mentioning one interesting work published by Hofmeister et al. in 2007&#x00A0;<span class="cite"><a name="b29">[</a><a  href="#XHofmeister2007">29</a>]</span>. Their intention was to model a general architectural design method based on empirical observation. The resulting model has three architectural activities: </font>      <dl class="description">        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Analysis:</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;serves to define the problems the architecture must solve&#8221;</span>        </font>      </dd>        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Synthesis:</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;proposes architecture solutions to a set of architectural significant requirements&#8221;</span>        </font>      </dd>        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Evaluation:</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;ensures that the architectural design decisions made are the right ones&#8221;</span></font></dd></dl> <!--l. 91-->    <p >   <font face="Verdana" size="2">In Quark (described in Section&#x00A0;<a  href="#x1-60003">3<!--tex4ht:ref: quark_section --></a>), <span  class="rm-lmri-10">architectural analysis </span>is covered with the specification activity, <span  class="rm-lmri-10">architectural</span> <span  class="rm-lmri-10">synthesis </span>is covered with the decision inference activity, and <span  class="rm-lmri-10">architectural evaluation </span>is covered with the decision-making activity. We identified two important differences between Quark and the general approach of architectural design proposed by Hofmeister: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2">Hofmeister&#8217;s general approach does not give much details on how iterative methods should work, which      is why we have an extra activity in our method. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Hofmeister&#8217;s  general  approach  deals  with  complete  architectural  solutions,  while  Quark  works  at      decisional level. The reason to design Quark in this way is because in our exploratory studies we have      detected that architects will not trust a support system that generates full architectural solutions      without their intervention.</font></li>    </ul>        <div class="table">  <!--l. 97-->    <p >   <font face="Verdana" size="2">   <a   id="x1-30011"></a></font><hr class="float">    <div class="float"  >       <div class="caption"  ><font face="Verdana" size="2"><span class="id">Table&#x00A0;1: </span><span   class="content">Comparison of SADMs</span></font></div><!--tex4ht:label?: x1-30011 -->     <div class="pic-tabular"> <font face="Verdana" size="2"> <img  src="/img/revistas/cleiej/v17n3/3a020x.png"  ></font></div>     </div><hr class="endfloat" />    </div>        ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><span class="titlemark">2.2   </span> <a   id="x1-40002.2"></a>Architectural Knowledge Management</font></p> <!--l. 126-->    <p ><font face="Verdana" size="2">Several works have been published for Architectural Knowledge Management (AKM), each with different nuances, but most of them making a special emphasis on the notion of ADs. One particularly relevant work in this direction is the ontology proposed by P. Kruchten et al.&#x00A0;<span class="cite"><a name="b5">[</a><a  href="#XKruchten2006">5</a>]</span> to describe the types of ADs (it was previously published in 2004&#x00A0;<span class="cite"><a name="b">[</a><a  href="#XKruchten2004">3</a>]</span>). In this taxonomy ADs are classified into: existence decisions, property decisions, and the executive decisions. They are defined as: <!--l. 128--></font>    <p >      <dl class="description">        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Property decision:</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;A property decision states an enduring, overarching trait or quality of the system.</span>      <span  class="rm-lmri-10">Property decisions can be design rules or guidelines (when expressed positively) or design constraints</span>      <span  class="rm-lmri-10">(when expressed negatively), as some trait that the system will not exhibit&#8221;</span>, e.g., <span  class="rm-lmri-10">&#8220;all domain-related</span>      <span  class="rm-lmri-10">classes are defined in the Layer.&#8221;</span> </font>      </dd>        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Existence decision:</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;An existence decision states that some element / artifact will positively show up, i.e.,</span>      <span  class="rm-lmri-10">will exist in the systems&#8217; design or implementation&#8221;</span>, e.g., <span  class="rm-lmri-10">&#8220;the logical view is organized in 3 layers.&#8221;</span>        </font>      </dd>        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Executive decision:</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;These are the decisions that do not relate directly to the design elements or their</span>      <span  class="rm-lmri-10">qualities, but are driven more by the business environment (financial), and affect the development</span>      <span  class="rm-lmri-10">process (methodological), the people (education and training), the organization, and to a large extend</span>      <span  class="rm-lmri-10">the choices of technologies and tools&#8221;</span>, e.g., <span  class="rm-lmri-10">&#8220;system is developed using J2EE.&#8221;</span></font></dd></dl> <!--l. 134-->    <p >   <font face="Verdana" size="2">In Arteon (described in Section&#x00A0;<a  href="#x1-110004">4<!--tex4ht:ref: arteon_section --></a>), <span  class="rm-lmri-10">existence decisions </span>are represented as the decision concept and its actions. The two other kinds of decisions are also represented in the ontology, but not in an evident way. <span  class="rm-lmri-10">Property decisions</span> are represented in Arteon as the resulting decisions from conditions over the attributes, for example, all the ADs made because of the condition to have Open Source Software (OSS) license. <span  class="rm-lmri-10">Executive decisions </span>are represented in Arteon as the resulting ADs imposed by restrictions that come from the software requirements, in particular the requirements unrelated to the software quality, for example, a software requirement says that the DBMS should be Oracle, because the architect&#8217;s company has a deal with Oracle to only use its products. <!--l. 136--></font>    <p >   <font face="Verdana" size="2">The following works present conceptualizations for AKM. Being flexible, we may understand these conceptualizations as ontologies (sometimes the terms used to refer to these conceptualizations - model, metamodel, ontology, taxonomy, etc. - are used by convenience, e.g., the target audience, instead of their actual meaning; the differences between these terms are described in: <a  href="http://infogrid.org/trac/wiki/Reference/PidcockArticle" class="url" ><span  class="rm-lmtt-10">http://infogrid.org/trac/wiki/Reference/PidcockArticle</span></a>) to facilitate the comparison with Arteon: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2">A. Jansen et al.&#x00A0;<span class="cite"><a name="b2">[</a><a  href="#XJansen2005">2</a>]</span> presented a metamodel that put ADs as the central concept. The metamodel is      divided into three parts: composition model, architectural model, and design decision model. ADs are      described by means of design fragments. Other relevant concepts that appear in this metamodel are:      connector, interface and port. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">R.  de  Boer  et  al.&#x00A0;<span class="cite"><a name="b6">[</a><a  href="#XBoer2007">6</a>]</span>  presented  a  model  to  represent  the  <span  class="rm-lmri-10">core  </span>of  AK.  This  work  defines  ADs  as      alternatives.  Other  relevant  concepts  that  appear  in  this  model  are:  stakeholders,  activities,  and      artifacts. The model is represented using a custom made modeling language.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">P. Avgeriou et al.&#x00A0;<span class="cite"><a name="b31">[</a><a  href="#XAvgeriou2007">31</a>]</span> presented a conceptual model to represent an AD. This work defines decisions      as options. In this work decisions are related to rationale, issues, and concerns. This model pretend to      be an extension to the ISO/IEC/(IEEE) 42010&#x00A0;<span class="cite"><a name="b32">[</a><a  href="#XISO42010">32</a>]</span>. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">R. Capilla et al.&#x00A0;<span class="cite"><a name="b33">[</a><a  href="#XCapilla2007">33</a>]</span> presented a metamodel for architecting, managing and evolving architectural      design decisions. This work divides the concepts into three groups: project model, architecture, and       decision model. The project model includes concepts such as stakeholders, iterations, requirements,      and  views  of  the  architecture.  The  part  named  as  architecture  have  concepts  such  as  variation      points, patterns and styles. The decision model includes concepts such as constraints, dependencies,      decision-making activity, and assumptions rationale. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">C. López et al.&#x00A0;<span class="cite"><a name="b34">[</a><a  href="#XLopez2008">34</a>]</span> presented an ontology that describes Soft-goal Interdependencies Graphs (SIGs)      semantics concepts to represent NFR and design rationale knowledge. This ontology does not include      architectural concepts, but the concepts related to interdependency, argumentation, and decomposition.      The ontology is described using the OWL language. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">A. Akerman and J. Tyree&#x00A0;<span class="cite"><a name="b35">[</a><a  href="#XAkerman2006">35</a>]</span> presented an ontology that focus on ADs. The ontology is divided into      four parts: architecture assets, architecture decisions, stakeholder concerns, and architecture roadmap.      The architecture assets concepts offer an accurate description of the structure of the architecture.      Concerns  are  addressed  by  ADs,  these,  in  turn,  are  implemented  in  roadmaps.  The  ontology  is      represented in UML. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">ArchVoc&#x00A0;<span class="cite"><a name="b36">[</a><a  href="#XBabu2007">36</a>]</span>  is  an  ontology  for  representing  the  architectural  vocabulary.  The  terminology      is  classified  in  three  main  categories:  architectural  description  (e.g.,  frameworks,  views,  and      viewpoints), architectural design (patterns, styles, methodologies, etc.), and architectural requirements      (non-functional requirements, and scenarios). </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Pahl et al.&#x00A0;<span class="cite"><a name="b37">[</a><a  href="#XPahl2009">37</a>]</span> presented an ontology that focused on components and connectors as a general way      to describe architectural styles. This ontology uses a precise notation because the final objective is to      provide a modeling language for architectural styles.</font></li>    </ul> <!--l. 149-->    <p >   <font face="Verdana" size="2">In Table&#x00A0;<a  href="#x1-40012">2<!--tex4ht:ref: tab:compakont --></a> there is a summary of the works to represent AK mentioned in this section. The concept of alternative appear in three of the studied works&#x00A0;<span class="cite"><a name="b6">[</a><a  href="#XBoer2007">6</a><a name="b31">,</a>&#x00A0;<a  href="#XAvgeriou2007">31</a><a name="b35">,</a>&#x00A0;<a  href="#XAkerman2006">35</a>]</span>, in these same three works also appear the concern concept related to ADs. These coincidences may be consequence of collaborations between the authors, it is also worth mentioning that they are very near in time. Most of the works present the concepts separated in different aspects, this is also a recommended practice when designing ontologies. Five works considered relevant to include concepts related to the structure of the architecture as part of the AK (in the case of&#x00A0;<span class="cite"><a name="b31">[</a><a  href="#XAvgeriou2007">31</a>]</span> the intention is not to represent AK, only the part related to ADs). <!--l. 151--></font>    <p >   <font face="Verdana" size="2">None of the studied conceptualizations fulfills the underlying needs of a computer-aided support system to make architectural decisions: a computer oriented formalism and enough detail to design an architecture. In this paper we try to fulfill these needs, this is the reason why we designed this ontology. Arteon is inspired in many of the mentioned conceptualizations and complemented with the required detail and formalism to be used in a computer-aided support system context. </font>        <div class="table">  <!--l. 153-->    <p >   <font face="Verdana" size="2">   <a   id="x1-40012"></a></font><hr class="float">    ]]></body>
<body><![CDATA[<div class="float"  >      <div class="pic-tabular"> <font face="Verdana" size="2"> <img  src="/img/revistas/cleiej/v17n3/3a021x.png" ></font></div>   <font face="Verdana" size="2">   <sup class="textsuperscript"><span  class="rm-lmr-9">1</span></sup> The conceptualization is described in different modules or there is some kind of separation. </font>     </div><hr class="endfloat" />    </div>        <p><font face="Verdana" size="2"><span class="titlemark">2.3   </span> <a   id="x1-50002.3"></a>Architectural Knowledge tools</font></p> <!--l. 180-->    <p ><font face="Verdana" size="2">There are, already, many tools to manage AK. This may be the reason why, as far as we now, there are three papers published to compare tools related with AK: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2">A. Tang et al.&#x00A0;<span class="cite"><a name="b18">[</a><a  href="#XTang2009">18</a>]</span>: in this work is published a comparative of five AK tools, with especial emphasis      in the name used for architectural concepts. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">K. Henttonen and M. Matinlassi&#x00A0;<span class="cite"><a name="b38">[</a><a  href="#XHenttonen2009">38</a>]</span>: a recompilation of OSS based AK tools.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">M. Shahin et al&#x00A0;<span class="cite"><a name="b39">[</a><a  href="#XShahin2009">39</a>]</span>: this work compares tools to manage architectural design decision and the ways      used to model these decisions.</font></li>    </ul> <!--l. 188-->    <p >   <font face="Verdana" size="2">We selected 10 tools from these papers, the tools are: AEvol, Ontology-Driven Visualization (ODV), Archium, ADDSS, AREL, Knowledge Architect, PAKME, Web of Patterns, Stylebase for Eclipse, and Morpheus. We summarized the observations on these tools in Table&#x00A0;<a  href="#x1-50013">3<!--tex4ht:ref: tab:compaktool --></a>, are we also identified some interesting facts related with this work for some of these tools: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2">ODV&#x00A0;<span class="cite"><a name="b40">[</a><a  href="#XBoer2009">40</a>]</span>: this tool uses its an ontology names QoOnt (Ontology for the Reuse of Quality Criteria)      and the ISO/IEC 9126&#x00A0;<span class="cite"><a name="b41">[</a><a  href="#XISO9126">41</a>]</span> to classify the quality attributes. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">AREL&#x00A0;<span class="cite"><a name="b42">[</a><a  href="#XTang2007">42</a>]</span>: this tool takes in consideration quality concerns as one of the elements of the architecture      design. This tool helps in the design of the architecture using UML models and views.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">PAKME&#x00A0;<span class="cite"><a name="b43">[</a><a  href="#XBabar2007">43</a>]</span>: in this tool NFRs can be specified as keywords of architectural patterns that then can      be reused for other projects. This tool is limited to textual knowledge.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Stylebase for Eclipse (<a  href="stylebase.tigris.org" class="url" ><span  class="rm-lmtt-10">stylebase.tigris.org</span></a>): this tool is a plug-in for Eclipse, that is capable to      generate code for some architectural patterns, each pattern have a model associated (an image not a      real model) and the principal NFRs that are improved (but in a very limited way).      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">Morpheus&#x00A0;<span class="cite"><a name="b19">[</a><a  href="#XMontero2009">19</a>]</span>: this tool uses NFRs as constraints over functional requirements that then conditions      the software architecture. It is presented as a MDD method that starts from requirements using goal      oriented notations.</font></li>    </ul> <!--l. 199-->    <p >   <font face="Verdana" size="2">First of all it is worth to remark that most of these tools are discontinued or created just as a proof of concept. Also, one important fact is that all the tools that appear in this section are the result of an academic research (as far as we know, there is no software company offering similar products). If we look to the SADM and AKM columns, we can see that most of the tools have ways to manage the AK but only few have a well-defined method, this is not strange because most of them are oriented to document ADs but not to assist in the decision-making process. Finally, it is worth to mention that we did not find and explicit link between the AK conceptualizations mentioned in&#x00A0;<a  href="#x1-40002.2">2.2<!--tex4ht:ref: sec:sota_ak_onto --></a> and the tools mentioned in this section. The Table&#x00A0;<a  href="#x1-50013">3<!--tex4ht:ref: tab:compaktool --></a> summarizes the AK tools mentioned in this section. </font>        <div class="table">  <!--l. 201-->    <p >   <font face="Verdana" size="2">   <a   id="x1-50013"></a></font><hr class="float">    ]]></body>
<body><![CDATA[<div class="float"  >       <div class="caption"  ><font face="Verdana" size="2"><span class="id">Table&#x00A0;3: </span><span   class="content">Comparison of AK tools</span></font></div><!--tex4ht:label?: x1-50013 -->     <div class="pic-tabular"> <font face="Verdana" size="2"> <img  src="/img/revistas/cleiej/v17n3/3a022x.png" ></font></div>     </div><hr class="endfloat" />    </div>        <p><font face="Verdana" size="2"><span class="titlemark">3   </span> <a   id="x1-60003"></a>The Quark Method</font></p> <!--l. 226-->    <p ><font face="Verdana" size="2">NFRs express desired qualities of the system to be developed such as system performance, availability, dependability, maintainability and portability. Over the years, a common claim made by software engineers is that it is not feasible to produce a software system that meets stakeholders&#8217; needs without taking NFRs into account. NFRs affect different activities and roles related to the software development process. One of the strongest links is with software architecture, especially architectural decision-making&#x00A0;<span class="cite"><a name="b48">[</a><a  href="#XChung2009">48</a>]</span>. This observation is the main driver of Quark: facilitate and making more reliable architects&#8217; decisions with regard to the desired qualities. The design of Quark has been also driven from some observations gathered from empirical studies&#x00A0;<span class="cite"><a name="b49">[</a><a  href="#XAmeller2012-RE">49</a>,&#x00A0;<a  href="#XAmeller2013-IEEE">50</a>]</span>: </font>       <dl class="enumerate">         <dd><font face="Verdana" size="2">a) </font></dd>         <dd  class="enumerate"><font face="Verdana" size="2">Software architects are the main source of NFRs. This is why the method is centered in the architect.         </font>       </dd>         <dd><font face="Verdana" size="2">b) </font></dd>         <dd  class="enumerate"><font face="Verdana" size="2">Software architects may be receptive to new design methods as far as they still keep the control on       the final ADs. The method should suggest alternatives instead of making final ADs.         </font>       </dd>         <dd><font face="Verdana" size="2">c) </font></dd>         <dd  class="enumerate"><font face="Verdana" size="2">The  amount  of  information  provided  by  the  architects  should  pay  itself.  Software  architects  are       pragmatic, a balance between effort and benefit must be reached. </font>       </dd>         <dd><font face="Verdana" size="2">d) </font></dd>         <dd  class="enumerate"><font face="Verdana" size="2">The  produced  ADs  should  be  justified,  because  architects  also  have  to  justify  them  to  other       stakeholders.</font></dd></dl> <!--l. 234-->    <p >   <font face="Verdana" size="2">In Quark, the software architect plays the central role, they specify the NFRs and constraints (a), and then they select among the inferred ADs, and decide when the process has to end (b). In the same direction, Quark is not intrusive. It notifies about possible incompatibilities and possible actions to solve them, but the method does not require resolving any incompatibility to continue with the design, it is up to the software architect (b). The use of Arteon helps to reuse ADs (c) and also allows to produce detailed information on how an AD was reached, and why it was motivated (d). <!--l. 236--></font>    <p >   <font face="Verdana" size="2">The Quark method delivers an iterative process divided into four activities (see Figure&#x00A0;<a  href="#x1-60051">1<!--tex4ht:ref: quark_fig --></a>): first, specification of the NFRs and the imposed constraints related to the architecture; second, inference of ADs; third, decision-making; and fourth, architectural refinement (when necessary). Whenever the solution is refined, activities 1-3 are repeated. In the following subsections we give details on each activity. <!--l. 238--></font>    <p >   <hr class="figure">    <div class="figure"  >  <font face="Verdana" size="2">  <a   id="x1-60051"></a>  </font>  <!--l. 240-->    <p ><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v17n3/3a02f1.jpg" alt="PIC"   > <br /> </font>     ]]></body>
<body><![CDATA[<div class="caption"  ><font face="Verdana" size="2"><span class="id">Figure&#x00A0;1: </span><span   class="content">Quark overview.</span></font></div><!--tex4ht:label?: x1-60051 -->  <!--l. 243-->    <p >   </div><hr class="endfigure">        <p><font face="Verdana" size="2"><span class="titlemark">3.1   </span> <a   id="x1-70003.1"></a>Architectural Specification</font></p> <!--l. 246-->    <p ><font face="Verdana" size="2">In the first activity, the architect specifies the NFRs and constraints that are relevant for the architecture design. For example, a NFR could be <span  class="rm-lmri-10">&#8220;performance shall be high&#8221; </span>(in other words, more a goal than a requirement) or something more concrete as <span  class="rm-lmri-10">&#8220;loan processing response time shall not be higher than two seconds 95% of the times&#8221;</span>. Constraints are typically referring to technologies, e.g., <span  class="rm-lmri-10">&#8220;the database management system (DBMS) must be</span> <span  class="rm-lmri-10">MySQL 5&#8221;</span>, but may also refer to architectural principles, patterns or styles, as in <span  class="rm-lmri-10">&#8220;the architectural</span> <span  class="rm-lmri-10">style must be Service-Oriented Architecture (SOA)&#8221;</span>. These requirements and constraints may come from the project documentation or from the architect&#8217;s experience (as we found out in our empirical studies&#x00A0;<span class="cite"><a name="b49">[</a><a  href="#XAmeller2012-RE">49</a>,&#x00A0;<a  href="#XAmeller2013-IEEE">50</a>]</span>). <!--l. 248--></font>    <p >   <font face="Verdana" size="2">Due to Quark&#8217;s iterative nature, aligning with to the conclusions we obtained in our empirical studies (the architect wants to have full control of the process), the specification of these NFRs and constraints does not need to be complete. The architect has freedom to decide if s/he wants to start from a very short specification and then make the architecture grow in each refinement or if s/he wants to provide a more complete specification and see if the expected quality calculated by the method matches the expected NFRs, and then refine till the architecture complies with the requirements. <!--l. 250--></font>    <p >        <p><font face="Verdana" size="2"><span class="titlemark">3.2   </span> <a   id="x1-80003.2"></a>Decision Inference</font></p> <!--l. 251-->    <p ><font face="Verdana" size="2">In the second activity, the Quark method uses the AK available in the Arteon ontology to generate a list of ADs. Since the expected amount of ADs in a real case is large, they should be prioritized using some criteria (e.g., the ADs that satisfy more constraints and better comply with the stated NFRs are top priority). <!--l. 253--></font>    <p >   <font face="Verdana" size="2">ADs need to be informative. This means that, beyond their name, ADs must include information about: why the AD was offered?, what is the impact in the overall architecture quality?, and what other implications involve making the AD? (a more complete description could be, e.g., the template proposed in&#x00A0;<span class="cite"><a name="b1">[</a><a  href="#XTyree2005">1</a>]</span>). For example, for the AD of using <span  class="rm-lmri-10">&#8220;data replication&#8221; </span>we could answer the above questions as follows: <span  class="rm-lmri-10">&#8220;the AD of having data</span> <span  class="rm-lmri-10">replication is offered because there is a NFR about having high performance&#8221;</span>, <span  class="rm-lmri-10">&#8220;by making this AD,</span> <span  class="rm-lmri-10">the overall performance will increase but will affect negatively to the maintenance, and can damage</span> <span  class="rm-lmri-10">the accuracy&#8221;</span>, <span  class="rm-lmri-10">&#8220;also, by selecting this AD, the used DBMS is required to be able to operate with data</span> <span  class="rm-lmri-10">replication.&#8221;</span> <!--l. 255--></font>    <p >        ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><span class="titlemark">3.3   </span> <a   id="x1-90003.3"></a>Decision-Making</font></p> <!--l. 256-->    <p ><font face="Verdana" size="2">In the third activity, the architect decides which ADs wants to apply from the ones obtained in the previous activity. When the architect makes an AD, two things may happen. First, there could be incompatibilities with previous ADs (e.g., the architect decides to use <span  class="rm-lmri-10">&#8220;data replication&#8221;</span>, but s/he already selected a DBMS that does not support data replication), and second, there could be one or more NFRs that are not supported by the ADs made (e.g., the ADs made indicate that maintainability will be damaged while there is a NFR that says that maintainability is very important for this project). <!--l. 258--></font>    <p >   <font face="Verdana" size="2">In both cases, the architect will be informed about which ADs are in conflict, but at the end s/he will decide if the set of ADs is satisfactory or not. In some cases there will be non-technical reasons (e.g., the method recommends to use PostgreSQL but the development team is more experienced with MySQL, and the overall quality between both DBMS is similar), for these cases we rely on the experience and knowledge of the architect to make the correct decision. <!--l. 260--></font>    <p >   <font face="Verdana" size="2">After the decision-making, the architect has the opportunity to conclude the process by accepting the current set of ADs and their impact in the NFRs. As mentioned in&#x00A0;<span class="cite"><a name="b1">[</a><a  href="#XTyree2005">1</a>]</span>, we understand the software architecture as a set of ADs. Alternatively, the architect may choose to start a new iteration. To smooth the transition to a new iteration we have fourth activity, the <span  class="rm-lmri-10">architectural refinement</span>. <!--l. 262--></font>    <p >        <p><font face="Verdana" size="2"><span class="titlemark">3.4   </span> <a   id="x1-100003.4"></a>Architectural Refinement</font></p>  <!--l. 263-->    <p ><font face="Verdana" size="2">The Refinement activity is for detecting issues that may be resolved in the next iteration. As we commented before the Quark method is an iterative method, and this activity serves as a link between iterations. Our approach is to detect several types of issues that may need the attention of the architect. The three kinds of issues contemplated right now are: incompatibilities, dependencies, and suggestions for NFRs: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Incompatibilities  </span>(mentioned  in&#x00A0;<a  href="#x1-90003.3">3.3<!--tex4ht:ref: quark_decisionmaking_subsection --></a>)  are  converted  into  new  conditions  over  the  attributes  of  the      architectural elements (see Section&#x00A0;<a  href="#x1-160004.1.4">4.1.4<!--tex4ht:ref: arteon_attribute_subsection --></a>). E.g., the architect decides to use <span  class="rm-lmri-10">&#8220;data replication&#8221;</span>, and this      decision implies that the DBMS architectural element must have the attribute <span  class="rm-lmri-10">&#8221;supports replication&#8221;</span>      activated, but the previously selected DBMS does not support replication. If the architect wants to      resolve this incompatibility it will become a new constraint that will <span  class="rm-lmri-10">ban </span>the previously selected DBMS.      In consequence the <span  class="rm-lmri-10">decision making activity </span>of the next iteration there will be new suggestions of      DBMS that support replication (unless the knowledge base does not contain any satisfactory DBMS).      </font>      </li>      <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Dependencies </span>occur when some AD requires other parts in the architecture. E.g., when the architect      decides to use SOA, several related ADs are needed: service implementation (SOAP, REST, ...), service      granularity (service composition, single service, ...), etc. The architect will be asked for which of these      dependencies of SOA are to be solved in the next iteration. If the architect selects, for example, the      service implementation, there will be a new constraint that will <span  class="rm-lmri-10">need </span>service implementation technology,      and during the <span  class="rm-lmri-10">decision making activity </span>of the next iteration there will be generated the ADs related      to the technologies that can be used to implement services. </font>      </li>      <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Suggestions for NFRs </span>may be inferred if a particular type of NFR is of special relevance due to the      selected ADs. E.g., if Quark detects that there is a great majority of ADs with a have positive impact      on security, and security is not part of the current NFRs, there will be suggested to include a new NFR      about security. It is worth to remark that this also helps making NFRs explicit, which may help the      architect to better understand the relevant concerns of the system to be.</font></li>    </ul> <!--l. 271-->    <p >   <font face="Verdana" size="2">There are other aspects that can be notified to the architect during this activity, for example, as mentioned in the last example of the <span  class="rm-lmri-10">incompatibilities</span>, imagine that the current AK does not contain any component that satisfy the current constraints and NFRs. In this situation the architect may want modify the constraints or NFRs in order to have more alternative decisions generated, but it also could mean that the <span  class="rm-lmri-10">domain expert </span>should add new architectural elements to the knowledge base. <!--l. 273--></font>    <p >   <font face="Verdana" size="2">In the next iteration, starting in the Specification activity, the architect will have a list of issues to be resolved (i.e., a <span  class="rm-lmri-10">todo list</span>), and s/he will decide which of the issues are to be converted into new constraints or NFRs. Of course, it is not mandatory for the architect to follow the suggestions, our intention here is to highlight things that may require her/him attention. <!--l. 275--></font>    ]]></body>
<body><![CDATA[<p >        <p><font face="Verdana" size="2"><span class="titlemark">4   </span> <a   id="x1-110004"></a>The Arteon Ontology</font></p> <!--l. 276-->    <p ><font face="Verdana" size="2">Central to Quark is the management and reuse of the AK that supports the architectural decision-making. Among other alternatives, we have chosen to use ontologies to represent the AK as done also by&#x00A0;<span class="cite"><a name="b35">[</a><a  href="#XAkerman2006">35</a>]</span>. Ontologies have been successfully used for knowledge representation in other domains (e.g., software engineering, artificial intelligence, semantic web, biomedicine, etc.) and they offer other advantages such as reasoning and learning techniques ready to be applied (e.g., we could add new ADs using case-based reasoning techniques). <!--l. 278--></font>    <p >   <font face="Verdana" size="2">Arteon (Architectural and Technological Ontology) is currently divided into two modules (see Figure&#x00A0;<a  href="#x1-110012">2<!--tex4ht:ref: arteon_fig --></a>): the <span  class="rm-lmri-10">R-module</span>, reasoning and decision-making knowledge (the module presented in this paper) and the <span  class="rm-lmri-10">SE-module</span>, structural elements, views and frameworks knowledge (presented in&#x00A0;<span class="cite"><a name="b7">[</a><a  href="#XAmeller2011">7</a>]</span>). Although interconnected, the two modules are loosely coupled and highly cohesive enough to be reused separately. In particular, the relationship between the R-module and the SE-module is done through a specialization of the Decisional Element concept (see Section&#x00A0;<a  href="#x1-130004.1.1">4.1.1<!--tex4ht:ref: arteon_decisional_element_subsection --></a>) into a full classification of these elements (the classification of this elements is presented in&#x00A0;<span class="cite"><a name="b7">[</a><a  href="#XAmeller2011">7</a>]</span>). <!--l. 280--></font>    <p >   <hr class="figure">    <div class="figure"  >  <font face="Verdana" size="2">  <a   id="x1-110012"></a>  </font>  <!--l. 282-->    <p ><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v17n3/3a02f2.jpg" alt="PIC"   > <br /> </font>     <div class="caption"  ><font face="Verdana" size="2"><span class="id">Figure&#x00A0;2: </span><span   class="content">Arteon modules.</span></font></div><!--tex4ht:label?: x1-110012 -->  <!--l. 285-->    <p >   </div><hr class="endfigure"> <!--l. 287-->    <p >   <font face="Verdana" size="2">We have designed Arteon to manage and reuse AK. A first overview of Arteon appeared in&#x00A0;<span class="cite"><a name="b7">[</a><a      ]]></body>
<body><![CDATA[href="#XAmeller2011">7</a>]</span>. In that paper,     the focus was on the part of the ontology related to the structural elements (SE-module). Our focus here is on the     part related to ADs (R-Module). Arteon was designed following the principles stated by Gruber&#x00A0;<span class="cite"><a name="b51">[</a><a      href="#XGruber1995">51</a>]</span>, Noy and     Hafner&#x00A0;<span class="cite"><a name="b52">[</a><a      href="#XNoy1997">52</a>]</span> Guarino&#x00A0;<span class="cite"><a name="b53">[</a><a      href="#XGuarino1998">53</a>]</span> and Evernmann&#x00A0;<span class="cite"><a name="b54">[</a><a      href="#XEvermann2010">54</a>]</span>: </font>          <dl class="description">            <dd><font face="Verdana" size="2">     ]]></body>
<body><![CDATA[<span      class="rm-lmbx-10">Clarity.</span> </font></dd>            <dd      class="description"><font face="Verdana" size="2"><span      class="rm-lmri-10">&#8220;An ontology should effectively communicate the intended meaning of defined terms. Definitions</span>          <span      class="rm-lmri-10">should be objective. [...] All definitions should be documented with natural language&#8221;</span>&#x00A0;<span class="cite"><a name="b51">[</a><a      href="#XGruber1995">51</a>]</span>. <span      class="rm-lmri-10">&#8220;Be clear</span>          <span      ]]></body>
<body><![CDATA[class="rm-lmri-10">about the domain. Any formal theory is a theory about a domain. Such a domain must be clarified in</span>          <span      class="rm-lmri-10">advance&#8221;</span>&#x00A0;<span class="cite"><a name="b53">[</a><a      href="#XGuarino1998">53</a>]</span>. We had many iterations in the design of the Arteon ontology, and we have resolved          many ambiguities of the terms selected to represent the concepts that appear in the ontology.            </font>          </dd>            <dd><font face="Verdana" size="2">     <span      class="rm-lmbx-10">Coherence.</span> </font></dd>     ]]></body>
<body><![CDATA[       <dd      class="description"><font face="Verdana" size="2"><span      class="rm-lmri-10">&#8220;An ontology should be coherent: that is, it should sanction inferences that are consistent with</span>          <span      class="rm-lmri-10">the definitions. At the least, the defining axioms should be logically consistent&#8221;</span>&#x00A0;<span class="cite"><a name="b51">[</a><a      href="#XGruber1995">51</a>]</span>. The coherence          and consistency of the ontology has been checked during its design by instantiating the concepts that          appear in the ontology with toy examples of AK. This practice produced a faster evolution of the          ontology design. </font>          </dd>     ]]></body>
<body><![CDATA[       <dd><font face="Verdana" size="2">     <span      class="rm-lmbx-10">Extendibility.</span> </font></dd>            <dd      class="description"><font face="Verdana" size="2"><span      class="rm-lmri-10">&#8220;An ontology should be designed to anticipate the uses of the shared vocabulary. [...] One</span>          <span      class="rm-lmri-10">should be able to define new terms for special uses based on the existing vocabulary, in a way that does</span>          <span      class="rm-lmri-10">not require the revision of the existing definitions&#8221;</span>&#x00A0;<span class="cite"><a name="b51">[</a><a      ]]></body>
<body><![CDATA[href="#XGruber1995">51</a>]</span>. Whenever possible, the definitions of Arteon&#8217;s          concepts are built upon the other concepts that appear in the ontology.            </font>          </dd>            <dd><font face="Verdana" size="2">     <span      class="rm-lmbx-10">Reusability.</span> </font></dd>            <dd      class="description"><font face="Verdana" size="2"><span      class="rm-lmri-10">&#8220;In order to enable reuse as much as possible, ontologies should be small modules with high</span>     ]]></body>
<body><![CDATA[     <span      class="rm-lmri-10">internal coherence and limited amount of interaction between the modules&#8221;</span>&#x00A0;<span class="cite"><a name="b52">[</a><a      href="#XNoy1997">52</a>]</span>. As mentioned before,          Arteon is composed by two modules connected only by inheritance relationship.            </font>          </dd>            <dd><font face="Verdana" size="2">     <span      class="rm-lmbx-10">Minimal encoding bias</span> </font></dd>            <dd      ]]></body>
<body><![CDATA[class="description"><font face="Verdana" size="2"><span      class="rm-lmri-10">&#8220;The  conceptualization  should  be  specified  at  the  knowledge  level  without</span>          <span      class="rm-lmri-10">depending  on  a  particular  symbol-level  encoding.  An  encoding  bias  results  when  a  representation</span>          <span      class="rm-lmri-10">choices are made purely for the convenience of notation or implementation&#8221;</span>&#x00A0;<span class="cite"><a name="b51">[</a><a      href="#XGruber1995">51</a>]</span>. Arteon has been          diagrammed using UML class diagrams to present and describe Arteon&#8217; concepts. UML has not been          a limitation to express any concept or relationship. We also found in the literature many authors that          use UML to diagram the ontologies (e.g.,&#x00A0;<span class="cite"><a name="b55">[</a><a      ]]></body>
<body><![CDATA[href="#XGuizzardi2004">55</a><a name="b56">,</a>&#x00A0;<a      href="#XBerardi2005">56</a>]</span>) and there is also the possibility to convert the UML          representation of the ontology into OWL&#x00A0;<span class="cite"><a name="b57">[</a><a      href="#XGasevic2004">57</a>]</span>. </font>          </dd>            <dd><font face="Verdana" size="2">     <span      class="rm-lmbx-10">Minimal ontological commitment.</span> </font></dd>            <dd      class="description"><font face="Verdana" size="2"><span      ]]></body>
<body><![CDATA[class="rm-lmri-10">&#8220;An ontology should require the minimal ontological commitment</span>          <span      class="rm-lmri-10">sufficient to support the intended knowledge sharing activities. An ontology should make as few claims</span>          <span      class="rm-lmri-10">as possible about the world being modeled&#8221;</span>&#x00A0;<span class="cite"><a name="b51">[</a><a      href="#XGruber1995">51</a>]</span>. Most of the concepts that appear in Arteon are adopted          from the software architecture literature. They are defined carefully, and whenever possible we simply          adhere to the most widely-accepted definition. </font>          </dd>            <dd><font face="Verdana" size="2">     ]]></body>
<body><![CDATA[<span      class="rm-lmbx-10">Identity.</span> </font></dd>            <dd      class="description"><font face="Verdana" size="2"><span      class="rm-lmri-10">&#8220;Identity criterion (and especially Lowe&#8217;s principle, no individual can instantiate both of two sorts</span>          <span      class="rm-lmri-10">if they have different criteria of identity associated with them) can play a crucial role in clarifying</span>          <span      class="rm-lmri-10">ontological distinctions&#8221;</span>&#x00A0;<span class="cite"><a name="b53">[</a><a      href="#XGuarino1998">53</a>]</span>. Since Arteon&#8217;s generalizations are all disjoint we cannot incur in an     ]]></body>
<body><![CDATA[     identity issue. </font>          </dd>            <dd><font face="Verdana" size="2">     <span      class="rm-lmbx-10">Basic taxonomy.</span> </font></dd>            <dd      class="description"><font face="Verdana" size="2"><span      class="rm-lmri-10">&#8220;All ontologies are centered on a taxonomy, Such a taxonomy is the main backbone of the</span>          <span      class="rm-lmri-10">ontology, which can be fleshed with the addition of attributes and other relations among nodes. Isolate</span>     ]]></body>
<body><![CDATA[     <span      class="rm-lmri-10">a basic taxonomic structure. Form a tree of mutually disjoint classes&#8221;</span>&#x00A0;<span class="cite"><a name="b53">[</a><a      href="#XGuarino1998">53</a>]</span>. In Arteon this backbone          taxonomy are the decisional elements, that are specialized in the SE-module.            </font>          </dd>            <dd><font face="Verdana" size="2">     <span      class="rm-lmbx-10">Cognitive quality.</span> </font></dd>            <dd      ]]></body>
<body><![CDATA[class="description"><font face="Verdana" size="2"><span      class="rm-lmri-10">&#8220;An ontology, as a formal description of a domain, must conform to the way in which</span>          <span      class="rm-lmri-10">the domain is perceived and understood by a human observer&#8221;</span>&#x00A0;<span class="cite"><a name="b54">[</a><a      href="#XEvermann2010">54</a>]</span>. We have tried to be as near as          possible to the understanding of architects, to this end we used the experience earned from the empirical          studies on software architects&#x00A0;<span class="cite"><a name="b49">[</a><a      href="#XAmeller2012-RE">49</a><a name="b50">,</a>&#x00A0;<a      href="#XAmeller2013-IEEE">50</a>]</span>.</font></dd></dl>     <!--l. 301-->    ]]></body>
<body><![CDATA[<p >   <font face="Verdana" size="2">The common objective seen in most of the works mentioned in Section&#x00A0;<a  href="#x1-40002.2">2.2<!--tex4ht:ref: sec:sota_ak_onto --></a> is materializing AK to share and reuse the knowledge in different software projects and/or communities of architects. In our work, a part from the these objectives, we propose to use AK to guide and facilitate the architects&#8217; decision-making. Which, eventually, may bring more reliability to this process by surfacing new alternatives that were not initially considered by the architect. To apply the reasoning techniques necessary to walk this step towards decision-making, we need to be able to formalize the AK. In the next subsection we provide an example of formalization to show the feasibility of our approach. </font>        <p><font face="Verdana" size="2"><span class="titlemark">4.1   </span> <a   id="x1-120004.1"></a>The R-Module</font></p> <!--l. 304-->    <p ><font face="Verdana" size="2">In Figure&#x00A0;<a  href="#x1-120013">3<!--tex4ht:ref: r-module_fig --></a> we show the principal concepts of the decision-making knowledge module (R-module) and their relationships. Following we provide a description of each concept of this part of Arteon. <!--l. 306--></font>    <p >   <hr class="figure">    <div class="figure"  >  <font face="Verdana" size="2">  <a   id="x1-120013"></a>  </font>  <!--l. 308-->    <p ><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v17n3/3a02f3.jpg" alt="PIC"   > <br /> </font>     <div class="caption"  ><font face="Verdana" size="2"><span class="id">Figure&#x00A0;3: </span><span   class="content">Arteon&#8217;s R-module.</span></font></div><!--tex4ht:label?: x1-120013 -->  <!--l. 311-->    <p >   </div><hr class="endfigure">        <p><font face="Verdana" size="2"><span class="titlemark">4.1.1   </span> <a   id="x1-130004.1.1"></a>Decisional Element</font></p> <!--l. 314-->    <p ><font face="Verdana" size="2">A Decisional Element is an elemental part of an architecture the architect can decide upon, i.e., the object of decisions. This concept is specialized in the SE-module, so it is left unrefined in the R-Module. The different types of Decisional Element proposed in the SE-module are: architectural styles (e.g., 3-layers), style variations (e.g., 3-layers with data replication), components (e.g., persistence layer), and technology (e.g., Hibernate). Of course, this is not the unique possible specialization of this concept. Being a modular ontology makes it is easy to design and use a different specialization hierarchy for the Decisional Element, which is aligned with the extensibility ontology design principle. <!--l. 316--></font>    ]]></body>
<body><![CDATA[<p >        <p><font face="Verdana" size="2"><span class="titlemark">4.1.2   </span> <a   id="x1-140004.1.2"></a>Decision</font></p> <!--l. 317-->    <p ><font face="Verdana" size="2">According to RUP&#x00A0;<span class="cite"><a name="b58">[</a><a  href="#XKroll2003">58</a>]</span>, software architecture is the <span  class="rm-lmri-10">&#8220;selection of the structural elements and their interfaces by</span> <span  class="rm-lmri-10">which a system is composed, behavior as specified in collaborations among those elements, composition of these</span> <span  class="rm-lmri-10">structural and behavioral elements into larger subsystem, architectural style that guides this organization&#8221;</span>. This definition is about making ADs, structural and behavioral, both classified as existence decisions by Krutchen et al.&#x00A0;<span class="cite"><a name="b5">[</a><a  href="#XKruchten2006">5</a>]</span>. <!--l. 319--></font>    <p >   <font face="Verdana" size="2">In Arteon, the decision concept is very similar to the existence decision concept. Decisions are actions over Decisional Elements where the action determines the effect of the decision. Due to the extensibility design principle, we have not closed the ontology to a predefined set of actions, but possible actions could be, for example, the ones proposed in&#x00A0;<span class="cite"><a name="b5">[</a><a  href="#XKruchten2006">5</a>]</span>: <span  class="rm-lmri-10">use</span>, the Decisional Element will be in the architecture, and <span  class="rm-lmri-10">ban</span>, the Decisional Element will not be in the architecture. <!--l. 321--></font>    <p >        <p><font face="Verdana" size="2"><span class="titlemark">4.1.3   </span> <a   id="x1-150004.1.3"></a>Constraint</font></p> <!--l. 322-->    <p ><font face="Verdana" size="2">Constraints can be imposed by software requirements or by Decisional Elements (the concept of requirement belongs to the Req-module of Arteon). Constraints coming from requirements are normally described in natural language (e.g., <span  class="rm-lmri-10">&#8220;the system shall be developed in C++&#8221;</span>), sometimes using templates (e.g., Volere&#x00A0;<span class="cite"><a name="b59">[</a><a  href="#XRobertson2010">59</a>]</span>) or a specialized language (e.g., temporal logic, the NFR Framework&#x00A0;<span class="cite"><a name="b21">[</a><a  href="#XChung2000">21</a>]</span>, etc.). Constraints coming from Decisional Elements are formalized as part of the AK (e.g., when the architect uses a technology that is only available for a particular platform, s/he is restricting the architecture to this platform). <!--l. 324--></font>    <p >   <font face="Verdana" size="2">Independently from the origin, we distinguish two kinds of constraints: <!--l. 326--></font>    <p >      <dl class="description">        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Restriction</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2">A constraint that directly imposes one or more ADs. For example, <span  class="rm-lmri-10">&#8220;SQL Server&#8221; </span>DBMS needs      <span  class="rm-lmri-10">&#8220;Windows&#8221; </span>operating system. </font>      </dd>        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Condition</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2">A constraint that specifies the valid values for attributes (see&#x00A0;<a  href="#x1-160004.1.4">4.1.4<!--tex4ht:ref: arteon_attribute_subsection --></a>). For example, if we only      want to use OSS software, the condition limit the <span  class="rm-lmri-10">&#8220;License&#8221; </span>attribute to OSS licenses.</font></dd></dl> <!--l. 331-->    <p >   <font face="Verdana" size="2">Instead of using constraints to reduce the valid alternative decisions, we could use the constraints to prioritize ADs (e.g., in the previous example OSS technologies would have higher priority than other technologies). In this way we are not hiding alternatives to the architect, but we facilitate her/his work by highlighting the most susceptible alternatives. <!--l. 333--></font>    ]]></body>
<body><![CDATA[<p >   <font face="Verdana" size="2">As mentioned at the beginning of this section, in order to be able to reason with these constraints they must be formalized as evaluable expressions. Again, the ontology does not commit to any particular proposal, but we provide an example expressed as a Context Free Grammar (CFG)&#x00A0;<span class="cite"><a name="b60">[</a><a  href="#XNijholt1980">60</a>]</span> (see Figure&#x00A0;<a  href="#x1-150014">4<!--tex4ht:ref: CFG_fig --></a>). We included two extra notations in the CFG to facilitate the reading: <span  class="rm-lmri-10">[concept] </span>means one valid instance of the concept and <img  src="/img/revistas/cleiej/v17n3/3a023x.png" alt="&#x003C;  "  class="math" ><span  class="rm-lmri-10">symbol</span><img  src="/img/revistas/cleiej/v17n3/3a024x.png" alt="&#x003E;  "  class="math" > means a terminal symbol. We also did not include semantic rules because they are the common ones of typified language (e.g., <span  class="rm-lmri-10">&#8220;the data type of the value should be the same of the data type of the</span> <span  class="rm-lmri-10">attribute&#8221;</span>). It is worth to mention that an increase of the expressiveness of the language imply an increase of the complexity of the reasoning system, it is important to find a good balance between both. <!--l. 335--></font>    <p >   <hr class="figure">    <div class="figure"  >  <font face="Verdana" size="2">  <a   id="x1-150014"></a>  </font>  <!--l. 337-->    <p ><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v17n3/3a02f4.jpg" alt="PIC"   > <br /> </font>     <div class="caption"  ><font face="Verdana" size="2"><span class="id">Figure&#x00A0;4: </span><span   class="content">CFG to formalize constraints.</span></font></div><!--tex4ht:label?: x1-150014 -->  <!--l. 340-->    <p >   </div><hr class="endfigure">        <p><font face="Verdana" size="2"><span class="titlemark">4.1.4   </span> <a   id="x1-160004.1.4"></a>Attribute</font></p> <!--l. 343-->    <p ><font face="Verdana" size="2">An Attribute is an <span  class="rm-lmri-10">&#8220;inherent property or characteristic of an entity that can be distinguished quantitatively or</span> <span  class="rm-lmri-10">qualitatively by human or automated means&#8221;</span>&#x00A0;<span class="cite"><a name="b61">[</a><a  href="#XISO25000">61</a>]</span>. In Arteon we differentiate two kinds of attributes: <!--l. 345--></font>    <p >      <dl class="description">        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Element Attribute</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2">An attribute of a Decisional Element. E.g., the values of the <span  class="rm-lmri-10">&#8220;license&#8221; </span>attribute are      the names of the licenses. Only Decisional Elements for which the license is relevant will have a value      (e.g., technologies). </font>      </dd>        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">Quality Attribute</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2">An  attribute  that  characterizes  some  aspect  of  the  software  quality.  For  example,      ISO/IEC 25000&#x00A0;<span class="cite"><a name="b61">[</a><a  href="#XISO25000">61</a>]</span> defines a hierarchy of characteristics: functionality, reliability, usability, efficiency,      maintainability, and portability.</font></dd></dl> <!--l. 350-->    <p >   <font face="Verdana" size="2">In this case, we also followed the extensibility principle by leaving the attributes customizable. Initially, we thought to propose a set of attributes, the most generic and independent of domain, but when we tried, we found out that domain-specific quality models may be more adequate in each situation (e.g., the S-Cube quality model&#x00A0;<span class="cite"><a name="b62">[</a><a  href="#XSCube2009">62</a>]</span> is specific for SOA) and that the element attributes are uncountable, and even worse, the same information can be modeled with different attributes (e.g., for the license, we may have a boolean attribute, true when is a OSS license and false otherwise, or as before have an attribute with a list of licenses). We opted to let the domain expert decide which attributes are convenient in each case, but we acknowledge that more research is needed in order to make this knowledge reusable from one project to another. <!--l. 352--></font>    ]]></body>
<body><![CDATA[<p >        <p><font face="Verdana" size="2"><span class="titlemark">5   </span> <a   id="x1-170005"></a>The ArchiTech Tool</font></p> <!--l. 353-->    <p ><font face="Verdana" size="2">The ArchiTech tool&#x00A0;<span class="cite"><a name="b8">[</a><a  href="#XAmeller2012-REDemo">8</a>]</span> (see the video at <a  href="www.upc.edu/gessi/architech/" class="url" ><span  class="rm-lmtt-10">www.upc.edu/gessi/architech/</span></a> for a running example) is the proof of concept of the Quark method and the Arteon ontology. This tool is composed by two subsystems: ArchiTech-CRUD, and ArchiTech-DM: <!--l. 355--></font>    <p >   <hr class="figure">    <div class="figure"  >  <font face="Verdana" size="2">  <a   id="x1-170015"></a>  </font>  <!--l. 357-->    <p ><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v17n3/3a02f5.jpg" alt="PIC"   > <br /> </font>     <div class="caption"  ><font face="Verdana" size="2"><span class="id">Figure&#x00A0;5: </span><span   class="content">ArchiTech overview.</span></font></div><!--tex4ht:label?: x1-170015 -->  <!--l. 360-->    <p >   </div><hr class="endfigure">      <dl class="description">        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">ArchiTech-CRUD</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2">This subsystem provides facilities for the management of AK as it is defined in the Arteon      ontology. It also provides an embedded database, and options to export the AK. The CRUD operations (i.e.,      create, read, update and delete) are available for the following concepts:        </font>          <ul class="itemize1">          <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Architectural element. </span>A full description of what is an <span  class="rm-lmri-10">architectural element </span>is available in&#x00A0;<span class="cite"><a name="b7">[</a><a  href="#XAmeller2011">7</a>]</span>          (e.g., architectural styles -SOA, layered, etc.-, components -services, packages, etc.-, technologies          -DBMS, RESTful vs. W3C, etc.-) </font>          </li>          <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Architectural Decisions </span>Defined in Section&#x00A0;<a  href="#x1-140004.1.2">4.1.2<!--tex4ht:ref: arteon_decision_subsection --></a> (e.g., which architectural style to apply or which          DBMS to choose) </font>          </li>          <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Attributes and Quality models. </span>Defined in Section&#x00A0;<a  href="#x1-160004.1.4">4.1.4<!--tex4ht:ref: arteon_attribute_subsection --></a> (e.g., the property <span  class="rm-lmri-10">&#8220;License&#8221; </span>may be used          to classify and reason about OSS technologies, and the S-Cube quality model to design SOA          systems&#x00A0;<span class="cite"><a name="b62">[</a><a  href="#XSCube2009">62</a>]</span>)</font></li>    </ul>      </dd>        <dd><font face="Verdana" size="2"> <span  class="rm-lmbx-10">ArchiTech-DM</span> </font></dd>        <dd  class="description"><font face="Verdana" size="2">This subsystem assists software architects in architectural decision-making as described      in the Quark method as described in Section&#x00A0;<a  href="#x1-60003">3<!--tex4ht:ref: quark_section --></a>. Nevertheless, there are few limitations in the      implementation: </font>          <ul class="itemize1">          <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Architectural Specification activity </span>supports the goal kind of NFRs (e.g., <span  class="rm-lmri-10">&#8220;security must be high&#8221;</span>)          but not the more concrete kind (e.g., <span  class="rm-lmri-10">&#8220;loan processing response time shall not be higher than two</span>          <span  class="rm-lmri-10">seconds 95% of the times&#8221;</span>) </font>          </li>          <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Architectural Specification activity </span>but restrictions are fully supported.          </font>          </li>          <li class="itemize"><font face="Verdana" size="2"><span  class="rm-lmri-10">Decision Inference activity  </span>uses the simulated annealing algorithm&#x00A0;<span class="cite"><a name="b63">[</a><a  href="#XKirkpatrick1983">63</a>]</span> as the ADs inference          mechanism. There are many algorithms and variants that can be used for this task, and the results          may slightly differ depending on the one used.</font></li>    </ul>      <!--l. 375-->    ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2">One extra feature in this subsystem is that the architect can monitor the overall status of the NFRs      while making ADs. This feature gives to the architect a clear notion of what is happening at any      moment.</font></dd></dl> <!--l. 377-->    <p ><font face="Verdana" size="2">Figure&#x00A0;<a  href="#x1-170015">5<!--tex4ht:ref: architech_fig --></a> shows an overview of this tool, and the tasks and responsibilities of each subsystem&#8217;s user. Since <span  class="rm-lmri-10">ArchiTech-CRUD </span>is not directly related to Quark we will focus on <span  class="rm-lmri-10">ArchiTech-DM </span>in the example of Section&#x00A0;<a  href="#x1-180006">6<!--tex4ht:ref: example_section --></a>. </font>        <p><font face="Verdana" size="2"><span class="titlemark">6   </span> <a   id="x1-180006"></a>Example</font></p> <!--l. 380-->    <p ><font face="Verdana" size="2">A complete example of an architectural decision-making process of a whole software architecture would be too long and very difficult to explain in a comprehensible manner. Therefore, in this example we will focus on one architectural decision, the selection of the DBMS. This example is mostly about the selection of one technology, but the same idea can apply to, for example, the selection of an architectural pattern. <!--l. 382--></font>    <p >   <font face="Verdana" size="2">Following the Quark method, first the architect will identify the software requirements that are relevant to the architecture. For this example, we can imagine that the software architect has identified the following requirements as relevant: </font>         <dl class="enumerate">           <dd><font face="Verdana" size="2">(R1) </font></dd>           <dd  class="enumerate"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;The software system shall keep the information about clients and providers&#8221;</span>           </font>         </dd>           <dd><font face="Verdana" size="2">(R2) </font></dd>           <dd  class="enumerate"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;The software system shall be developed using OSS whenever possible&#8221;</span>           </font>         </dd>           <dd><font face="Verdana" size="2">(R3) </font></dd>           <dd  class="enumerate"><font face="Verdana" size="2"><span  class="rm-lmri-10">&#8220;The software system shall have backup systems for reliability&#8221;</span></font></dd></dl>  <!--l. 389-->    <p >        <p><font face="Verdana" size="2"><span class="titlemark">6.1   </span> <a   id="x1-190006.1"></a>Specification Activity</font></p> <!--l. 390-->    <p ><font face="Verdana" size="2">Once software requirements are identified, the software architect should translate them into constraints formalized with the language described in Figure&#x00A0;<a  href="#x1-150014">4<!--tex4ht:ref: CFG_fig --></a>. From R1, the architect may deduce that the project is an information system, so a DBMS will be required. R2 sets a constraint on the technologies used to be OSS. R3 sets constraints for backup facilities, and also mentions that reliability is a desired type of NFRs. The formalization would be: <!--l. 392--></font>    <p >         <dl class="enumerate">           <dd><font face="Verdana" size="2">(C1) </font></dd>           <dd  class="enumerate"><font face="Verdana" size="2">From R1 the restriction: <span  class="rm-lmri-10">use </span>&#8220;DBMS&#8221; </font>         </dd>           <dd><font face="Verdana" size="2">(C2) </font></dd>           <dd  class="enumerate"><font face="Verdana" size="2">From R2 the condition: &#8220;License&#8221; <span  class="rm-lmri-10">equal </span>&#8220;OSS&#8221; </font>         </dd>           <dd><font face="Verdana" size="2">(C3) </font></dd>           <dd  class="enumerate"><font face="Verdana" size="2">From R3 the condition: &#8220;Backup facility&#8221; <span  class="rm-lmri-10">equal </span>&#8220;yes&#8221; </font>         </dd>           <dd><font face="Verdana" size="2">(C4) </font></dd>           <dd  class="enumerate"><font face="Verdana" size="2">From R3 the NFR: &#8220;Reliability&#8221; <span  class="rm-lmri-10">greater than </span>&#8220;average&#8221;</font></dd></dl> <!--l. 399-->    <p >   <font face="Verdana" size="2">Note that R2 could have been also codified as: &#8220;License&#8221; <span  class="rm-lmri-10">includes </span><span  class="lmsy-10">{</span>&#8220;GPL&#8221;, &#8220;LGPL&#8221;, &#8220;BSD&#8221;, etc.<span  class="lmsy-10">}</span>. It depends on how the <span  class="rm-lmri-10">domain expert </span>codifies the AK (see Figure&#x00A0;<a  href="#x1-170015">5<!--tex4ht:ref: architech_fig --></a>). In some cases it would be interesting to have the concrete license of each technology, and in other cases it would be enough to have them classified between OSS and non-OSS. <!--l. 401--></font>    ]]></body>
<body><![CDATA[<p >   <font face="Verdana" size="2">In Figure&#x00A0;<a  href="#x1-190056">6<!--tex4ht:ref: fig_specification_tool --></a> we can see how restrictions, conditions and the soft goal kind of NFRs are specified in the ArchiTech tool. On the left we have the restriction to <span  class="rm-lmri-10">use </span>a &#8220;DBMS&#8221; which is a &#8220;module&#8221; to be used in the &#8220;Persistence Layer&#8221; because in the tool we have provided the AK for a the typical &#8220;3-Layer&#8221; architectural style. In the center of the Figure&#x00A0;<a  href="#x1-190056">6<!--tex4ht:ref: fig_specification_tool --></a> we have the two conditions, and on the right we have the NFR for &#8220;Reliability&#8221;. Note that we are using the ISO/IEC 9126&#x00A0;<span class="cite"><a name="b41">[</a><a  href="#XISO9126">41</a>]</span> in the example. This quality model is hierarchical and &#8220;Reliability&#8221; is a top quality attribute, and this is why when we selected it all the sub-attributes were also selected. <!--l. 403--></font>    <p >   <hr class="figure">    <div class="figure"  >  <font face="Verdana" size="2">  <a   id="x1-190056"></a>  </font>  <!--l. 405-->    <p ><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v17n3/3a02f6.jpg" alt="PIC"   > <br /> </font>     <div class="caption"  ><font face="Verdana" size="2"><span class="id">Figure&#x00A0;6: </span><span   class="content">Specification of restrictions, conditions, and NFRs in ArchiTech.</span></font></div><!--tex4ht:label?: x1-190056 -->  <!--l. 408-->    <p >   </div><hr class="endfigure">        <p><font face="Verdana" size="2"><span class="titlemark">6.2   </span> <a   id="x1-200006.2"></a>Decision Inference Activity</font></p> <!--l. 411-->    <p ><font face="Verdana" size="2">Now that we have formalized the constraints and NFRs, the next activity in Quark is the inference of ADs. Depending on the AK codified in the knowledge base and the prioritization criteria used, the method will prioritized list of ADs. <!--l. 413--></font>    <p >   <font face="Verdana" size="2">For this example, the AK is based on the information published in the Postgres Online Journal&#x00A0;<span class="cite"><a name="b64">[</a><a  href="#XPOJ_comparisonDBMS">64</a>]</span> and the prioritization criteria is to give higher priority to ADs that satisfy more constraints and improve the selected types of NFRs. This prioritization criteria is the same used by ArchiTech, and, right now, this cannot be customized in the tool. <!--l. 415--></font>    <p >   <font face="Verdana" size="2">The resulting list of justified ADs (we mentioned in Section&#x00A0;<a  href="#x1-60003">3<!--tex4ht:ref: quark_section --></a> the importance for software architects to have justified ADs) is: <!--l. 418--></font>    ]]></body>
<body><![CDATA[<p >      <dl class="enumerate">        <dd><font face="Verdana" size="2">1. </font></dd>        <dd  class="enumerate"><font face="Verdana" size="2">The AD of using MySQL 5 is offered because it is OSS. There is no information available about backup      facilities in MySQL. MySQL is preferred because it supports more OSS technologies. Using MySQL      has neutral impact in reliability because ACID compliance depends on the configuration.        </font>      </dd>        <dd><font face="Verdana" size="2">2. </font></dd>        <dd  class="enumerate"><font face="Verdana" size="2">The AD of using PostgreSQL 8.3 is offered because it is OSS. There is no information available about      back-up facilities in PostgreSQL. There are few OSS technologies with support for PostgreSQL. Using      PostgreSQL improves reliability because it is ACID compliant. </font>      </dd>        <dd><font face="Verdana" size="2">3. </font></dd>        <dd  class="enumerate"><font face="Verdana" size="2">The AD of using SQL Server 2005 is offered because it satisfies the backup facility condition. SQL      Server is not OSS. There are few OSS technologies with support for SQL Server. SQL Server will require      a Windows operating system. Using SQL server improves reliability because it is ACID compliant.</font></dd></dl> <!--l. 423-->    <p >        <p><font face="Verdana" size="2"><span class="titlemark">6.3   </span> <a   id="x1-210006.3"></a>Decision-Making Activity</font></p> <!--l. 424-->    <p ><font face="Verdana" size="2">In the Decision-Making activity, the architect, for example, will decide to use MySQL 5 (the AD with higher priority) as the implementing technology for the DBMS component. But as said before in this paper, the architect may prefer to use PostgreSQL, even it is not the highest-ranked AD. The important point is that the architect is able to make informed ADs, and, eventually, new ADs that were unknown to her/him are taken into consideration. <!--l. 426--></font>    <p >   <hr class="figure">    <div class="figure"  >  <font face="Verdana" size="2">  <a   id="x1-210017"></a>  </font>  <!--l. 428-->    <p ><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v17n3/3a02f7.jpg" alt="PIC"   > <br /> </font>     <div class="caption"  ><font face="Verdana" size="2"><span class="id">Figure&#x00A0;7: </span><span   class="content">Decision-Making in ArchiTech.</span></font></div><!--tex4ht:label?: x1-210017 -->  <!--l. 431-->    <p >   </div><hr class="endfigure"> <!--l. 433-->    <p >   <font face="Verdana" size="2">In the Figure&#x00A0;<a  href="#x1-210017">7<!--tex4ht:ref: fig_decisions_tool --></a> we can see how this decision making process would look in the ArchiTech tool. In this figure we can observe several aspects of the tool: </font>      <ul class="itemize1">      <li class="itemize"><font face="Verdana" size="2">Decisions are ranked from 0 to 100 depending on how they affect the Quality attributes that are marked      as relevant. For example, <span  class="rm-lmri-10">Oracle </span>may have a better effect on performance than <span  class="rm-lmri-10">PostgreSQL</span>, but since      performance is not one of the relevant quality attributes in the example it is not considered in the      computation. Conditions are also considered in this computation, this is why <span  class="rm-lmri-10">Oracle</span>, which is not OSS,      is ranked lower than the two other options. </font>      </li>      <li class="itemize"><font face="Verdana" size="2">We can see that ADs are organized into the four architectural views: Logical, Deployment, Platform,      and Development. From the Quark and Arteon perspective, the architectural framework is totally      customizable but in ArchiTech it is limited to these four views to reduce the knowledge fragmentation.      </font>      </li>      <li class="itemize"><font face="Verdana" size="2">We can see that the description of the architectural decision selected in the tool (i.e., <span  class="rm-lmri-10">Use PostgreSQL</span>),      is not as expressive as the ones in the Section&#x00A0;<a  href="#x1-200006.2">6.2<!--tex4ht:ref: example_activity2_subsection --></a>. However, we can only see the list of affected quality      attributes, and if the decision is conflicted with some of the conditions (e.g., if we select <span  class="rm-lmri-10">Use Oracle</span>      <span  class="rm-lmri-10">DB </span>the tool would show a warning for the violation of the condition on the <span  class="rm-lmri-10">&#8220;License&#8221; </span>attribute). </font>      </li>      <li class="itemize"><font face="Verdana" size="2">On the right, we can see the list of architectural decisions. The ArchiTech tool includes in this list the      specified conditions and restrictions in Section&#x00A0;<a  href="#x1-190006.1">6.1<!--tex4ht:ref: example_activity1_subsection --></a>. In this way the architect can see all the decisions      made, not only the <span  class="rm-lmri-10">existence decisions</span>, but also the <span  class="rm-lmri-10">executive and property decisions</span>. Note that these      ADs are not ranked, because they were imposed by the architect.</font></li>    ]]></body>
<body><![CDATA[</ul> <!--l. 440-->    <p ><font face="Verdana" size="2">At this point, the architect would only need to select the desired AD from the list on the left and press the button &#8220;Add&#8221;, which would move the decision to the right list. </font>        <p><font face="Verdana" size="2"><span class="titlemark">6.4   </span> <a   id="x1-220006.4"></a>Architectural Refinement Activity</font></p> <!--l. 443-->    <p ><font face="Verdana" size="2">After the Decision-Making activity the architectural design will continue with new iterations, where the AD of using MySQL will impact, e.g., in the selection of other technologies that are compatible with MySQL. This information will appear during the Refinement activity as dependencies and incompatibilities. <!--l. 445--></font>    <p >   <font face="Verdana" size="2">Currently, the ArchiTech tool, will recalculate the ranking of decisions in the refinement activity. If some of the ADs made had a dependency or incompatibility the affected decisions would be ranked higher or lower than before, but it does not show any dialog to add or remove architectural elements due to the detected dependencies or incompatibilities. <!--l. 447--></font>    <p >        <p><font face="Verdana" size="2"><span class="titlemark">7   </span> <a   id="x1-230007"></a>Conclusions, limitations, and future work</font></p> <!--l. 448-->    <p ><font face="Verdana" size="2">One of the most known Kruchten&#8217;s statements is <span  class="rm-lmri-10">&#8220;the life of a software architect is a long (and sometimes painful)</span> <span  class="rm-lmri-10">succession of suboptimal decisions made partly in dark&#8221;</span>&#x00A0;<span class="cite"><a name="b65">[</a><a  href="#XKruchten1999">65</a>]</span>. The lack of knowledge is one of the reasons to produce suboptimal decisions. For example, the architect may not know all the effects of using some technology or architectural pattern: it may need of other components to work correctly (e.g., some of them may be incompatible with other ADs), it may have unexpected effects in the overall evaluation of some NFRs (e.g., lowers the resource utilization efficiency). Also, the lack of knowledge may cause a worse situation when some alternative is not considered because it is unknown to the architect. To improve this situation we presented Quark, a method to assist software architects in architectural decision-making. <!--l. 450--></font>    <p >   <font face="Verdana" size="2">About the limitations of the presented work, one of the major problems we have to deal with is the amount of knowledge required. Our position is that the best way to acquire and maintain such amount of knowledge is making architects active participants of its acquisition and maintenance. A possible way to achieve this participation is using networks of knowledge, which have been successful in other areas (e.g., Stack Overflow for software developers). Other techniques that have been considered to acquire and maintain this knowledge are knowledge reuse and knowledge learning, but both have drawbacks, for example, reusing knowledge you may find out that a solution that provides high security in a information system may not be secure enough for a critical system, and in order to use learning techniques first is necessary to have a big source of knowledge.  <!--l. 452--></font>    <p >   <font face="Verdana" size="2">With regard to the future work we envisioned the transformation of the resulting set of ADs form the Quark method into models for the architectural views, and then into the actual software architecture implementation using a MDD approach (our first ideas were presented in&#x00A0;<span class="cite"><a name="b66">[</a><a  href="#XAmeller2010">66</a>]</span>). It is worth to remark that this is not contradictory with our empirical observations about architects not willing to have automatic tools that produce the full architecture because the ADs will continue being produced by interacting with the architect, who had full control on which ADs are made. Currently neither Quark, Arteon, or ArchiTech have been applied in practice, but we are planning to use experiments and a real case study to improve the validation of the presented contributions. <!--l. 454--></font>    ]]></body>
<body><![CDATA[<p >        <p><font face="Verdana" size="2"><a   id="x1-240007"></a>Acknowledgments</font></p> <!--l. 455-->    <p ><font face="Verdana" size="2">This work has been partially supported by the Spanish MICINN project TIN2010-19130-C02-01. Thanks to Oriol Collell for the development of the ArchiTech tool. <!--l. 2--></font>    <p >        <p><font face="Verdana" size="2"><a   id="x1-250007"></a>References</font></p> <!--l. 2-->    <p >         <div class="thebibliography">         <p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b1">1</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XTyree2005"></a>J.&#x00A0;Tyree  and  A.&#x00A0;Akerman,  &#8220;Architecture  decisions:  demystifying  architecture,&#8221;  <span  class="rm-lmri-10">IEEE Software</span>,     vol.&#x00A0;22, pp. 19&#8211;27, 2005. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b2">2</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XJansen2005"></a>A.&#x00A0;Jansen and J.&#x00A0;Bosch, &#8220;Software Architecture as a Set of Architectural Design Decisions,&#8221; in     <span  class="rm-lmri-10">Proceedings of the 5</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">Working IEEE/IFIP Conference on Software Architecture (WICSA)</span>, Pittsburgh,     PA, USA, 2005, pp. 109&#8211;120. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b3">3</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKruchten2004"></a>P.&#x00A0;Krutchen, &#8220;An Ontology of Architectural Design Decisions in Software Intensive Systems,&#8221; in     <span  class="rm-lmri-10">Proceedings of the 2</span><sup class="textsuperscript"><span  class="rm-lmri-9">nd</span></sup> <span  class="rm-lmri-10">Groningen Workshop Software Variability</span>, Groningen, The Netherlands, 2004,     pp. 1&#8211;8. </font>     </p>         ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b4">4</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKruchten2009"></a>P.&#x00A0;Kruchten, R.&#x00A0;Capilla, and J.&#x00A0;C. Duenas, &#8220;The Decision View&#8217;s Role in Software Architecture     Practice,&#8221; <span  class="rm-lmri-10">IEEE Software</span>, vol.&#x00A0;26, pp. 36&#8211;42, 2009.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b5">5</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKruchten2006"></a>P.&#x00A0;Kruchten,  P.&#x00A0;Lago,  and  H.&#x00A0;van  Vliet,  &#8220;Building  Up  and  Reasoning  About  Architectural     Knowledge,&#8221; in <span  class="rm-lmri-10">Proceedings of the 2</span><sup class="textsuperscript"><span  class="rm-lmri-9">nd</span></sup> <span  class="rm-lmri-10">international conference on Quality of Software Architectures</span>     <span  class="rm-lmri-10">(QoSA)</span>, Västerås, Sweden, 2006, pp. 43&#8211;58.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b6">6</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBoer2007"></a>R.&#x00A0;de&#x00A0;Boer,  R.&#x00A0;Farenhorst,  P.&#x00A0;Lago,  H.&#x00A0;van  Vliet,  V.&#x00A0;Clerc,  and  A.&#x00A0;Jansen,  &#8220;Architectural     Knowledge: Getting to the Core,&#8221; in <span  class="rm-lmri-10">Proceedings of the 3</span><sup class="textsuperscript"><span  class="rm-lmri-9">rd</span></sup> <span  class="rm-lmri-10">International Conference on Quality of</span>     <span  class="rm-lmri-10">Software Architectures (QoSA)</span>, Medford, MA, USA, 2007, pp. 197&#8211;214.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b7">7</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAmeller2011"></a>D.&#x00A0;Ameller and X.&#x00A0;Franch, &#8220;Ontology-based Architectural Knowledge representation: structural     elements module,&#8221; in <span  class="rm-lmri-10">Proceedings of the Conference on Advanced Information Systems Engineering</span>     <span  class="rm-lmri-10">Workshops (CAISE)</span>, London, UK, 2011, pp. 296&#8211;301.     </font>      </p>         <p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b8">8</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAmeller2012-REDemo"></a>D.&#x00A0;Ameller, O.&#x00A0;Collell, and X.&#x00A0;Franch, &#8220;ArchiTech: Tool Support for NFR-Guided Architectural     Decision-Making,&#8221; in <span  class="rm-lmri-10">Proceedings of the 20</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">IEEE International Requirements Engineering Conference</span>     <span  class="rm-lmri-10">(RE)</span>, Chicago, IL, USA, 2012, pp. 315&#8211;316.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">   [<a href="#b9">9</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XFalessi2007"></a>D.&#x00A0;Falessi,  G.&#x00A0;Cantone,  and  P.&#x00A0;Kruchten,  &#8220;Do  Architecture  Design  Methods  Meet  Architects&#8217;     Needs?&#8221; in <span  class="rm-lmri-10">Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA)</span>,     Mumbai, India, 2007, p.&#x00A0;5. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b10">10</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKazman1996"></a>R.&#x00A0;Kazman,  G.&#x00A0;Abowd,  L.&#x00A0;Bass,  and  P.&#x00A0;Clements,  &#8220;Scenario-Based  Analysis  of  Software     Architecture,&#8221; <span  class="rm-lmri-10">IEEE Software</span>, vol.&#x00A0;13, pp. 47&#8211;55, 1996.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b11">11</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKazman1998"></a>R.&#x00A0;Kazman, M.&#x00A0;Klein, M.&#x00A0;Barbacci, T.&#x00A0;Longstaff, H.&#x00A0;Lipson, and J.&#x00A0;Carriere, &#8220;The architecture     tradeoff analysis method,&#8221; in <span  class="rm-lmri-10">Proceedings of the 4</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">IEEE International Conference on Engineering of</span>     <span  class="rm-lmri-10">Complex Computer Systems (ICECCS)</span>, Monterey, CA, USA, 1998, pp. 68&#8211;78.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b12">12</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBachmann2001"></a>F.&#x00A0;Bachmann and L.&#x00A0;Bass, &#8220;Introduction to the Attribute Driven Design method,&#8221; in <span  class="rm-lmri-10">Proceedings</span>     <span  class="rm-lmri-10">of the 23</span><sup class="textsuperscript"><span  class="rm-lmri-9">rd</span></sup> <span  class="rm-lmri-10">International Conference on Software Engineering (ICSE)</span>, Toronto, Ontario, Canada, 2001,     pp. 745&#8211;746. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b13">13</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBosch2000"></a>J.&#x00A0;Bosch, <span  class="rm-lmri-10">Design and use of software architectures: adopting and evolving a product-line approach</span>.     ACM Press/Addison-Wesley Publishing Co, 2000. </font>     </p>         ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b14">14</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMatinlassi2002"></a>M.&#x00A0;Matinlassi,  E.&#x00A0;Niemelä,  and  L.&#x00A0;Dobrica,  &#8220;Quality-driven  architecture  design  and  analysis     method. A revolutionary initiation approach to a product line architecture,&#8221; in <span  class="rm-lmri-10">VTT Technical Research</span>     <span  class="rm-lmri-10">Centre of Finland</span>, 2002. [Online]. Available: <a  href="http://www.vtt.fi/inf/pdf/publications/2002/P456.pdf" class="url" >http://www.vtt.fi/inf/pdf/publications/2002/P456.pdf</a>     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b15">15</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XChoi2006"></a>H.&#x00A0;Choi,  K.&#x00A0;Yeom,  Y.&#x00A0;Choi,  and  M.&#x00A0;Moon,  &#8220;An  approach  to  quality  achievement  at  the     architectural  level:  AQUA,&#8221;  in  <span  class="rm-lmri-10">Proceedings  of  the  8</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup>  <span  class="rm-lmri-10">IFIP  WG  6.1  International  Conference</span>     <span  class="rm-lmri-10">(FMOODS)</span>, Bologna, Italy, 2006, pp. 20&#8211;32.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b16">16</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBertolino2005"></a>A.&#x00A0;Bertolino, A.&#x00A0;Bucchiarone, S.&#x00A0;Gnesi, and H.&#x00A0;Muccini, &#8220;An architecture-centric approach for     producing quality systems,&#8221; in <span  class="rm-lmri-10">Proceedings of the 1</span><sup class="textsuperscript"><span  class="rm-lmri-9">st</span></sup> <span  class="rm-lmri-10">International Conference on the Quality of Software</span>     <span  class="rm-lmri-10">Architectures (QoSA) and Second International Workshop on Software Quality (SOQUA)</span>, vol. 3712,     Erfurt, Germany, 2005, pp. 21&#8211;37. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b17">17</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAlNaeem2005"></a>T.&#x00A0;Al-naeem, I.&#x00A0;Gorton, M.&#x00A0;Ali-Babar, F.&#x00A0;Rabhi, and B.&#x00A0;Benatallah, &#8220;A quality-driven systematic     approach for architecting distributed software applications,&#8221; in <span  class="rm-lmri-10">Proceedings of the 27</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">International</span>     <span  class="rm-lmri-10">Conference on Software Engineering (ICSE)</span>, St. Louis, Missouri, USA, 2005, pp. 244&#8211;253.     </font>      </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b18">18</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XTang2009"></a>A.&#x00A0;Tang, J.&#x00A0;Han, and R.&#x00A0;Vasa, &#8220;Software Architecture Design Reasoning: A Case for Improved     Methodology Support,&#8221; <span  class="rm-lmri-10">IEEE Software</span>, vol.&#x00A0;26, pp. 43&#8211;49, 2009.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b19">19</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMontero2009"></a>F.&#x00A0;Montero  and  E.&#x00A0;Navarro,  &#8220;ATRIUM:  Software  Architecture  Driven  by  Requirements,&#8221;  in     <span  class="rm-lmri-10">Proceedings of the 14</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">IEEE International Conference on Engineering of Complex Computer Systems</span>     <span  class="rm-lmri-10">(ICECCS)</span>, Potsdam, Germany, 2009, pp. 230&#8211;239.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b20">20</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XChung2003b"></a>L.&#x00A0;Chung,  K.&#x00A0;Cooper,  and  A.&#x00A0;Yi,  &#8220;Developing  adaptable  software  architectures  using  design     patterns: an NFR approach,&#8221; <span  class="rm-lmri-10">Computer Standards &amp; Interfaces</span>, vol.&#x00A0;25, pp. 253&#8211;260, 2003.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b21">21</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XChung2000"></a>L.&#x00A0;Chung, B.&#x00A0;Nixon, and E.&#x00A0;Yu, <span  class="rm-lmri-10">Non-functional requirements in software engineering</span>.    Kluwer     Academic, 2000. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b22">22</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBode2009"></a>S.&#x00A0;Bode, A.&#x00A0;Fischer, W.&#x00A0;Kuehnhauser, and M.&#x00A0;Riebisch, &#8220;Software Architectural Design meets     Security Engineering,&#8221; in <span  class="rm-lmri-10">Proceedings of the 16</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">Annual IEEE International Conference and Workshop</span>     <span  class="rm-lmri-10">on the Engineering of Computer Based Systems (ECBS)</span>, San Francisco, CA, USA, 2009, pp. 109&#8211;118.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b23">23</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKim2009"></a>S.&#x00A0;Kim,  D.-K.  Kim,  L.&#x00A0;Lu,  and  S.&#x00A0;Park,  &#8220;Quality-driven  architecture  development  using     architectural tactics,&#8221; <span  class="rm-lmri-10">Journal of Systems and Software (JSS)</span>, vol.&#x00A0;82, pp. 1211&#8211;1231, 2009.     </font>     </p>         ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b24">24</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBass2003"></a>L.&#x00A0;Bass,  P.&#x00A0;Clements,  and  R.&#x00A0;Kazman,  <span  class="rm-lmri-10">Software  Architecture  in  Practice,  Second  Edition</span>.     Addison-Wesley Longman Publishing Co., Inc., 2003. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b25">25</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XPerovich2009"></a>D.&#x00A0;Perovich,  C.&#x00A0;Bastarrica,  and  C.&#x00A0;Rojas,  &#8220;Model-Driven  approach  to  Software  Architecture     design,&#8221; in <span  class="rm-lmri-10">Proceedings of the 4</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">Workshop on Sharing and Reusing Architectural Knowledge (SHARK)</span>,     Vancouver, BC, Canada, 2009, pp. 1&#8211;8. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b26">26</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBrambilla2012"></a>M.&#x00A0;Brambilla,  J.&#x00A0;Cabot,  and  M.&#x00A0;Wimmer,  <span  class="rm-lmri-10">Model-driven Software Engineering in Practice</span>,  ser.     Synthesis digital library of engineering and computer science.   Morgan &amp; Claypool, 2012.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b27">27</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKleppe2003"></a>A.&#x00A0;Kleppe, J.&#x00A0;Warmer, and W.&#x00A0;Bast, <span  class="rm-lmri-10">MDA Explained, The Model Driven Architecture: Practice</span>     <span  class="rm-lmri-10">and Promise</span>.   Addison-Wesley Longman Publishing Co., Inc., 2003.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b28">28</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XNiemela2007"></a>E.&#x00A0;Niemela and A.&#x00A0;Immonen, &#8220;Capturing quality requirements of product family architecture,&#8221;     <span  class="rm-lmri-10">Information and Software Technology (IST)</span>, vol.&#x00A0;49, pp. 1107&#8211;1120, 2007.     </font>      </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b29">29</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XHofmeister2007"></a>C.&#x00A0;Hofmeister, P.&#x00A0;Kruchten, R.&#x00A0;L. Nord, H.&#x00A0;Obbink, A.&#x00A0;Ran, and P.&#x00A0;America, &#8220;A general model of     software architecture design derived from five industrial approaches,&#8221; <span  class="rm-lmri-10">Journal of Systems and Software</span>     <span  class="rm-lmri-10">(JSS)</span>, vol.&#x00A0;80, no.&#x00A0;1, pp. 106&#8211;126, 2007.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b30">30</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBachmann2005"></a>F.&#x00A0;Bachmann, L.&#x00A0;Bass, M.&#x00A0;Klein, and C.&#x00A0;Shelton, &#8220;Designing software architectures to achieve     quality attribute requirements,&#8221; <span  class="rm-lmri-10">IEEE Software</span>, vol. 152, no.&#x00A0;4, pp. 153&#8211;165, 2005.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b31">31</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAvgeriou2007"></a>P.&#x00A0;Avgeriou,  P.&#x00A0;Kruchten,  P.&#x00A0;Lago,  P.&#x00A0;Grisham,  and  D.&#x00A0;Perry,  &#8220;Architectural  knowledge  and     rationale: issues, trends, challenges,&#8221; <span  class="rm-lmri-10">ACM SIGSOFT Software Engineering Notes</span>, vol.&#x00A0;32, pp. 41&#8211;46,     2007. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b32">32</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XISO42010"></a>ISO/IEC/(IEEE), &#8220;42010 (IEEE Std) 1471-2000: Systems and Software engineering &#8211; Recomended     practice for architectural description of software-intensive systems,&#8221; 2007.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b33">33</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XCapilla2007"></a>R.&#x00A0;Capilla, F.&#x00A0;Nava, and J.&#x00A0;C. Duenas, &#8220;Modeling and Documenting the Evolution of Architectural     Design Decisions,&#8221; in <span  class="rm-lmri-10">Proceedings of the 2</span><sup class="textsuperscript"><span  class="rm-lmri-9">nd</span></sup> <span  class="rm-lmri-10">Workshop on SHAring and Reusing architectural Knowledge</span>     <span  class="rm-lmri-10">Architecture, Rationale, and Design Intent (SHARK-ADI)</span>, Minneapolis, MN, USA, 2007, p.&#x00A0;9.     </font>     </p>         ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b34">34</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XLopez2008"></a>C.&#x00A0;Lopez,  L.&#x00A0;M.  Cysneiros,  and  H.&#x00A0;Astudillo,  &#8220;NDR  Ontology:  Sharing  and  Reusing  NFR     and  Design  Rationale  Knowledge,&#8221;  in  <span  class="rm-lmri-10">Proceedings of the 1</span><sup class="textsuperscript"><span  class="rm-lmri-9">st</span></sup>  <span  class="rm-lmri-10">International Workshop on Managing</span>     <span  class="rm-lmri-10">Requirements Knowledge (MARK)</span>, Barcelona, Spain, 2008, pp. 1&#8211;10.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b35">35</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAkerman2006"></a>A.&#x00A0;Akerman and J.&#x00A0;Tyree, &#8220;Using ontology to support development of software architectures,&#8221; <span  class="rm-lmri-10">IBM</span>     <span  class="rm-lmri-10">Systems Journal</span>, vol.&#x00A0;45, no.&#x00A0;4, pp. 813&#8211;826, 2006.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b36">36</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBabu2007"></a>L.&#x00A0;Babu&#x00A0;T.,  M.&#x00A0;Seetha&#x00A0;Ramaiah,  T.&#x00A0;V.  Prabhakar,  and  D.&#x00A0;Rambabu,  &#8220;ArchVoc&#8211;Towards  an     Ontology for Software Architecture,&#8221; in <span  class="rm-lmri-10">Proceedings of the 2</span><sup class="textsuperscript"><span  class="rm-lmri-9">nd</span></sup> <span  class="rm-lmri-10">Workshop on SHAring and Reusing</span>     <span  class="rm-lmri-10">architectural Knowledge Architecture, Rationale, and Design Intent (SHARK-ADI)</span>, Minneapolis, MN,     USA, 2007, p.&#x00A0;5. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b37">37</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XPahl2009"></a>C.&#x00A0;Pahl,  S.&#x00A0;Giesecke,  and  W.&#x00A0;Hasselbring,  &#8220;Ontology-based  modelling  of  architectural  styles,&#8221;     <span  class="rm-lmri-10">Information and Software Technology (IST)</span>, vol.&#x00A0;51, pp. 1739&#8211;1749, 2009.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b38">38</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XHenttonen2009"></a>K.&#x00A0;Henttonen  and  M.&#x00A0;Matinlassi,  &#8220;Open  source  based  tools  for  sharing  and  reuse  of  software     architectural  knowledge,&#8221;  in  <span  class="rm-lmri-10">Joint  Working  IEEE/IFIP  Conference  on  Software  Architecture  &amp;</span>     <span  class="rm-lmri-10">European Conference on Software Architecture (WICSA/ECSA)</span>, Cambridge, UK, 2009, pp. 41&#8211;50.     </font>      </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b39">39</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XShahin2009"></a>M.&#x00A0;Shahin, P.&#x00A0;Liang, and M.-R. Khayyambashi, &#8220;Architectural design decision: Existing models     and tools,&#8221; in <span  class="rm-lmri-10">Joint Working IEEE/IFIP Conference on Software Architecture &amp; European Conference</span>     <span  class="rm-lmri-10">on Software Architecture (WICSA/ECSA)</span>, Cambridge, UK, 2009, pp. 293&#8211;296.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b40">40</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBoer2009"></a>R.&#x00A0;de&#x00A0;Boer, P.&#x00A0;Lago, A.&#x00A0;Telea, and H.&#x00A0;van Vliet, &#8220;Ontology-driven visualization of architectural     design  decisions,&#8221;  in  <span  class="rm-lmri-10">Joint  Working  IEEE/IFIP  Conference  on  Software  Architecture  &amp;  European</span>     <span  class="rm-lmri-10">Conference on Software Architecture (WICSA/ECSA)</span>, Cambridge, UK, 2009, pp. 51&#8211;60.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b41">41</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XISO9126"></a>ISO/IEC 9126, &#8220;Product quality &#8211; Part 1: Quality model,&#8221; ISO, 2001.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b42">42</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XTang2007"></a>A.&#x00A0;Tang, Y.&#x00A0;Jin, and J.&#x00A0;Han, &#8220;A rationale-based architecture model for design traceability and     reasoning,&#8221; <span  class="rm-lmri-10">Journal of Systems and Software (JSS)</span>, vol.&#x00A0;80, pp. 918&#8211;934, 2007.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b43">43</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBabar2007"></a>M.&#x00A0;A.  Babar  and  I.&#x00A0;Gorton,  &#8220;A  Tool  for  Managing  Software  Architecture  Knowledge,&#8221;  in     <span  class="rm-lmri-10">Proceedings  of  the  2</span><sup class="textsuperscript"><span  class="rm-lmri-9">nd</span></sup>  <span  class="rm-lmri-10">Workshop  on  SHAring  and  Reusing  architectural  Knowledge  Architecture,</span>     <span  class="rm-lmri-10">Rationale, and Design Intent (SHARK-ADI)</span>.   Minneapolis, MN, USA: IEEE Computer Society, 2007,     p.&#x00A0;11. </font>     </p>         ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b44">44</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XGarlan2009"></a>D.&#x00A0;Garlan and B.&#x00A0;Schmerl, &#8220;AEvol: A tool for defining and planning architecture evolution,&#8221; in     <span  class="rm-lmri-10">Proceedings of International Conference on Software Engineering (ICSE)</span>, 2009, pp. 591&#8211;594.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b45">45</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XCapilla2006"></a>R.&#x00A0;Capilla, F.&#x00A0;Nava, S.&#x00A0;Pérez, and J.&#x00A0;C. Dueñas, &#8220;A web-based tool for managing architectural     design decisions,&#8221; <span  class="rm-lmri-10">ACM SIGSOFT Software Engineering Notes</span>, vol.&#x00A0;31, p.&#x00A0;4, 2006.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b46">46</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XJansen2008"></a>A.&#x00A0;Jansen,  T.&#x00A0;Vries,  P.&#x00A0;Avgeriou,  and  M.&#x00A0;Veelen,  &#8220;Sharing  the  Architectural  Knowledge  of     Quantitative  Analysis,&#8221;  in  <span  class="rm-lmri-10">Proceedings  of  the  4</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup>  <span  class="rm-lmri-10">International  Conference  on  the  Quality  of</span>     <span  class="rm-lmri-10">Software-Architectures (QoSA)</span>, Karlsruhe, Germany, 2008, pp. 220&#8211;234.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b47">47</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XDietrich2007"></a>J.&#x00A0;Dietrich and C.&#x00A0;Elgar, &#8220;Towards a web of patterns,&#8221; <span  class="rm-lmri-10">Journal of Web Semantics</span>, vol.&#x00A0;5, pp.     108&#8211;116, 2007. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b48">48</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XChung2009"></a>L.&#x00A0;Chung  and  J.&#x00A0;C.&#x00A0;S.  do&#x00A0;Prado&#x00A0;Leite,  <span  class="rm-lmri-10">Conceptual  Modeling:  Foundations  and  Applications.</span>     <span  class="rm-lmri-10">Essays  in  Honor  of  John  Mylopoulos</span>.     Springer  Berlin  Heidelberg,  2009,  ch.  On  Non-Functional     Requirements in Software Engineering, pp. 363&#8211;379. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b49">49</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAmeller2012-RE"></a>D.&#x00A0;Ameller,   C.&#x00A0;Ayala,   J.&#x00A0;Cabot,   and   X.&#x00A0;Franch,   &#8220;How   do   Software   Architects   Consider     Non-functional  Requirements:  An  Exploratory  Study,&#8221;  in  <span  class="rm-lmri-10">20th  IEEE  International  Requirements</span>     <span  class="rm-lmri-10">Engineering Conference (RE)</span>, Chicago, IL, USA, 2012, pp. 41&#8211;50.     </font>      </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b50">50</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAmeller2013-IEEE"></a>&#8212;&#8212;, &#8220;Non-Functional Requirements in Architectural Decision-Making,&#8221; <span  class="rm-lmri-10">IEEE Software</span>, vol.&#x00A0;30,     no.&#x00A0;2, pp. 61&#8211;67, March-April 2013. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b51">51</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XGruber1995"></a>T.&#x00A0;R.  Gruber,  &#8220;Toward  principles  for  the  design  of  ontologies  used  for  knowledge  sharing,&#8221;     <span  class="rm-lmri-10">International Journal of Human-Computer Studies</span>, vol.&#x00A0;43, pp. 907&#8211;928, 1995.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b52">52</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XNoy1997"></a>N.&#x00A0;F. Noy and C.&#x00A0;D. Hafner, &#8220;The state of the art in ontology design: A survey and comparative     review,&#8221; <span  class="rm-lmri-10">AI Magazine</span>, vol.&#x00A0;18, pp. 53&#8211;74, 1997.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b53">53</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XGuarino1998"></a>N.&#x00A0;Guarino,  &#8220;Some  Ontological  Principles  for  Designing  Upper  Level  Lexical  Resources,&#8221;  in     <span  class="rm-lmri-10">Proceedings of the 1</span><sup class="textsuperscript"><span  class="rm-lmri-9">st</span></sup> <span  class="rm-lmri-10">International Conference on Language Resources and Evaluation</span>, Granada, Spain,     1998, pp. 527&#8211;534. </font>     </p>         ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b54">54</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XEvermann2010"></a>J.&#x00A0;Evermann  and  J.&#x00A0;Fang,  &#8220;Evaluating  ontologies:  Towards  a  cognitive  measure  of  quality,&#8221;     <span  class="rm-lmri-10">Information Systems</span>, vol.&#x00A0;35, pp. 391&#8211;403, 2010.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b55">55</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XGuizzardi2004"></a>G.&#x00A0;Guizzardi,  G.&#x00A0;Wagner,  and  H.&#x00A0;Herre,  &#8220;On  the  Foundations  of  UML  as  an  Ontology     Representation  Language,&#8221;  in  <span  class="rm-lmri-10">Proceedings  of  the  14</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup>  <span  class="rm-lmri-10">International  Conference  on  Engineering</span>     <span  class="rm-lmri-10">Knowledge in the Age of the Semantic Web (EKAW)</span>, Whittlebury Hall, UK, 2004, pp. 47&#8211;62.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b56">56</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBerardi2005"></a>D.&#x00A0;Berardi, D.&#x00A0;Calvanese, and G.&#x00A0;De&#x00A0;Giacomo, &#8220;Reasoning on UML Class Diagrams,&#8221; <span  class="rm-lmri-10">Artificial</span>     <span  class="rm-lmri-10">Intelligence</span>, vol. 168, no. 1-2, pp. 70&#8211;118, 2005.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b57">57</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XGasevic2004"></a>D.&#x00A0;Gasevic, D.&#x00A0;Djuric, V.&#x00A0;Devedzic, and V.&#x00A0;Damjanovi, &#8220;Converting UML to OWL ontologies,&#8221; in     <span  class="rm-lmri-10">Proceedings of the 13</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">international World Wide Web conference on Alternate track papers &amp; posters</span>     <span  class="rm-lmri-10">(WWW Alt.)</span>, New York, NY, USA, 2004, pp. 488&#8211;489.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b58">58</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKroll2003"></a>P.&#x00A0;Kroll and P.&#x00A0;Kruchten, <span  class="rm-lmri-10">The rational unified process made easy: a practitioner&#8217;s guide to the RUP</span>.     Addison-Wesley, 2003. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b59">59</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XRobertson2010"></a>J.&#x00A0;Robertson and S.&#x00A0;Robertson, &#8220;Volere: Requirements Specification Template,&#8221; Atlantic Systems     Guild, Tech. Rep., 2010. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b60">60</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XNijholt1980"></a>A.&#x00A0;Nijholt, <span  class="rm-lmri-10">Context-Free Grammars: Covers, Normal Forms, and Parsing</span>.   Springer, 1980.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b61">61</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XISO25000"></a>ISO/IEC 25000, &#8220;Software product Quality Requirements and Evaluation (SQuaRE),&#8221; 2005.     </font>      </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b62">62</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XSCube2009"></a>A.&#x00A0;Gehlert and A.&#x00A0;Metzger, &#8220;Quality reference model for sba (deliverable cd-jra-1.3.2),&#8221; S-Cube,     Tech. Rep., 2009. </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b63">63</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKirkpatrick1983"></a>S.&#x00A0;Kirkpatrick, C.&#x00A0;D. Gelatt, and M.&#x00A0;P. Vecchi, &#8220;Optimization by simulated annealing,&#8221; <span  class="rm-lmri-10">Science</span>,     vol. 220, pp. 671&#8211;680, 1983. </font>     </p>         ]]></body>
<body><![CDATA[<p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b64">64</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XPOJ_comparisonDBMS"></a>L.&#x00A0;Hsu   and   R.&#x00A0;Obe,   &#8220;Cross   Compare   of   SQL   Server,   MySQL,   and   PostgreSQL,&#8221;     <a  href="http://www.postgresonline.com/article_pfriendly/51.html" class="url" >http://www.postgresonline.com/article_pfriendly/51.html</a>, 2008.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b65">65</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKruchten1999"></a>P.&#x00A0;Kruchten, &#8220;The Software Architect,&#8221; in <span  class="rm-lmri-10">Proceedings of the 1</span><sup class="textsuperscript"><span  class="rm-lmri-9">st</span></sup>  <span  class="rm-lmri-10">Working IFIP Conference on</span>     <span  class="rm-lmri-10">Software Architecture (WICSA)</span>, San Antonio, TX, USA, 1999, pp. 565&#8211;584.     </font>     </p>         <p ><font face="Verdana" size="2"><span class="biblabel">  [<a href="#b66">66</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAmeller2010"></a>D.&#x00A0;Ameller, X.&#x00A0;Franch, and J.&#x00A0;Cabot, &#8220;Dealing with Non-Functional Requirements in Model-Driven     Development,&#8221; in <span  class="rm-lmri-10">Proceedings of the 18</span><sup class="textsuperscript"><span  class="rm-lmri-9">th</span></sup> <span  class="rm-lmri-10">IEEE International Requirements Engineering Conference</span>     <span  class="rm-lmri-10">(RE)</span>, Sydney, NSW, Australia, 2010, pp. 189&#8211;198.     </font> </p>     </div>           ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tyree]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Akerman]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Architecture decisions: demystifying architecture]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>2005</year>
<volume>22</volume>
<page-range>19-27</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jansen]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Bosch]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Software Architecture as a Set of Architectural Design Decisions]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (WICSA)]]></conf-name>
<conf-date>2005</conf-date>
<conf-loc>Pittsburgh PA</conf-loc>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Krutchen]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An Ontology of Architectural Design Decisions in Software Intensive Systems]]></article-title>
<source><![CDATA[Proceedings of the 2nd Groningen Workshop Software Variability]]></source>
<year>2004</year>
<page-range>1-8</page-range><publisher-loc><![CDATA[Groningen ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kruchten]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Capilla]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Duenas]]></surname>
<given-names><![CDATA[J. C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The Decision View&rsquo;s Role in Software Architecture Practice]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>2009</year>
<volume>26</volume>
<page-range>36-42</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kruchten]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Lago]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[van Vliet]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Building Up and Reasoning About Architectural Knowledge]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 2nd international conference on Quality of Software Architectures (QoSA)]]></conf-name>
<conf-date>2006</conf-date>
<conf-loc>Västerås </conf-loc>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[de Boer]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Farenhorst]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Lago]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[van Vliet]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Clerc]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
<name>
<surname><![CDATA[Jansen]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Architectural Knowledge: Getting to the Core]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 3rd International Conference on Quality of Software Architectures (QoSA)]]></conf-name>
<conf-date>2007</conf-date>
<conf-loc>Medford MA</conf-loc>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ameller]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Franch]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Ontology-based Architectural Knowledge representation: structural elements module]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the Conference on Advanced Information Systems Engineering Workshops (CAISE)]]></conf-name>
<conf-date>2011</conf-date>
<conf-loc>London </conf-loc>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ameller]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Collell]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
<name>
<surname><![CDATA[Franch]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[ArchiTech: Tool Support for NFR-Guided Architectural Decision-Making]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 20th IEEE International Requirements Engineering Conference (RE)]]></conf-name>
<conf-date>2012</conf-date>
<conf-loc>Chicago IL</conf-loc>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Falessi]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Cantone]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Kruchten]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Do Architecture Design Methods Meet Architects Needs?]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA)]]></conf-name>
<conf-date>2007</conf-date>
<conf-loc>Mumbai </conf-loc>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kazman]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Abowd]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Bass]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Clements]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Scenario-Based Analysis of Software Architecture]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>1996</year>
<volume>13</volume>
<page-range>47-55</page-range></nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kazman]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Klein]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Barbacci]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Longstaff]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Lipson]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Carriere]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The architecture tradeoff analysis method]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 4th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS)]]></conf-name>
<conf-date>1998</conf-date>
<conf-loc>Monterey CA</conf-loc>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bachmann]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Bass]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Introduction to the Attribute Driven Design method]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 23rd International Conference on Software Engineering (ICSE)]]></conf-name>
<conf-date>2001</conf-date>
<conf-loc>Toronto Ontario</conf-loc>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bosch]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Design and use of software architectures: adopting and evolving a product-line approach]]></source>
<year>2000</year>
<publisher-name><![CDATA[ACM PressAddison-Wesley Publishing Co]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Matinlassi]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Niemelä]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Dobrica]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<source><![CDATA[Quality-driven architecture design and analysis method: A revolutionary initiation approach to a product line architecture]]></source>
<year>2002</year>
<publisher-name><![CDATA[VTT Technical Research Centre of Finland]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Choi]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Yeom]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Choi]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
<name>
<surname><![CDATA[Moon]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An approach to quality achievement at the architectural level: AQUA]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 8th IFIP WG 6.1 International Conference (FMOODS)]]></conf-name>
<conf-date>2006</conf-date>
<conf-loc>Bologna Italy</conf-loc>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bertolino]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Bucchiarone]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Gnesi]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Muccini]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An architecture-centric approach for producing quality systems]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 1st International Conference on the Quality of Software Architectures (QoSA) and Second International Workshop on Software Quality (SOQUA)]]></conf-name>
<conf-date>2005</conf-date>
<conf-loc>Erfurt </conf-loc>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Al-naeem]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Gorton]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Ali-Babar]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Rabhi]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Benatallah]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A quality-driven systematic approach for architecting distributed software applications]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 27th International Conference on Software Engineering (ICSE)]]></conf-name>
<conf-date>2005</conf-date>
<conf-loc>St. Louis Missouri</conf-loc>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tang]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Han]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Vasa]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Software Architecture Design Reasoning: A Case for Improved Methodology Support]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>2009</year>
<volume>26</volume>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Montero]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Navarro]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[ATRIUM: Software Architecture Driven by Requirements]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 14th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS)]]></conf-name>
<conf-date>2009</conf-date>
<conf-loc>Potsdam </conf-loc>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chung]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Cooper]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Yi]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Developing adaptable software architectures using design patterns: an NFR approach]]></article-title>
<source><![CDATA[Computer Standards & Interfaces]]></source>
<year>2003</year>
<volume>25</volume>
<page-range>253-260</page-range></nlm-citation>
</ref>
<ref id="B21">
<label>22</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bode]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Fischer]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Kuehnhauser]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[Riebisch]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Software Architectural Design meets Security Engineering]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 16th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ECBS)]]></conf-name>
<conf-date>2009</conf-date>
<conf-loc>San Francisco CA</conf-loc>
</nlm-citation>
</ref>
<ref id="B22">
<label>24</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bass]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Clements]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Kazman]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Software Architecture in Practice]]></source>
<year>2003</year>
<edition>Second</edition>
<publisher-name><![CDATA[Addison-Wesley Longman Publishing Co]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B23">
<label>25</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Perovich]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Bastarrica]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Rojas]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Model-Driven approach to Software Architecture design]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 4th Workshop on Sharing and Reusing Architectural Knowledge (SHARK)]]></conf-name>
<conf-date>2009</conf-date>
<conf-loc>Vancouver BC</conf-loc>
</nlm-citation>
</ref>
<ref id="B24">
<label>26</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Brambilla]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Cabot]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Wimmer]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Model-driven Software Engineering in Practice, ser]]></source>
<year>2012</year>
<publisher-name><![CDATA[Morgan & Claypool]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B25">
<label>27</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kleppe]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Warmer]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Bast]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<source><![CDATA[MDA Explained, The Model Driven Architecture: Practice and Promise]]></source>
<year>2003</year>
<publisher-name><![CDATA[Addison-Wesley Longman Publishing Co., Inc]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B26">
<label>28</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Niemela]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Immonen]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Capturing quality requirements of product family architecture]]></article-title>
<source><![CDATA[Information and Software Technology (IST)]]></source>
<year>2007</year>
<volume>49</volume>
<page-range>1107-1120</page-range></nlm-citation>
</ref>
<ref id="B27">
<label>29</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hofmeister]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Kruchten]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Nord]]></surname>
<given-names><![CDATA[R. L]]></given-names>
</name>
<name>
<surname><![CDATA[Obbink]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Ran]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[America]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A general model of software architecture design derived from five industrial approaches]]></article-title>
<source><![CDATA[Journal of Systems and Software (JSS)]]></source>
<year>2007</year>
<volume>80</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>106-126</page-range></nlm-citation>
</ref>
<ref id="B28">
<label>30</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bachmann]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Bass]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Klein]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Shelton]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Designing software architectures to achieve quality attribute requirements]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>2005</year>
<volume>152</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>153-165</page-range></nlm-citation>
</ref>
<ref id="B29">
<label>31</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Avgeriou]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Kruchten]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Lago]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Grisham]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Perry]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Architectural knowledge and rationale: issues, trends, challenges]]></article-title>
<source><![CDATA[ACM SIGSOFT Software Engineering Notes]]></source>
<year>2007</year>
<volume>32</volume>
<page-range>41-46</page-range></nlm-citation>
</ref>
<ref id="B30">
<label>32</label><nlm-citation citation-type="">
<collab>ISO/IEC/</collab>
<source><![CDATA[42010 (IEEE Std) 1471-2000: Systems and Software engineering - Recomended practice for architectural description of software-intensive systems]]></source>
<year>2007</year>
</nlm-citation>
</ref>
<ref id="B31">
<label>33</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Capilla]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Nava]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Duenas]]></surname>
<given-names><![CDATA[J. C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Modeling and Documenting the Evolution of Architectural Design Decisions]]></article-title>
<source><![CDATA[Proceedings of the 2nd Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent (SHARK-ADI)]]></source>
<year>2007</year>
<page-range>9</page-range><publisher-loc><![CDATA[Minneapolis^eMN MN]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B32">
<label>34</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lopez]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Cysneiros]]></surname>
<given-names><![CDATA[L. M]]></given-names>
</name>
<name>
<surname><![CDATA[Astudillo]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[NDR Ontology: Sharing and Reusing NFR and Design Rationale Knowledge]]></article-title>
<source><![CDATA[Proceedings of the 1st International Workshop on Managing Requirements Knowledge (MARK)]]></source>
<year>2008</year>
<page-range>1-10</page-range><publisher-loc><![CDATA[Barcelona ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B33">
<label>35</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Akerman]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Tyree]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Using ontology to support development of software architectures]]></article-title>
<source><![CDATA[IBM Systems Journal]]></source>
<year>2006</year>
<volume>45</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>813-826</page-range></nlm-citation>
</ref>
<ref id="B34">
<label>36</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Babu T]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Seetha Ramaiah]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Prabhakar]]></surname>
<given-names><![CDATA[T. V]]></given-names>
</name>
<name>
<surname><![CDATA[Rambabu]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[ArchVoc-Towards an Ontology for Software Architecture]]></article-title>
<source><![CDATA[Proceedings of the 2nd Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent (SHARK-ADI)]]></source>
<year>2007</year>
<page-range>5</page-range><publisher-loc><![CDATA[Minneapolis^eMN MN]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B35">
<label>37</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pahl]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Giesecke]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Hasselbring]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Ontology-based modelling of architectural styles]]></article-title>
<source><![CDATA[Information and Software Technology (IST)]]></source>
<year>2009</year>
<volume>51</volume>
<page-range>1739-1749</page-range></nlm-citation>
</ref>
<ref id="B36">
<label>38</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Henttonen]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Matinlassi]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Open source based tools for sharing and reuse of software architectural knowledge]]></article-title>
<source><![CDATA[Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture (WICSA/ECSA)]]></source>
<year>2009</year>
<page-range>41-50</page-range><publisher-loc><![CDATA[Cambridge ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B37">
<label>39</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Shahin]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Liang]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Khayyambashi]]></surname>
<given-names><![CDATA[M.-R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Architectural design decision: Existing models and tools]]></article-title>
<source><![CDATA[Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture (WICSA/ECSA)]]></source>
<year>2009</year>
<page-range>293-296</page-range><publisher-loc><![CDATA[Cambridge ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B38">
<label>40</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[de Boer]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Lago]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Telea]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[van Vliet]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Ontology-driven visualization of architectural design decisions]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture (WICSA/ECSA)]]></conf-name>
<conf-date>2009</conf-date>
<conf-loc>Cambridge </conf-loc>
</nlm-citation>
</ref>
<ref id="B39">
<label>41</label><nlm-citation citation-type="">
<collab>ISO</collab>
<source><![CDATA[ISO/IEC 9126: Product quality - Part 1: Quality model]]></source>
<year>2001</year>
</nlm-citation>
</ref>
<ref id="B40">
<label>42</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tang]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Jin]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
<name>
<surname><![CDATA[Han]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A rationale-based architecture model for design traceability and reasoning]]></article-title>
<source><![CDATA[Journal of Systems and Software (JSS)]]></source>
<year>2007</year>
<volume>80</volume>
<page-range>918-934</page-range></nlm-citation>
</ref>
<ref id="B41">
<label>43</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Babar]]></surname>
<given-names><![CDATA[M. A]]></given-names>
</name>
<name>
<surname><![CDATA[Gorton]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Tool for Managing Software Architecture Knowledge]]></article-title>
<source><![CDATA[Proceedings of the 2nd Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent (SHARK-ADI)]]></source>
<year>2007</year>
<page-range>11</page-range><publisher-loc><![CDATA[Minneapolis^eMN MN]]></publisher-loc>
<publisher-name><![CDATA[IEEE Computer Society]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B42">
<label>44</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Garlan]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Schmerl]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[AEvol: A tool for defining and planning architecture evolution]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of International Conference on Software Engineering (ICSE)]]></conf-name>
<conf-date>2009</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B43">
<label>45</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Capilla]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Nava]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Pérez]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Dueñas]]></surname>
<given-names><![CDATA[J. C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A web-based tool for managing architectural design decisions]]></article-title>
<source><![CDATA[ACM SIGSOFT Software Engineering Notes]]></source>
<year>2006</year>
<volume>31</volume>
<page-range>4</page-range></nlm-citation>
</ref>
<ref id="B44">
<label>46</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jansen]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Vries]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Avgeriou]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Veelen]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Sharing the Architectural Knowledge of Quantitative Analysis]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 4th International Conference on the Quality of Software-Architectures (QoSA)]]></conf-name>
<conf-date>2008</conf-date>
<conf-loc>Karlsruhe </conf-loc>
</nlm-citation>
</ref>
<ref id="B45">
<label>47</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dietrich]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Elgar]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Towards a web of patterns]]></article-title>
<source><![CDATA[Journal of Web Semantics]]></source>
<year>2007</year>
<volume>5</volume>
<page-range>108-116</page-range></nlm-citation>
</ref>
<ref id="B46">
<label>48</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chung]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[do Prado Leite]]></surname>
<given-names><![CDATA[J. C. S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[On Non-Functional Requirements in Software Engineering]]></article-title>
<source><![CDATA[Conceptual Modeling: Foundations and Applications: Essays in Honor of John Mylopoulos]]></source>
<year>2009</year>
<page-range>363-379</page-range><publisher-name><![CDATA[Springer Berlin Heidelberg]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B47">
<label>49</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ameller]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Ayala]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Cabot]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Franch]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[How do Software Architects Consider Non-functional Requirements: An Exploratory Study]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[20th IEEE International Requirements Engineering Conference (RE)]]></conf-name>
<conf-date>2012</conf-date>
<conf-loc>Chicago IL</conf-loc>
</nlm-citation>
</ref>
<ref id="B48">
<label>50</label><nlm-citation citation-type="journal">
<article-title xml:lang="en"><![CDATA[Non-Functional Requirements in Architectural Decision-Making]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>Marc</year>
<month>h-</month>
<day>Ap</day>
<volume>30</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>61-67</page-range></nlm-citation>
</ref>
<ref id="B49">
<label>51</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gruber]]></surname>
<given-names><![CDATA[T. R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Toward principles for the design of ontologies used for knowledge sharing]]></article-title>
<source><![CDATA[International Journal of Human-Computer Studies]]></source>
<year>1995</year>
<volume>43</volume>
<page-range>907-928</page-range></nlm-citation>
</ref>
<ref id="B50">
<label>52</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Noy]]></surname>
<given-names><![CDATA[N. F]]></given-names>
</name>
<name>
<surname><![CDATA[Hafner]]></surname>
<given-names><![CDATA[C. D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The state of the art in ontology design: A survey and comparative review]]></article-title>
<source><![CDATA[AI Magazine]]></source>
<year>1997</year>
<volume>18</volume>
<page-range>53-74</page-range></nlm-citation>
</ref>
<ref id="B51">
<label>53</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Guarino]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Some Ontological Principles for Designing Upper Level Lexical Resources]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 1st International Conference on Language Resources and Evaluation]]></conf-name>
<conf-date>1998</conf-date>
<conf-loc>Granada </conf-loc>
</nlm-citation>
</ref>
<ref id="B52">
<label>54</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Evermann]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Fang]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Evaluating ontologies: Towards a cognitive measure of quality]]></article-title>
<source><![CDATA[Information Systems]]></source>
<year>2010</year>
<volume>35</volume>
<page-range>391-403</page-range></nlm-citation>
</ref>
<ref id="B53">
<label>55</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Guizzardi]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Wagner]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Herre]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[On the Foundations of UML as an Ontology Representation Language]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 14th International Conference on Engineering Knowledge in the Age of the Semantic Web (EKAW)]]></conf-name>
<conf-date>2004</conf-date>
<conf-loc>Whittlebury Hall </conf-loc>
</nlm-citation>
</ref>
<ref id="B54">
<label>56</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Berardi]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Calvanese]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[De Giacomo]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Reasoning on UML Class Diagrams]]></article-title>
<source><![CDATA[Artificial Intelligence]]></source>
<year>2005</year>
<volume>168</volume>
<numero>1-2</numero>
<issue>1-2</issue>
<page-range>70-118</page-range></nlm-citation>
</ref>
<ref id="B55">
<label>57</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gasevic]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Djuric]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Devedzic]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
<name>
<surname><![CDATA[Damjanovi]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Converting UML to OWL ontologies]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 13th international World Wide Web conference on Alternate track papers and posters (WWW Alt.)]]></conf-name>
<conf-date>2004</conf-date>
<conf-loc>New York NY</conf-loc>
</nlm-citation>
</ref>
<ref id="B56">
<label>58</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kroll]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Kruchten]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[The rational unified process made easy: a practitioner&rsquo;s guide to the RUP]]></source>
<year>2003</year>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B57">
<label>59</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Robertson]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Robertson]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[Volere: Requirements Specification Template]]></source>
<year>2010</year>
<publisher-name><![CDATA[Atlantic Systems Guild]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B58">
<label>60</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Nijholt]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Context-Free Grammars: Covers, Normal Forms, and Parsing]]></source>
<year>1980</year>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B59">
<label>61</label><nlm-citation citation-type="">
<source><![CDATA[ISO/IEC 25000: Software product Quality Requirements and Evaluation (SQuaRE)]]></source>
<year>2005</year>
</nlm-citation>
</ref>
<ref id="B60">
<label>62</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gehlert]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Metzger]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Quality reference model for sba (deliverable cd-jra-1.3.2)]]></source>
<year>2009</year>
<publisher-name><![CDATA[S-Cube]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B61">
<label>63</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kirkpatrick]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Gelatt]]></surname>
<given-names><![CDATA[C. D]]></given-names>
</name>
<name>
<surname><![CDATA[Vecchi]]></surname>
<given-names><![CDATA[M. P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Optimization by simulated annealing]]></article-title>
<source><![CDATA[Science]]></source>
<year>1983</year>
<volume>220</volume>
<page-range>671-680</page-range></nlm-citation>
</ref>
<ref id="B62">
<label>64</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hsu]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Obe]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Cross Compare of SQL Server, MySQL, and PostgreSQL]]></source>
<year>2008</year>
</nlm-citation>
</ref>
<ref id="B63">
<label>65</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kruchten]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The Software Architect]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 1st Working IFIP Conference on Software Architecture (WICSA)]]></conf-name>
<conf-date>1999</conf-date>
<conf-loc>San Antonio TX</conf-loc>
</nlm-citation>
</ref>
<ref id="B64">
<label>66</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ameller]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Franch]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
<name>
<surname><![CDATA[Cabot]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Dealing with Non-Functional Requirements in Model-Driven Development]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 18th IEEE International Requirements Engineering Conference (RE)]]></conf-name>
<conf-date>2010</conf-date>
<conf-loc>Sydney NSW</conf-loc>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
