<?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>0120-6230</journal-id>
<journal-title><![CDATA[Revista Facultad de Ingeniería Universidad de Antioquia]]></journal-title>
<abbrev-journal-title><![CDATA[Rev.fac.ing.univ. Antioquia]]></abbrev-journal-title>
<issn>0120-6230</issn>
<publisher>
<publisher-name><![CDATA[Facultad de Ingeniería, Universidad de Antioquia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0120-62302015000400010</article-id>
<article-id pub-id-type="doi">10.17533/udea.redin.n77a10</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[An analysis of tools for automatic software development and automatic code generation]]></article-title>
<article-title xml:lang="es"><![CDATA[Un análisis de herramientas para el desarrollo y generación automática de software y de código]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Rosales-Morales]]></surname>
<given-names><![CDATA[Viviana Yarel]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Alor-Hernández]]></surname>
<given-names><![CDATA[Giner]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
<xref ref-type="aff" rid="A04"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[García-Alcaráz]]></surname>
<given-names><![CDATA[Jorge Luis]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Zatarain-Cabada]]></surname>
<given-names><![CDATA[Ramón]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Barrón-Estrada]]></surname>
<given-names><![CDATA[María Lucía]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Instituto Tecnológico de Orizaba  ]]></institution>
<addr-line><![CDATA[Orizaba ]]></addr-line>
<country>México</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Instituto Tecnológico de Orizaba Departamento de Ingeniería Industrial y Manufactura ]]></institution>
<addr-line><![CDATA[Ciudad Juárez ]]></addr-line>
<country>México</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Instituto Tecnológico de Culiacán Departamento de Ingeniería Industrial y Manufactura ]]></institution>
<addr-line><![CDATA[Culiacán ]]></addr-line>
<country>México</country>
</aff>
<aff id="A04">
<institution><![CDATA[,Instituto Tecnológico de Orizaba  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2015</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2015</year>
</pub-date>
<numero>77</numero>
<fpage>75</fpage>
<lpage>87</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0120-62302015000400010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0120-62302015000400010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0120-62302015000400010&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[Software development is an important area in software engineering, which is why a wide range of techniques, methods, and approaches has emerged to facilitate software development automation. This paper presents an analysis and evaluation of tools for automated software development and automatic code generation in order to determine whether they meet a set of quality metrics. Diverse quality metrics were considered such as effectiveness, productivity, safety, and satisfaction in order to carry out a qualitative and quantitative evaluation. The tools evaluated are CASE tools, frameworks, and Integrated Development Environments (IDEs). The evaluation was conducted to measure not only the tools' ability to be employed, but also their support for automated software development and automatic source code generation. The aim of this work is to provide a methodology and a brief review of the most important works to identify the main features of these works and present a comparative evaluation in qualitative and quantitative terms of quality metrics. This would provide software developers with the information they need to decide the tools that can be useful for them.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[El desarrollo de software es una importante área en la ingeniería de software, por tal motivo han surgido técnicas, enfoques y métodos que permiten la automatización de desarrollo del mismo. En este trabajo se presenta un análisis de las herramientas para el desarrollo automático de software y la generación automática de código fuente, con el fin de evaluarlas y determinar si cumplen o no con un conjunto de características y funcionalidades en términos de calidad. Dichas características incluyen eficacia, productividad, seguridad y satisfacción, todo a través de una evaluación cualitativa y cuantitativa. Estas herramientas son 1) herramientas CASE, 2) marcos de trabajo (frameworks) y 3) ambientes de desarrollo integrado (IDEs). La evaluación se llevó a cabo con el fin de medir no sólo la capacidad de uso, sino también el apoyo que brindan para el desarrollo de software automático y la generación automática de código fuente. El objetivo de este trabajo es proporcionar una metodología y una breve revisión de los trabajos más importantes para, de esta forma, identificar las principales características de éstos y presentar una evaluación comparativa en términos cualitativos y cuantitativos, con la finalidad de proporcionar la información necesaria para el desarrollador de software que facilite la toma de decisiones al considerar herramientas que le pueden ser útiles.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[Software development]]></kwd>
<kwd lng="en"><![CDATA[code generation]]></kwd>
<kwd lng="en"><![CDATA[automatic code generation]]></kwd>
<kwd lng="en"><![CDATA[CASE]]></kwd>
<kwd lng="en"><![CDATA[IDE]]></kwd>
<kwd lng="es"><![CDATA[Desarrollo de software]]></kwd>
<kwd lng="es"><![CDATA[generación de código]]></kwd>
<kwd lng="es"><![CDATA[generación automática de código]]></kwd>
<kwd lng="es"><![CDATA[CASE]]></kwd>
<kwd lng="es"><![CDATA[IDE]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <font face= "Verdana" size="2">     <p align="right"><b>ART&Iacute;CULO ORIGINAL</b></p>     <p align="right">&nbsp;</p>     <p align="right">DOI: <a href="http://dx.doi.org/10.17533/udea.redin.n77a10" target="_blank">10.17533/udea.redin.n77a10</a></p>     <p align="right">&nbsp;</p>     <p align="right">&nbsp;</p>     <p align="center"><font size="4"><b>An analysis of tools for automatic software development and automatic code generation</b></font></p>     <p align="center">&nbsp;</p>     <p align="center"><font size="3"><b>Un an&aacute;lisis de herramientas para el desarrollo y generaci&oacute;n autom&aacute;tica de software y de c&oacute;digo</b></font></p>     <p align="center">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="center">&nbsp;</p>     <p><i><b>Viviana Yarel Rosales-Morales<sup>1</sup>, Giner Alor-Hern&aacute;ndez<sup>1</sup>*, Jorge Luis Garc&iacute;a-Alcar&aacute;z<sup>2</sup>, Ram&oacute;n Zatarain-Cabada<sup>3</sup>, Mar&iacute;a Luc&iacute;a Barr&oacute;n-Estrada<sup>3</sup></b></i></p>     <p><sup>1</sup>Divisi&oacute;n de Estudios de Posgrado e Investigaci&oacute;n, Instituto   Tecnol&oacute;gico de Orizaba. Av. Oriente 9 # 852, Col. Emiliano Zapata. C. P. 94320.   Orizaba, M&eacute;xico. </p>     <p><sup>2</sup>Departamento de Ingenier&iacute;a Industrial y Manufactura,   Universidad Aut&oacute;noma de Ciudad Ju&aacute;rez. Av. del Charro # 450 Norte, Col. Partido   Romero. C. P. 32310. Ciudad Ju&aacute;rez, M&eacute;xico. </p>     <p><sup>3</sup>Divisi&oacute;n de Estudios de Posgrado e Investigaci&oacute;n, Instituto   Tecnol&oacute;gico de Culiac&aacute;n. Av. Juan de Dios B&aacute;tiz 310 Pte. Col. Guadalupe.   C. P. 80220. Culiac&aacute;n, M&eacute;xico. </p>     <p>* Corresponding author: Giner Alor Hern&aacute;ndez, e-mail: <a href="mailto:: gineralor@outlook.com">gineralor@outlook.com</a></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p align="center">(Received February 27, 2015; accepted June 24, 2015)</p>     <p align="center">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="center">&nbsp;</p> <hr noshade size="1">     <p><font size="3"><b>ABSTRACT</b></font></p>     <p>Software development is an important area in software   engineering, which is why a wide range of techniques, methods, and approaches has   emerged to facilitate software development automation. This paper presents an   analysis and evaluation of tools for automated software development and   automatic code generation in order to determine whether they meet a set of   quality metrics. Diverse quality metrics were considered such as effectiveness,   productivity, safety, and satisfaction in order to carry out a qualitative and   quantitative evaluation. The tools evaluated are CASE tools, frameworks, and   Integrated Development Environments (IDEs). The evaluation was conducted to   measure not only the tools' ability to be employed, but also their support for   automated software development and automatic source code generation. The aim of   this work is to provide a methodology and a brief review of the most important   works to identify the main features of these works and present a comparative   evaluation in qualitative and quantitative terms of quality metrics. This would   provide software developers with the information they need to decide the tools   that can be useful for them. </p>     <p><i>Keywords:</i><b> </b>  Software development, code generation, automatic code generation, CASE, IDE</p> <hr noshade size="1">     <p><font size="3"><b>RESUMEN</b></font></p>      <p>El desarrollo de software es una importante   &aacute;rea en la ingenier&iacute;a de software, por tal motivo han surgido t&eacute;cnicas, enfoques y m&eacute;todos que   permiten la automatizaci&oacute;n de desarrollo del mismo. En este trabajo se presenta   un an&aacute;lisis de las herramientas para el desarrollo autom&aacute;tico de software y la generaci&oacute;n   autom&aacute;tica de c&oacute;digo fuente, con el fin de evaluarlas y determinar si cumplen o   no con un conjunto de caracter&iacute;sticas y funcionalidades en t&eacute;rminos de calidad.   Dichas caracter&iacute;sticas incluyen eficacia, productividad, seguridad y   satisfacci&oacute;n, todo a trav&eacute;s de una evaluaci&oacute;n cualitativa y cuantitativa. Estas   herramientas son 1) herramientas CASE, 2) marcos de trabajo (frameworks) y 3)   ambientes de desarrollo integrado (IDEs). La evaluaci&oacute;n se llev&oacute; a cabo con el   fin de medir no s&oacute;lo la capacidad de uso, sino tambi&eacute;n el apoyo que brindan   para el desarrollo de software autom&aacute;tico y la generaci&oacute;n autom&aacute;tica de c&oacute;digo   fuente. El objetivo de este trabajo es proporcionar una metodolog&iacute;a y una breve   revisi&oacute;n de los trabajos m&aacute;s importantes para, de esta forma, identificar las   principales caracter&iacute;sticas de &eacute;stos y presentar una evaluaci&oacute;n comparativa en   t&eacute;rminos cualitativos y cuantitativos, con la finalidad de proporcionar la   informaci&oacute;n necesaria para el desarrollador de software que facilite la toma de   decisiones al considerar herramientas que le pueden ser &uacute;tiles. </p>     <p><i>Palabras clave:</i>  Desarrollo de software, generaci&oacute;n de c&oacute;digo, generaci&oacute;n autom&aacute;tica de c&oacute;digo, CASE, IDE</p> <hr noshade size="1">     <p><font size="3"><b>1. Introduction</b></font></p>     <p>Software engineering   is an engineering discipline whose goal is the cost-effective development of   software systems &#91;1, 2&#93;. In addition to source code generation, there are   various techniques, approaches, programming paradigms, and tools for software   development and automatic source code generation. Some of the most relevant   approaches are FDD (Feature Driven Development), MDA (Model Driven   Architecture), UML-based development (Unified Modeling Language-based), and RAD   (Rapid Application Development). On the other hand, among the most known   programming paradigms for software development are AOP (Aspect-Oriented   Programming), OOP (Object-Oriented Programming), Structured Programming, and   Components-based Programming. In the same way, the tools for software   development involve IDEs (Integrated Development Environment), CASE tools   (Computer-Aided Software Engineering) and IREs (Integrated Reverse-Engineering   Environments). All these approaches, programming paradigms, tools, and techniques   facilitate software development, and thereby, they improve the profitability of   software systems &#91;3&#93;. Two important parts that have been   recently implemented are the tools for software development and the tools for   automatic code generation. A software   development tool is a computer program that software developers use to create,   debug, maintain, or otherwise support other programs and applications &#91;4&#93;. The   term usually refers to relatively simple programs, which can be combined   together to accomplish a task. For instance, one might use   multiple hand tools to fix a physical object. The ability to use a variety of   tools productively is one hallmark of a skilled software engineer &#91;4&#93;. </p>     <p>There are various   types of software development tools, such as design software tools, modeling   software, encoding software, management software, and reverse engineering   tools, among many others. On the one hand, some of the most important and used   tools are CASE tools; CASE stands for Computer-Aided Software Engineering. It covers   a wide range of different components used to support software process   activities, such as requirements analysis, system modeling, debugging, and   testing. CASE tools may also include a code generator which automatically   generates source code from the system model and some process guidance, which   gives advice to the software engineer on what to do next &#91;1, 2&#93;. In general   terms, CASE is the application of a set of tools and methods to a software   system with the desired end result of high-quality, defect-free, and   maintainable software products &#91;5&#93;. On the other hand, in addition to CASE   tools, there are other kinds of tools, such as IDE's (Integrated Development   Environments) that combine the features of many tools in one package. For   instance, these other tools facilitate some tasks, such as searching for   content only in files in a particular project. IDEs may, for example, be used   for the development of enterprise-level applications &#91;4&#93;. It is important to   review these tools to identify their characteristics and evaluate them   according to established criteria and desirable characteristics based on   quality metrics. This evaluation is highly significant since it will allow   software developers to broad their perspective regarding which characteristics   and quality metrics are covered by a given tool. </p>     ]]></body>
<body><![CDATA[<p>In the field of   software development and automatic code generation, several overviews and   comparative analysis have been proposed in &#91;3, 6-10&#93;. In addition, some researches and systematic   reviews have been conducted regarding these topics &#91;11-19&#93;. Moreover, previous   works have addressed software systems development and, in some cases, software   automatic generation. On the one hand, both quantitative and qualitative   evaluations are highly needed for quality metrics of automatic code generation   tools. These quality metrics include Functionality, Reliability, and Usability,   among others. On the other hand, although some evaluations have been reported,   there is no record of any research or initiative covering the aforementioned   quality metrics. Therefore, the aim of this paper is to present a brief review   on existing automatic code generation tools, (CASE tools, IDEs, frameworks, and   academic tools) in order to propose a hybrid evaluation in quantitative and qualitative   terms of quality metrics for each tool analyzed. </p>     <p>For this reason, this   paper carried out a literature review of works that currently have an impact on   the different techniques and methods for software development and automatic   code generation. Thus, one hundred research works were analyzed and ten of them   were selected for evaluation. These ten works were considered the most relevant   according to the selection criteria; they address its use in software   development and automatic code generation area from 1989 to 2014.</p>     <p>The paper is   structured as follows: First Section contains the Introduction, Second Section   Research Methodology of this review, Third Section presents the review of tools   and frameworks for automatic code generation. Section four concerns the   Software quality characteristics for software development tools and Section   five presents a review of evaluation models and the results obtained for   qualitative and quantitative evaluation for Software Development and Automatic   Code Generation tools. Finally, in section six conclusions and future work are   discussed.</p>     &nbsp;&nbsp;&nbsp;     <p><font size="3"><b>2. Research Methodology</b></font></p>     <p>The methodology is   composed of three stages. The first stage presents a research of related works   to Automatic Code Generation in several academic electronic databases. The   second stage presents the classification of these works in the different kinds   of tools. Finally, the third stage of the methodology involves the report of a comprehensive   literature review that identifies technologies, tools, and frameworks in some   of the papers reviewed. As it was previously mentioned, we have performed a   detailed search of the major databases of electronic journals for a   comprehensive bibliography on Automatic Code Generation. The digital libraries   considered were: 1) ACM Digital Library, 2) IEEE Xplore Digital Library, 3)   Science Direct (Elsevier) and 4) SpringerLink. Only the papers published by   academic journals, workshops, and international conference proceedings were   considered reliable and worthy. </p>     <p>Moreover, we also   employed a keyword-based search in order to select the most relevant papers.   The main keywords employed were: 1) Software Engineering, 2) Code Generation,   3) Software Development Tool, 4) Automatic Code Generation, 5) Source Code   Generator Tool, and 6) CASE Tools. Papers that were not directly related to   Automatic Code Generation or not suitable for the study were discarded. The   research papers selected were manually classified by considering the following   criteria: (1) CASE tools, (2) IDEs, and (3) frameworks for Automatic Code   Generation. This selection Criteria is depicted in <a href="#figura1">Figure 1</a>. </p>     <p align=center><b><a name="figura1"></a></b> <img src="img/revistas/rfiua/n77/n77a10i01.gif"></p>     <p>The section below   presents the selected and most relevant papers regarding Automatic Code   Generation.</p>     <p>It is worth mentioning   that the tools to assess were selected from a large set of candidate tools   based on the following criteria: 1) availability of documentation, 2) tools for   a specific purpose and a general purpose, and 3) the code generated and   programming languages supported. </p>     &nbsp;&nbsp;&nbsp;     <p><font size="3"><b>3. Tools and frameworks for automatic code generation</b></font></p>     ]]></body>
<body><![CDATA[<p>Recently, several   projects on tools for Automatic Code Generation have been developed, some   examples of these initiatives are usually 1) CASE tools for Automatic Code   Generation, 2) IDEs for Automatic Code Generation, and 3) frameworks for   Automatic Code Generation. These initiatives have the purpose to facilitate   working software developers. Some of the most important initiatives are   presented below. </p>     <p><b>3.1.   CASE tools for Automatic Code Generation</b> </p>     <p>In &#91;20&#93; the   determinants for a CASE tool implementation were presented. The findings   indicated that an environment including the enforcement of a development   methodology and the use of metrics contribute to perceived improvements in   quality when using CASE. Furthermore, the use of metrics and consultants along   with formal training contribute to perceived improvements in developer   productivity. In &#91;21&#93;, a survey on   software evolution and computer-aided prototyping was provided. According to   &#91;21&#93;, Computer-Aided Prototyping will become a practical technique in the   evolution process. CAPS (Computer-Aided Prototyping System) consists of an   integrated set of tools that help design, translate, and execute prototypes. It   includes a graph data model for evolution, evolution control system, change   merging facility, and automated retrievals for reusable components and it   supports the prototyping modeling process. In &#91;18&#93; a tool that generates a code   with compatibility for design patterns to maximize reusability of design components   was proposed. This tool constructs a library that stores explanation   information of pattern and structure information of abstract type. Pattern   structure information goes through the process of instantiation, which makes   the patterns fit for specific applications. Instantiated structure information   is generated as an XMI-based source code through a code generation template.   XMI is supported as a transformed format from most CASE tools, so it is sure   for compatibility a code generation tool that is applicable to procedural   language-based applications for distributed processing was described in &#91;22&#93;.   The application programs along with the partition primitives were converted   into independently executable concrete implementations. The process consisted   of two steps, first translating the primitives of the application program into   equivalent code clusters, and then, scheduling the implementations of these   code clusters according to the inherent data dependencies. Furthermore, the   original source code needed to be reverse engineered in order to create a   meta-data table describing the program elements and dependency trees. The   proposed code generation model was implemented using C and tested for various   application programs for functional verification. In &#91;23&#93;, a tool for   programming using schemas was described. In order to solve a given programming   problem, the user defined a recurrence relation system, selected the proper   schema and the tool automatically generated the code that solved the problem in   the target language. In this way, the tool allowed the integration of methodologies   based on schemas into the subject of the course. Also, authors of &#91;24&#93;   described EDEN as a CASE environment, whose objective is to integrate structure   design methodologies, software module libraries, and rigorous testing through   the entire software's life cycle. In addition to supporting each phase of the   life cycle, EDEN will provide project management tools, such as metrics   analysis, configuration management, and quality assurance compliance. Visual   Paradigm &#91;25&#93; for UML (VP-UML) is a UML CASE Tool supporting UML 2, SysML and   Business Process Modeling Notation (BPMN) from the Object Management Group   (OMG). In addition to modeling support, it provides report generation and code   engineering capabilities including code generation. It can reverse engineer   diagrams from source code, and provide round-trip engineering for various   programming languages. PowerDesigner   &#91;26&#93; is a collaborative enterprise modelling tool produced by Sybase.   PowerDesigner runs under Microsoft Windows as a native application, and runs   under Eclipse through a plugin. PowerDesigner supports Model-Driven   Architecture software design. </p>     <p><b>3.2.   IDEs for Automatic Code Generation</b> </p>     <p>In &#91;27&#93;, authors   described the research performed to analyze the requirements for the   development of an IDE for embedded system design. The research considered the   format and frequency of the data to be transferred within the system and   finally the available communication mechanisms. The work concluded with a   recommended approach to the development of an IDE for embedded system design.   In &#91;28&#93;, an overview of Cadena (Cadena stands for Component Architecture   Development ENvironment for Avionics systems) - which is an integrated   environment for building and modeling systems built using the CORBA (Common   Object Request Broker Architecture) Component Model (CCM) was presented. Cadena   provided facilities for defining component types using CCM IDL, specifying   dependency information and transition system semantics for these types,   assembling systems from CCM components, visualizing various dependence   relationships between components, specifying and verifying correctness   properties of models of CCM systems derived from CCM IDL, component assembly   information, and Cadena specifications, and producing CORBA stubs and skeletons   implemented in Java. In &#91;29&#93;, the authors stated that software development   could be eased with an IDE, which allows for using different individual tools   from one single development platform. Unfortunately, when developing software   for a particular embedded system, the development of an IDE for a certain   device can be expensive, since the development of an IDE requires a lot of   resources. Therefore, authors proposed the development of an integrated   development for a mobile device, Nokia 770 Internet Tablet. The goal was to aim   at a fully-fledged IDE with the lowest possible costs. In order to accomplish   this, they turned to open source development communities, and targeted the   effort to the integration of already existing components into a simple yet practical   IDE. In &#91;30&#93;, authors proposed an MB-UID (Model-Based User Interface   Development) approach for semi-automatic generation of adaptive applications   for mobile devices. An environment, called XMobile, offers a device-independent   user interface framework and a code generation tool to provide fast development   of multi-platform and adaptive applications according to device and platform   features. In &#91;31&#93;, a new modeling   environment called MOSAIC was presented. It combines concepts such as   equation-based modeling, use of symbolic mathematic language, and code   generation. Moreover, the proposed tool followed a new modeling approach for   the re-use of single equations and the support of different naming conventions.   The modeling is done strictly in the documentation level. The model information   is stored in XML and MathML, and code generation for different programming   languages is used to transform the generally defined models into executable   programs or suitable code fragments for the solution or use in various numerical   environments. Furthermore, MOSAIC is provided as a Software as a Service. The   result is a software tool that allows for modeling in the documentation level,   promotes the reuse of model elements, and supports centralized cooperation on   the Internet. IntelliJ IDEA &#91;32&#93; is a Java-based IDE for developing software.   It was developed by JetBrains, and is available as an Apache 2 Licensed   community edition, and in a proprietary commercial edition. </p>     <p><b>3.3.   Frameworks for Automatic Code Generation </b> </p>     <p>In &#91;33&#93;, a framework   for automatic graphical user interface code generation was developed. The   authors also developed tools to support this framework: 1) a parser, 2)   generation rules, and 3) target code production. The parser read specifications   resulted from a reverse engineering process of a character-oriented user   interface. These specifications were written in a language called AUIDL   (Abstract User Interface Description Language). This language is based on the   object-oriented paradigm, which means the use of class, object, attributes, and   methods. The methods are used to describe the behavior of the user interface.   In &#91;34&#93; the authors presented Tom and ApiGen that are two complementary tools,   which simplify the definition and the manipulation of abstract datatypes. Tom   is an extension of Java that adds pattern-matching facilities independently of   the used data-structure. ApiGen is a generator of abstract syntax tree   implementations that interacts with Tom tool. The authors of Tom and ApiGen   demonstrated the integration of an algebraic programming environment in   Eclipse, by integrating a Tom editor, an automatic build process, and an error   management mechanism. And they explain how Eclipse could be extended to support   the development of Tom programs. In &#91;35&#93;, the authors stated that Model-Driven   Engineering (MDE) was considered one of the most promising approaches for   software development. They presented an example based on state-machines that   was used to demonstrate the benefits of this approach. After defining a   modeling language (meta-model) for state machines, a graphical tool was   presented, which was aimed at easing the description and validation of   state-machine models. The generated models were used as inputs for the   automatic Ada code generation tool, and testing including a simulation program   to test the correctness and performance of the implemented application. In   &#91;36&#93;, a prototype tool called VULCAN that aimed to assist with the creation of   high quality code through the use of design patterns was presented. This tool   came in the form of a plug-in for Eclipse software development environment.   VULCAN facilitates high quality code creation through the automatic generation   of design pattern code templates, customized with user input, and integrated into   pre-existing projects. By automating the design pattern generation process   through the application of a practical and easily usable tool, the adoption of   a model-driven engineering approach using design patterns can be substantially   mitigated, resulting in improved system quality. In &#91;37&#93; an Automatic Coder   using Artificial Intelligence (ACAI) was described. ACAI used an approach to   solve automated code generation in routine programming domains. The main   components of ACAI are considered the user goals and preferences, a library of   abstract programs, and a library of generic code components. ACAI uses a   combination of Case-Based Reasoning, Routine Design, and Template-Based   Programming approaches to generate complete Java programs that satisfy users'   requirements. Adobe Dreamweaver&copy; &#91;38&#93; is a commercial Web development tool   developed by Adobe Systems. Adobe Dreamweaver is available for OS&copy;. X and for Windows<sup>&copy;</sup>. </p>     <p>It is noteworthy that   the aforementioned works are the most relevant from a wide range of papers   reviewed. These works are of great importance for software development and the   area of automatic code generation. However, these works have not been evaluated   to quantify their quality and the benefits that provided to developers. In this   regard, it is important to perform a quantitative and qualitative evaluation to   identify the characteristics of each of the tested tools and present the   results in a clear and orderly manner. The following section describes the   features that were considered to measure the quality metrics of software   development tools.</p>     &nbsp;&nbsp;&nbsp;     <p><font size="3"><b>4. Software quality characteristics for software development tools</b></font></p>     <p>This section defines   all the quality metrics considered in the evaluation process of software   development tools. To carry out the evaluation process, we identified and   reviewed the different Software Quality Models &#91;39-41&#93; and Philosophies &#91;42-44&#93;.   However, contrary to this paper, these models do not consider the quality   metrics of the ISO/IEC 9126 model, which are effectiveness, productivity,   safety, and satisfaction. The ISO/IEC 9126 model was employed since it is a   widely recognized international standard for quality software evaluation.   ISO/IEC 9126 defines a quality model in terms of internal quality, external   quality, and quality in use. Internal quality is evaluated by using internal   attributes of software, such as modularity. External quality is evaluated when   the software is executed, usually during formal testing activities. Quality in   use refers to the users' view of the software's quality when they use it in a   particular environmental context. ISO/IEC 9126 is composed of four sections.   The ISO/IEC 9126-1 section classifies the external and internal quality of the   software in a structured set of characteristics. These characteristics are   further decomposed into sub-characteristics, which derive into specific   attributes. ISO/IEC 9126-2 and ISO/IEC 9126-3 describe the software metrics for   external and internal attributes, respectively. ISO/IEC 9126-4 defines the   quality in use determined by four characteristics: effectiveness, productivity,   safety, and satisfaction. The assessment method presented here is intended to   measure the quality of each tool. Quality in use is defined as the capability   of the software product for enabling users to achieve specific goals with   effectiveness, productivity, safety, and satisfaction in specific contexts of   use.</p>     ]]></body>
<body><![CDATA[<p>The quality model   presented in the first part of the standard, ISO/IEC 9126-1 &#91;45&#93; classifies   software quality in a structured set of characteristics and   sub-characteristics. The characteristics are:</p>     <p><i>Functionality:</i> A set of attributes that bear on the existence of a set of functions   and their specified properties. The functions are those that satisfy explicit or   implied needs &#91;45&#93;. </p>     <p><i>Reliability:</i> A set of attributes that bear on the capability of software for   maintaining its level of performance under stated conditions for a stated   period of time &#91;45&#93;. </p>     <p><i>Usability:</i> A set of attributes that bear on the effort needed for use and the   individual assessment of such use by a stated or implied set of users &#91;45&#93;. </p>     <p><i>Efficiency:</i> A set of attributes that bear on the relationship between the level of   performance of the software and the amount of resources used under stated   conditions &#91;45&#93;. </p>     <p><i>Maintainability:</i> A set of attributes that bear on the effort needed to make specified   modifications &#91;45&#93;. </p>     <p><i>Portability:</i> A set of attributes that bear on the ability of software to be   transferred from one environment to another &#91;45&#93;. </p>     <p>Each quality metric is   divided in sub-characteristics. This division is presented below in <a href="#tabla1">Table 1</a> &#91;45&#93;: </p>     <p align=center><b><a name="tabla1"></a></b><img src="img/revistas/rfiua/n77/n77a10t01.gif"></p>     <p>Each quality   sub-characteristic (e.g. adaptability) is further divided into attributes. An   attribute is an entity that can be verified or measured in the software   product. Attributes are not defined in the standard because, they vary between   different software products &#91;45&#93;. The next section presents the evaluation   model used in this study as well as the results obtained.</p>     &nbsp;&nbsp;&nbsp;     ]]></body>
<body><![CDATA[<p><font size="3"><b>5. Evaluation and results</b></font></p>     <p>Software Engineering   literature has proposed several works related to software development   evaluation. In &#91;13&#93;, a survey of existing research on aspect-oriented modeling   and code generation was reported. An orchestrated survey of the most prominent   techniques for automatic generation of software test cases was presented in   &#91;8&#93;. In &#91;19&#93;, a comparison between UML   and SystemC was proposed, focusing on communication   modeling. Although the absence of a standardized way to evaluate software   development tools is still an issue, there are two main approaches:   quantitative (objective) evaluations and qualitative   (subjective) evaluations. On the one hand, according to &#91;46&#93;, quantitative   evaluations are based on identifying the effects of using a tool in measurable   terms. On the other hand, qualitative evaluations &#8212; also known as feature   analyses &#8212; are based on identifying the requirements that the user possesses to   perform a particular task/activity and on linking these requirements to the   tool's features that can support the task or tasks. </p>     <p>Moreover, there are   other techniques, such as AHP (Analytic Hierarchy Process), which have great   advantages when important elements in the decision are difficult to quantify or   compare, or when communication among team members is impeded by their different   specializations, terminologies, or perspectives. Some decision situations where   the AHP can be applied include &#91;47&#93;: Choice, Ranking, Prioritization, Resource   allocation, Benchmarking, Quality management, and Conflict resolution &#91;48&#93;.</p>     <p>However, none of these   situations meets the objective of this work. Therefore, it was decided to use a   two-part evaluation of the tools and frameworks for automatic code   generation: Tom and ApiGen, Laika,   VULCAN, MB-UID, MOSAIC, ACAI, Visual Paradigm&copy;, PowerDesigner&copy;, IntelliJ IDEA&copy;,   and Adobe Dreamweaver&copy;. The first part concerns a qualitative method to measure   diverse aspects of these tools, by focusing on their usability as well as on   the support for the standard features and the compliance with the principles of   the use of best practices. The second part refers to a quantitative method to   measure the quality in use of each tool. On the one hand, for the qualitative   evaluation method, a set of 13 desired features for code generation tools were   identified. These features were assessed in all the selected tools in order to   determine their legitimacy and, at the same time, identify which of the tools   would be best in specific circumstances. Because this qualitative analysis   requires subjective measures, a discussion is presented in the following   paragraphs with the aim of supporting the results. On the other hand, for the   quantitative evaluation method, four software metrics were proposed based on   the internal metrics defined by the ISO/IEC 9126 standard. </p>     <p><b>5.1. Evaluation design</b> </p>     <p>This assessment method   describes each of the three aspects that constitute the needs of a software   developer; it also describes the features that a tool for software development,   especially for source code generation, must possess in order to satisfy each of   the identified needs.</p>     <p>The scale used for the   measurement of the identified aspects is a 3-point Likert scale &#91;49&#93; in which   ''3'' represents the best score and ''1'' represents the worst score as it is   represented below:</p>     <p>&bull; 3 points: strongly   addressed (S.A.)</p>     <p>&bull; 2 points: partially   addressed (P.A.)</p>     <p>&bull; 1 point: not   addressed (N.A.)</p>     ]]></body>
<body><![CDATA[<p>For each of the three   aspects, the final score will be the highest score assigned by a member of the   evaluation team composed of two software engineers, two graphic designers, and   two software developers. Finally, the overall evaluation for each software tool   will be the sum of the final scores in the three aspects. </p>     <p><b>5.2.   Qualitative evaluation</b> </p>     <p>A usability evaluation   approach is presented inspired by diverse proposals analyzed and based on a   weighted matrix. This assessment method has a long tradition within software   engineering and information systems literature &#91;50&#93;; moreover, it has been used   for other quality evaluations &#91;51, 52&#93;. For this weighted matrix, we have   proposed the evaluation of five aspects in order to assess the legitimacy of   the proposed software tools. These aspects were selected from the field of   software quality by the evaluation team. Each qualitative aspect had a score   based on a 3-point Likert scale &#91;49&#93;. The aspects are presented in the   following text. </p>     <p><b>Aspect   1: GUI design</b> </p>     <p>Factor 1. GUIs with   simplicity and predictability principles</p>     <p>Factor 2. User   interaction based on the best practices</p>     <p>An appropriate GUI   design encourages an easy, natural, and engaging interaction between a user and   a system, and it allows users to carry out their tasks. Considering the type of   software tool that this application is, we selected the &lsquo;simplicity' and   &lsquo;predictability' GUI design principles proposed in &#91;53&#93; to evaluate the ease   and naturalness of the GUI design of the code generation tools. The principle   of simplicity allows users to understand and use a system easily, regardless of   his or her computational experience and level of concentration when using the   application. Predictability allows users to anticipate the natural progression   of software development. </p>     <p><b>Aspect   2: Tools usability</b></p>     <p>Factor 1. Ease of use</p>     <p>Factor 2. Ease of   learning</p>     ]]></body>
<body><![CDATA[<p>Factor 3. Technical   knowledge and skills</p>     <p>ISO 9241-11 &#91;54&#93; defines   usability as the extent to which a product can be used by specific users in   order to achieve specific goals with effectiveness, efficiency, and   satisfaction in a specific context. However, because of the quantitative nature   of the &lsquo;effectiveness' and &lsquo;efficiency' factors, we have only considered the   &lsquo;satisfaction' factor mentioned in the former definition in order to evaluate   the usability of the application. ISO 9241-11 also defines satisfaction as the   absence of discomfort, as well as the positive attitudes of users toward the   use of a product. </p>     <p><b>Aspect   3: Features promoting use</b></p>     <p>Factor 1. Use of   modularity principles</p>     <p>Factor 2. Functions   with well-defined purposes</p>     <p>This aspect first   refers to the presence of features that promote the use of the application,   such as modularity. Nevertheless, it also refers to whether the application was   developed with a well-defined purpose. The factor of modularity reflects   whether the software contains modules, each one representing a concrete set of   concepts able to be reused in other environments. Modularity highly increases   the number of possible combinations in a system, which makes it much more   flexible &#91;55&#93;. Well-defined purposes guarantee the quality of the activities   carried out through a software tool. This provides users the tools needed for a   specific activity and avoids unnecessary functions that would not be used or   missing features that hinder the use of the tool or reduce the acceptance and   use of the application. </p>     <p><b>Aspect   4: Support for heterogeneous data sources integration</b> </p>     <p>Factor 1.   Interoperability with external software tools</p>     <p>Factor 2. Data   security</p>     <p>ISO 9241-11 &#91;54&#93;   defines interoperability as the ability of the software product to interact   with one or more specified systems. The interoperability factor defines whether   the software can be easily combined to enhance its capabilities. As far as data   security is concerned, interoperability refers to the ability of a software   tool to protect data in order to avoid unauthorized persons or systems to read   or modify this data. Data security covers both data stored by the systems and   data transmitted by the systems. Security is a critical factor to consider in   software development because these applications can contain confidential   information for both individuals and enterprises. </p>     ]]></body>
<body><![CDATA[<p><b>Aspect   5: Support and documentation</b> </p>     <p>Factor 1.   Documentation</p>     <p>Factor 2. Active roles   of users</p>     <p>Factor 3. Inline help</p>     <p>Factor 4. On line   developer documentation</p>     <p>This aspect refers to   the presence of information, such as technical manual, user manuals, and other   instructions that facilitate the use and operation of a tool. Documentation can   be aimed at developers, and in this case, it contains information on the   operations of the software system.</p>     <p>However, it can also   be aimed at end users with the purpose of facilitating the interaction between   the end users and the tool (e.g., a training manual). Furthermore, Web   applications emphasize on the active involvement of users in order to improve   the tool. This involvement includes activities such as bug reporting,   suggestion of new functions, and the implementation of new features through   software development kits. </p>     <p><b>5.3.   Quantitative Evaluation</b> </p>     <p>As it was previously   mentioned, quality in use is defined as the ability of the software product to   enable users to achieve specific goals with effectiveness, productivity,   safety, and satisfaction in specific contexts of use. In order to measure the   quality in use of each code source generation tool, the productivity   characteristic was selected. Productivity refers to the ability of the software   product to enable users to expend appropriate amount of resources in relation   to the effectiveness achieved in a specific context of use. Some of the metrics   covered by this characteristic are task time, waiting time, task efficiency,   and help frequency, among others. </p>     <p>The metrics that we   have proposed for this quantitative evaluation focus on the measurement of the   quality of an automatic code generation tool to generate source code.   Therefore, they are based on internal metrics defined in the ISO/IEC 9126   standard. They are described below: </p>     ]]></body>
<body><![CDATA[<p><b>Quality   in use </b></p>     <p><i>Productivity </i></p>     <p><i>Task time:</i> The estimated time of work spent to develop a basic application. </p>     <p><i>Help frequency:</i> The frequency of use of the help and/or documentation tools.<b><i> </i></b></p>     <p><b>Maintainability</b><b> </b></p>     <p><i>Changeability </i></p>     <p><i>Modification complexity:</i> The estimated work time spent on changing data sources of the   applications already generated. </p>     <p><i>Analyzability</i></p>     <p><i>Inline documentation completeness:</i> Ratio of the number of scripts, functions, or   variables having documentation to the number of implemented scripts, functions,   or variables. </p>     <p>In order to measure   the quality metrics by each of the evaluated tools under the same   circumstances, we have outlined a source code generation scenario as the &lsquo;hello   world'. It is also a means to support the results obtained from the qualitative   analysis, or at least to support the results corresponding to the aspects   covered in this source code generation scenario. It is worth mentioning that   this scenario does not involve the measurement of neither the software   environmental adaptability nor the hardware environmental adaptability, since   these metrics focus on evaluating standalone applications. </p>     &nbsp;&nbsp;&nbsp;     ]]></body>
<body><![CDATA[<p><font size="3"><b>6. Results</b></font></p>     <p><a href="#tabla2">Table 2</a> and <a href="#figura2">Figure 2</a> depict the score   obtained from the evaluation process of each aspect analyzed for the   qualitative evaluation. <a href="#tabla3">Table 3</a> shows the results of the quantitative   evaluation. </p>     <p><b>6.1.   Discussion</b> </p>     <p>The results obtained for the qualitative   evaluation are presented below.</p>     <p><b>Aspect   1: GUI design</b></p>     <p>Most of the software development tools   evaluated provide GUIs of different degrees of simplicity and predictability.   On the one hand, tools such as Tom and ApiGen, Laika, XMobile and VULCAN   provide interfaces that permit the design and modeling of system software,   which are configured with the parameters required. Although these interfaces   are too simple and do not provide anything beyond this, they allow users to   perform easily and naturally the tasks that they need to accomplish. On the   other hand, tools such as Visual Paradigm&copy;, PowerDesigner&copy; and Adobe   Dreamweaver&copy; provide a set of GUI   components aesthetically pleasing that encapsulate business logic and implement   interaction design patterns, such as wizards and input feedback, to mention a   few. All these components allow users to easily understand and use the tool   regardless of their experience and level of concentration when using it. As far   as IntelliJ IDEA&copy; is concerned, although it does provide a graphic user   interface, this interface is neither intuitive nor easy to use. In fact, users   require certain level of expertise in the use of IDEs and development tools. On   the other hand, MOSAIC is a special-purpose tool; therefore, it is limited to   users' experience. </p>     <p><b>Aspect   2: Tools usability</b> </p>     <p>In general terms, the automatic code   generation tools presented earlier have intuitive designs and demand little   learning time for beginners. For instance, Adobe Dreamweaver&copy; provides a wizard   that permits dragging and dropping elements into the main panel. This characteristic   is very easy to use since the developer does not need to know the programming   language. Visual Paradigm&copy;, however, can generate code in languages such as   Java or C++ from a UML class diagram, and the user merely needs to know how to   make UML diagrams. Also, on the one hand, Laika tool provides a graphical   interface to generate the source code of whatever the user wishes to design;   however, the code is generated for a particular device. </p>     <p align=center><b><a name="tabla2"></a></b><img src="img/revistas/rfiua/n77/n77a10t02.gif"></p>     <p align=center><b><a name="figura2"></a></b><img src="img/revistas/rfiua/n77/n77a10i02.gif"></p>     ]]></body>
<body><![CDATA[<p>On the other hand, IntelliJ IDEA&copy; and   PowerDesigner&copy; employ codification standards from the design environments,   while MOSAIC is a more intuitive tool both in use and functioning, because it   is a special-purpose system and has more limited options to generate source   code. XMobile is focused on mobile applications development, and users must   possess some knowledge of the applications they develop in order to use it.   VULCAN is a plug-in for Eclipse, which makes it stick to the standards of the   own IDE. </p>     <p><b>Aspect   3: Features promoting use</b><b> </b></p>     <p>The use of modularity principles and   functions with well-defined purposes is covered completely in the commercial   tools; however, it is not addressed comprehensively in academic tools, since   most of these remained in development or as prototypes; therefore, their use is   not massively exploited. Software development tools such as Visual Paradigm&copy;   represent a clear example of modularity, since different modules are in charge   of different tasks and all together form a complete tool. For instance, whilst   one module may be responsible for modeling in UML, another one can generate the   source code and a third one may be responsible for reverse engineering. On the   other hand, some tools such as VULCAN were developed as plug-ins for other tools   such as Eclipse. However, this does not mean they are independent since they   completely rely on those tools for which they were designed, and this breaks   the principle of modularity, to some extent. In the cases of MOSAIC, VULCAN,   XMobile, and Laika, they represent tools for a well-defined purpose. MOSAIC   focuses on Mathematics, VULCAN on design patterns, and XMobile and Laika are   targeted to applications for mobile devices. </p>     <p><b>Aspect   4: Support for heterogeneous data sources integration</b><b> </b></p>     <p>The tools analyzed provide support for   several data sources, such as XML, XMI and Java. Tools like Visual Paradigm&copy;   can generate source code in different programming languages and this allows   them to integrate with other tools such as IDEs like NetBeans&copy; or Eclipse&copy;.   Laika, however, is not supported since it is a special-purpose tool; it was   developed for a particular device and programming language. Also, VULCAN cannot   integrate itself with other systems, because it was developed as a plug-in for   Eclipse. Interoperability is a difficult aspect to cover in these tools,   especially if they are special-purpose tools such as Laika, MOSAIC, and   XMobile. </p>     <p><b>Aspect   5: Support and documentation</b><b> </b></p>     <p>For most of the automatic generation tools   analyzed, a great deal for information could be gathered, such as their user   manuals, introductory videos, tutorials, technical manuals, and published   research papers. This facilitates both software learning and development.   Moreover, the tools emphasize on the active involvement of their users in activities   such as bug reporting, suggestion of new functions and the implementation of   new features through the software development kits provided. In order to carry   out these tasks, tools such as Visual Paradigm&copy;, PowerDesigner&copy;, IntelliJ   IDEA&copy;, and Adobe Dreamweaver&copy; provide help and support to community through   blogs, forums, and wikis. It is noteworthy that it is easier to find   information about commercial tools. For   the other tools that are Tom and ApiGen, Laika, VULCAN, XMobile, MOSAIC, and   ACAI, it is more difficult to find information and help, especially because   they are special-purpose tools. MOSAIC, for instance, has less impact because   of this. </p>     <p>According to these results and as can be   seen in <a href="#tabla2">Table 2</a>, Visual Paradigm&copy; is the tool with the best features for   automatic software development, since it was rated 38 of 39 in the qualitative   evaluation. As it can be inferred, Visual Paradigm&copy; completely meets most of   the features that an automatic software development tool must possess in order   to integrate data from heterogeneous data sources and have attractive visual   interfaces. Also, Visual Paradigm&copy; can   be used by both non-experienced and experienced users, as well as by   enterprises demanding a high level of security for network and data. In   addition, Visual Paradigm&copy; emphasizes on the active involvement of its users, and this enables   tools designers to know the customers' problems and needs in order to develop   components that can help them solve their problems. </p>     <p>The results obtained for the quantitative   evaluation are presented below. </p>     <p><a href="#tabla3">Table 3</a> shows the results obtained for   each quality metric from the quantitative evaluation. The tools presented   earlier contain different components for the generation of source code. In   order to generate the source code for a set of Java-based classes by using   Visual Paradigm&copy;, it is only required to design a UML class diagram   representing the desirable software. As far as Adobe Dreamweaver&copy; is concerned,   fewer steps are required in the software development, since at the same time   that the components are dragged to the main panel, the corresponding code is   displayed. Adobe Dreamweaver&copy; is able to generate codes in various programming   languages, such as HTML or PHP. Nowadays, automatic code generation plays an   important role in software development, since it helps save time and   facilitates the use of tools and programming languages. However, it is also   important that the tools meet a set of quality characteristics so the developer   can feel confident when using them. In many cases, tools for automatic code   generation have been proposed and developed in the form of prototypes, but   these prototypes have failed to develop commercially, making them obsolete if   they are compared to other tools that are being constantly developed and   updated. Therefore, the analysis presented in this paper can demonstrate with   the results obtained that Visual Paradigm&copy; is the tool that meets more features   than any other tool analyzed. Visual Paradigm&copy; is a commercial tool. </p>     ]]></body>
<body><![CDATA[<p>Authors wish to express we do not intent   to state which development tool is better or to tell software developers which   tool they must employ. The merely purpose of this research paper is to   emphasize the main features of each development tool. </p>     <p align=center><b><a name="tabla3"></a></b><img src="img/revistas/rfiua/n77/n77a10t03.gif"></p>     &nbsp;&nbsp;&nbsp;     <p><font size="3"><b>7. Conclusions and future work</b></font></p>     <p>This paper has presented an evaluation of   tools and frameworks for automatic software development and automatic source   code generation. These kinds of reviews and subsequent tools assessments are   extremely important issues for software developers to identify the   characteristics and functionalities that cover the tools evaluated. During the   evaluation and review of the tools, it was possible to identify their   characteristics and determine their quality according to the quality model of   the ISO/IEC 9126 standard. This evaluation is crucial since it involves   different types of tools: CASE tools, IDE's, frameworks and academic tools. All   of them were evaluated under the same parameters and compared with one another.   The limitations of this paper could be addressed as future work by including   more databases - such as Scopus (Elsevier), Web of Science, or CiteSeerX - that   would allow for the evaluation of a larger amount of works. Also, a future   study could expand the evaluation of tools by including other qualitative and   quantitative characteristics in the evaluation process. Some features that   could be considered are: correctness of the generated code, required computer   resources, and integration with other tools. Another aspect that could be   improved in upcoming research is the evaluation of the source code generated by   the tools evaluated. This way, researchers can perform a particular assessment   according to the tool type, such as assessments by the type of application   generated, by supported programming languages, or by input/output parameters.   Finally, this study can be extended by considering other IDEs and tools - such   as Aptana&copy; and Komodo&copy; - as well as other tool features such as a debugger, a   compiler, or a data dictionary, among others.  </p>     &nbsp;&nbsp;&nbsp;     <p><font size="3"><b>8. Acknowledgements</b></font></p>     <p>This work is supported by Tecnol&oacute;gico Nacional de   Mexico (TecNM). This paper was also sponsored by the National Council of   Science and Technology (CONACYT) and the Ministry of Public Education (SEP)   through PRODEP.</p>     &nbsp;&nbsp;&nbsp;     <p><font size="3"><b>9. References</b></font></p>     <!-- ref --><p> 1. I. Sommerville and P. Sawyer, <i>Requirements engineering: a good   practice guide</i>, 1<i><sup>st</sup></i> ed. New York, USA: John Wiley &amp; Sons, Inc., 1997.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000140&pid=S0120-6230201500040001000001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 2. I. Sommerville, <i>Software   Engineering. International computer science series</i>, 8<i><sup>th</sup></i> ed. Boston, USA:   Addison-Wesley Longman Publishing Co., Inc., 2004.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000142&pid=S0120-6230201500040001000002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 3. C. Zapata and   J. Chaverra, ''Una mirada conceptual a la generaci&oacute;n autom&aacute;tica de c&oacute;digo'', <i>Rev. EIA. Esc. Ing. </i><i>Antioq</i>, no. 13, pp.   155-169, 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000144&pid=S0120-6230201500040001000003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 4. B. Kernighan and P. Plauger, <i>Software tools in Pascal</i>, 1<i><sup>st</sup></i> ed. Boston, USA: Addison-Wesley, 1981.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000146&pid=S0120-6230201500040001000004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 5. D. Kuhn, ''Selecting and effectively using a computer aided software   engineering tool,'' in <i>Annual Westinghouse   computer symposium</i>, Pittsburgh, USA, 1989.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000148&pid=S0120-6230201500040001000005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 6. L. Agner, I. Soares, P. Stadzisz and J. Sim&atilde;o, ''A Brazilian survey on   UML and model-driven practices for embedded software development'', <i>Journal   of Systems and Software</i>, vol. 86,   no. 4, pp. 997-1005, 2013.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000150&pid=S0120-6230201500040001000006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 7. S.   Pierucci and E. Ranzi, ''A review of features in current automatic generation   software for hydrocarbon oxidation mechanisms'', <i>Comput. Chem. Eng.</i>, vol.   32, no. 4-5, pp. 805-826, 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000152&pid=S0120-6230201500040001000007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 8. S. Anand <i>et al</i>., ''An Orchestrated Survey of   Methodologies for Automated Software Test Case Generation'', <i>J. Syst. Softw.</i>,   vol. 86, no. 8, pp. 1978-2001, 2013.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000154&pid=S0120-6230201500040001000008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 9. R. Novais,   A. Torres, T. Mendes, M. Mendon&ccedil;a, and N. Zazworka, ''Software evolution   visualization: A systematic mapping study'', <i>Inf. Softw. Technol.</i>, vol.   55, no. 11, pp. 1860-1883, 2013.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000156&pid=S0120-6230201500040001000009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 10. S. Thomas,   B. Adams, A. Hassan and D. Blostein, ''Studying software evolution using topic   models'', <i>Sci. Comput. Program.</i>, vol. 80, Part B, pp. 457-479, 2014.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000158&pid=S0120-6230201500040001000010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 11. U. Kanewala and J. Bieman, ''Testing Scientific   Software: A Systematic Literature Review'', <i>Inf. Softw. Technol.</i>, vol.   56, no. 10, pp. 1219-1232, 2014.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000160&pid=S0120-6230201500040001000011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 12. A. Magdaleno, C. Werner and R. Araujo, ''Reconciling software   development models: A quasi-systematic review'', <i>J. Syst. Softw.</i>, vol.   85, no. 2, pp. 351-369, 2012.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000162&pid=S0120-6230201500040001000012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 13. A. Mehmood and D. Jawawi, ''Aspect-oriented   model-driven code generation: A systematic mapping study'', <i>Inf. Softw.   Technol.</i>, vol. 55, no. 2, pp. 395-411, 2013.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000164&pid=S0120-6230201500040001000013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 14. D.   Alonso, J. Pastor, P. S&aacute;nchez, B. &Aacute;lvarez and C. Vicente, ''Generaci&oacute;n   Autom&aacute;tica de Software para Sistemas de Tiempo Real: Un Enfoque basado en   Componentes, Modelos y Frameworks'', <i>Rev. Iberoam. Autom&aacute;tica e Inform&aacute;tica   Ind. RIAI</i>, vol. 9, no. 2, pp. 170-181, 2012.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000166&pid=S0120-6230201500040001000014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 15. C. Yang, V. Vyatkin and C. Pang, ''Model-Driven   Development of Control Software for Distributed Automation: A Survey and an   Approach'', <i>IEEE Transactions on Systems, Man, and Cybernetics: Systems,</i> vol. 44, no. 3. pp. 292-305, 2014.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000168&pid=S0120-6230201500040001000015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 16. H. Liao, J. Jiang and Y. Zhang, ''A Study of Automatic   Code Generation'', in <i>2010 International Conference on Computational and   Information Sciences </i>(ICCIS),   Chengdu, China, 2010, pp. 689-691.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000170&pid=S0120-6230201500040001000016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 17. M. Jim&eacute;nez and M. Piattini, ''Problems and Solutions in   Distributed Software Development: A Systematic Review'', in <i>2<sup>nd</sup> International Conference on Software Engineering Approaches for Offshore and Outsourced Development </i>(SEAFOOD), Zurich, Switzerland, 2008,   pp. 107-125.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000172&pid=S0120-6230201500040001000017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 18. Y. Seo and Y. Song, ''A Study on Automatic Code Generation   Tool from Design Patterns Based on the XMI'', in <i>2006 International   Conference on Computational Science and Its Applications </i>(ICCSA), Glasgow, UK, 2006, pp. 864-872.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000174&pid=S0120-6230201500040001000018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 19. P. Andersson and M. H&ouml;st, ''UML and SystemC - A   Comparison and Mapping Rules for Automatic Code Generation'', in <i>Embedded   Systems Specification and Design Languages</i>, E. Villar (ed). Amsterdam, Netherlands:   Springer, 2008, pp. 199-209.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000176&pid=S0120-6230201500040001000019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 20. R. Urwiler, N. Ramarapu, R. Wilkes and M. Frolick,   ''Computer-aided software engineering: The determinants of an effective   implementation strategy'', <i>Inf. Manag.</i>, vol. 29, no. 4, pp. 215-225,   1995.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000178&pid=S0120-6230201500040001000020&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 21. Y. Jing,   ''Research on computer-aided prototyping system and software evolution'', <i>J.   Zhejiang Univ. Sci. A</i>, vol. 1, no. 4, pp. 384-387, 2000.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000180&pid=S0120-6230201500040001000021&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 22. V. Sairaman, N. Ranganathan and N. Singh, ''An   automatic code generation tool for partitioned software in distributed systems'',   in <i>19<sup>th</sup> International Conference on VLSI Design. Held jointly   with 5<sup>th</sup> International Conference on Embedded Systems and Design,</i> Hyderabad, India, 2006, pp. 477-480.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000182&pid=S0120-6230201500040001000022&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 23. A. Gavilanes, P. Mart&iacute;n and R. Torres, ''A Tool for   Automatic Code Generation from Schemas'', in <i>9<sup>th</sup> International Conference on Computational Science </i>(ICCS), Baton Rouge, USA, 2009, pp.   63-73.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000184&pid=S0120-6230201500040001000023&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 24. S. Erdogan, S. McFarr and D. Maglidt, ''EDEN: an   integrated computer-aided software engineering environment'', in <i>8<sup>th</sup> Annual International Phoenix Conference on Computers and Communications, </i>Scottsdale, USA,1989, pp.   349-353.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000186&pid=S0120-6230201500040001000024&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 25. Visual   Paradigm International, <i>Company</i>. &#91;Online&#93;. Available: <a href="http://www.visual-paradigm.com/aboutus/" target="_blank">http://www.visual-paradigm.com/aboutus/</a>. Accessed on: Jan. 20, 2015.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000188&pid=S0120-6230201500040001000025&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 26. PowerDesigner, <i>SAP   Sybase PowerDesigner 16.5, </i>2013. &#91;Online&#93;. Available: <a href="http://www.powerdesigner.de/en/" target="_blank">http://www.powerdesigner.de/en/</a>. Accessed on: Jan. 20, 2015.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000190&pid=S0120-6230201500040001000026&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 27. L. Maguire, T. McGinnity and L. McDaid, ''Issues in the   development of an integrated environment for embedded system design: Part B:   design and implementation'', <i>Microprocess. Microsyst.</i>, vol. 23, no. 4,   pp. 199-206, 1999.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000192&pid=S0120-6230201500040001000027&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 28. A. Childs <i>et al</i>.,   ''Cadena: An Integrated Development Environment for Analysis, Synthesis, and Verification   of Component-Based Systems'', in <i>7<sup>th</sup> International Conference on Fundamental   Approaches to Software Engineering </i>(FASE), Barcelona, Spain, 2004, pp. 160-164.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000194&pid=S0120-6230201500040001000028&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 29. J. Jarvensivu, M. Kosola, M. Kuusipalo, P. Reijula and   T. Mikkonen, ''Developing an Open Source Integrated Development Environment for   a Mobile Device'', in <i>International Conference on Software Engineering   Advances </i>(ICSEA)<i>,</i><b> </b>Tahiti, France, 2006, p. 55.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000196&pid=S0120-6230201500040001000029&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 30. W. Viana and R. Andrade, ''XMobile: A MB-UID   environment for semi-automatic generation of adaptive applications for mobile   devices'', <i>J. Syst. Softw.</i>, vol. 81, no. 3, pp. 382-394, 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000198&pid=S0120-6230201500040001000030&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 31. S. Kuntsche, T. Barz, R. Kraus, H. Arellano and G.   Wozny, ''MOSAIC a web-based modeling environment for code generation'', <i>Comput.   Chem. Eng.</i>, vol. 35, no. 11, pp. 2257-2273, 2011.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000200&pid=S0120-6230201500040001000031&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 32. JetBrains, <i>IntelliJ   IDEA, The Most Intelligent Java IDE,</i> 2015. &#91;Online&#93;. Available: <a href="https://www.jetbrains.com/idea/" target="_blank">https://www.jetbrains.com/idea/</a>. Accessed   on: Jan. 20, 2015.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000202&pid=S0120-6230201500040001000032&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 33. A. Elwahidi and E. Merlo, ''Generating user interfaces   from specifications produced by a reverse engineering process'', in <i>2<sup>nd</sup> Working Conference on</i> <i>Reverse Engineering, </i>Toronto, Canada, 1995, pp. 292-298.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000204&pid=S0120-6230201500040001000033&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 34. J. Guyon, P. Moreau and A. Reilles, ''An Integrated   Development Environment for Pattern Matching Programming'', <i>Electron. Notes   Theor. Comput. Sci.</i>, vol. 107, pp. 33-49, 2004.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000206&pid=S0120-6230201500040001000034&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 35. D. Alonso, C. Vicente, P. S&aacute;nchez, B. &Aacute;lvarez and F.   Losilla, ''Automatic Ada Code Generation Using a Model-Driven Engineering   Approach'', in <i>12<sup>th</sup> Ada-Europe   International Conference on Reliable Software Technologies,</i><b> </b>Geneva, Switzerland<i>, </i>2007, pp. 168-179.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000208&pid=S0120-6230201500040001000035&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 36. G. Frederick, P. Bond and S. Tilley, ''VULCAN: A Tool   for Automatically Generating Code from Design Patterns''<i>, </i>in<i> 2nd Annual IEEE Systems Conference</i>,   Montreal, Canada, 2008, pp. 1-4.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000210&pid=S0120-6230201500040001000036&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 37. Y. Danilchenko, ''Automatic Code Generation Using Artificial Intelligence''<i>,</i> Ph.D. dissertation, Northern Kentucky University, Kentucky, USA, 2012.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000212&pid=S0120-6230201500040001000037&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 38. Adobe, <i>Adobe   Dreamweaver CC</i>, 2015. &#91;Online&#93;. Available: <a href="http://www.adobe.com/mx/products/dreamweaver.html" target="_blank">http://www.adobe.com/mx/products/dreamweaver.html</a>.   Accessed on: Jan. 20, 2015.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000214&pid=S0120-6230201500040001000038&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 39. J. Mccall, P. Richards and G. Walters, ''Factors in Software Quality: Concept   and Definitions of Software Quality'', Air Force Systems Command, Rome Air   Development Center, New York, USA, Final Tech. Rep. RADC-TR-77-369, Nov. 1977.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000216&pid=S0120-6230201500040001000039&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 40. B. Boehm, J. Brown and M. Lipow, ''Quantitative   Evaluation of Software Quality'', in <i>2<sup>nd </sup>International Conference   on Software Engineering </i>(ICSE),   Los Alamitos, USA, 1976, pp. 592-605.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000218&pid=S0120-6230201500040001000040&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 41. R. Dromey, ''Cornering the chimera'', <i>IEEE Softw.</i>,   vol. 13, no. 1, pp. 33-43, 1996.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000220&pid=S0120-6230201500040001000041&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 42. P. Crosby, <i>Quality is Free: The Art of Making   Quality Certain</i>, 1<i><sup>st</sup></i> ed. Michigan, USA: McGraw-Hill, 1979.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000222&pid=S0120-6230201500040001000042&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 43. W. Deming, <i>Out of the Crisis</i>, 1<i><sup>st</sup></i><sup> </sup>ed. Massachusetts, USA: The Mit Press, 2000.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000224&pid=S0120-6230201500040001000043&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 44. A. Feigenbaum, <i>Total quality control: Achieving productivity, market   penetration and advantage in the global economy</i>, 4<i><sup>th </sup></i>ed. New York, USA: McGraw-Hill Education, 2005.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000226&pid=S0120-6230201500040001000044&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 45. International Organization for   Standardization (ISO), <i>Software engineering   - Product quality - Part 1: Quality Model, </i>ISO/IEC 9126-1:2001, 2001.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000228&pid=S0120-6230201500040001000045&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 46. B. Kitchenham, S. Linkman and D. Law, ''DESMET: a   methodology for evaluating software engineering methods and tools'', <i>Computing   &amp; Control Engineering Journal</i>, vol. 8, no. 3. pp. 120-126, 1997.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000230&pid=S0120-6230201500040001000046&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 47. E. Forman and S. Gass, ''The Analytic Hierarchy Process   - An Exposition'', <i>Oper. Res.</i>, vol. 49, no. 4, pp. 469-486, 2001.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000232&pid=S0120-6230201500040001000047&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 48. T. Saaty and K. Peniwati, <i>Group Decision Making:   Drawing Out and Reconciling Differences</i>, 1<i><sup>st</sup></i> ed. Pittsburgh, USA: RWS Publications, 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000234&pid=S0120-6230201500040001000048&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 49. R. Likert, ''A technique for the   measurement of attitudes'',&nbsp;<i>Archives   of psychology</i>, vol. 22, no. 140,   pp. 5-55, 1932.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000236&pid=S0120-6230201500040001000049&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 50. A. Sutcliffe, N. Maiden, S. Minocha and D. Manuel,   ''Supporting scenario-based requirements engineering'', <i>IEEE Transactions on</i> <i>Software Engineering, </i>vol. 24, no. 12, pp. 1072-1088, 1998.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000238&pid=S0120-6230201500040001000050&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 51. M. Paredes, G. Alor, A. Rodr&iacute;guez, R. Valencia and E.   Jim&eacute;nez, ''A systematic review of tools, languages, and methodologies for mashup   development'', <i>Softw. Pract. Exp.</i>, vol. 45, no. 3, pp. 365-397, 2015.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000240&pid=S0120-6230201500040001000051&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 52. L. Colombo, G. Alor, A. Rodr&iacute;guez and R. Colomo,   ''Alexandria: A Visual Tool for Generating Multi-device Rich Internet   Applications'', <i>J. Web Eng.</i>, vol. 12, no. 3-4, pp. 317-359, 2013.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000242&pid=S0120-6230201500040001000052&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 53. W. Galitz, <i>The Essential Guide to User Interface   Design: An Introduction to GUI Design Principles and Techniques</i>, 2<i><sup>nd</sup> </i>ed. Ed. New York, USA: John   Wiley &amp; Sons, Inc., 1997.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000244&pid=S0120-6230201500040001000053&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 54. International Organization for   Standardization (ISO), <i>Ergonomic   requirements for office work with visual display terminals (VDTs) - Part 11:   Guidance on usability,</i>&nbsp;ISO   9241-11:1998, 1998.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000246&pid=S0120-6230201500040001000054&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p> 55. A. Schilling, ''Toward A General Modular Systems Theory   and Its Application to Interfirm Product Modularity'', <i>Academy of Management   Review, </i>vol. 25, no. 2, pp. 312-334, 2000.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000248&pid=S0120-6230201500040001000055&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p> </font>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sommerville]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Sawyer]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Requirements engineering: a good practice guide]]></source>
<year>1997</year>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[John Wiley & Sons, Inc]]></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[Sommerville]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
</person-group>
<source><![CDATA[Software Engineering. International computer science series]]></source>
<year>2004</year>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley Longman Publishing Co., Inc]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Chaverra]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Una mirada conceptual a la generación automática de código]]></article-title>
<source><![CDATA[Rev. EIA. Esc. Ing. Antioq]]></source>
<year>2010</year>
<volume>13</volume>
<page-range>155-169</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kernighan]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Plauger]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Software tools in Pascal]]></source>
<year>1981</year>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kuhn]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[Selecting and effectively using a computer aided software engineering tool]]></source>
<year>1989</year>
<conf-name><![CDATA[ Annual Westinghouse computer symposium]]></conf-name>
<conf-loc> </conf-loc>
<publisher-loc><![CDATA[Pittsburgh ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Agner]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Soares]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Stadzisz]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Simão]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Brazilian survey on UML and model-driven practices for embedded software development]]></article-title>
<source><![CDATA[Journal of Systems and Software]]></source>
<year>2013</year>
<volume>86</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>997-1005</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pierucci]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Ranzi]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A review of features in current automatic generation software for hydrocarbon oxidation mechanisms]]></article-title>
<source><![CDATA[Comput. Chem. Eng]]></source>
<year>2008</year>
<volume>32</volume>
<page-range>4-5</page-range><page-range>805-826</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Anand]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An Orchestrated Survey of Methodologies for Automated Software Test Case Generation]]></article-title>
<source><![CDATA[J. Syst. Softw]]></source>
<year></year>
<volume>86</volume>
<numero>8</numero>
<issue>8</issue>
<page-range>1978-2001</page-range></nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Novais]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Torres]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Mendes]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Mendonça]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Zazworka]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Software evolution visualization: A systematic mapping study]]></article-title>
<source><![CDATA[Inf. Softw. Technol]]></source>
<year>2013</year>
<volume>55</volume>
<numero>11</numero>
<issue>11</issue>
<page-range>1860-1883</page-range></nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Thomas]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Adams]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Hassan]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Blostein]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Studying software evolution using topic models]]></article-title>
<source><![CDATA[Sci. Comput. Program]]></source>
<year>2014</year>
<volume>80</volume>
<page-range>457-479</page-range></nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kanewala]]></surname>
<given-names><![CDATA[U]]></given-names>
</name>
<name>
<surname><![CDATA[Bieman]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Testing Scientific Software: A Systematic Literature Review]]></article-title>
<source><![CDATA[Inf. Softw. Technol]]></source>
<year>2014</year>
<volume>56</volume>
<numero>10</numero>
<issue>10</issue>
<page-range>1219-1232</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Magdaleno]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Werner]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Araujo]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Reconciling software development models: A quasi-systematic review]]></article-title>
<source><![CDATA[J. Syst. Softw]]></source>
<year>2012</year>
<volume>85</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>351-369</page-range></nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mehmood]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Jawawi]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Aspect-oriented model-driven code generation: A systematic mapping study]]></article-title>
<source><![CDATA[Inf. Softw. Technol]]></source>
<year>2013</year>
<volume>55</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>395-411</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[Alonso]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Pastor]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Sánchez]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Álvarez]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Vicente]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Generación Automática de Software para Sistemas de Tiempo Real: Un Enfoque basado en Componentes, Modelos y Frameworks]]></article-title>
<source><![CDATA[Rev. Iberoam. Automática e Informática Ind. RIAI]]></source>
<year>2012</year>
<volume>9</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>170-181</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[Yang]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Vyatkin]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
<name>
<surname><![CDATA[Pang]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Model-Driven Development of Control Software for Distributed Automation: A Survey and an Approach]]></article-title>
<source><![CDATA[IEEE Transactions on Systems, Man, and Cybernetics: Systems]]></source>
<year>2014</year>
<volume>44</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>292-305</page-range></nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Liao]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Jiang]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Zhang]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<source><![CDATA[A Study of Automatic Code Generation]]></source>
<year>2010</year>
<conf-name><![CDATA[ 2010 International Conference on Computational and Information Sciences (ICCIS)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>689-691</page-range><publisher-loc><![CDATA[Chengdu ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jiménez]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Piattini]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Problems and Solutions in Distributed Software Development: A Systematic Review]]></source>
<year>2008</year>
<conf-name><![CDATA[2nd International Conference on Software Engineering Approaches for Offshore and Outsourced Development]]></conf-name>
<conf-loc> </conf-loc>
<page-range>107-125</page-range><publisher-loc><![CDATA[Zurich ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Seo]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
<name>
<surname><![CDATA[Song]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<source><![CDATA[A Study on Automatic Code Generation Tool from Design Patterns Based on the XMI]]></source>
<year>2006</year>
<conf-name><![CDATA[ 2006 International Conference on Computational Science and Its Applications (ICCSA)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>864-872</page-range><publisher-loc><![CDATA[Glasgow ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Andersson]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Höst]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[UML and SystemC - A Comparison and Mapping Rules for Automatic Code Generation]]></article-title>
<source><![CDATA[Embedded Systems Specification and Design Languages]]></source>
<year>2008</year>
<page-range>199-209</page-range><publisher-loc><![CDATA[Amsterdam ]]></publisher-loc>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Urwiler]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Ramarapu]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Wilkes]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Frolick]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Computer-aided software engineering: The determinants of an effective implementation strategy]]></article-title>
<source><![CDATA[Inf. Manag]]></source>
<year>1995</year>
<volume>29</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>215-225</page-range></nlm-citation>
</ref>
<ref id="B21">
<label>21</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jing]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Research on computer-aided prototyping system and software evolution]]></article-title>
<source><![CDATA[J. Zhejiang Univ. Sci. A]]></source>
<year>2000</year>
<volume>1</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>384-387</page-range></nlm-citation>
</ref>
<ref id="B22">
<label>22</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sairaman]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
<name>
<surname><![CDATA[Ranganathan]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Singh]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<source><![CDATA[An automatic code generation tool for partitioned software in distributed systems]]></source>
<year>2006</year>
<conf-name><![CDATA[19th International Conference on VLSI Design. Held jointly with 5th International Conference on Embedded Systems and Design]]></conf-name>
<conf-loc> </conf-loc>
<page-range>477-480</page-range><publisher-loc><![CDATA[Hyderabad ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B23">
<label>23</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gavilanes]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Martín]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Torres]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[A Tool for Automatic Code Generation from Schemas]]></source>
<year>2009</year>
<conf-name><![CDATA[9th International Conference on Computational Science (ICCS)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>63-73</page-range><publisher-loc><![CDATA[Baton Rouge ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B24">
<label>24</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Erdogan]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[McFarr]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Maglidt]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[EDEN: an integrated computer-aided software engineering environment]]></source>
<year>1989</year>
<conf-name><![CDATA[8th Annual International Phoenix Conference on Computers and Communications]]></conf-name>
<conf-loc> </conf-loc>
<page-range>349-353</page-range><publisher-loc><![CDATA[Scottsdale ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B25">
<label>25</label><nlm-citation citation-type="">
<collab>Visual Paradigm International</collab>
<source><![CDATA[Company]]></source>
<year>Jan.</year>
<month> 2</month>
<day>0,</day>
</nlm-citation>
</ref>
<ref id="B26">
<label>26</label><nlm-citation citation-type="">
<collab>PowerDesigner</collab>
<source><![CDATA[SAP Sybase PowerDesigner 16.5]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B27">
<label>27</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Maguire]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[McGinnity]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[McDaid]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Issues in the development of an integrated environment for embedded system design: Part B: design and implementation]]></article-title>
<source><![CDATA[Microprocess. Microsyst]]></source>
<year>1999</year>
<volume>23</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>199-206</page-range></nlm-citation>
</ref>
<ref id="B28">
<label>28</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Childs]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Cadena: An Integrated Development Environment for Analysis, Synthesis]]></source>
<year>2004</year>
<conf-name><![CDATA[7th International Conference on Fundamental Approaches to Software Engineering]]></conf-name>
<conf-loc> </conf-loc>
<page-range>160-164</page-range><publisher-loc><![CDATA[Barcelona ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B29">
<label>29</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jarvensivu]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Kosola]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Kuusipalo]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Reijula]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Mikkonen]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<source><![CDATA[Developing an Open Source Integrated Development Environment for a Mobile Device]]></source>
<year>2006</year>
<conf-name><![CDATA[ International Conference on Software Engineering Advances (ICSEA)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>55</page-range><publisher-loc><![CDATA[Tahiti ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B30">
<label>30</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Viana]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[Andrade]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[XMobile: A MB-UID environment for semi-automatic generation of adaptive applications for mobile devices]]></article-title>
<source><![CDATA[J. Syst. Softw]]></source>
<year>2008</year>
<volume>81</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>382-394</page-range></nlm-citation>
</ref>
<ref id="B31">
<label>31</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kuntsche]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Barz]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Kraus]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Arellano]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Wozny]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[MOSAIC a web-based modeling environment for code generation]]></article-title>
<source><![CDATA[Comput. Chem. Eng]]></source>
<year>2011</year>
<volume>35</volume>
<numero>11</numero>
<issue>11</issue>
<page-range>2257-2273</page-range></nlm-citation>
</ref>
<ref id="B32">
<label>32</label><nlm-citation citation-type="">
<collab>JetBrains</collab>
<source><![CDATA[IntelliJ IDEA, The Most Intelligent Java IDE]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B33">
<label>33</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Elwahidi]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Merlo]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<source><![CDATA[Generating user interfaces from specifications produced by a reverse engineering process]]></source>
<year>1995</year>
<conf-name><![CDATA[2nd Working Conference on Reverse Engineering]]></conf-name>
<conf-loc> </conf-loc>
<page-range>292-298</page-range><publisher-loc><![CDATA[Toronto ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B34">
<label>34</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Guyon]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Moreau]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Reilles]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An Integrated Development Environment for Pattern Matching Programming]]></article-title>
<source><![CDATA[Electron. Notes Theor. Comput. Sci]]></source>
<year>2004</year>
<volume>107</volume>
<page-range>33-49</page-range></nlm-citation>
</ref>
<ref id="B35">
<label>35</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Alonso]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Vicente]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Sánchez]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Álvarez]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Losilla]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<source><![CDATA[Automatic Ada Code Generation Using a Model-Driven Engineering Approach]]></source>
<year>2007</year>
<conf-name><![CDATA[12th Ada-Europe International Conference on Reliable Software Technologies]]></conf-name>
<conf-loc> </conf-loc>
<page-range>168-179</page-range><publisher-loc><![CDATA[Geneva ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B36">
<label>36</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Frederick]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Bond]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Tilley]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[VULCAN: A Tool for Automatically Generating Code from Design Patterns]]></source>
<year>2008</year>
<conf-name><![CDATA[2nd Annual IEEE Systems Conference]]></conf-name>
<conf-loc> </conf-loc>
<page-range>1-4</page-range><publisher-loc><![CDATA[Montreal ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B37">
<label>37</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Danilchenko]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<source><![CDATA[Automatic Code Generation Using Artificial Intelligence]]></source>
<year>2012</year>
<publisher-loc><![CDATA[Kentucky ]]></publisher-loc>
<publisher-name><![CDATA[Northern Kentucky University]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B38">
<label>38</label><nlm-citation citation-type="">
<collab>Adobe</collab>
<source><![CDATA[Adobe Dreamweaver CC]]></source>
<year>2015</year>
</nlm-citation>
</ref>
<ref id="B39">
<label>39</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mccall]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Richards]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Walters]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[Factors in Software Quality: Concept and Definitions of Software Quality]]></source>
<year>1977</year>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[Air Force Systems Command, Rome Air Development Center]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B40">
<label>40</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Boehm]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Brown]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Lipow]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Quantitative Evaluation of Software Quality]]></source>
<year>1976</year>
<conf-name><![CDATA[2nd International Conference on Software Engineering]]></conf-name>
<conf-loc> </conf-loc>
<publisher-loc><![CDATA[Los Alamitos ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B41">
<label>41</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dromey]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Cornering the chimera]]></article-title>
<source><![CDATA[IEEE Softw]]></source>
<year>1996</year>
<volume>13</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>33-43</page-range></nlm-citation>
</ref>
<ref id="B42">
<label>42</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Crosby]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Quality is Free: The Art of Making Quality Certain]]></source>
<year>1979</year>
<publisher-name><![CDATA[McGraw-Hill]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B43">
<label>43</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Deming]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<source><![CDATA[Out of the Crisis]]></source>
<year>2000</year>
<publisher-loc><![CDATA[Massachusetts ]]></publisher-loc>
<publisher-name><![CDATA[The Mit Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B44">
<label>44</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Feigenbaum]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Total quality control: Achieving productivity, market penetration and advantage in the global economy]]></source>
<year>2005</year>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[McGraw-Hill Education]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B45">
<label>45</label><nlm-citation citation-type="">
<collab>International Organization for Standardization (ISO)</collab>
<source><![CDATA[Software engineering - Product quality - Part 1: Quality Model]]></source>
<year>2001</year>
</nlm-citation>
</ref>
<ref id="B46">
<label>46</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kitchenham]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Linkman]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Law]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[DESMET: a methodology for evaluating software engineering methods and tools]]></article-title>
<source><![CDATA[Computing & Control Engineering Journal]]></source>
<year>1997</year>
<volume>8</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>120-126</page-range></nlm-citation>
</ref>
<ref id="B47">
<label>47</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Forman]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Gass]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The Analytic Hierarchy Process - An Exposition]]></article-title>
<source><![CDATA[Oper. Res]]></source>
<year>2001</year>
<volume>49</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>469-486</page-range></nlm-citation>
</ref>
<ref id="B48">
<label>48</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Saaty]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Peniwati]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
</person-group>
<source><![CDATA[Group Decision Making: Drawing Out and Reconciling Differences]]></source>
<year>2008</year>
<publisher-loc><![CDATA[Pittsburgh ]]></publisher-loc>
<publisher-name><![CDATA[RWS Publications]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B49">
<label>49</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Likert]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A technique for the measurement of attitudes]]></article-title>
<source><![CDATA[Archives of psychology]]></source>
<year>1932</year>
<volume>22</volume>
<numero>140</numero>
<issue>140</issue>
<page-range>5-55</page-range></nlm-citation>
</ref>
<ref id="B50">
<label>50</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sutcliffe]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Maiden]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Minocha]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Manuel]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Supporting scenario-based requirements e ngineering]]></article-title>
<source><![CDATA[IEEE Transactions on Software Engineering]]></source>
<year>1998</year>
<volume>24</volume>
<numero>12</numero>
<issue>12</issue>
<page-range>1072-1088</page-range></nlm-citation>
</ref>
<ref id="B51">
<label>51</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Paredes]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Alor]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Rodríguez]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Valencia]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Jiménez]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A systematic review of tools, languages, and methodologies for mashup development]]></article-title>
<source><![CDATA[Softw. Pract. Exp]]></source>
<year>2015</year>
<volume>45</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>365-397</page-range></nlm-citation>
</ref>
<ref id="B52">
<label>52</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Colombo]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Alor]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Rodríguez]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Colomo]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Alexandria: A Visual Tool for Generating Multi-device Rich Internet Applications]]></article-title>
<source><![CDATA[J. Web Eng]]></source>
<year>2013</year>
<volume>12</volume>
<numero>3-4</numero>
<issue>3-4</issue>
<page-range>317-359</page-range></nlm-citation>
</ref>
<ref id="B53">
<label>53</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Galitz]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<source><![CDATA[The Essential Guide to User Interface Design: An Introduction to GUI Design Principles and Techniques]]></source>
<year>1997</year>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[John Wiley & Sons, Inc]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B54">
<label>54</label><nlm-citation citation-type="">
<collab>International Organization for Standardization (ISO</collab>
<source><![CDATA[Ergonomic requirements for office work with visual display terminals (VDTs) - Part 11: Guidance on usability]]></source>
<year>1998</year>
</nlm-citation>
</ref>
<ref id="B55">
<label>55</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Schilling]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Toward A General Modular Systems Theory and Its Application to Interfirm Product Modularity]]></article-title>
<source><![CDATA[Academy of Management Review]]></source>
<year>2000</year>
<volume>25</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>312-334</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
