<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//TaxonX//DTD Taxonomic Treatment Publishing DTD v0 20100105//EN" "../../nlm/tax-treatment-NS0.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tp="http://www.plazi.org/taxpub" article-type="research-article" dtd-version="3.0" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">109</journal-id>
      <journal-id journal-id-type="index">urn:lsid:arphahub.com:pub:3dc5f44e-8666-58db-bc76-a455210e8891</journal-id>
      <journal-title-group>
        <journal-title xml:lang="en">JUCS - Journal of Universal Computer Science</journal-title>
        <abbrev-journal-title xml:lang="en">jucs</abbrev-journal-title>
      </journal-title-group>
      <issn pub-type="ppub">0948-695X</issn>
      <issn pub-type="epub">0948-6968</issn>
      <publisher>
        <publisher-name>Journal of Universal Computer Science</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3217/jucs-019-10-1433</article-id>
      <article-id pub-id-type="publisher-id">23557</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Research Article</subject>
        </subj-group>
        <subj-group subj-group-type="scientific_subject">
          <subject>D.2.10 - Design</subject>
          <subject>D.2.11 - Software Architectures</subject>
          <subject>D.2.13 - Reusable Software</subject>
          <subject>D.2.2 - Design Tools and Techniques</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Model-Driven Development of Aspect-Oriented Software Architectures</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Pérez</surname>
            <given-names>Jennifer</given-names>
          </name>
          <email xlink:type="simple">jenifer.perez@eui.upm.es</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Ramos</surname>
            <given-names>Isidro</given-names>
          </name>
          <xref ref-type="aff" rid="A2">2</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Carsí</surname>
            <given-names>Jose A.</given-names>
          </name>
          <xref ref-type="aff" rid="A2">2</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Costa-Soria</surname>
            <given-names>Cristóbal</given-names>
          </name>
          <xref ref-type="aff" rid="A3">3</xref>
        </contrib>
      </contrib-group>
      <aff id="A1">
        <label>1</label>
        <addr-line content-type="verbatim">Technical University of Madrid (UPM), Madrid, Spain</addr-line>
        <institution>Technical University of Madrid (UPM)</institution>
        <addr-line content-type="city">Madrid</addr-line>
        <country>Spain</country>
      </aff>
      <aff id="A2">
        <label>2</label>
        <addr-line content-type="verbatim">Universidad Politecnica de Valencia, Valencia, Spain</addr-line>
        <institution>Universidad Politecnica de Valencia</institution>
        <addr-line content-type="city">Valencia</addr-line>
        <country>Spain</country>
      </aff>
      <aff id="A3">
        <label>3</label>
        <addr-line content-type="verbatim">Paterna Technological Science Park, Valencia, Spain</addr-line>
        <institution>Paterna Technological Science Park</institution>
        <addr-line content-type="city">Valencia</addr-line>
        <country>Spain</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Jennifer Pérez (<email xlink:type="simple">jenifer.perez@eui.upm.es</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2013</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>28</day>
        <month>05</month>
        <year>2013</year>
      </pub-date>
      <volume>19</volume>
      <issue>10</issue>
      <fpage>1433</fpage>
      <lpage>1473</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/59FE1A56-5793-57EA-B2F0-636FE7722017">59FE1A56-5793-57EA-B2F0-636FE7722017</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/5505615">5505615</uri>
      <history>
        <date date-type="received">
          <day>19</day>
          <month>10</month>
          <year>2012</year>
        </date>
        <date date-type="accepted">
          <day>27</day>
          <month>05</month>
          <year>2013</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>Jennifer Pérez, Isidro Ramos, Jose A. Carsí, Cristóbal Costa-Soria</copyright-statement>
        <license license-type="creative-commons-attribution" xlink:href="" xlink:type="simple">
          <license-p>This article is freely available under the J.UCS Open Content License.</license-p>
        </license>
      </permissions>
      <abstract>
        <label>Abstract</label>
        <p>The Model-Driven Development (MDD) paradigm has become widely spread in the last few years due to being based on models instead of source code, and using automatic generation techniques to obtain the final software product. Until now, the most mature methodologies that have been proposed to develop software following MDD are mainly based on functional requirements by following the Object-Oriented Paradigm. Therefore, mature MDD methodologies are required for supporting the code generation from models that specify non-functional requirements. The Aspect-Oriented Software Development (AOSD) approach was created to provide explicit mechanisms for developing non-functional requirements through reusable elements called aspects. Aspect-Oriented Software Architectures (AOSA) emerged to deal with the design of both, functional requirements and non-functional requirements, which opened an important challenge in the software engineering field: the definition of a methodology for supporting the development of AOSAs following the MDD paradigm. This new methodology should allow the code generation from models which specify functional and non-functional requirements. This paper presents a mature approach, called PRISMA, which deals with this challenge. Therefore, this contribution takes a step forward in the area presenting in detail the PRISMA MDD process, which has been applied to generate the code of several real applications of the tele-operated robotics domain. PRISMA MDD approach provides complete support for the development of technology-independent AOSAs, which can be compiled from high-level, aspect-oriented architectural models into different technology platforms and languages following an MDD process. This contribution illustrates how to apply the PRISMA MDD approach through the modelling framework that has been developed to support it, and a case study of a tele-operated robot that has been completely developed using this approach. Finally, the results obtained from the application of PRISMA MDD process to develop applications of the tele-operation domain are analyzed in terms of code generation.</p>
      </abstract>
    </article-meta>
  </front>
</article>
