<?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-50002011000300003</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[Model-based development of security requirements]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Fernandez]]></surname>
<given-names><![CDATA[Eduardo B.]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Mujica]]></surname>
<given-names><![CDATA[Sergio]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Florida Atlantic University Dept. of Computer and Electrical Eng. and Computer Science ]]></institution>
<addr-line><![CDATA[Boca Raton FL]]></addr-line>
<country>USA</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Santo Tomas Escuela de Informatica ]]></institution>
<addr-line><![CDATA[Santiago de Chile ]]></addr-line>
<country>Chile</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2011</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2011</year>
</pub-date>
<volume>14</volume>
<numero>3</numero>
<fpage>3</fpage>
<lpage>3</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_arttext&amp;pid=S0717-50002011000300003&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-50002011000300003&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-50002011000300003&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[Abstract We present a model-based approach using two dimensions to propagate security restrictions: along the lifecycle and along the architectural levels. We apply security patterns to perform this propagation. We believe that this double propagation can be very effective for security and reliability. This approach can also facilitate the security analysis of the system and can be used to verify compliance with regulations. We have developed a methodology to apply these ideas and we are extending it to make it more powerful, in particular to increase its level of security and to add to it also reliability concerns. The extensions include two new metamodels for security requirements and a validation approach.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[Abstract Presentamos un enfoque basado en modelos que usa dos dimensiones para propagar restricciones de seguridad a lo largo de ciclo de vida y los niveles arquitecturales. Aplicamos patrones de seguridad para efectuar esta propagacion. Creemos que esta propagacion doble puede ser muy efectiva para seguridad y confiabilidad. Este enfoque puede tambien facilitar el analisis de seguridad del sistema y puede usarse para verificar el cumplimiento de regulaciones. Hemos desarrollado una metodologia para aplicar estas ideas y la estamos extendiendo para hacerla mas poderosa; en particular para aumentar su nivel de seguridad y para agregar tambien aspectos de confiabilidad. Las extensiones incluyen dos nuevos metamodelos para requerimientos de seguridad y un procedimiento de validacion.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[security patterns]]></kwd>
<kwd lng="en"><![CDATA[security requirements]]></kwd>
<kwd lng="en"><![CDATA[reliability]]></kwd>
<kwd lng="en"><![CDATA[conceptual models]]></kwd>
<kwd lng="en"><![CDATA[compliance]]></kwd>
<kwd lng="en"><![CDATA[model-driven design]]></kwd>
<kwd lng="es"><![CDATA[patrones de seguridad]]></kwd>
<kwd lng="es"><![CDATA[requerimientos de seguridad]]></kwd>
<kwd lng="es"><![CDATA[confiabilidad]]></kwd>
<kwd lng="es"><![CDATA[modelos conceptuales]]></kwd>
<kwd lng="es"><![CDATA[cumplimiento]]></kwd>
<kwd lng="es"><![CDATA[diseÃ±o basado en modelos]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p style="text-indent: 0cm; line-height: 100%;" align="center" lang="en-US">       <font style="font-weight:700" size="4" face="Verdana">Model-based           development of security requirements</font></p>           <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font face="Verdana" size="2">     <br>      </font>      </p>           <div id="Secci&oacute;n1" dir="ltr">            <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font size="2" face="Verdana"><b>Eduardo B. Fernandez</b></font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font size="2" face="Verdana">Florida Atlantic University, Dept. of           Computer and Electrical Eng. and Computer Science</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center">         <font size="2" face="Verdana">Boca Raton, FL, USA</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US"> <font color="#0000ff"><u><a href="mailto:ed@cse.fau.edu"> <font size="2" face="Verdana"><span lang="es-ES"><i>ed@cse.fau.edu</i></span></font></a></u></font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center">         <font face="Verdana" size="2">             <br>          </font>        </p>             ]]></body>
<body><![CDATA[<p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center">         <font size="2" face="Verdana">and</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center">         <font face="Verdana" size="2">             <br>          </font>        </p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center">  <font size="2" face="Verdana"><b>Sergio Mujica</b></font></p>      </div>           <div id="Secci&oacute;n2" dir="ltr">            <p style="margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font size="3" style="font-size: 10pt" face="Verdana"> <span style="font-weight: normal;" lang="es-ES">Universidad Santo                 Tomas, Escuela de Informatica</span></font></p>             <p style="margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font size="3" face="Verdana" style="font-size: 10pt"><span style="font-weight: normal;">Santiago, Chile</span></font></p>             <p style="margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font style="font-size: 10pt;" size="2"><b><font color="#0000ff"><u><a href="mailto:sergio.mujica@gmail.com"> <font face="Verdana"><i>sergio.mujica@gmail.com</i></font></a></u></font></b></font></p>             <p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             ]]></body>
<body><![CDATA[<p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US"> <font style="font-size: 9pt;" size="2"><b> <font size="2" face="Verdana">Abstract</font></b></font></p>             <p style="margin-left: 2.79cm; margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm;" lang="en-US">  <font face="Verdana" size="2">We present a model-based approach using two dimensions to         propagate security restrictions: along the lifecycle and along the         architectural levels. We apply security patterns to perform this         propagation. We believe that this double propagation can be very         effective for security and reliability. This approach can also         facilitate the security analysis of the system and can be used to verify         compliance with regulations. We have developed a methodology to apply<b>         </b>these ideas and we are extending it to make it more powerful, in         particular to increase its level of security and to add to it also         reliability concerns. The extensions include two new metamodels for         security requirements and a validation approach.</font></p>             <p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font size="2" face="Verdana">Abstract</font></p>             <p style="margin-left: 2.79cm; margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm;" lang="en-US">  <font face="Verdana" size="2">Presentamos un enfoque basado en modelos que usa dos         dimensiones para propagar restricciones de seguridad a lo largo de ciclo         de vida y los niveles arquitecturales. Aplicamos patrones de seguridad         para efectuar esta propagacion. Creemos que esta propagacion doble puede         ser muy efectiva para seguridad y confiabilidad. Este enfoque puede         tambien facilitar el analisis de seguridad del sistema y puede usarse         para verificar el cumplimiento de regulaciones. Hemos desarrollado una         metodologia para aplicar estas ideas y la estamos extendiendo para         hacerla mas poderosa; en particular para aumentar su nivel de seguridad         y para agregar tambien aspectos de confiabilidad. Las extensiones         incluyen dos nuevos metamodelos para requerimientos de seguridad y un         procedimiento de validacion.</font></p>             <p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%;" lang="en-US"> </p>             <p style="margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font style="font-size: 9pt;" size="2" face="Verdana"><b><font size="2">&nbsp;&nbsp;&nbsp;               &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;               &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;               &nbsp;&nbsp;&nbsp; Keywords: </font></b><font size="2"><span style="font-weight: normal;">security               patterns, security requirements, reliability, conceptual models,               compliance, model-driven design</span></font></font></p>             <p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0.32cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%;" lang="en-US"> </p>             <p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font style="font-size: 9pt;" size="2" face="Verdana"><b><font size="2">Keywords:               </font></b><font size="2"><span style="font-weight: normal;">patrones               de seguridad, requerimientos de seguridad, confiabilidad, modelos               conceptuales, cumplimiento, dise&ntilde;o basado en modelos</span></font></font></p>             ]]></body>
<body><![CDATA[<p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0.32cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="margin-left: 2.54cm; margin-right: 2.54cm; text-indent: 0.32cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%;" lang="en-US">  <font size="2" face="Verdana">Received: 2011-03-30 Revised: 2011-10-06           Accepted: 2011-10-06</font></p>             <p style="text-indent: 0cm; text-align: left;" lang="">  <font face="Verdana" size="2"> <b>1.           Introduction</b></font></p>             <p style="text-indent: 0cm; text-align: left;" lang=""> <font face="Verdana" size="2">Many         current systems have serious security problems. We believe that a good         way to have secure systems is to build applications and systems software         in a systematic way, where security is an integral part of the         lifecycle. The same applies to reliability. If we want a system which is         secure and reliable, both security and reliability must be built         together. If we build not only applications but also middleware and         operating systems in the same way, we can build systems that not only         are inherently secure, i.e., they can withstand attacks from malicious         applications, but also can resist errors. All security and reliability         constraints should be defined at the application level, where their         semantics are understood, and propagated to the lower levels. The lower         levels provide the assurance that the constraints are being followed,         i.e. they guarantee that there are no ways to bypass these constraints.</font></p>             <p style="text-indent: 0cm; text-align: left;" lang=""> <font face="Verdana" size="2">It         appears that the best way to provide a unified view of security in the         presence of myriad implementation details of the component units is to         use abstraction through models, correcting code flaws is a hopeless task         for large and complex systems. In particular, we apply abstraction         through the use of security and reliability patterns. Our idea is to be         able to describe all architectural relationships in any type of network         by means of patterns. Patterns are encapsulated solutions to recurrent         system problems and define a vocabulary that concisely expresses         requirements and solutions without getting prematurely into         implementation details <a href="#c1">[1]</a><a name="c1."></a>. The description of architectures using         patterns makes them easier to understand, provides guidelines for design         and analysis, and provides a way to make their structure more secure in         the presence of a growing amount of attacks, at the same time increasing         their overall reliability. Most books on software architecture, e.g.         <a href="#c2">[2]</a><a name="c2."></a>, describe the importance of patterns but none applies them         systematically to build architectures with high security and high         reliability requirements. Security patterns describe mechanisms that can         stop specific security threats and they also embody principles of good         security design <a href="#c8">[8]</a><a name="c8."></a>.</font></p>             <p style="text-indent: 0cm; text-align: left;" lang=""> <font face="Verdana" size="2">Our         approach to building secure architectures involves using two dimensions         to propagate security restrictions, along the lifecycle and along the         architectural levels. We believe that this double propagation can be         very effective for security. In the past, systems have been built where         some user interactions are not possible, e.g. the Burroughs machines         only allowed high-level language access to the architecture. If we can         restrict users in similar although not so restrictive ways, we can         significantly improve system security. This approach would also         facilitate the security analysis of the system. Applying security along         all the stages of the lifecycle is now an accepted good practice for         security and these two aspects are synergistic. Propagation along         architectural levels is our idea and requires a relatively complete         catalog of patterns. Patterns defined at the application level are         reflected in lower-level patterns. We have built an extensive catalog of         security patterns that cover all the architectural layers <a href="#c3">[3]</a><a name="c3."></a>.</font></p>             <p style="text-indent: 0cm; text-align: left;" lang=""> <font face="Verdana" size="2">To         apply this approach we need an appropriate methodology, patterns are not         very useful without a systematic way to apply them. We have developed         such a methodology <a href="#r4">[4]</a><a name="c4."></a>. Its main ideas are that security principles         should be applied at every stage of the software lifecycle and that each         stage can be tested for compliance with security principles. Another         basic idea is the use of patterns to guide security at each stage.         Patterns are applied to cover all architectural levels. We are extending         it in the ways described in this paper, so we can see this paper as a         set of extensions to make this methodology more powerful, in particular         increase its level of security and add to it also reliability and         compliance aspects. The extensions include two new metamodels for         security and reliability requirements and a way to validate these         requirements. However, the models presented here are applicable to any         security methodology.</font></p>             <p style="text-indent: 0cm; text-align: left;" lang=""> <font face="Verdana" size="2">The         rest of the paper is organized as follows: Section 2 summarizes our         methodology. Section 3 presents the metamodels. Section 4 considers the         validation of these models, while Section 5 compares our results to         others. We end with some conclusions.</font></p>             <p style="margin-left: 1.27cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm;" lang="en-US">  <font face="Verdana" size="2">     ]]></body>
<body><![CDATA[<br>        </font>        </p>             <p style="text-indent: 0cm; text-align: left;" lang="">  <font face="Verdana" size="2"> <b>2.           A methodology to build secure and reliable systems</b></font></p>             <p style="text-indent: 0cm; text-align: left;" lang=""> <font face="Verdana" size="2">This         methodology considers the following development stages <a href="#r4">[4]</a>:</font></p>         <ul>                 <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">    <font face="Verdana" size="2"> <i>Domain analysis stage</i>: Conceptual models to           cover relevant areas are defined. Legacy systems are identified           and their security implications analyzed. General security or           reliability constraints can be applied at this stage in the form of           patterns.</font></p>                 <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">    <font face="Verdana" size="2"> <i>Requirements stage</i>: Use cases define the           required interactions with the system. We relate threats to use cases.           Considering the activities in each use case we can enumerate threats           in a systematic way <a href="#c5">[5]</a>.<a name="c5."></a> The security test cases for the complete           system are also defined at this stage.</font></p>                 <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">    <font face="Verdana" size="2"> <i>Analysis stage</i>: Analysis patterns can be used to           build the conceptual model in a more reliable and efficient           way. Security patterns describe security models or mechanisms. We can           build a conceptual model where repeated applications of security           patterns apply the required security constraints <a href="#c6">[6]</a><a name="c6."></a>.</font></p>                 <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">    <font face="Verdana" size="2"> <i>Design stage</i>: We express the abstract security           patterns identified in the analysis stage in the design artifacts,           e.g. interfaces, components, distribution, and networking.</font></p>                 <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">    <font face="Verdana" size="2"> <i>Implementation stage</i>: This stage requires           reflecting in the code the security rules defined in the design stage.           In this stage we can also select specific security packages or COTS,           e.g., a firewall product, a cryptographic package. </font> </p>                 <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US"> </p>             </ul>             ]]></body>
<body><![CDATA[<p style="margin-left: 0.47cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <a href="#f1">Figure 1</a> summarizes the lifecycle of an         application, showing the use of security patterns in each stage. We         assume that the relevant domain analyses have been performed in advance,         i.e we have one or more domain models from which we can take some         sub-models to build the application. Reliability aspects are handled         similarly and concurrently. We consider first the use cases of the         system. A use case is a complete interaction of a user with the system.         We enumerate systematically the possible threats to the use case         activities. Use cases are also used to find security test cases for the         complete system once implemented as executable code. From the use cases         we build the conceptual model of the application, which describes         precisely the functional requirements of the system. We superimpose on         the functional aspects, security patterns to control the identified         threats. These are abstract security patterns, defining basic security         functions and free of implementation aspects. The conceptual model plus         the security patterns define the security requirements of the         application. The secure conceptual model is transformed into a design         model that considers software aspects and where architectural security         patterns are added based on the requirements of the analysis stage.         Finally code is produced from the design model complemented with COTS         components that implement security mechanisms, e.g. firewalls. Currently         we know how to get to the secure conceptual model but we don&rsquo;t have a         precise way to transform this model into a secure design model. We are         here making the early stages more precise in order to make easier the         transition to a design model.</font></p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US"> </p>        <a name="f1">     <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font face="Verdana" size="2"> <img src="/img/revistas/cleiej/v14n3/3a03f1.jpg" name="Object 1" align="bottom" border="0" height="234" width="576"></font></p> </a>            <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font face="Verdana" size="2"> <b>Figure 1:</b> Patterns and lifecycle of         an application.</font></p>             <p style="margin-left: 0.53cm; text-indent: 0cm;" align="justify" lang="en-US">  </p>             <p style="text-indent: 0cm; text-align: left;" lang="">  <font face="Verdana" size="2"> <b>3.           Metamodels for security requirements</b></font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <a href="#f2">Figure 2</a> shows a metamodel that relates domain models to         application models. A <b>Conceptual Model</b> describes functional         relationships between entities; it realizes a set of use cases (textual         descriptions) into a more precise representation. A <b>Domain Model</b>         describes functional relationships between entities related to a         specific domain, e.g. finance or electrical engineering. An <b>Application           Model</b> describes the functional aspects of an application and may         combine parts of several domain models (takesFrom) as well as its own         set of conceptual entities. Domain models and application models are         conceptual models. A conceptual model may include analysis patterns and         ad hoc functional units (not patterns). Some analysis patterns are         Semantic Analysis Patterns (<b>SAP</b>s), which correspond to a small         set of coherent use cases <a href="#c7">[7]</a><a name="c7."></a>. The <b>Policy-enhanced Domain Model           (PEDM) </b>and the<b> Policy-enhanced Application Model (PEAM)</b>         correspond to domain and application models where we have superimposed         policies for security or reliability. In particular, the PEAM inherits         policies from some domain models and may add its own policies.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <a href="#f3">Figure 3</a> shows a metamodel to go from threats and failures         to patterns. A <b>Threat</b> can be neutralized by a <b>Security           Policy</b>. Similarly, a <b>Failure</b> can be neutralized by a <b>Reliability           Policy</b>. <b>Policies</b> may include also <b>Regulations</b> and         <b>Institution Policies</b>. Security and reliability policies are         realized by <b>Security</b> and <b>Reliability Patterns</b>,         respectively. A <b>Policy Realization Pattern</b> is a pattern that         realizes any type of policy and consists of a few classes and         associations. Security and Reliability patterns are special cases of         Policy Realization patterns.</font></p>             ]]></body>
<body><![CDATA[<p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">The set of use cases in the application, UC<sub>A</sub>,         are the union of some of the use cases in the domain model, UC<sub>Di</sub>,         and a set of new use cases, UC<sub>new</sub>. Since we relate threats to         use cases, new use cases mean new threats. The metamodel of <a href="#f3">Figure 3</a>         applies both to domain models and to application models. When applied to         a domain model we enumerate threats/failures based on the use cases of         the domain model; when applied to the application model its threats are         the union of the threats in the domain model and the threats in the new         use cases.</font></p>      </div>           <div id="Secci&oacute;n3" dir="ltr">            <p align="center" lang="en-US"><font face="Verdana" size="2">    <br>        </font>        </p>        <a name="f2">              <p align="center" lang="en-US"> </p>        </a>            <p align="center" lang=""><font face="Verdana" size="2"><a name="f2"><img src="/img/revistas/cleiej/v14n3/3a03f2.gif"></a></font></p>             <p align="center" lang="en-US"><font face="Verdana" size="2">    <br>              <br>        </font>        </p>             <p align="center" lang="en-US"><font face="Verdana" size="2"><b>Figure 2:</b>         Relationships between domain models and application models.</font></p>             ]]></body>
<body><![CDATA[<p align="center" lang="en-US"><font face="Verdana" size="2">    <br>              <br>        </font>        </p>      </div>           <div id="Secci&oacute;n4" dir="ltr">            <p style="margin-left: 0.47cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">To build secure applications, we start by defining first a         Domain Model (DM) and superimpose on it security /reliability patterns         that neutralize threats and failures and also includes all policies         related to regulations and institution policies, this is the PEDM. A         PEAM inherits the association takesFrom and thus incorporates into it         the PEDM. Since the application cannot override security/reliability         constraints and regulations coming from the PEDM, it means that the         effort spent developing a domain model that complies with regulations is         recovered by having application models which are automatically compliant         with those regulations. In previous work we developed a systematic         approach to enumerate all (most?) of the threats to an application <a href="#c5">[5]</a>.         As shown in <a href="#f3">Figure 3</a>, threats can be stopped or mitigated by appropriate         policies. To these policies we must add policies that correspond to         regulations and institution policies, both of which must appear in any         application. All these threats must be handled by specific mechanisms in         order to stop them. Our threat analysis uses the activity diagrams of         the use cases of the system. We can do this analysis in the domain model         for those aspects which cut across applications and in the application         models for those aspects unique to the applications. We can combine this         approach with analysis patterns and obtain parts of domains which         incorporate all their needed security restrictions in the form of         patterns, e.g. a law trial secure analysis pattern <a href="#c6">[6]</a>.</font></p>             <p style="margin-left: 0.47cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <a href="#f4">Figure 4</a> shows an example of these concepts. A threat of         illegal data modification has been detected by some approach, e.g. <a href="#c5">[5]</a>.         Two policies acting together are able to stop this attack: Access         Control to intercept all accesses and validate them; Need-to-Know to         define fine granularity rules in the access control system. A third         policy, Log/Audit does not stop the attack but would record the attack         actions for future system improvement or prosecution. It is usually used         together with the other two policies. An access control policy is         realized by two patterns: Authorization, that defines a structure for         access rules, and Reference Monitor, that enforces the rules <a href="#c8">[8]</a>. We see         from this figure that the four leafï¿½ patterns can neutralize this         attack.</font></p>             <p style="margin-left: 0.47cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">All the security patterns that neutralize threats cannot         be defined in the DMs since some threats depend on the specific         application, e.g. the goals of the attacker could be quite different in         each application. However, as indicated above, we have a way to         enumerate the specific threats of an application. In the DM we can add         threats to parts of an application as discussed below.</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US"> </p>             ]]></body>
<body><![CDATA[<p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>        <a name="f3">              <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="">  <font face="Verdana" size="2"> <img src="/img/revistas/cleiej/v14n3/3a03f3.gif"></font></p>        </a>            <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font face="Verdana" size="2"> <b>Figure 3:</b> Metamodel for         requirements and patterns</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>      </div>           ]]></body>
<body><![CDATA[<div id="Secci&oacute;n5" dir="ltr">            <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font face="Verdana" size="2">     <br>        </p>        <a name="f4"></a> </font>     <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US"> <font face="Verdana" size="2"><a name="f4"> <img src="/img/revistas/cleiej/v14n3/3a03f4.jpg" name="Object 1" align="bottom" border="0" height="262" width="421"></a></font></p> <a name="f4">            <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p> </a>            <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font face="Verdana" size="2"> <b>Figure 4:</b> Example of going from         threats to patterns.</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="center" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>      </div>           <div id="Secci&oacute;n6" dir="ltr">            ]]></body>
<body><![CDATA[<p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <b>4. VALIDATION OF SECURE CONCEPTUAL MODELS</b></font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Finally, we ask: Can we certify an application by using         security patterns? We can show that the application includes a pattern         able to stop each expected threat by a simple matching of         threats/failures to patterns. Threats can be stopped through policies.         If we have a pattern for each policy, we can consider the system secure         at the model level, although there may still remain code vulnerabilities         (see below). However, code-based attacks are limited by a good         architectural design; for example, a virus compromising an email unit,         cannot reach its address book if it has some access control for the         address book.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Formally, if T = set of threats for a system, Py = set of         policies that stop or mitigate T, and Pt = set of patterns that realize         Py, we have then: T ïƒ  Py ïƒ          Pt, for all t in T ïƒ  there exists Py ïƒ  Pt that is, if for all the threats in the         system, we can find a set of policies that can be realized as a set of         patterns that neutralize those threats, we consider the system to be         secure.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">In the use of policies we need to separate the mechanism         that realizes or implements the policy from the contents of the rules or         constraints defined in the mechanisms. For example, a pattern for a         need-to-know policy requires a mechanism where we can define         authorization rules, e.g. an Authorization pattern <a href="#c8">[8]</a>. This policy adds         the constraint that all the authorization rules must be defined in such         a way that the users are given the minimum set of rights they need to         perform their duties. A pattern for a need-to-know or similar policy         does not define a specific mechanism but a way to define authorization         rules.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">In <a href="#f5">Figure 5</a>, application AM1 uses domain models DM1 and         DM2. Analysis of threats, errors,and compliance policies in these domain         models results in adding to them patterns to neutralize or comply with         these policies; these are PEDM1 ans PEDM2. Application AM1 inherits all         these patterns and as such it can handle threats, errors, and compliance         aspects coming from these two domains. For example, pattern p1 which         stops threat t1, ,is inherited by PEAM1. However, since AM may have         parts not inherited from any doamin model, it is exposed to additional         threats, T1, and may require compliance with additional regulations,         RAM1. Additional patterns handle the new requirements and now AM1 is         able to consider all its security/reliability/compliance requirements.         The new model is PEAM, which includes all the necessary patterns.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">We can enumerate systematically all the threats and select         all institution policies and regulations needed to build a         Security/Reliability-enhanced Application Model. These policies lead to         a set of abstract security mechanisms incorporated in the PEAM. We can         validate this stage by verifying that all threats and failures have been         handled and all institution policies and regulations are complied. The         next stage is to transform this metamodel into one of a variety of         design models. There may be several possible models depending on         architectural decisions; for example, if we need authorization and we         use web services for distribution we need to choose between SAML and         XACML or a combination of both. In the design stage only         interface-related classes need to be protected by authorization, other         classes are internal and cannot be attacked; similarly we only need         authentication in classes that have communication with remote classes or         with user interfaces. After each architectural decision we need to         analyze which of the threats identified earlier are still possible and         how they are manifested in the chosen architecture.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Can we stop all attacks in this way? We are working only         with models, but there can still be attacks due to flaws in the code,         e.g. a buffer overflow condition in a procedure to withdraw money from         an account. We can handle them in different ways:</font></p>         <ul>              <li>                    ]]></body>
<body><![CDATA[<p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">      <font face="Verdana" size="2">Carefully controlling which classes can be accessed             through an interface. For those that need to be accessed, we can             define their signatures very precisely, specifying appropriate             parameter lengths and types.</font></p>          </li>             </ul>         <ul>             </ul>         <ul>              <li>                    <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">      <font face="Verdana" size="2">Even if the attacker succeeds in producing the buffer             overflow condition, a good design can make it ineffective by not             letting the attacker&rsquo;s procedure inherit high privileges, for             example by making some kernel processes execute in user mode, not             allowing the execution of data, and not giving children processes             the rights of their parents.</font></p>          </li>             </ul>         <ul>             </ul>         <ul>              <li>                    <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">      <font face="Verdana" size="2">Procedures that implement operations in             object-oriented designs are much simpler that corresponding             procedures in a procedural approach. It is then much easier to check             or even verify their code.</font></p>          </li>             </ul>         <ul>                 ]]></body>
<body><![CDATA[<p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US"> </p>             </ul>             <p style="margin-right: 1.27cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US"> </p>             <p style="margin-right: 1.27cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">The first two arguments apply to any system, even built         without using object-oriented approaches, while the last argument only         applies to object-oriented systems. In both cases, we think we can get a         good level of security by using only models. Complementing this approach         with some code checking could be important for very critical systems. In         this case, the amount of code checking should be easier to perform and         not all code needs to be checked because of the second point above.</font></p>             <p style="margin-right: 1.27cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>        <a name="f5">     <p style="margin-left: 1.52cm; margin-right: 1.27cm; margin-bottom: 0cm; line-height: 100%;" lang="">  <font face="Verdana" size="2"> <img src="/img/revistas/cleiej/v14n3/3a03f5.gif"></font></p> </a>            <p style="margin-left: 1.52cm; margin-right: 1.27cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <b>Figure 5:</b> From domains to applications</font></p>             ]]></body>
<body><![CDATA[<p style="margin-left: 1.52cm; margin-right: 1.27cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="text-align: left;" lang=""><font face="Verdana" size="2"><b>5. Related work</b></font></p>             <p style="margin-right: 1.27cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Related work includes: </font> </p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <a href="#c9">[9]</a><a name="c9."></a> shows an approach to validate domains but they do not         try to propagate security constraints to applications. Their approach is         oriented to database systems.</font></p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Mouratidis and his group use a special methodology,         Tropos, to model security. Their work concentrated initially on modeling         requirements. Later, they have also looked at other stages; for example         how to test security along the lifecycle <a href="#c10">[10]</a>.<a name="c10."></a> Instead of UML they use         special diagrams and they do not use patterns. They have recently added         models using UMLSec (see below). UML has the advantage of being a         standard and known by most developers.</font></p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Ontologies, but no patterns, have been used in related         work: <a href="#c11">[11]</a><a name="c11."></a> uses ontologies to support the development of software         architectures; however, they don&rsquo;t consider security aspects. <a href="#c12">[12]</a><a name="c12."></a> use         ontologies to develop a secure application; they use the ontologies to         answer questions about the requirements but not to guide the actual         design. <a href="#c13">[13]</a><a name="c13."></a> uses ontologies to model attacks and defenses to         distributed systems. While ontologies add some interesting aspects,         their main problem is that as each attribute is a separate entity the         model explodes rapidly. Another problem, at least in these references,         is that there is no architectural hierarchies and everything is at the         same level, which complicates things by not allowing separation of         concerns. However, they could be useful complements to UML models to         answer questions about the requirements.</font></p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <a href="#c14">[14]</a><a name="c14."></a> uses aspects to model misuses and their         countermeasures during secure software development. Aspects can be         mapped to patterns and they can be modeled using UML. This approach         skips security analysis and concentrates on the design stage.</font></p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Model-Driven Architecture (MDA) is an approach defined by         the Object Management Group (OMG), which promotes the systematic use of         models during a system&rsquo;s development lifecycle. Compared to the         traditional approach in which the key artifact is the code itself, and         in which the use of models is limited to documentation purposes,         model-driven development aims at using models to automatically produce         the final code. <font color="#000080"><span lang="de-DE"><font color="#000000"> <span style="text-decoration: none;" lang="en-US"><a href="#c15">[15]</a><a name="c15."></a> presents                   an MDA-based approach to building secure systems where                   designers specify system models along with their security                   requirements and use tools to automatically generate system                   architectures from the models, including complete, configured                   access control infrastructures. Their approach includes a                   combination of UML-based modeling languages with a security                   modeling language for formalizing access control requirements.                   <a href="#c16">[16]</a><a name="c16."></a> presents a similar idea, of code generation from high                   level models, using XML. These models assume a closed system                   with concerns limited first by the expressiveness of the                   language, and second by the available transformations. </span></font></span></font>       </font>       </p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2"> <a href="#c17">[17]</a><a name="c17."></a> makes use of an extension of the         Unified Modeling Language (UML), UMLSec, to include security-relevant         information. The approach is supported by extensive automated         tool-support for performing a security analysis of the UMLSec models         against security requirements. The analysis is based on model-checking         specific portions of a system but apparently the approach has not been         applied to a complete complex system. </font> </p>             ]]></body>
<body><![CDATA[<p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">The Grupo Alarcos has done a good amount         of work on security requirements. <a href="#c18">[18]</a><a name="c18."></a> presents an MDA approach to         develop secure business processes, including several UML models for         representing security aspects of processes. <a href="#c19">[19]</a><a name="c19."></a> presents some models         for selecting security requirements in software product lines. These         works apply to more specialized objectives than our work and their         models refer to higher-level aspects of the development cycle,         specifically to business workflows.</font></p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">None of these approaches considers         reliability or safety aspects and only <a href="#c10">[10]</a> uses patterns. None of them         attempts to evaluate the security level reached by their approaches.</font></p>             <p style="margin-left: 1.52cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">A whole set of approaches, mostly used in industry, do not         use models and have to check all the application code, a daunting         enterprise. This is the approach used by Microsoft, which required an         enormous effort to check their operating systems. They obtained good         results, increasing the quality of their systems but at a very high cost         <a href="#c20">[20]</a><a name="c20."></a>. Another problem is that code changes more frequently than models.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <b>6. Conclusions</b></font></p>             <p style="margin: 0cm 1.27cm 0cm 0.47cm; text-indent: 0cm;" align="justify" lang="">       </div>           <div id="Secci&oacute;n7" dir="ltr">            <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Metamodels such as the ones presented here are useful in         understanding the development process and making the development of the         required artifacts more systematic. They prescribe a precise approach to         build a secure/reliable conceptual model for applications. They are also         useful in a Model-Driven Design approach to transform security models         from one stage to the next. In our methodology, we can obtain         application models where all the necessary security constraints are         defined and which can be the basis of a secure design stage. Defining         policies in the domain models and propagating them to applications         ensures that these applications will comply with the policies, it is not         up to the application builder to enforce them. This simplifies the         development process and even if the application builders are not experts         on security and reliability, they can produce secure and reliable         applications. By enforcing security in the models we can avoid or reduce         the need to check every line of code. Systems which provide secure         execution environments, e.g. Caja <a href="#c21">[21]</a>,<a name="c21."></a> cannot control attacks that take         advantage of application flaws. For approaches such as ours, it is         important that the actual code follows the architectural design, i.e. we         need to avoid architectural erosion <a href="#c22">[22]</a><a name="c22."></a>.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">Future work includes defining a precise transition to the         design stage. Converting the conceptual models into software artifacts         is complex because of the variety of possibilities and the need to         consider all the architectural levels. We are also considering safety         and availability policies in the methodology, trying to obtain models         where tradeoffs between these aspects can be systematically made.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             ]]></body>
<body><![CDATA[<p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2"> <b>ACKNOWLEDGMENTS</b></font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">The referees of the XXIX International         Conference of the Chilean Computer Society and of the CLEI Journal </font> </p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2">provided useful comments.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" lang="en-US">  <font face="Verdana" size="2">     <br>        </font>        </p>             <p style="text-indent: 0cm; text-align: left;" lang="">  <font face="Verdana" size="2"> <b>References</b></font></p>             <!-- ref --><p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US">  <font face="Verdana" size="2"> <span lang="de-DE"><a name="c1"></a>[<a href="#c1.">1</a>] Buschmann, F., Meunier, R., Rohnert, H., Sommerland, P. and Stal M.<i> Pattern- oriented software architecture</i>, Wiley 1996.    </span></font></p>             <!-- ref --><p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US">  <font face="Verdana" size="2"> <a name="c2"></a>[<a href="#c2.">2</a>] Taylor, R.N., Medvidovic, N., and         Dashofy, N. <i>Software architecture: Foundation, theory, and practice,         </i>Wiley, 2010.    </font></p>             ]]></body>
<body><![CDATA[<!-- ref --><p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> <font face="Verdana" size="2"><a name="c3"></a>[<a href="#c3.">3</a>] Secure Systems Research Group, FAU, <font color="#0000ff"><u><a href="http://www.cse.fau.edu/%7Esecurity/catalog.php">http://www.cse.fau.edu/~security/catalog.php               </a></u></font><span style="text-decoration: underline;    ">    <br>          </span></font></p>      </div>           <div id="Secci&oacute;n8" dir="ltr">            <!-- ref --><p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> <font face="Verdana" size="2"><a name="c4"></a>[<a href="#c4.">4</a>]         E. B. Fernandez, E.B., Larrondo-Petrie, M.M., Sorgente, T., and         VanHilst, M. "A methodology to develop secure systems using patterns",         Chapter 5 in "<i>Integrating security and software engineering: Advances           and future vision", </i>H. Mouratidis and P. Giorgini (Eds.), IDEA         Press, 2006, pp. 107-126.    <br>        </font>        </p>             <!-- ref --><p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> <font face="Verdana" size="2"><a name="c5"></a>[<a href="#c5.">5</a>] Braz, F., Fernandez, E.B.,and VanHilst,         M."Eliciting security requirements through misuse activities" <i>Procs.           of the</i> <i>2nd</i> <i>Int. Workshop on Secure Systems           Methodologies using Patterns (SPattern'07)</i>.&nbsp;Turin, Italy,         September 1-5, 2008. pp.328-333.    <br>        </font>        </p>             <!-- ref --><p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> <font face="Verdana" size="2"><a name="c6"></a>[<a href="#c6.">6</a>] Fernandez, E.B. and X.Yuan, "Semantic         analysis patterns and secure semantic analysis patterns", in revision         for the <i>Int. Journal of Information and Computer Security (IJICS).</i>         Inderscience Publishers, 2010.     </font> </p>      </div>           ]]></body>
<body><![CDATA[<div id="Secci&oacute;n9" dir="ltr">            <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US">  <font face="Verdana" size="2"> <a name="c7"></a>[<a href="#c7.">7</a>] Fernandez, E.B.,and Yuan, X. &ldquo;Semantic         analysis patterns&rdquo;, <i>Procs.</i> <i>of 19</i><sup><i>th</i></sup><i>           Int. Conf. on Conceptual Modeling, ER2000</i>, pp. 183-195. Also         available from: <font color="#0000ff"><u><a href="http://www.cse.fau.edu/%7Eed/SAPpaper2.pdf">http://www.cse.fau.edu/~ed/SAPpaper2.pdf</a></u></font><span style="text-decoration: underline;">     <br>  </span></font></p>             <!-- ref --><p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> <font face="Verdana" size="2"><a name="c8"></a>[<a href="#c8.">8</a>]         Schumacher, M., Fernandez, E.B., Hybertson, D., Buschmann, F., and         Sommerlad, P. <i>Security Patterns: Integrating security and systems           engineering", </i>J. Wiley 2006.    <br>        </font>        </p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> <font face="Verdana" size="2"><a name="c9"></a>[<a href="#c9.">9</a>] Reinhartz-Berger, I. and Sturm, A.,         &ldquo;Utilizing domain models for application design and validation&rdquo;, <i>Inf.           and Software Technology</i>, vol. 51, No 8, 2009, pp. 1275-1289.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> <font face="Verdana" size="2"><a name="c10"></a>[<a href="#c10.">10</a>] Mouratidis H., and Giorgini, P.,         &ldquo;Analysing security in information systems&rdquo;, <i>Procs. of the 2</i><sup><i>nd</i></sup><i>           Int. Workshop on Security in Information Systems at ICEIS 2004</i>,         Porto, Portugal, 2004.</font></p>      </div>           <div id="Secci&oacute;n10" dir="ltr"> </div>           <div id="Secci&oacute;n11" dir="ltr">            <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US">  <font face="Verdana" size="2"> <a name="c11"></a>[<a href="#c11.">11</a>] Akerman, A. and Tyree, J. &ldquo;Using         ontology to support development of software architectures&rdquo;, <i>IBM Sys.           Journal</i>, vol. 45, N0 4, 2006, pp. 813-825.</font></p>             ]]></body>
<body><![CDATA[<p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US">  <font face="Verdana" size="2"> <a name="c12"></a>[<a href="#c12.">12</a>] Dritsas,S., Gymnopoulos, L., Karyda, M.,         Balopoulos, T., Kokolakis, S., Lambridounakis, C., and Gritzalis, S.         &ldquo;Employing ontologies for the development of security critical         applications&rdquo;, <i>Procs, of the IFIP I3E Conf</i>., Oct. 2005,         pp.187-201.</font></p>      </div>           <div id="Secci&oacute;n12" dir="ltr">            <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US">  <font face="Verdana" size="2"> <a name="c13"></a>[<a href="#c13.">13</a>] Voroviev, A. and Bekmamedova, N., &ldquo;An         ontology-driven approach applied to information security:&rdquo;, <i>J.           of&nbsp; Research and Practice in Information Tech., </i>vol. 42, No         1, February 2010, pp.61-76.</font></p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> </p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US">  <font face="Verdana" size="2"> <a name="c14"></a>[<a href="#c14.">14</a>] Georg, G., Ray, I., Anastasakis, K.,         Bordbar, B., Toahchoodie, M., and Houmb, S.H. &ldquo;An aspect-oriented         methodology for designing secure applications&rdquo;, <i>Inf. and Soft.           Technology</i>, vol, 51, No 5 (2009), pp.846-864.</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US"> </p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2"> <a name="c15"></a>[<a href="#c15.">15</a>] Basin, D.A., Doser, J., and         Lodderstedt, T., &ldquo;Model driven security: From UML models to access         control infrastructures&rdquo;, <i>ACM Trans. on Software Engineering and           Methodology</i>, vol. 15, No 1, (2006), pp. 39-9</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font color="#333333" face="Verdana" size="2"> <a name="c16"></a>[<a href="#c16.">16</a>] Nagaratnam,           N., Nadalin, A., Hondo, M., McIntosh, M., and Austel, P.           &ldquo;Business-driven application security: from modeling to managing           secure applications&rdquo;, <i>IBM Systems             Journal</i>, vol. 44, No 4 (2005),           pp.847-867</font></p>             <!-- ref --><p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US"> <font face="Verdana" size="2"><a name="c17"></a>[<a href="#c17.">17</a>] Jurjens, J., <i>Secure Systems           Development with UML, </i>Springer-Verlag, 2004.    </font></p>             ]]></body>
<body><![CDATA[<p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US"> <font face="Verdana" size="2"><a name="c18"></a>[<a href="#c18.">18</a>] Rodr&iacute;guez, A., Fern&aacute;ndez-Medina, E.,         Trujillo, J. and Piattini, M. &ldquo;Secure business process model         specification through a UML 2.0 activity diagram profile&rdquo;, <i>Decision           Support Systems</i>, vol. 51, 2011, pp.446-465.</font></p>             <p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2"> <a name="c19"></a>[<a href="#c19.">19</a>] Mellado, D., Fernandez-Medina, E.,         and Piattini, M., &ldquo;Security requirements variability for software         product lines&rdquo;, <i>Procs. of the Third Int. Conf. on Availability,           Reliability, and Security (ARES 2008),</i> pp. 1413-1420.</font></p>             <p style="margin-left: 1.27cm; margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US"> </p>             <p style="margin-right: 1.27cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="left" lang="en-US">  <font size="3" face="Verdana"><font size="2"><a name="c20"></a>[<a href="#c20.">20</a>] Lipner,             S. and Howard, M. &ldquo;The Trustworthy Computing Security Development             Lifecycle&rdquo;, MSDN Library, March 2005, </font><font color="#0000ff"><u><a href="http://msdn.microsoft.com/en-us/library/ms995349.aspx"><font size="2">http://msdn.microsoft.com/en-us/library/ms995349.aspx</font></a></u></font></font></p>             <!-- ref --><p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US">  <font face="Verdana" size="2"> <a name="c21"></a>[<a href="#c21.">21</a>] Google-Caja,         <a href="http://code.google.com/p/google-caja">http://code.google.com/p/google-caja</a></font><p style="text-indent: 0cm; margin-bottom: 0cm; line-height: 100%;" align="justify" lang="en-US"> <font face="Verdana" size="2"><a name="c22"></a>[<a href="#c22.">22</a>] Zhang, L., Sun, Y., Song, H., Chauvel,         F., and Mei, H., &ldquo;Detecting architecture erosion by design decision of         architectural pattern&rdquo;, <i>Procs. of the 23rd Int. Conf. on Software           Eng. and Knowledge Eng. (SEKE 2011</i>).</font></p>      </div>           <div id="Secci&oacute;n13" dir="ltr"> </div>          ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Buschmann]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Meunier]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Rohnert]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Sommerland]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Stal]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Pattern- oriented software architecture]]></source>
<year>1996</year>
<publisher-name><![CDATA[Wiley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Taylor]]></surname>
<given-names><![CDATA[R.N]]></given-names>
</name>
<name>
<surname><![CDATA[Medvidovic]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Dashofy]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<source><![CDATA[Software architecture: Foundation, theory, and practice]]></source>
<year>2010</year>
<publisher-name><![CDATA[Wiley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="">
<collab>FAU</collab>
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fernandez]]></surname>
<given-names><![CDATA[E. B]]></given-names>
</name>
<name>
<surname><![CDATA[Larrondo-Petrie]]></surname>
<given-names><![CDATA[E.B]]></given-names>
</name>
<name>
<surname><![CDATA[Sorgente]]></surname>
<given-names><![CDATA[M.M]]></given-names>
</name>
<name>
<surname><![CDATA[VanHilst]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A methodology to develop secure systems using patterns]]></article-title>
<person-group person-group-type="editor">
<name>
<surname><![CDATA[Mouratidis]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Giorgini]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Integrating security and software engineering: Advances and future visionâ€™]]></source>
<year>2006</year>
<page-range>107-126</page-range><publisher-name><![CDATA[IDEA Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Braz]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Fernandez]]></surname>
<given-names><![CDATA[E.B]]></given-names>
</name>
<name>
<surname><![CDATA[VanHilst]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Eliciting security requirements through misuse activities: Procs. of the 2nd Int. Workshop on Secure Systems Methodologies using Patterns (SPattern'07).]]></source>
<year>Sept</year>
<month>em</month>
<day>be</day>
<page-range>328-333</page-range><publisher-loc><![CDATA[Turin ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fernandez]]></surname>
<given-names><![CDATA[E.B]]></given-names>
</name>
<name>
<surname><![CDATA[Yuan]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Semantic analysis patterns and secure semantic analysis patterns]]></article-title>
<source><![CDATA[revision for the Int. Journal of Information and Computer Security (IJICS)]]></source>
<year>2010</year>
<publisher-name><![CDATA[Inderscience Publishers]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fernandez]]></surname>
<given-names><![CDATA[E.B]]></given-names>
</name>
<name>
<surname><![CDATA[Yuan]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<source><![CDATA[Semantic analysis patterns: Procs. of 19th Int. Conf. on Conceptual Modeling, ER2000]]></source>
<year></year>
<page-range>183-195</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Schumacher]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Fernandez]]></surname>
<given-names><![CDATA[E.B]]></given-names>
</name>
<name>
<surname><![CDATA[Hybertson]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Buschmann]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Sommerlad]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Security Patterns: Integrating security and systems engineering]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Reinhartz-Berger]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Sturm]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Utilizing domain models for application design and validation]]></article-title>
<source><![CDATA[Inf. and Software Technology]]></source>
<year>2009</year>
<volume>51</volume>
<numero>8</numero>
<issue>8</issue>
<page-range>1275-1289</page-range></nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mouratidis]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Giorgini]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Analysing security in information systems]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Procs. of the 2nd Int. Workshop on Security in Information Systems at ICEIS 2004]]></conf-name>
<conf-date>2004</conf-date>
<conf-loc>Porto </conf-loc>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</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 Sys. Journal]]></source>
<year>2006</year>
<volume>45</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>813-825</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dritsas]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Gymnopoulos]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Karyda]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Balopoulos]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Kokolakis]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Lambridounakis]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Gritzalis]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Employing ontologies for the development of security critical applications]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Procs, of the IFIP I3E Conf]]></conf-name>
<conf-date>Oct. 2005</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Voroviev]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Bekmamedova]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An ontology-driven approach applied to information security]]></article-title>
<source><![CDATA[J. of Research and Practice in Information Tech]]></source>
<year>Febr</year>
<month>ua</month>
<day>ry</day>
<volume>42</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>61-76</page-range></nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Georg]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Anastasakis]]></surname>
<given-names><![CDATA[Ray, I]]></given-names>
</name>
<name>
<surname><![CDATA[Bordbar]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Toahchoodie]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Houmb]]></surname>
<given-names><![CDATA[S.H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An aspect-oriented methodology for designing secure applications]]></article-title>
<source><![CDATA[Inf. and Soft. Technology]]></source>
<year>2009</year>
<volume>51</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>846-864</page-range></nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Basin]]></surname>
<given-names><![CDATA[D.A]]></given-names>
</name>
<name>
<surname><![CDATA[Doser]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Lodderstedt]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Model driven security: From UML models to access control infrastructures]]></article-title>
<source><![CDATA[ACM Trans. on Software Engineering and Methodology]]></source>
<year>2006</year>
<volume>15</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>39-9</page-range></nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Nagaratnam]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Nadalin]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Hondo]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[McIntosh]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Austel]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Business-driven application security: from modeling to managing secure applications]]></article-title>
<source><![CDATA[IBM Systems Journal]]></source>
<year>2005</year>
<volume>44</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>847-867</page-range></nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jurjens]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Secure Systems Development with UML]]></source>
<year>2004</year>
<publisher-name><![CDATA[Springer-Verlag]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[RodrÃ­guez]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[FernÃ¡ndez-Medina]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Trujillo]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Piattini]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Secure business process model specification through a UML 2.0 activity diagram profile]]></article-title>
<source><![CDATA[Decision Support Systems]]></source>
<year>2011</year>
<volume>51</volume>
<page-range>446-465</page-range></nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mellado]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Fernandez-Medina]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Piattini]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Security requirements variability for software product lines]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Procs. of the Third Int. Conf. on Availability, Reliability, and Security (ARES 2008)]]></conf-name>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lipner]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Howard]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[The Trustworthy Computing Security Development Lifecycle]]></source>
<year>Marc</year>
<month>h </month>
<day>20</day>
<publisher-name><![CDATA[MSDN Library]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B21">
<label>21</label><nlm-citation citation-type="">
<source><![CDATA[Google-Caja]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B22">
<label>22</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zhang]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Sun]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
<name>
<surname><![CDATA[Song]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Chauvel]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Mei]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Detecting architecture erosion by design decision of architectural pattern]]></article-title>
<source><![CDATA[Procs. of the 23rd Int. Conf. on Software Eng. and Knowledge Eng]]></source>
<year>2011</year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
