<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards an i*-based Architecture Derivation Approach</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Diego Dermeval</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Monique Soares</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fernanda Alencar</string-name>
          <email>fernanda.ralencar@ufpe.br</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emanuel Santos</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pimentel</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jaelson Castro</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Márcia Lucena</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carla Silva</string-name>
          <email>carla@dce.ufpb.br</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cleice Souza</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidade Federal da Paraíba - UFPB, Centro de Ciências Aplicadas e Educação</institution>
          ,
          <addr-line>Rio Tinto</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universidade Federal de Pernambuco - UFPE, Centro de Informática</institution>
          ,
          <addr-line>Recife</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Universidade Federal de Pernambuco - UFPE, Departamento de Eletrônica e Sistemas</institution>
          ,
          <addr-line>Recife</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Universidade Federal do Rio Grande do Norte - UFRN, Departamento de Informática e Matemática Aplicada Natal</institution>
          ,
          <country country="BR">Brazil</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <fpage>66</fpage>
      <lpage>71</lpage>
      <abstract>
        <p>Goal orientation, in particular the i* (iStar) framework, offers expressive models that support requirements engineering. On the other hand, the understanding of how requirements models are related to architectural design is still somewhat limited. In the past years, we have been investigating how to derive architectural models from i* (iStar) models, focusing on modularity. As a result we proposed a Strategy for Transition between Requirements and Architectural Models - STREAM. In this paper, we summarize the current state-of-the-art of the STREAM approach, point out its challenging aspects and describe current ongoing research. Our challenge is to support a broader set of architectural decisions as well as to provide means for partially automating the models transformations.</p>
      </abstract>
      <kwd-group>
        <kwd>iStar</kwd>
        <kwd>Requirements Engineering</kwd>
        <kwd>Architectural design</kwd>
        <kwd>Architecture Documentation</kwd>
        <kwd>Architectural Decisions</kwd>
        <kwd>Automation</kwd>
        <kwd>Model Transformations</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Despite Requirements Engineering and Architectural Design being strongly related
