<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>MDA Approach for Laravel Framework Code Generation from UML Diagrams</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mantas Ražinskas</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lina Čeponien ė</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Informatics of Kaunas University of Technology</institution>
          ,
          <addr-line>Kaunas</addr-line>
          ,
          <country country="LT">Lithuania</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Information Systems Department of Kaunas University of Technology</institution>
          ,
          <addr-line>Kaunas</addr-line>
          ,
          <country country="LT">Lithuania</country>
        </aff>
      </contrib-group>
      <fpage>106</fpage>
      <lpage>113</lpage>
      <abstract>
        <p>Laravel is a popular PHP framework used in web development. To facilitate and simplify the work of software developers using this framework, this paper proposes an MDA based methodology for developing Laravel based web information systems. This methodology implementation would allow software developers to generate Laravel code from UML diagrams through MDA transformations from PIM to PSM (with Laravel PSM profile applied) and from PSM to code. Developers then could fill the gaps in the generated PHP code for Laravel framework to develop a complete web information system.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Laravel</kwd>
        <kwd>MDA</kwd>
        <kwd>MVC</kwd>
        <kwd>UML model</kwd>
        <kwd>code generation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        code generation save time in the IS development
process, reduce the risk of potential errors, and simplify
The modern need for development of high quality in- modifications [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Currently, code generation is
availformation systems (IS) at minimal cost is rapidly chang- able in popular UML CASE tools, which usually have
ing their development methodologies, with stronger the code generation functionality from structural UML
emphasis on the facilitation of IS development and main- diagrams to object oriented programming languages
tenance [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1, 2, 3</xref>
        ]. A possible solution for developing (C#, Java, etc.).
systems more eficiently is to use Unified Modelling The principles of Model Driven Architecture can be
Language (UML) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] – a modeling standard developed applied in the development of various information
sysby the OMG Computer Industry Standards Consor- tems, including web-based ones. In the context of web
tium, and Model Driven Architecture (MDA) [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ] – an development, PHP can be considered the most widely
approach for software development by means of mod- used programming language [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Various PHP
frameels and transformations between them. MDA enables works are widely used for facilitating the
implementamodel driven systems to be built using model trans- tion process. Frameworks have a structured
architecformations from one model type to another. There are ture, simplify the database connection, are easily
exdiferent types of models in MDA, for example Plat- tended with additional libraries, and are usually based
form Independent Model (PIM) which defines imple- on the Model View Controller (MVC) architecture
prinmentation independent abstract system functions, and ciples [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. MVC gives an efective and proven way of
Platform-Specific Model (PSM), which defines the im- developing modular, structured systems. In addition to
plementation of system functions in a selected plat- benefits of using a framework, introducing the MDA
form. UML is specified by its metamodel which can principles and employing PHP code generation from
also be extended by using the profile mechanism. In UML diagrams for a certain framework could make
this situation, UML profile extends a referenced meta- web IS development process even more eficient and
model to adapt or customize it with constructs that reduce time-to-market.
are specific to a particular platform [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In MDA ap- Laravel [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] is a popular PHP framework suitable for
proach, after defining the PSM model, the next step rapid development of small to large scale systems, even
is to generate the source code for the selected imple- with relatively little experience [
        <xref ref-type="bibr" rid="ref10 ref11 ref8">8, 10, 11</xref>
        ]. This
framementation platform that corresponds to the elements work is based on the MVC architecture principles and
defined in the PSM [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Model transformations and assists in building web systems faster and easier, by
IVUS 2020: Information Society and University Studies, 23 April 2020, providing basic model structure, API access, libraries,
KTU Santaka Valley, Kaunas, Lithuania and plugins. It also helps developers become more
" mantas.razinskas@ktu.edu (M. Ražinskas); productive by reducing duplicate code in an ongoing
lina.ceponiene@ktu.lt (L. Čeponienė) project [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        © 2020 Copyright for this paper by its authors. Use permitted under Creative Based on framework comparison results [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], it is
CPWrEooUrckReshdoinpgs IhStpN:/c1e6u1r3-w-0s.o7r3g CCoEmUmoRns WLiceonrsekAsthtriobuptioPnr4o.0cIneteerdnaitniognasl ((CCC EBYU4R.0)-.WS.org) easier to get started with Laravel than with other
popular PHP framework, Symfony, and Symfony is more pleted system modelling, the code generation
procesuitable for developing complex systems. In this paper, dure was followed by the model-to-text
transformaan MDA based methodology is presented which inves- tion (M2T). To generate CodeIgniter code, the authors
tigates the application of model transformation princi- used Acceleo software and CodeIgniter metamodel
temples in the context of PHP programming language and plate.
its Laravel framework. The transformations from PIM The principles of MDA were also applied in research
to Laravel based PSM and from Laravel PSM to Laravel by Srai, Guerouate, Berbiche, Lahsini [15] to create a
PHP code are analyzed. The proposed concept could Spring MVC system using a UML class diagram. First,
help software developers build web information sys- a metamodel was created that matched the Spring MVC
tems more eficiently by applying UML diagrams and template. The target metamodel consisted of two
esMDA principles. sential parts: the first part referred to the views
pack
      </p>
      <p>
        The rest of the paper is organized as follows. In re- age, this package consisted of many JSP pages. The
lated work section related studies in the area of MDA second part consisted of a controller package, and this
and code generation are discussed. In the third section, package encompassed a number of controllers and each
the general process of the proposed methodology for controller having one or more actions.
Laravel code generation is presented, along with func- Authors defined transformation rules for model to
tional requirements for the methodology implementa- model and model to code transformations. These rules
tion and implementation strategy representation. The enabled creation of an XML file containing all the
acfourth section discusses guidelines for implementation tions, forms, and JSP pages that can be used to
genof proposed concept and presents a short examples erate code. Authors developed a transformation
alof developed models and generated code. Finally, in gorithm using the ATL transformation language [17]
the conclusions section, conclusions are presented and (this language is part of the Eclipse M2M). Next, the
further research perspectives are discussed. model to text transformation was developed to
generate Spring MVC code. For the model to text
transformation, a Spring MVC template was defined.
2. Related Work A tool that support the Model Driven Architecture
(MoDAr-WA) was introduced by Essebaa, et al. [16],
In recent years, there has been a numerous research on which implements a methodology automating
transMDA and code generation [
        <xref ref-type="bibr" rid="ref13 ref14">13, 14, 15, 16</xref>
        ]. In this pa- formations from the highest MDA level (CIM) to the
per, the studies associated with framework based code lowest (code). This research is a continuation of the
generation [
        <xref ref-type="bibr" rid="ref14">14, 15, 16</xref>
        ] were selected for more detailed former work in automating transformations from CIM
investigation. to PIM. The MoDAr-WA authors created sets of
meta
      </p>
      <p>
        In research paper by Arrhioui, Mbarki, Betari, Roubi, models for UML class and sequence diagrams, QVT
Erramdani [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], the authors explored a model driven and Acceleo transformations, as well as Eclipse
pluarchitecture approach for PHP CodeIgniter framework. gin for MoDAr-WA. In particular, QVT rules for
transThe authors proposed a methodology that enables mod- formations between models (from CIM to PIM, from
eling web systems based on the PHP CodeIgniter frame- PIM to PSM) were used. At the PIM level, the authors
work and used an MDA approach to develop their
methodology. This methodology encompasses
transformations from PIM to PSM using UML class diagram as
a source model to generate an XML file with the
essential components of the CodeIgniter framework. The
use of model transformations has provided benefits in
improving the quality of the system development
process while reducing costs and time.
      </p>
      <p>This approach demonstrated eficiency by enabling
the creation of a complete CodeIgniter MVC
architecture framework with defined metamodel and
generated program code based on this metamodel.</p>
      <p>The CodeIgniter framework metamodel developed
defined key structural and behavioral aspects in UML
class and sequence diagrams. Java source code from
PSM was generated with the help of Acceleo tool.</p>
      <p>All of the analyzed researches aim to apply MDA
principles to improve the process of system
development. They provide a detailed definition of their
proposed theoretical concept and its implementation, by
defining profiles, transformation rules and algorithms,
as well as experimental implementation examples. The
analyzed methodologies are intended for various
frameworks and architectures (PHP CodeIgniter, Spring MVC
and Java MVC). The methodology proposed in our
paper also applies MDA principles and analyses model
by the authors is divided into packages of models, views, transformations and code generation, but in the
conand controllers. Each package has specific metaclasses
based on the MVC architecture. When authors
comtext of Laravel framework, which is not analyzed in
other authors’ research.</p>
    </sec>
    <sec id="sec-2">
      <title>3. The Proposed Methodology</title>
      <p>for LARAVEL Code Generation
engine. This transformation results in Laravel code
which can further be completed by the system
develThis section presents the MDA based methodology for opers in order to finalize the system implementation.
Laravel framework. This methodology encompasses It should be noted, that our method does not aim to
not only modelling of PIM and PSM, but also model generate the complete PHP code for Laravel
frametransformations from PIM to PSM and from PSM to work. It rather concentrates on automating the
tranLaravel code. sition from UML diagrams to code as much as
possible, but allowing the software developers to complete
3.1. The General Process for the the system implementation by themselves, as the full
Proposed Methodology code usually contains more information than it was
provided in the UML diagrams of PIM and PSM.</p>
      <p>In the proposed methodology (Fig. 1), the abstract
modeling and code generation process is proposed which 3.2. Functional Requirements for the
encompasses three main steps: PIM development, trans- Methodology Implementation
formation to PSM for Laravel framework and Laravel
PHP code generation. First of all, using a UML CASE For a detailed representation of the proposed
methodtool, PIM model should be modeled and exported to ology, the UML use case diagram (Fig. 2) depicts
posthe selected model-to-model transformation tool. The sible actions software developer can perform in order
XMI model interchange format should be used to en- to accomplish the model transformations and generate
able transfer of models between the steps of the pro- Laravel code.
cess. Next, transformation from PIM to PSM is per- In our proposed methodology, platform independent
formed by applying transformation rules, algorithms model (PIM) can be managed using any CASE tool
seand model transformation engine along with UML pro- lected by software developer, which is able to export
ifle for Laravel PSM. After the transformation, PSM in the model to XMI file. The PIM model must include a
XMI format is generated. class diagram, without this type of diagram it will not</p>
      <p>This PSM model can be either edited in modelling be possible to continue the code generation process.
tool or directly transformed into code. PSM to code The PIM model has a high level of abstraction and
septransformation is performed using transformation tem- arates logic from technological implementation. This
plate, transformation algorithms and code generation model provides modeled system a structure that will
ift any implementation platform.</p>
      <p>In order to perform transformation from PIM to PSM
and to edit PSM, the software developer can import the
UML profile for the PHP Laravel framework. Having
UML Profile and XMI format PIM model file, imported
into selected transformations tool, Laravel PSM can be
generated by using transformation engine and by
applying transformation rules and algorithms. After the
transformation, software developer can manage
Laravel PSM model – make changes to it if required or
import PSM models’ XMI file to transformation tool
for transformation to code.</p>
      <p>Transformation from PSM to code is performed
using the selected code generation engine, PSM
metamodel and code generation algorithms. As a result
of the transformation, software developer will receive
the PHP Laravel code with PHP files for models, views,
controllers, routes and other required Laravel
framework elements.</p>
      <sec id="sec-2-1">
        <title>3.3. The Proposed Implementation</title>
      </sec>
      <sec id="sec-2-2">
        <title>Strategy</title>
        <p>Possible implementation solution with proposed tools Figure 3: Deployment diagram representing proposed tools
for modeling and generating Laravel based informa- for modelling and generating Laravel based IS.
tion system are depicted in deployment diagram (Fig.
3). The communication paths (having the name “xmi
ifle”) between execution environment nodes in this di- the transformation from PIM to PSM according to
deagram do not represent the direct communication, but fined rules and algorithms. As a result, PSM in XMI
rather the possibility for the software developer to trans- format will be generated.
fer XMI file from one execution environment to an- Once the M2M transformation has been completed,
other. the PHP code can be generated using the Eclipse
Ac</p>
        <p>Using MagicDraw CASE tool, software developer celeo tool according to established rules and algorithms
can manage PIM. Software developer models the class for code generation [18]. This tool is an open source
diagram in PIM and it is possible to save PIM in XMI code generator implementing the OMG’s MOF Model
format for M2M transformation. After M2M transfor- to Text Language (MTL) standard that uses any EMF
mation, if further changes are required, it is possible to based models to generate any kind of code.
import PSM in XMI format back to MagicDraw CASE To perform transformation from PSM to code, PIM
tool to modify it before proceeding to code generation. model in XMI format must be imported to Eclipse
AcAfter PSM modification it is possible to save this model celeo tool. Then transformation option should be
sein XMI format for further transformation. lected for Acceleo code generation engine to perform</p>
        <p>Transformation from PIM to PSM can be performed the transformation from PSM to code according to the
using Eclipse tool and according to the rules and algo- defined rules and algorithms. The result of this
transrithms which have to be defined using ATL transfor- formation is PHP Laravel code.
mation language [17]. ATL provides a way to produce For the proposed transformation methodology, we
a number of target models from a set of source mod- have chosen to use UML class and sequence diagrams
els. An ATL transformation tool is composed of rules, in PIM and in PSM. The implementation plan for the
which define how source model elements are used to proposed methodology consists of several steps. The
create the elements of the target model. ifrst step is the definition of the PIM metamodel, which</p>
        <p>To perform transformation from PIM to PSM, XMI will consist of relevant class and sequence diagram
format PIM file must be imported into Eclipse ATL metaclasses, the next step is the definition of PSM
metatool. Afterwards, transformation option should be se- model which will consist of relevant class and sequence
lected for the ATL transformation engine to perform
metaclasses enriched with UML profile, encompassing transformation rules and algorithms applied, PSM
mospecific Laravel framework stereotypes. After defin- del should be generated, where previous classes
acing both metamodels, we will perform the first trans- cording to the class type would become classes with
formation using PIM metamodel as input, and by ap- applied «LaravelBlade», «LaravelModel»,
«LaravelRoplying transformation rules the PSM will be generated ute&gt; or «LaravelRequest» stereotype. «LaravelBlade»
according to the defined PSM metamodel. After defin- stereotype defines Laravel views, «LaravelController»
ing the first transformation in detail we will proceed stereotype defines Laravel framework controller type,
to the next step – detail definition transformation to «LaravelModel» defines frameworks’ model type,
«Larcode. The input of this transformation will be the re- avelRoutes» defines application route and
«LaravelResult of previous transformation (PSM), and its output quest» defines a class used for validation in Laravel
will be PHP Laravel code according to the defined code framework.
metamodel and transformation rules. In Fig. 5, a fragment of PSM model for bookstore
information system is presented. This fragment gives
an example of how the PIM model depicted in Fig. 4
4. Model Transformation and might look like after transformation from PIM to PSM.</p>
        <p>Code Generation Example Previously defined AddBookView and BookListView
views after transformation become views that have
«LarIn our proposed methodology, platform independent avelBlade» stereotype applied, which is specific for
Larmodel should be developed according to MVC archi- avel framework. For BookController class, the
«Lartecture principles. When modelling PIM, it is impor- avelController» stereotype is applied and operations
tant to have in mind that controller, model and view in this controller are replaced with Laravel type
operaparts must be separate classes. tions according to the stereotypes in the PIM model. In</p>
        <p>Model classes should have attributes and operations this case, PIM showAdd() operation became the PSM
declared, controller classes should include operations create() operation, because in PIM model it had «Route»
for navigation between view classes, operations for stereotype assigned, and the showList() operation
bedata manipulation and other additional operations, if came index() operation also due to assigned «Route»
required. When adding operations to the controller stereotype. The save() operation was transformed to
class, it is important to assign stereotypes to them, store(request) operation because of the «CRUD»
stereowhich indicate whether it is a route type or a CRUD type, which was applied in PIM model.
(Create, Read, Update, Delete) type operation. «Route» The Book model class after transformation became
stereotype defines an operation which is intended for class with «LaravelModel» stereotype. In the PSM
morouting between diferent views. del, a new class was created after transformation – the
«CRUD» stereotype defines an operation intended BookRequest class with «LaravelRequest» stereotype
for manipulating the database. If controller class op- applied. This PSM class, after transformation to code
eration does not have any stereotype applied, this op- will define the validation rules for BookController CRUD
eration is considered as an additional one, which is re- operations. The PSM model also has Routes class, that
quired by the user. will define routes for controller classes route type
meth</p>
        <p>In order to demonstrate the proposed solution, in ods.</p>
        <p>Fig. 4 a fragment of PIM model for Bookstore informa- After transformation from PSM to code, PHP
Lartion system is presented. The fragment contains four avel code should be generated. Sample code fragments
PIM classes: Book, BookController, AddBookView and of BookController, Book, AddBookView, Router and
BookListView. Each operation of BookController class BookRequest classes are presented in Fig. 6-10.
has its own stereotype applied, which will further be Fig. 6 shows Laravel controller code fragment for
used during transformation to PSM process. PSM model BookController. In this controller class
as</p>
        <p>In this case, BookController class has an assigned sociation with Book class was generated because of the
«Route» stereotype for the showList() and showAdd() association relationship defined between
BookControloperations, the showList() operation provides the Book- ler and Book classes in PSM model. Index(), create()
ListView view and the showAdd() operation provides and store(BookRequest request) methods were
generthe AddBookView view. The «CRUD» stereotype is ated in this class because the corresponding operations
assigned to the save() operation, which is intended for were also defined for PSM model BookController.
creating a new book. Fig. 7 shows Laravel Book model code fragments
After model transformation from PIM to PSM, with for PSM model Book class. Book model would be
generated from PSM model Book class which has
«Lar</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>5. Conclusions</title>
      <p>In this paper, a methodology is proposed, which when
Figure 9: Generated Laravel view code fragment. implemented could enable transformation of web
application UML models into Laravel code. While
organizations nowadays seek to apply the MDA
prin</p>
      <p>Fig. 10 shows generated Laravel request validation ciples in information system development to reduce
class BookRequest code fragment. It is possible to cre- high technological migration costs, there is a need for
ate and use a custom form request for better Laravel a methodology and algorithms to generate code for
application structure or more complex validation sce- Laravel PHP framework based information systems.
narios. Form request are custom request classes that Laravel framework does not have a complete
methodcontain validation logic. In this case, BookRequest class ology for managing MDA model transformations and
code fragment could be generated. Validation rules code generation and the proposed methodology for
mocould be generated in rules() method of this class, where del transformations and code generation for the PHP
variables would be obtained through BookController Laravel framework in the context of the MDA
prinrelation with Book model, and “required” rules would ciples should help to improve the process of software
be defined in PIM Book model attribute specification. development using Laravel. When implemented, the</p>
      <p>The presented model transformation and code gen- proposed methodology should reduce the migration
eration example demonstrated how PIM and PSM mod- and development costs of organizations working with
els and generated code should be defined when imple- PHP Laravel framework.
mented for bookstore information system. In example In the future, we are planning to develop more
decase, the generated code consists of five classes and tailed transformation algorithms and implement the
one route: two view classes, one route class, controller proposed methodology to facilitate the development
class, model class and request validation class. All of of Laravel framework based information systems.
these classes have code fragment structure that a
software developer can further extend to finish the
implementation of the BookStore information system. References</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>G.</given-names>
            <surname>Cardarilli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. Di</given-names>
            <surname>Nunzio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Fazzolari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Giardino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Matta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Re</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Iess</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Cialfi</surname>
          </string-name>
          , G. De Angelis,
          <string-name>
            <given-names>D.</given-names>
            <surname>Gelfusa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pulcinelli</surname>
          </string-name>
          , L. Simone,
          <article-title>Hard- ing and generating php codeigniter based appliware prototyping and validation of a w-i dor dig- cations, Transactions on Machine Learning and ital signal processor</article-title>
          ,
          <source>Applied Sciences (Switzer- Artificial Intelligence</source>
          <volume>5</volume>
          (
          <year>2017</year>
          ). land)
          <volume>9</volume>
          (
          <year>2019</year>
          ). [15]
          <string-name>
            <given-names>S. D.</given-names>
            <surname>Rathod</surname>
          </string-name>
          ,
          <article-title>Automatic code generation with</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Beritelli</surname>
          </string-name>
          , G. Capizzi,
          <string-name>
            <given-names>G. Lo</given-names>
            <surname>Sciuto</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Napoli, business logic by capturing attributes from user M. Woźniak, A novel training method to preserve interface via xml, in: 2016 International Confergeneralization of rbpnn classifiers applied to ecg ence on Electrical, Electronics, and Optimization signals diagnosis</article-title>
          ,
          <source>Neural Networks</source>
          <volume>108</volume>
          (
          <year>2018</year>
          )
          <article-title>Techniques (ICEEOT)</article-title>
          , IEEE,
          <year>2016</year>
          , pp.
          <fpage>1480</fpage>
          -
          <lpage>1484</lpage>
          .
          <fpage>331</fpage>
          -
          <lpage>338</lpage>
          . [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Srai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Guerouate</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Berbiche</surname>
          </string-name>
          , H. D. Lahsini,
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>F.</given-names>
            <surname>Beritelli</surname>
          </string-name>
          , G. Capizzi,
          <string-name>
            <given-names>G. Lo</given-names>
            <surname>Sciuto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Napoli</surname>
          </string-name>
          ,
          <article-title>Applying mda approach for spring mvc frameF. Scaglione, Rainfall estimation based on the in- work</article-title>
          ,
          <source>International Journal of Applied Engineertensity of the received signal in a lte/4g mobile ing Research</source>
          <volume>12</volume>
          (
          <year>2017</year>
          )
          <fpage>4372</fpage>
          -
          <lpage>4381</lpage>
          .
          <article-title>terminal by using a probabilistic neural network</article-title>
          , [17]
          <string-name>
            <given-names>I.</given-names>
            <surname>Essebaa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chantit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ramdani</surname>
          </string-name>
          , Modar-wa:
          <source>IEEE Access 6</source>
          (
          <year>2018</year>
          )
          <fpage>30865</fpage>
          -
          <lpage>30873</lpage>
          .
          <article-title>Tool support to automate an mda approach for</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Unified</given-names>
            <surname>Modeling Language</surname>
          </string-name>
          ,
          <year>2017</year>
          . https://www. mvc web application,
          <source>Computers</source>
          <volume>8</volume>
          (
          <year>2019</year>
          )
          <article-title>89</article-title>
          . omg.org/spec/UML/. [18]
          <string-name>
            <surname>"ATL | The Eclipse Foundation</surname>
          </string-name>
          ,
          <year>2020</year>
          . https://
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Mellor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Scott</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Uhl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Weise</surname>
          </string-name>
          , Model- www.eclipse.org/atl/. driven architecture,
          <source>in: International Conference on Object-Oriented Information Systems</source>
          , Springer,
          <year>2002</year>
          , pp.
          <fpage>290</fpage>
          -
          <lpage>297</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Napoli</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Tramontana,</surname>
          </string-name>
          <article-title>An object-oriented neural network toolbox based on design patterns</article-title>
          ,
          <source>in: International Conference on Information and Software Technologies</source>
          , Springer,
          <year>2015</year>
          , pp.
          <fpage>388</fpage>
          -
          <lpage>399</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Brambilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , Modeldriven software engineering in practice,
          <source>Synthesis lectures on software engineering 3</source>
          (
          <year>2017</year>
          )
          <fpage>1</fpage>
          -
          <lpage>207</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Laaziri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Benmoussa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Khoulji</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. L.</given-names>
            <surname>Kerkeb</surname>
          </string-name>
          ,
          <article-title>A comparative study of php frameworks performance</article-title>
          ,
          <source>Procedia Manufacturing</source>
          <volume>32</volume>
          (
          <year>2019</year>
          )
          <fpage>864</fpage>
          -
          <lpage>871</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Laravel</given-names>
            <surname>Documentation</surname>
          </string-name>
          ,
          <year>2020</year>
          . https://laravel. com/.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>K.</given-names>
            <surname>Benmoussa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Laaziri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Khoulji</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. M. Larbi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>El Yamami</surname>
          </string-name>
          ,
          <article-title>A new model for the selection of web development frameworks: application to php frameworks</article-title>
          ,
          <source>International Journal of Electrical and Computer Engineering</source>
          <volume>9</volume>
          (
          <year>2019</year>
          )
          <fpage>695</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Laaziri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Benmoussa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Khoulji</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. M. Larbi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>El Yamami</surname>
          </string-name>
          ,
          <article-title>A comparative study of laravel and symfony php frameworks</article-title>
          ,
          <source>International Journal of Electrical and Computer Engineering</source>
          <volume>9</volume>
          (
          <year>2019</year>
          )
          <fpage>704</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kilicdagi</surname>
          </string-name>
          ,
          <string-name>
            <surname>H. I. Yilmaz</surname>
          </string-name>
          , Laravel Design Patterns and
          <string-name>
            <given-names>Best</given-names>
            <surname>Practices</surname>
          </string-name>
          , Packt Publishing,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>G.</given-names>
            <surname>Sebastián</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Gallud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tesoriero</surname>
          </string-name>
          ,
          <article-title>Code generation using model driven architecture: A systematic mapping study</article-title>
          ,
          <source>Journal of Computer Languages</source>
          <volume>56</volume>
          (
          <year>2020</year>
          )
          <fpage>100935</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>K.</given-names>
            <surname>Arrhioui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mbarki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Betari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Roubi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Erramdani</surname>
          </string-name>
          ,
          <article-title>A model driven approach for model-</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>