Transformation Architecture For Multi-Layered Webapp Source Code Generation
Transformation Architecture For Multi-Layered Webapp Source Code Generation
ABSTRACT The evolution of Web technologies leads to software premature obsolescence requiring
technology-independent representations to increase the reuse rates during the development process. They
also require integration into service-oriented architectures to exchange information with different Web
systems supporting runtime interoperability. Web Applications (WebApps) run on devices with different
capabilities and limitations increasing the complexity of the development process. To address these chal-
lenges, different proposals have emerged to facilitate the development of WebApps, which is still an open
research field with many challenges to address. This paper presents a model transformation architecture
based on software standards to automatically generate full stack multi-layered WebApps covering Persis-
tence, Service, and Presentation layers. This transformation architecture also generates the set of test cases
to test WebApp business logic. The proposed transformation architecture only requires a UML platform-
independent class model as an input to generate fully functional Web applications in a three-tier architecture
including the three layers, while most proposals focus on the generation of the Presentation layer. In addition,
this architecture employs software industry standards to enable an easy integration into third-party tools and
development environments. The transformation Architecture proposed has been empirically validated on the
case study of a fully functional travel management WebApp that is generated using a UML class diagram
employing a third-party tool integrated into the same integrated development environment.
INDEX TERMS Software product lines, computer-aided software engineering, client-server systems.
This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/
VOLUME 10, 2022 5223
R. Tesoriero et al.: Transformation Architecture for Multi-Layered WebApp Source Code Generation
technology obsolescence decoupling the WebApp Platform the most relevant related works in the research area. Finally,
Independent Model (PIM) defined by a UML class model Section VII presents the conclusions and future works.
[5], [6] from the source code defining the Platform Spe-
cific Model (PSMs) generated by the model transformation II. RELATED WORKS
architecture; and (c) the heterogeneity of Web technologies This section presents existing approaches in this research
employing different model transformations according to the field, with the purpose of identifying the main shortcomings
layer target technology. As a consequence of adopting this and the research gap and provide a better understanding on
approach, from the WebApp technological perspective, the how the proposed solution addresses the shortcomings. Later,
same WebApp UML class diagram can be reused as an input in section VI we present a table with a comparison of the
of different transformation architectures to generate differ- main features of each proposal to highlight the main differ-
ent Persistence, Test, Web service and Presentation layers ences with respect to the approach presented in this paper.
deployment configurations. In WSGUI [21] and Dynvoker [22] employ Web service
For instance, the Persistence layer could employ a rela- annotations in WSDL [23] or WADL [24] to derive initial
tional database management system such as MySQL [7], versions of UIs that are manually refined to obtain fully
PostgreSQL [8], SqlServer [9], etc. using the SQL query lan- functional WebApps. The annotation concept was improved
guage to access database information; or could employ a non- in [25], where authors propose an integrated modelling
relational management systems such as the MongoDB [10] approach for the task-driven development of interactive
using the JSON format pattern to access database informa- service-oriented applications which introduces annotations
tion. The Test layer could be implemented using different Test as part of the Web service description covering the semi-
frameworks such as PHPUnit [11] or Mocha [12]. automatic generation of task models and UIs following the
The Web service layer providing access to the Persistence OMG MDA standard. However, this approach does not cover
layer from the Presentation layer and third-party applica- the generation of WebApp persistence or business logic lay-
tions in SOA environments could employ a ReST architec- ers, or any tool support.
ture [1] or a SOAP specification [2] implementation. And The importance of using models to improve WebApp
the Presentation layer representing the WebApp UI could development process in analyzed in [26] where authors
employ a server-side rendering approach using JavaServer present the preliminary study results of a prototype archi-
Pages (JSP) [13], PHP [14] or JavaServer Faces (JSF) [15]; tecture created with the purpose of using a domain-driven
or a client-side rendering approach using AngularJS [16] approach to shorten the development of software projects.
or Vue.js [17]. Even using the same rendering strategy, The modeling of conceptual, navigational, and user interface
different implementation alternatives could be used; for features of WebApps can be derived from UML profiles as
instance, to render client-side Web pages the Material [18] exposed in [27]. The use of UML Profiles to derive WebApps
or Polymer [19] UI frameworks can be used. following a model-driven development approach is employed
The consequence from the software development perspec- in [28], where authors propose a UML profile for modeling
tive is the easy integration with third party tools following WebApps at the Platform Specific Model (PSM) level to
the OMG MDA standards such as the Eclipse Integrated derive Servlets, JSP pages, and Java source code templates.
Development Environment (IDE) [20] which provides devel- The proposal presented in [29] defines a component-centric
opers with a set of software technologies supporting model UML profile for modeling WebApps that use ASP, JSP, PHP,
definition, and both, model-to-model (M2M) and model-to- Servlets, and JavaBeans technologies. Other proposals, such
text (M2T) transformation definition and execution. as [30], employ UML Profiles for Web 2.0 mashups using
To fulfil these requirements, this article presents a set of map and Web feed services; and [31] employ them for the
Eclipse IDE plugins enabling analysts, designers, and devel- generation of Google App Engine applications. However,
opers to generate multi-layered Web systems source code none of these proposals generate the persistence layer nor
(i.e. Presentation, Web service, Test, and Persistence layers) provide supporting tools following OMG MDA standards.
from UML class models employing a Model-driven Devel- The proposal presented in [32] presents a UML profile for
opment (MDD) approach using a transformation architecture AngularJS to build models of AngularJS WebApps, and a
following OMG MDA standards. set of transformations that transform the model into a code
The rest of the paper is structured in the following sec- template following OMG MDA standards. However, this
tions. Section II presents existing approaches in this research approach does not cover the generation of WebApp persis-
field and highlights the research gaps that our proposal aims tence layer; instead it generates mock-ups. The generation of
to address. Section III describes the process to generate WebAPIs to provide runtime interoperability is also another
WebApps using the proposed transformation architecture. missing feature of this approach.
The set of M2M and M2T transformation rules are explained Other approaches employ different types of models, such
in Section IV. The validation of the proposal as a result of as the authors of [33] that fuse Workflow, Web 2.0, SOA
applying these transformations in the case study of a Travel and WS-BPEL to create a distributed computing environment
Management WebApp is presented in Section V. Section VI (ACtive E-commerce Framework called ACEF) to create an
presents a discussion where this proposal is compared to inter-operable infrastructure that leverage the migration code
to support multi-platform web service mobile applications. The lack of design-time interoperability is mainly due to
However, it lacks model interoperability, or tool support the failure to follow OMG standards to enable third-party tool
because it does not follow any standard to provide software integration and application communication. For example, the
development integration. proposal presented in this article uses Eclipse Papyrus IDE to
An interesting proposal where authors employ a cloud generate UML class models that are used by model transfor-
platform spreadsheet to create WebApps is [34]. However, mations to generate the application source code.
it generates monolithic applications limiting the WebApp On the other hand, the lack of interoperability at run-time
technology customization versatility (i.e. persistence, web is due to the absence of a Web service layer to access the
service, and presentation technologies). information stored in the application database through a stan-
The authors of [35] define an MDA to generate UIs for the dard external interface (e.g. ReST using JSON) limiting the
Android platform based on a UML class diagram. In [36], ability to interact with other applications in a service oriented
authors present a proposal for high-quality code generation architecture (SOA) scenario. A direct consequence of this
for low-cost mobile phones. A proposal that envisages the lack of interoperability is the inability to deploy ’responsive’
creation of Rich Internet Applications (RIAs) that are visually Web applications with rendering in the Web client.
appealing and ‘‘responsive’’ is presented in [37]. From the One of the advantages of the solution proposed in compari-
point of view of the MDD process, authors of [38] present a son with using DSLs or dedicated UML profiles is that we use
MDA-based development process to generate the source code the well-known OMG standard UML class diagrams as a DSL
of applications for the Android platform. for the proposed transformation architecture input parameter,
An interesting DSL proposal for the development of Web lowering the learning curve of developers preventing them
applications that defines a Computation Independent Model from learning a new DSL to model the system to be generated.
(CIM), a Platform Independent Model (PIM), and a Platform However, our approach lacks the semantic expressiveness that
Specific Model (PSM) is presented in the [39]. However, this might be provided by DSLs or dedicated UML profiles which
proposal is a work in progress and it currently presents no would provide a higher level of customisation of the gener-
evidence of generating the source code for multi-layer Web ated code (e.g. customized labels, input constraints, etc.).
applications. To sum up, the main limitations found in existing proposals
A proposal based on the definition of a set of transfor- are that some of them does not cover the three layers, others
mations and DSLs that generate the source code of Web does not comply with international standards, and others lack
applications for language learning using a MDA approach is of multi-layer integration. Other of the main limitations of
presented in [40] and [41]. existing proposals compared to the one presented in this
Some proposals employ automatic source code generation article is the lack of interoperability at both design-time and
to develop advanced UI configurations, such as distributable run-time. The proposal we present addresses these limitations
user interfaces [42], is presented in [43]. An example of in an integrated way, generating the three layers (presentation,
using MDD to generate this type of UIs in the education web service and persistence, and an additional test case layer)
domain is presented in [44]. However, these proposals are as we show in the next sections.
limited to the generation of the presentation layer source
code only. They do not generate any source code for the data III. OVERVIEW OF THE TRANSFORMATION
access or Web services layers. Unlike this proposal, the lack ARCHITECTURE
of a comprehensive solution does not enable the automatic The development process of the transformation architecture
generation of the association between layers. defines a set of M2M and M2T transformations to generate
A proposal that uses MDA to generate source code using the source code for each layer of the WebApp to be developed
a Model-View View-Model (MVVM) architecture for Win- (i.e. Presentation, Web services, and Persistence layers as
dows Phone application development is presented in [45]. well as a set of Test cases to check Persistence layer).
Another proposal that addresses a similar problem to the While the M2T transformations have been implemented
one proposed in this article is presented in [46]. This proposal in ACCELEO [49], the M2M transformations have been
presents a transformation model to generate a PSM from a developed in ATL [50], [51].
PIM based on a UML class diagram. It generates a single Figure 1 depicts a simplified overview of the model trans-
XML file containing the application specification for the PHP formation architecture proposed to develop multi-layered
CodeIgniter framework [47]. WebApps using a single UML class model as the transfor-
A proposal that combines class and sequence UML dia- mation input to generate Persistence, Web service, Presenta-
grams for an application to build MVC Web applications is tion, and Test case source code. This development process is
presented in [48]. based on five model transformations which are depicted in
While these proposals generate source code for the data the diagram using blue rectangles. Note that the generation
access and presentation layers, they do not generate Web of the WebApp source code requires the generation of an
service layer source code. The main disadvantage of existing intermediate model in TagML to generate the system UI.
proposals compared to the one presented in this article is the While four of these transformations are M2T transforma-
lack of interoperability at both design-time and run-time. tions that generate the WebApp source code for different
layers, the M2M transformation is defined to generate the persistence framework [57] to generate the MySQL database
presentation model in TagML [52]. Besides, three of the four schema and the PHP classes required to manipulate this
M2T transformations and the M2M transformation employ information in an XML file (i.e., schema.xml).
the UML class PIM of the WebApp to be developed as input The test cases code employs the PHPUnit framework [11],
parameter. This UML class model is generated using the which is responsible for testing the create, read, delete, and
Eclipse Papyrus [53] plugin for the Eclipse IDE which proves update (CRUD) records functions for the database, as well as
how this proposal can be easily integrated with third-party the management of the associations between objects imple-
tools. mented by the PHP classes generated by the first transfor-
Therefore, this model can also be created or manipu- mation that employs the Propel framework to manage table
lated using a third-party tool with the following OMG MDA relationships. All test cases are generated in a single PHP
standards: UML [54], XML Model Interchange (XMI) for- script file containing a test case generated for each PHP class.
mat [55], and Meta-Object Facility (MOF) [56]. Although
strictly speaking the remaining M2T transformation does B. WEB SERVICE LAYER
not use the UML class model as an input model directly, The remaining M2T transformation that directly takes the
it indirectly uses it because it is a model generated by the UML class model as an input parameter generates the Web
M2M transformation that takes UML class model as an input service layer code to access the system database through the
parameter. persistence layer. The generated Web services follow a Rep-
From a technological perspective, while the generated resentational State Transfer (ReST) [1] service architecture
WebApp employs MySQL as the relational database manager implemented in PHP that uses the CRUD functions of the
for the system and PHP [14] as scripting language on the persistence layer.
server side of the application, HTML and JavaScript are used The result of this transformation is a PHP file for each class
on the client side. In addition, the generated WebApps use that relates the HTTP [58] request types defined in the ReST
XML to render the configuration files. API to the set of operations for each class in the persistence
layer. The set of generated classes, in addition to implement
A. PERSISTENCE LAYER CRUD functions, implement the skeleton of the operations
The persistence layer code is generated by two M2T trans- defined in the UML class model, as well as all the functions
formations that take a UML class model as an input. While responsible for implementing associations between classes;
the first transformation generates the code responsible for for example, adding or removing an item from a multi-valued
manipulating the information contained in the database, the property, and assigning an instance of a class to a property and
second transformation generates the test cases code to check reflecting it in the database through the persistence layer.
the code generated by the first transformation. In order to relate class operations to the persistence layer
The generated code that manipulates the database infor- function, the script.php file defines a set of high-level
mation employs the Propel object to relational database functions called from the generated ReST API methods.
5226 VOLUME 10, 2022
R. Tesoriero et al.: Transformation Architecture for Multi-Layered WebApp Source Code Generation
FIGURE 2. Meta navigation of the Web system UI including the CRUD management of class instances, one-to-one,
one-to-many and many-to-many relationships.
Therefore, this file functions play the role of Mediator [59] list of available instances that can be associated, and the list
between HTTP requests and persistence layer functions. of those instances that are already associated. The implemen-
tation of this Web component relies on the functionality of
C. PRESENTATION LAYER the data-binding feature provided by the Polymer framework
The M2M transformation that generates the presentation to manage table relationships in relational databases.
layer code (i.e., WebApp UI) renders the data accessed form The last UI generated Web component displays a Web
the Web services layer generated by the M2T transforma- form to add new instances to the database. This component
tion mentioned in the previous section. The result of this is accessed when users click on ‘‘Add’’ button in the Web
transformation generates a TagML model that is passed as component that displays the list of instances.
input parameter to the M2T transformation generating the An overview of the navigation pattern through all Web
presentation layer source code that defines the Implementa- components of the system is depicted on the meta-navigation
tion Specific Model (ISM) of the system (i.e., a PSM that is diagram in Figure 2.
specific for a particular representation). Finally, the information required by Web components
The generated code uses the version 2.0 of the Polymer is accessed through Web service layers. The connection
framework [19] to render the application UI. This framework between the Web services and requests from the UI is carried
implements a Web component-oriented language in XML to out automatically, there is no need to modify the generated
render the client UI. source code (except for customization purposes).
The application UI defines a Web component as the
Web system main menu (or home page) where users access D. DEPLOYMENT
instances of any class in the UML model. In addition, for each Due to the complexity of the development process, transfor-
class in the UML model, a Web component is generated to mations automatically generate a set of scripts to relate and
display the list of instances stored in the database. Each item configure all layers of generated Web applications. These
in the list displays the primary key for each instance in order configuration scripts are generated for the Bower package
to provide a standard identification (i.e., the name property manager [60] which is used to deploy the generated Web
value of the class instance it represents). system.
Users access a Web component to view, or modify, class
instance attributes containing primitive type values stored IV. TRANSFORMATION DEFINITIONS
into the database. This section introduces the method based on the architecture
The UI to manipulate one-to-many associations presents presented in Section III to generate WebApp source code.
the list of class instances owned by association owner. Thus,
users access these instances by clicking on the item in the list A. PERSISTENCE LAYER TRANSFORMATION RULES
that represents it. The Persistence M2T transformation defines a set of trans-
The manipulation of many-to-many associations requires formation rules to transform UML class model elements
the generation of a different Web components where cross- (i.e., classes, properties, and associations) into relational
instance associations are set through two lists showing the database schema elements (i.e. tables, attributes, and
C. QUALITATIVE EVALUATION
The transformation definition that generates the UI capable This section exposes a qualitative evaluation of the results of
of associating and disassociating class instances is explained applying the proposed transformation architecture develop-
in Section IV-D3. The result of applying these transformation ment process to the case study.
rules is depicted in Figure 7 and Figure 8, which show the UIs Table 1 presents the results of running the process proposed
generated for the many-to-many relationship between Trip in Section III applying the transformation rules to the case
and Agency UML classes. While Figure 7 depicts the panel study which UML class diagram is depicted in Figure 4.
to manage instance associations from the Trip UI, Figure 8 From the efficiency point of view, once the model trans-
depicts the panel to manage instance associations from the formations are implemented, the applications development
Agency UI. time is limited to UML class diagram design because it is
incomparable to the time required by the code generation
B. THE ‘‘ADD TRIP’’ TASK PERFORMANCE process.
This section explains how the ‘‘Add Trip’’ task is performed Assuming model transformations are fully implemented
through the multi-layer WebApp generated by the model and tested, the effectiveness of the generated Web applica-
transformation architecture. Figure 9 shows an overview of tion is higher compared to a traditional development process
the execution sequence for ‘‘Add trip’’ task where users are because it is less prone to errors. The main reason behind
Another limitation is that the generation of the Persistence ensuring a great interoperability at design-time as well as and
Layer currently only supports the Relational Database Man- optimal integration with third-party tools. As a demonstration
agement System (DBMS), concretely, MySQL. In addition, of the integration capability of the developed tools, they are
the generation of the Web service layer has been developed integrated into the Eclipse integrated development environ-
to support only ReST services using JSON. ment using the Eclipse Papyrus plugin to define the UML
The last limitation regards the generation of the Presenta- class model representing the application to be developed and
tion layer, which only supports Polymer and JavaScript. used as input parameter of model transformations.
Another issue that demonstrates the integration capability
VII. CONCLUSION of the proposal is the use of a M2M transformation that
This proposal defines a MDA based transformation archi- generates a TagML model, rather than a single M2T transfor-
tecture that supports the MDD framework for the automatic mation that generates text, simplifying the XML document
generation of three-layer WebApps (i.e., Persistence, Web generation process while ensuring its robustness.
services, and Presentation layers) following OMG standards. A case study presenting how the proposed model trans-
To meet this goal, a set of three M2T transformations is formation architecture is used to validate the proposal
presented in ACCELEO as well as a M2M transformation in and develop the multi-layer Travel Agency Management
ATL that guide the development process using a single UML WebApp. This case study shows how the transformation rules
class model as input parameter. generate the WebApp source code using a UML Class model
The generated applications employ a client-server architec- as a transformation input parameter. In addition, this case
ture where the server-side of the system is in PHP and client- study presents how the generated source code interact with
side in HTML and JavaScript. The resulting applications the Persistence, Web Service and Presentation layers of the
implement a persistence layer with the Propel framework as application to perform the ‘‘Add Trip’’ task.
an Object Relational Mapping (ORM) broker for the MySQL Finally, several research lines are open as future works. The
DBMS. In addition, these applications are equipped with a first of them is the development of model transformations to
Web service layer that defines an API following a ReST enable the use of different technologies associated to differ-
service architecture using JSON. This layer communicates ent application layers. For example, in the persistence layer,
with the Persistence layer so that the generated application we consider the definition of a transformation to generate the
has a high interoperability capability with third-party run- source code required to replace relational database manage-
time systems. In turn, the generated applications define a ment system by a non-relational database manager (NoSQL)
presentation layer implemented with the Polymer framework such as MongodDB.
that connects to the Web service layer to access the system We are also exploring the ability to generate a
database. SOAP-based Web services layer that employs XML, instead
From a development point of view, the set of tools pre- of JSON, to improve the system interoperability at run-time,
sented in this proposal follows the OMG MDA standards e.g. to communicate with legacy systems. Moreover, we are
considering the development of model transformations [27] S. A. Mubin and A. H. Jantan, ‘‘A UML 2.0 profile web design frame-
that use different technologies for the presentation layer work for modeling complex web application,’’ in Proc. 6th Int. Conf. Inf.
Technol. Multimedia, Nov. 2014, pp. 324–329.
(e.g. AngularJS). In addition, we are also exploring the [28] Y.-C. Huang, C.-P. Chu, Z.-A. Lin, and M. Matuschek, ‘‘Transformation
feasibility of generating source code for different mobile from web PSM to code,’’ in Proc. Int. Conf. Distrib. Multimedia Syst.
platforms, such as Android or iOS. (DMS), 2009, pp. 1–4.
[29] M. Kataria, R. Yadav, and A. Khunteta, ‘‘A component-centric UML based
approach for modeling the architecture of web applications,’’ Int. J. Recent
REFERENCES Res. Rev., vol. 5, pp. 22–27, Mar. 2013.
[1] R. T. Fielding, ‘‘ReST: Architectural styles and the design of network- [30] I.-C. Hsu, ‘‘Visual modeling for web 2.0 applications using model driven
based software architectures,’’ Ph.D. dissertation, Dept. Inf. Comput. Sci., architecture approach,’’ Simul. Model. Pract. Theory, vol. 31, pp. 63–76,
Univ. California, Irvine, CA, USA, 2000. Feb. 2013.
[2] D. Box, D. Ehnebuske, G. Kakivaya, A. Layman, N. Mendelsohn, [31] S. Kaewkao and T. Senivongse, ‘‘A model-driven development of web-
H. Nielsen, S. Thatte, and D. Winer. (2000). Simple Object Access based applications on Google app engine platform,’’ in Proc. 10th Nat.
Protocol (SOAP) 1.1. Accessed: Dec. 01, 2021. [Online]. Available: Conf. Comput. Inf. Technol. (NCCIT), 2014, pp. 140–145.
http://www.w3.org/TR/soap [32] W. Chansuwath and T. Senivongse, ‘‘A model-driven development of web
[3] Object Management Group (OMG). Accessed: Dec. 01, 2021. [Online]. applications using AngularJS framework,’’ in Proc. IEEE/ACIS 15th Int.
Available: http://www.omg.org Conf. Comput. Inf. Sci. (ICIS), Jun. 2016, pp. 1–6.
[4] S. J. Mellor, S. Kendall, A. Uhl, and D. Weise, MDA Distilled. Reading, [33] V. D. Pillai, ‘‘Development of a novel software architecture for active
MA, USA: Addison-Wesley, 2004. internet applications based on fusion of mobile agent, web services and
[5] J. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling Language BPEL technologies,’’ in Proc. IEEE Int. Conf. Web Services, Jul. 2010,
Reference Manual, 2nd ed. London, U.K.: Pearson, 2004. pp. 652–653.
[6] M. Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling [34] K. Shiohara and X. Chen, ‘‘A concept of extending spreadsheet cell
Language, 3rd ed. Reading, MA, USA: Addison-Wesley, 2003. functions for web application development based on a cloud platform,’’ in
[7] Oracle. MySQL. Accessed: Dec. 01, 2021. [Online]. Available: https:// Proc. IEEE Workshop Adv. Res. Technol. Ind. Appl. (WARTIA), Sep. 2014,
www.mysql.com/ pp. 1362–1365.
[8] PostgreSQL. Accessed: Dec. 01, 2021. [Online]. Available: https:// [35] A. Sabraoui, M. E. Koutbi, and I. Khriss, ‘‘GUI code generation for
www.postgresql.org/ Android applications using a MDA approach,’’ in Proc. IEEE Int. Conf.
[9] Microsoft. SQLServer. Accessed: Dec. 01, 2021. [Online]. Available: Complex Syst. (ICCS), Nov. 2012, pp. 1–6.
https://www.microsoft.com/es-es/sql-server [36] M. Lettner and M. Tschernuth, ‘‘Applied MDA for embedded devices:
[10] MongoDB. Accessed: Dec. 01, 2021. [Online]. Available: https://www. Software design and code generation for a low-cost mobile phone,’’ in
mongodb.com Proc. IEEE 34th Annu. Comput. Softw. Appl. Conf. Workshops, Jul. 2010,
[11] S. Bergmann. PHPUnit. Accessed: Dec. 01, 2021. [Online]. Available: pp. 63–68.
https://phpunit.de/ [37] S. Roubi, M. Erramdani, and S. Mbarki, ‘‘Modeling and generating
[12] OpenJS. Mocha. Accessed: Dec. 01, 2021. [Online]. Available: https:// graphical user interface for MVC rich internet application using a model
mochajs.org/ driven approach,’’ in Proc. Int. Conf. Inf. Technol. Organizations Develop.
[13] K.-M. Chung, JavaServer Pages 2.3 Specification. Santa Clara, CA, USA: (IT4OD), Mar. 2016, pp. 1–6.
Oracle. 2013. [38] J. D. Monte-Mor, E. O. Ferreira, H. F. Campos, A. M. da Cunha, and
[14] PHP. Accessed: Dec. 01, 2021. [Online]. Available: https://www.php.net/ L. A. V. Dias, ‘‘Applying MDA approach to create graphical user inter-
[15] E. Burns and M. Riem, JavaServer Faces Specification. Santa Clara, CA, faces,’’ in Proc. 8th Int. Conf. Inf. Technol., New Gener., Apr. 2011,
USA: Oracle, 2017. pp. 766–771.
[16] Google. Angular JS. Accessed Dec. 01, 2021. [Online]. Available: [39] Z. Morales, C. Magańa, J. A. Aguilar, A. Zaldívar-Colado, C. Tripp-Barba,
https://angular.io/ S. Misra, O. Garcia, and E. Zurita, ‘‘A baseline domain specific lan-
[17] E. You. Vue.js The Progressive Javascript Framework. Accessed: guage proposal for model-driven web engineering code generation,’’ in
Dec. 01, 2021. [Online]. Available: https://vuejs.org/ Proc. Comput. Sci. Appl. (ICCSA), O. Gervasi, B. Murgante, S. Misra,
[18] Google. Material. Accessed: Dec. 01, 2021. [Online]. Available: https:// A. M. A. Rocha, C. M. Torre, D. Taniar, B. O. Apduhan, E. Stankova,
material.io/ S. Wang, Eds. New York, NY, USA: Springer, 2016, pp. 50–59.
[19] TP Group. Polymer. Accessed: Dec. 01, 2021. [Online]. Available: https:// [40] G. Sebastian, R. Tesoriero, and J. A. Gallud, ‘‘Modeling language-learning
www.polymer-project.org/ applications,’’ IEEE Latin Amer. Trans., vol. 15, no. 9, pp. 1771–1776,
[20] Eclipse. Eclipse IDE. Accessed: Dec. 01, 2021. [Online]. Available: Aug. 2017.
http://www.eclipse.org [41] G. Sebastian, R. Tesoriero, and J. A. Gallud, ‘‘Automatic code generation
[21] M. Kassoff, D. Kato, and W. Mohsin, ‘‘Creating GUIs for web services,’’ for language-learning applications,’’ IEEE Latin Amer. Trans., vol. 18,
IEEE Internet Comput., vol. 7, no. 5, pp. 66–73, Sep. 2003. no. 8, pp. 1433–1440, Aug. 2020.
[22] J. Spillner, M. Feldmann, I. Braun, T. Springer, and A. Schill, ‘‘Ad-hoc [42] R. Tesoriero, ‘‘Distributing user interfaces,’’ in Proc. Workshop Dis-
usage of web services with Dynvoker,’’ in ServiceWave: Towards a trib. User Interfaces Multimodal Interact. Toulouse, France: ACM, 2014,
Service-Based Internet (Lecture Notes in Computer Science), vol. 5377, pp. 1–10.
P. Mähönen, K. Pohl, and T. Priol, Eds. Berlin, Germany: Springer, 2008, [43] R. Tesoriero and A. H. Altalhi, ‘‘Model-based development of distributable
pp. 208–219. user interfaces,’’ Universal Access Inf. Soc., vol. 18, no. 4, pp. 719–746,
[23] E. Christensen, F. Curbera, G. Meredith, and S. Weerawarana. (2001). Nov. 2019.
Web Services Description language (WSDL) 1.1, W3C, Accessed: [44] G. Sebastián Rivera, R. Tesoriero, and J. A. Gallud, ‘‘Model-based
Dec. 01, 2021. [Online]. Available: http://www.w3.org/TR/wsdl approach to develop learning exercises in language-learning applications,’’
[24] M. Hadley, ‘‘Web application description language (WADL),’’ Sun IET Softw., vol. 12, no. 3, pp. 206–214, Jun. 2018.
Microsystems, Santa Clara, CA, USA, Tech. Rep. TR-2006-153, [45] H. Benouda, M. Azizi, M. Moussaoui, and R. Esbai, ‘‘Automatic code
Apr. 2006. generation within MDA approach for cross-platform mobiles apps,’’ in
[25] M. Feldmann, G. Hubsch, T. Springer, and A. Schill, ‘‘Improving task- Proc. 1st Int. Conf. Embedded Distrib. Syst. (EDiS), Dec. 2017, pp. 1–5.
driven software development approaches for creating service-based inter- [46] O. Betari, M. Erramdani, S. Roubi, K. Arrhioui, and S. Mbarki, ‘‘Model
active applications by using annotated web services,’’ in Proc. 5th Int. Conf. transformations in the MOF meta-modeling architecture: From UML to
Next Gener. Web Services Practices, Sep. 2009, pp. 94–97. CodeIgniter PHP framework,’’ in Proc. Eur. MENA Cooperation Adv. Inf.
[26] F. P. Marzullo, J. M. D. Souza, and J. R. Blaschek, ‘‘A domain-driven devel- Commun. Technol., Á. Rocha, M. Serrhini, and C. Felgueiras, Eds. New
opment approach for enterprise applications, using MDA, SOA and web York, NY, USA: Springer, 2017, pp. 227–234.
services,’’ in Proc. 10th IEEE Conf. E-Commerce Technol., 5th IEEE Conf. [47] CodeIgniter. Accessed: Dec. 01, 2021. [Online]. Available:
Enterprise Comput., E-Commerce E-Services, Jul. 2008, pp. 432–437. https://codeigniter.com/
[48] M. Rahmouni and S. Mbarki, ‘‘Model-driven generation: From models to ALEJANDRO RUEDA received the degree in com-
MVC2 web applications,’’ Int. J. Softw. Eng. Appl., vol. 8, no. 7, pp. 73–94, puter science and engineering from the University
Jul. 2014. of Castilla-La Mancha, Albacete, Spain, in 2017.
[49] Eclipse. ACCELEO Transformation Language. Accessed: Dec. 01, 2021. Currently, he is an Application Security Analyst at
[Online]. Available: https://www.eclipse.org/acceleo/ Deloitte, Madrid, Spain. His main research inter-
[50] F. Jouault, F. Allilaire, J. Bézivin, and I. Kurtev, ‘‘ATL: A model transfor- ests include the development of web applications,
mation tool,’’ Sci. Comput. Program., vol. 72, nos. 1–2, pp. 31–39, 2008. including both front-end and back-end as well
[51] Eclipse. ATLAS Transformation Language. Accessed: Dec. 01, 2021.
as the use of model-driven development of web
[Online]. Available: https://www.eclipse.org/atl/
applications.
[52] R. Tesoriero, G. Sebastian, and J. A. Gallud, ‘‘TagML—An implementa-
tion specific model to generate tag-based documents,’’ Electronics, vol. 9,
no. 7, p. 1097, Jul. 2020, doi: 10.3390/electronics9071097.
[53] Eclipse. Papyrus. Accessed: Dec. 01, 2021. [Online]. Available: https:// JOSE A. GALLUD received the M.Sc. degree in
eclipse.org/papyrus/ computer science from the University of Mur-
[54] OMG Unified Modeling Language (OMG UML), Superstructure, cia and the Ph.D. degree in computer science
Ver. 2.4.1, Object Management Group, Needham, MA, USA, Aug. 2011.
from the Polytechnic University of Valencia.
[55] XML Metadata Interchange (XMI) Specification Ver. 2.5.1, Object Man-
He is an Associate Professor at the University
agement Group, Needham, MA, USA, Jun. 2015.
[56] Meta Object Facility (MOF) Core Specification. Ver. 2.5.1, Object Man- of Castilla-La Mancha. He co-leads the Interac-
agement Group, Needham, MA, USA, Oct. 2019. tive Systems Engineering (ISE) Research Group,
[57] F. Zaninotto, W. Durand, H. Hamon, M. J. Schmidt, J. Augustin, Albacete Research Institute of Informatics. His
T. Uebernickel, C. Cinotti, R. Dupret, M. Staab, and M. Scholten. Propel. main research interests include human–computer
Accessed: Dec. 01, 2021. [Online]. Available: http://propelorm.org/ interaction, software engineering, development of
[58] R. T. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, interactive systems, and distributed user interfaces. He has published more
and T. Berners-Lee, ‘‘RFC2616: Hypertext transfer protocol–HTTP/1.1,’’ than 100 scientific papers in these areas, disseminated in journals, and
Tech. Rep. 2616, 1999. international conferences books and chapters. He has participated in the orga-
[59] E. Gamma, R. Helm, R. Johnson, and J. M. Vlissides. Design Patterns: nization of numerous national and international conferences in these research
Elements of Reusable Object-Oriented Software, 1st ed. Reading, MA, areas as the technical program chair, the Technical Program Member, and an
USA: Addison-Wesley, 1994. Organizing Committee Member.
[60] Bower. Accessed: Dec. 01, 2021. [Online]. Available: https://bower.io/
[61] G. Sebastián, J. A. Gallud, and R. Tesoriero, ‘‘Code generation using
model driven architecture: A systematic mapping study,’’ J. Comput. Lang., MARIA D. LOZANO received the M.Sc. and
vol. 56, Feb. 2020, Art. no. 100935. Ph.D. degrees in computer science from the Poly-
[62] S. Ceri, P. Fraternali, and A. Bongio, ‘‘Web modeling language (WebML): technic University of Valencia, Spain. She has
A modeling language for designing web sites,’’ Comput. Netw., vol. 33, been an Associate Professor at the University of
nos. 1–6, pp. 137–157, Jun. 2000. Castilla-La Mancha, since 2003. She co-leads the
[63] G. Zhuang and J. Du, ‘‘MDA-based modeling and implementation of Interactive System Engineering (ISE) Research
E-commerce web applications in WebML,’’ in Proc. 2nd Int. Workshop Group, Albacete Research Institute of Informat-
Comput. Sci. Eng., vol. 2, 2009, pp. 507–510. ics. She is an author of more than 100 papers in
[64] H. M. Fardoun, R. Tesoriero, G. Sebastian, and N. Safa, ‘‘A simplified
indexed journals and international conference. Her
MbUID process to generate web form-based UIs,’’ in Proc. 13th Int. Conf.
teaching and research interests include software
Softw. Technol. Setúbal, Portugal: SciTePress, 2018, pp. 801–808.
engineering and human–computer interaction. Her research interests include
natural user interfaces, tangible user interfaces, affective computing, and user
experience. She has served as the chair and a member for different program
committees of national and international conferences.