activities, there is a lack of techniques and methods handling the integration of these
activities. Therefore, one of the major research challenges in software engineering is
to provide systematic methods for designing software architecture from requirements
models [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The STREAM (Strategy for Transition between Requirements and
Architectural Models) process [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] presents a model-driven approach for
generating initial architectures - in Acme [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] - from i* requirements models [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. The
STREAM approach consists of the following steps: (i) Prepare Requirements Models,
(ii) Generate Architectural Solutions, (iii) Choose an architectural solution, and (iv)
Derive Architecture. Horizontal and vertical model-transformation rules were
proposed in order to perform the steps (i) and (ii), respectively. Non-Functional
Requirements are used in the step (iii) to guide the selection of alternatives in the
architecture. Lastly, in the step (iv) the architecture is refined by using architectural
refinement patterns.
      </p>
      <p>
        Based on the generic STREAM process, some others extensions were proposed:
STREAM-Adaptive [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and F-STREAM [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The STREAM-Adaptive approach
supports the generation of architectures for self-adaptive systems. This is achieved by
enriching the i* models with information required to perform the reasoning related to
adaptation, which is performed by pre-defined components. The F-STREAM [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
(Flexible STREAM) uses Software Product Lines principles aiming to make it easier
to integrate the STREAM approach with other approaches that are able to handle
some specific NFRs.
      </p>
      <p>
        However, there are still some limitations. For example, only one of the possible
architectural views [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is supported. In addition, no support is given to document the
different types of architectural decisions [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Finally, the model transformations are
not yet automated. Hence, in this paper, we show how we intend to improve the
family of STREAM approaches in order to face the last two shortcomings: supporting
and documenting a broader set of architectural decisions and automating the model
transformations required in the process.
      </p>
      <p>This paper is organized as follows. Section 2 presents the goals of the research.
Section 3 describes our proposals towards these goals. Section 4 presents the
conclusions while Section 5 points out ongoing and future research.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Objectives of the Research</title>
      <p>The general goal of this research is to enhance the STREAM approach, allowing it to
be more complete and viable for industrial use. Therefore, we propose two specific
objectives. Firstly, we derive an architectural specification that encompasses the
documentation of a broader set of architectural decisions. Secondly, we intend to
provide tool support to automate the transformations presented in the STREAM
approach and its extensions. Thus, we aim to facilitate and promote the use of those
approaches. As a side effect, we contribute to the improvement of the modularity and
understandability of i* models.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Scientific Contributions</title>
      <p>This section presents the proposed approaches to satisfy the research goals. Section
3.1 describes how we intend to include architectural decisions in STREAM, while
Section 3.2 presents how we plan to automate its model transformations.</p>
    </sec>
    <sec id="sec-4">
      <title>3.1 Architectural Decisions in the STREAM Process</title>
      <p>
        Based on the classification scheme of architectural decisions proposed by [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], we
noticed that the STREAM process only allows the decision-making of a subset of
architectural decisions types. In this way, we are extending the STREAM approach in
order to support two specific kinds of architectural decisions: the existential and
technology decisions. So, to systematize the specification of architectural decisions in
the extended STREAM process, we combined the step (iii) and (iv) into a single
activity named Refine Model with Architectural Decisions that encapsulates the
design choices of the former steps in the classification scheme (existential and
technological decisions) that we are using. Moreover, we renamed the steps (i) and
(ii) to, respectively, Requirements Refactoring and Generate Architectural Model
(Fig. 1).
      </p>
      <p>
        The aim of this new Refine Model with Architectural Decisions activity is to
sharpen up the generated architectural model by considering existential and
technology decisions. Moreover, through the documentation of these decisions using
some documentation template, it is possible to capture the context, rationale and other
relevant information about the decisions. A set of documented decisions are the
output of each decision-making activity. In this paper, we do not have sufficient space
to describe how we plan to record the architectural decisions, see [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Fig 2 illustrates the sub-process that presents the architecture refinement with
decisions. In the Make Existence Decisions activity, the architect defines elements or
artifacts that are required for the system’s design or implementation. This kind of
decision includes structural as well as behavioral decisions. For example, structural
decisions lead to the creation of subsystems, layers, partitions, components, etc.
Behavioral decisions are usually related to how the elements interact together to
provide functionality or to satisfy a non-functional requirement [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. For instance, the
choice of a specific architecture pattern can be seen as an existence decision, so it is
specified in this activity of the process.
      </p>
      <p>The aim of the Refine Model with Existence Decisions activity is to refine the
architectural models to reflect the existence decisions made during the earlier activity.
Thus, the outputs of this activity include a refined ACME architectural model together
with the list of existence decisions made.</p>
      <p>
        The executive decisions are the decisions that do not relate directly to the design
elements or their qualities, but are driven more by the business environment
(financial), the development process (methodology), the people (education and
training), the organization, and to a large extent the choices of the technologies and
tools [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. There are different kinds of executive decisions, but at this time we will
focus only on technology decisions. So, the Make Technology Decisions activity
involves decisions that should be part of an architectural specification, mainly, to
guide the implementation of the architecture. Examples of technology decisions are
the choice of a programming language and the choice of a specific framework.
There is a need to assess if the selected technology architectural decision affects or
impacts the ACME architectural model. If this is the case, these decisions are
considered in the Refine Model with Technology Decisions activity to further refine
the ACME architectural model. For instance, selecting a specific API to be integrated
with the architecture. Otherwise, if the decision does not affect the architectural
model, the process is concluded. For example, the choice of a programming language.
      </p>
      <p>In the next subsection we examine another challenge: the need to provide some
degree of automation (tool support) for the approaches.
3.2</p>
    </sec>
    <sec id="sec-5">
      <title>Automating Model Transformations</title>
      <p>Some activities of the family of STREAM approaches can be time consuming. Hence,
we should examine if some kind of tool support could be provided, at least to partially
automate the processes. The (i) Prepare Requirement Models and (ii) Generate
Architectural Solutions steps of STREAM are amenable to some degree of
automation, since they rely on model transformations. The first activity relies on
horizontal rules to refactor the i* requirement models prior to the architectural model
generation. The second activity applies vertical rules to derive architectural models
from the refactored i* models.</p>
      <p>
        These transformation rules can be precisely defined using the QVT transformation
language (Query/View /Transformation) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], in conjunction with OCL (Object
Constraint Language) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] to represent the constraints. The transformation process
requires the definition of transformation rules and metamodels for the source and
target languages. The horizontal rules that aims to refactor the i* models have the i*
language both as source and target language. On the other hand, recall that the vertical
rules are used to generate architectural models (in ACME) from modularized
requirements models (in i*). Hence, our vertical rules have i* as the source language
and ACME as target language. Once defined and specified using QVT and OCL, the
transformation rules could be incorporated in a tool, such as the iStarTool [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>Note that the iStarTool already has internal representation of the i* metamodel and
could be extended to allow the implementation of the new transformation rules. In
doing so, the Prepare Requirement Models activity could become semi-automatic.
The user would still need to select the candidate sub-set of elements to be factored
out. After this selection, all the other steps of the activity could be automated. As a
result, the refactored i* model could now be obtained with the press of a button.</p>
      <p>The Generate Architectural Solutions activity generates candidate Acme models
from the modularized i* models. The alternative solutions are derived from the
inherent variability of i* models (e.g., due to the Means-Ends relationships). The
choice of the candidate solution can be influenced on softgoal or quality attributes
present in requirements models. Hence, we envisage including in the iStarTool the
ability to generate all possible set of candidate architectures. Moreover, the tool could
indicate the degree of satisfaction of a given set of softgoals for each architecture.
Furthermore, the generated Acme models are used in subsequent steps (iii) and (iv) of
the STREAM Approach. It remains to be studied how these steps could be partially
automated.</p>
      <p>By automating the model transformations, several experiments can be performed to
evaluate different architectural models without additional costs.
4</p>
    </sec>
    <sec id="sec-6">
      <title>Discussion</title>
      <p>In this paper, we have proposed two approaches aiming to improve the systematic
process that generates architectural models from i* models. We have presented an
approach to include support for recording architectural decisions in STREAM.
Furthermore, we have indicated how the horizontal and vertical model
transformations presented in the process could benefit from automation and tool
support.</p>
      <p>
        The first approach improves the family of the STREAM approaches, by allowing
the rationale of the decisions made to be recorded. With this extension, it is possible
to specify a more complete architecture by defining a broader set of architectural
choices - for example, technology decisions. Moreover, by documenting the
architectural decisions, the information that underlies the context of a decision can be
recorded. However, such extra information may overload the refinement step of
STREAM with documentation activities. Nonetheless, we believe that the benefits of
documenting an architectural decision [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] far compensate the extra effort required for
recording the rationale. We also need to investigate if we can anticipate specific kinds
of decision-making that are common to these in earlier steps of the process.
      </p>
      <p>The second improvement proposed in this paper minimizes the effort of applying
the model transformation rules manually. Besides, it eliminates the possibility of
making mistakes when manually applying these rules. Since the transformation
process could be automatically supported, another positive aspect of this improvement
is the increase of productivity, as it enables a simplification of the process and reduces
the amount of manual activities.
5</p>
    </sec>
    <sec id="sec-7">
      <title>Ongoing and Future Work</title>
      <p>We offer a family of a systematic method that derives (with semi-automatic support) a
candidate architectural design from i* models. With this in mind, we can describe
specific ongoing and future work for each approach presented in this work.</p>
      <p>
        On one hand, we are evolving the approach to include architectural decisions. We
are defining how we will document the architectural choice. Our first attempt is to use
a template as the proposed by Garlan et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Hence, we need to evaluate how the i*
models can guide or aid the documentation of the decisions. We are also investigating
where does design decisions take place in STREAM. As future works, we will specify
an extended STREAM approach that results in an architectural design that
encompasses both the architectural decisions and the representation views.
Furthermore, we need to further validate the approach with several case studies. We
also intend to integrate the new process with a tool to manage the artifacts produced
in the architectural design step.
      </p>
      <p>
        On the other hand, we are extending the iStarTool [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] to support the horizontal
mapping rules which modularize the i* models. The rules are specified in QVT and
OCL. As future work, we plan to develop an iStarTool API to incorporate the vertical
mapping rules, which generates the initial model Acme from modularized i* models.
      </p>
      <p>Last but not least, experiments are required to validate the family of STREAM
approaches as well as the new iStarTool functionalities.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bass</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clements</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kazman</surname>
          </string-name>
          , R.:
          <source>Software Architecture in Practice (2nd</source>
          <string-name>
            <surname>Edition) Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Berry</surname>
            ,
            <given-names>D. M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kazman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wieringa</surname>
          </string-name>
          , R.: Second international workshop on from software
          <article-title>requirements to architectures (straw'03)</article-title>
          .
          <source>SIGSOFT Softw. Eng. Notes 29</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kramer</surname>
          </string-name>
          , J.:
          <article-title>From software requirements to architectures (STRAW'01)</article-title>
          .
          <source>SIGSOFT Software Eng. Notes</source>
          <volume>26</volume>
          ,
          <fpage>49</fpage>
          -
          <lpage>51</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alencar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Pimentel</surname>
          </string-name>
          , J.:
          <article-title>Changing Attitudes Towards the Generation of Architectural Models</article-title>
          .
          <source>In: Journal of Systems and Software</source>
          ,
          <year>2011</year>
          (
          <article-title>Accepted for Publication)</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pimentel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dermeval</surname>
          </string-name>
          , D.:
          <string-name>
            <surname>F-STREAM</surname>
          </string-name>
          :
          <article-title>A Flexible Process for Deriving Architectures from Requirements Models In: 9th</article-title>
          <source>International Workshop on System/Software Architectures (IWSSA'11)</source>
          ,
          <year>2011</year>
          (
          <article-title>Accepted for publication)</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Garlan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bachmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ivers</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stafford</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bass</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clements</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merson</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Documenting Software Architectures: Views and Beyond</article-title>
          , 2nd ed.
          <source>Addison-Wesley Professional</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Garlan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Monroe</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wile</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Acme: An Architecture Description Interchange Language</article-title>
          .
          <source>In: Proc.CASCON'97</source>
          ,
          <year>1997</year>
          . Toronto, Canada.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>IStarTool</given-names>
            <surname>Project</surname>
          </string-name>
          :
          <article-title>A Model Driven Tool for Modeling i* models</article-title>
          . Available at http://portal.cin.ufpe.br/ler/Projects/IstarTool.aspx, June (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kruchten</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lago</surname>
            , P., van Vliet,
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>Building up and reasoning about architectural knowledge</article-title>
          .
          <source>In QoSA</source>
          , pp.
          <fpage>43</fpage>
          -
          <lpage>58</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <source>10. OCL 2</source>
          .0. Available in &lt; http://www.omg.org/spec/OCL/&gt;. Last access in
          <year>2011</year>
          , June.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Pimentel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alencar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Deriving Software Architectural Models from Requirements Models for Adaptive Systems: The STREAM-A approach</article-title>
          . In: Requirements Engineering Journal,
          <year>2011</year>
          (
          <article-title>Accepted for Publication)</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <source>12. QVT 1</source>
          .0 - Query View Transformation. Available in &lt; http://www.omg.org/spec/QVT/1.0/ &gt;. Last access in
          <year>2011</year>
          , June.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Modeling Strategic Relationships for Process Reengineering</article-title>
          .
          <source>Ph.D. thesis</source>
          . Department of Computer Science, University of Toronto, Canada,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>STREAM: A Systematic Process to Derive Architectural Models from Requirements Models</article-title>
          .
          <source>Ph.D. Thesis</source>
          , CIn, Federal University of Pernambuco, Recife,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>