SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
Bulletin of Electrical Engineering and Informatics
Vol. 9, No. 1, February 2020,pp. 247~255
ISSN: 2302-9285,DOI: 10.11591/eei.v9i1.1269  247
Journal homepage: http://beei.org
PHP modernization approach generating KDM models from
PHP legacy code
Amine Moutaouakkil, Samir Mbarki
MISC Laboratory, Faculty of Science, Ibn Tofail University BP133, Kenitra, Morocco
Article Info ABSTRACT
Article history:
Received Jul 15, 2018
Revised Oct 7, 2019
Accepted Nov 12, 2019
With the rise of new web technologies such as web 2.0, Jquery, Bootstrap.
Modernizing legacy web systems to benefit from the advantages of the new
technologies is more and more relevant. The migration of a system from
an environment to another is a time and effort consuming process; it involves
a complete rewrite of the application adapted to the target platform.
To realize this migration in an automated and standardized way,
many approaches have tried to define standardized engineering processes.
Architecture Driven Modernization (ADM) defines an approach
to standardize and automate the reengineering process. We defined an ADM
approach to represent PHP web applications in the highest level
of abstraction models. To do this, we have used software artifacts as an entry
point. This paper describes the extraction process, which permits discovering
and understanding of the legacy system. Moreover, generate models
to represent the system in an abstract way.
Keywords:
Abstract syntax tree
meta-model(ASTM)
Architecture-driven
modernization (ADM)
Knowledge discovery model
(KDM)
Model-driven engineering
Reverse engineering
This is an open access article under the CC BY-SA license.
Corresponding Author:
Amine Moutaouakkil,
MISC Laboratory,Faculty of Science, Ibn Tofail University,
BP133, Kenitra, Morocco.
Email: amine.moutaouakkil@hotmail.fr
1. INTRODUCTION
Basing more and more their business on IT solutions, organizations using web technology systems
have to modernize their legacy systems to be aligned with competition. Most of websites and web
applications are written in PHP language (82,5% in 2017-02-11). The need to immigrate both from and to
this language is increasing. The PHP language is constantly evolving, more and more new frameworks
and new standartsare available to use which make users in the need of migrating their PHP Web applications
to anotherlanguage or to a new version of PHP language.
It is necessary to have a standardized an automatic process of reengineering to minimize time
and costs. Currently, there is an initiative to standardize and automa te the reengineering process.
The Architecture-driven Modernization (ADM) [1] is an Object Management Group (OMG) [2] initiative
related to the reverse engineering domain. This initiative has been proposed to enhance the classical reverse
engineering processes by introducing the Model-driven Architecture (MDA) [3] concepts. In the same way
that the MDA approach provides a leading role to the models, the ADM approach introduces several
conceptsto formalize the RE [4] processes based on models too.
It is necessary to realize methods for migrating PHP Web applications, but currently there are no
relied ADM based methodesmakingit. We defined an ADM based approach to represent PHP source code in
form of KDM models. This approach has taken advantage of the potential of the Architecture Driven
Modernization (ADM) to modeling the knowledge, which will be extracted from the legacy
program artifacts.
 ISSN: 2302-9285
Bulletin of Electr Eng & Inf, Vol. 9, No. 1, February 2020 : 247 – 255
248
In this article, we describe the generation of models to represent the legacy system at the highest
level of abstraction. The rest of this article is organized as follows: section 2 describes the process based on
the ADM approach and describes their different phases. In section 3, we illustrate our proposed approach by
a case study. Section 4 makes the analysis of the process result. In section 5 we list some interesting related
works. Finally, section 6 concludes the work and presents the perspectives.
2. RESEARCH METHOD
- MDRE
Model Driven Reverse Engineering (MDRE) [5] is the application of Model Driven Engineering
(MDE) principles and techniques to Reverse Engineering (RE) in order to get model based views from legacy
systems. The MDRE is based on two main phases: Model Discovery which is extracting information from
source code by using parsers, and then represent this information in form of models. And Model
Understanding which is applying Model to Model transformations on extracted information to get a higher
abstraction level presentation of the information.
- ADM
Architecture Driven Modernization (ADM) is an initiative proposed by OMG to standardize
and automate the reengineering process. ADM is based on three standards meta-models to represent
the information involved in a software reengineering process. In the current study, only Abstract Syntax Tree
Meta-Model (ASTM) [6] and Knowledge Discovery Meta -Model (KDM) standards are useful for
the purpose. ASTM allows modeling the legacy code in form of Abstract Syntax Tree.
Otherwise, KDM [7] allows defining models at a higher abstraction level representing semantic information
about a software system.
2.1. Model discovery
Discovering the legacy system corresponding PSM models by analyze the source code constitutes
the first step. PSM models define the structures and relationships between system elements. UML Class
Diagram for example is a PSM model that can be generated by many UML tools: PowerAMC [8],
Enterprise-Architect [9], Objecteering [10], Modelio [11], Papyrus [12]. Model discovery allows
the extraction of information from the system and its representation in concrete models such as ASTM.
To represent the information in PHP code in the form of ASTM models, we have found out that we have to
write a PHP Discoverer first so that existing PHP code can be represented as a model. After dealing with
the creation and operation of discoverers. It turned out that the incorporation and implementation
is extremely complex.
We looked for alternative ways to transform PHP code into models. After searching and trying
the available parsers for PHP, one of them was interesting, glayzzle/php-parser [13]. This parser is working
well, it parses the PHP code and gets an abstract syntax tree (AST), and obtained tree is an intermediate step
to get ASTM models aftertransformations.
2.2. Model understanding
Model understanding consists in the transformation of models to get higher abstract models.
In our study, we need to make two transformations: Apply model-to-model transformation on the AST tree
to get ASTM model, which is a Generic ASTM model. Apply model-to-model transformation on the ASTM
model to get KDM model.
- QVT Transformation Standard
QVT (Query/View/Transformation) [14] is a standard set of languages for model
transformation defined by the OMG. The QVT standard defines three model transformation languages.
All of them operate on models which conform to Meta-Object Facility (MOF) 2.0 metamodels;
the transformation states which metamodels are used. QVT Operational which we use, it is an imperative
language designed for writing unidirectional transformations. Models extraction process a shown in Figure 1.
- ASTM
Current OMG ASTM meta-model needs to be simplified, to make the transformation easier for our
example.ASTM meta-modelprovided by OMG and Simplified one a shown Figure 2.
- KDM
KDM meta-model provided by OMG a shown in Figure 3. KDM is a standard defined by OMG for
the representation of software systems. This meta-model allows to represent systems artifacts in a high level
of abstraction. The KDM specification consists of 12 packages that are arranged into the following
four layers [15].
Bulletin of Electr Eng & Inf ISSN: 2302-9285 
PHP modernization approach generating KDM models from PHP legacy code (Amine Moutaouakkil)
249
Figure 1. Models extraction process
Figure 2. ASTM meta-modelprovided by OMG and simplified one
Figure 3. KDM meta-modelprovided by OMG
PHP
Source
code
Specific
ASTM
Model
Generic
ASTM
Model
KDM
Model
M2M
Tranformation
Parser
M2M
Tranformation
Core,
KDM,
Source
Action
Code
UI
Data
Plateform
Event
Conceptual
Infrastructure
Layer
Abstractions
Layer
Resource
Layer
Program
Elements Layer
 ISSN: 2302-9285
Bulletin of Electr Eng & Inf, Vol. 9, No. 1, February 2020 : 247 – 255
250
In our approach,we focuson Code package.The Code package represents programming elements as used by
programming languages: data types,procedures, classes, methods,variables,etc.
- AST to ASTM QVT-O Transformation script
We have defined a mapping table between AST model elements and ASTM model elements.
Based on the mapping table, we have written a QVT-O transformation script to map AST model elements to
ASTM model elements. AST elementsto ASTM elements mappinga shown in Ta ble 1.
Table 1. AST elements to ASTM elements mapping
AST element ASTM element
ChildrenType OwnedElementsType1
BodyType BodyDeclarationsType
ArgumentsType ParametersType
modeltype AST uses 'http://AstMM';
modeltype ASTM uses 'http://AstmMM';
transformation ast2astm(inast : AST, out ASTM);
main() {
ast.objects()[AST::ChildrenType]->map R1();
ast.objects()[AST::BodyType]->map R2();
…
}
mapping AST::ChildrenType::R1() : ASTM::OwnedElementsType1 {
if (self.kind<>'inline'){ name := self.name; }
}
mapping AST::BodyType::R2(): ASTM::BodyDeclarationsType {
if (self.kind='property'){
type := self.kind;
modifier := self.map R21();
fragments := self.map R22();
}
else if (self.kind='method'){
type := self.kind;
modifier := self.map R21();
fragments := self.map R22();
parameters :=self.arguments.mapR23();
}
}
…
- ASTM to KDM QVT-O Transformation script
We have defined a mapping table between ASTM model elements and KDM model elements.
Based on the mapping table, we have written a QVT-O transformation script to map ASTM model elements
to KDM model elements. ASTM elements to KDM elements mappinga shown in Table 2.
modeltype ASTM uses 'http://AstmMM';
modeltype KDM uses 'http://KdmMM';
transformation astm2kdm(inastm : ASTM, out KDM);
main() {
astm.rootObjects()[ASTM::Model]->map R0();
astm.objects()[ASTM::ModifierType]->map R1();
astm.objects()[ASTM::OwnedElementsType1]->map R2();
astm.objects()[ASTM::OwnedElementsType1]->map R21();
…
}
mapping ASTM::Model::R0() : KDM::code::CodeModel{ name := self.name; }
mapping ASTM::ModifierType::R1() : KDM::kdm::Attribute {
value := self.visibility.toString();
Bulletin of Electr Eng & Inf ISSN: 2302-9285 
PHP modernization approach generating KDM models from PHP legacy code (Amine Moutaouakkil)
251
}
mapping ASTM::OwnedElementsType1::R2() : KDM::code::CodeElement when {self.type<>'Class'}{
name := self.name; }
mapping ASTM::OwnedElementsType1::R21(): KDM::code::ClassUnit when {self.type='Class'}{
var a := new KDM::code::ClassUnit();
a.name :=self.name;
result.codeElement := a;
}
…
Table 2. ASTM elements to KDM elements mapping
ASTM element KDM element
ModifierType kdm:Attribute
OwnedElementsType1 code:CodeElement
OwnedElementsType1 code:ClassUnit
BodyDeclarationsType code:CodeElement
ParametersType code:ParameterUnit
3. RESULTS AND DISCUSSION
3.1. Case study example
Models will be extracted from a simple PHP class: Vegetable Class which has two properties,
a constructor and two functions.
<?php
class Vegetable {
private $edible;
private $color;
public function __construct($edible,$color) {
$this->edible = (int) $edible;
$this-> color = (int) $color;
}
public function is_edible () { return $this-> edible; }
public function what_color() { return $this-> color; }
}
?>
3.2. Result
AST tree
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<kind>program</kind>
<children>
<kind>class</kind>
<name>Vegetable</name>
<isAnonymous>false</isAnonymous>
<extends/>
<implements/>
<body>
<kind>property</kind>
<name>edible</name>
<value/>
<isAbstract>false</isAbstract>
<isFinal>false</isFinal>
<visibility>private</visibility>
<isStatic>false</isStatic>
</body>
<body>
<kind>property</kind>
<name>color</name>
<value/>
<isAbstract>false</isAbstract>
<isFinal>false</isFinal>
<visibility>private</visibility>
<isStatic>false</isStatic>
</body>
<body>
<kind>method</kind>
<name>__construct</name>
<arguments>
<kind>parameter</kind>
<name>edible</name>
<value/>
<type/>
<byref>false</byref>
<variadic>false</variadic>
<nullable>false</nullable>
</arguments>
 ISSN: 2302-9285
Bulletin of Electr Eng & Inf, Vol. 9, No. 1, February 2020 : 247 – 255
252
- ASTM model
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:AstmMM="http://AstmMM"
xsi:schemaLocation="http://AstmMM
platform:/plugin/org.eclipse.m2m.qvto.ast2astm/metamodel/ASTM.ecore">
<AstmMM:OwnedElementsType1 name="Vegetable"
type="Class" />
<AstmMM:BodyDeclarationsType>
<modifier visibility="private"/>
<fragments name="edible"/>
<type>property</type>
</AstmMM:BodyDeclarationsType>
<AstmMM:BodyDeclarationsType>
<modifier visibility="private"/>
<fragments name="color"/>
<type>property</type>
</AstmMM:BodyDeclarationsType>
<AstmMM:BodyDeclarationsType>
<modifier visibility="public"/>
<fragments name="__construct"/>
<parameters name="edible"/>
<parameters name="color"/>
<type>method</type>
</AstmMM:BodyDeclarationsType>
<AstmMM:BodyDeclarationsType/>
<AstmMM:BodyDeclarationsType>
<modifier visibility="public"/>
<fragments name="isValid"/>
<parameters/>
<type>method</type>
</AstmMM:BodyDeclarationsType>
<AstmMM:BodyDeclarationsType/>
<AstmMM:ExpressionType/>
<AstmMM:ExpressionType operator="="/>
<AstmMM:ExpressionType operator="="/>
<AstmMM:ExpressionType/>
<AstmMM:ExpressionType/>
<AstmMM:ExpressionType/>
</xmi:XMI>
- KDM model
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:code="http://www.eclipse.org/MoDisco/kdm/code"
xmlns:kdm="http://www.eclipse.org/MoDisco/kdm/kdm"
xsi:schemaLocation="http://www.eclipse.org/MoDisco/kdm/code
platform:/plugin/org.eclipse.m2m.qvto.astm2kdm/metamodel/KDM.ecore#//code
http://www.eclipse.org/MoDisco/kdm/kdm
platform:/plugin/org.eclipse.m2m.qvto.astm2kdm/metamodel/KDM.ecore#//kdm">
<code:CodeModelname="Vegetable_Project"/>
<kdm:Attribute value="private"/>
<kdm:Attribute value="private"/>
<kdm:Attribute value="public"/>
<kdm:Attribute value="public"/>
<kdm:Attribute value="public"/>
<code:CodeElement/>
<code:CodeElement/>
<code:CodeElement/>
<code:CodeElement/>
<code:CodeElement/>
<code:ClassUnit>
<codeElement xsi:type="code:ClassUnit" name="Vegetable"/>
</code:ClassUnit>
<code:CodeElement name="edible"/>
<code:CodeElement name="color"/>
<code:CodeElement name="__construct"/>
<code:ParameterUnit name="edible"/>
<code:ParameterUnit name="color"/>
<code:CodeElement/>
<code:CodeElement name="is_edible"/>
Bulletin of Electr Eng & Inf ISSN: 2302-9285 
PHP modernization approach generating KDM models from PHP legacy code (Amine Moutaouakkil)
253
<code:ParameterUnit/>
<code:CodeElement/>
<code:CodeElement name="what_color"/>
<code:ParameterUnit/>
<code:CodeElement/>
</xmi:XMI>
3.3. Related works
More and more research projects use the mechanisms offered by the MDA, in among these projects
include eg:
- ADM-Based Hybrid Model Transformation forObtaining UML Models from PHP Code [16]
- Improving Consistency of UML Diagrams and Its Implementation Using Reverse Engineering
Approach [17]
- Model Driven Approach based on Interaction Flow Modeling Language to Generate Rich Internet
Applications [18]
- Java Swing Modernization Approach: Complete Abstract Representation based on Static and
Dynamic Analysis [19]
- A Model Driven Reverse Engineering Framework for Extracting Business Rules out of
a Java Application [20]
- Reverse Engineering Applied to CMS-Based Web Applications Coded in PHP: A Proposal
of Migration [21]
- Combining UML Class and Activity Diagrams for MDA Generation of MVC 2 Web Applications [22]
- MoDisco Project [23]
ADM-Based Hybrid Model Transformation for Obtaining UML Models from PHP Code (2019).
This paper describes a model transformation process performing reverse engineering of PHP web
applications. Model to model transformations are implemented using ATL [24] (Atlas Transformation
Language). The obtained modelsare expressed in UML.
Improving Consistency of UML Diagrams and Its Implementation Using Reverse Engineering
Approach (2018). This paper describse the development of a tool that improve the consistency between
Unified Modeling Language (UML) design models and its C# implementation using reverse engineering
approach. This approach also takes code source as input a pplying to it the reverse eenginering process,
and then it takes the models as input too to verivying the consistency. This approach does not generate
models asartifacts.
A Model Driven Approach based on Interaction Flow Modeling Language to Generate Rich Internet
Applications (2016). This paper presents a model driven approach to generat GUI for Rich Internet
Application. Using the language IFML adopted by the Object Management Group, Query View
Transformation (QVT) for model transformations and Acceleo for code generation, the approach allows
to generate a RIA focusing on the graphical aspect of the application.
Java Swing Modernization Approach: Complete Abstract Representation based on Static and
Dynamic Analysis (2016). This paper defines an ADM-based method to define abstract models representing
the GUI knowledge and automate the generation of these models through transformation chains. A Model
Driven Reverse Engineering Framework for Extracting Business Rules out of a Java Application (2012). This
paper proposes a process of extracting business rules out of a Java application,
by identifying business rules from the source code. And presenting the extracted business rules
through models.
Reverse Engineering Applied to CMS-Based Web Applications Coded in PHP: A Proposal
of Migration (2013). This paper defines an ADM-based method for migrating CMS-based Web applications.
This method is focused on open-source CMS which are implemented in PHP. It makes the implementation
of the reverse engineering phase: ASTM models are extracted from the PHP code by text-to-model (T2M)
transformation implemented by a source code parser, KDM models are generated from the previous ASTM
models by means of M2M transformations. and by using M2M transformations the CMS Model which
conforms to the CMS Common Metamodel is generated. M2M transformations are implemented using ATL
Transformation Language.
Combining UML Class and Activity Diagrams for MDA Generation of MVC 2 Web Applications
(2013). This paper defines an MDA based process that integrates UML class diagram and Activity diagram,
in order to generate MVC2 web model of e-commerce web applications. Model-to-model transformations
are implemented using ATL Transformation Language, Model to text transformation are implemented using
JET language [25].
 ISSN: 2302-9285
Bulletin of Electr Eng & Inf, Vol. 9, No. 1, February 2020 : 247 – 255
254
MoDisco Project (2014). The eclipse plugin « Modisco » provides the capability of extracting
information from Java software artifacts, The model resulting will conform to meta -model included in
Modisco. Model of the abstract syntax tree can be obtained first from the program (based on a generic
meta-model such as OMG ASTM), After a transformation, Model of KDM meta -model is obtained;
KDM allows representing the entire software system and all its entities at both structural and behavioral
levels. Extracted models by Modisco are Ecore models. Modisco is one of rare tools that have allowed to
apply the ADM principles in real. Unfortunately, the current Modisco version does not include any specific
support for PHP code.
3.4. Analysis and discussion
In the ADM approach, KDM plays an important role. It is a meta -model that allows to represent
the structuraland semantic aspect of the software systems artifacts in a high level of abstraction.As a system
is represented in form of KDM models, the immigration to another platform becomes easier. We can notice
that obtained result correspondsto our aim goal.
According to the related works we can conclude that ADM approaches that extra ct ASTM and
KDM models from PHP code and others platforms are rare. Modisco approach stops at the Specific ASTM
level. "java" models extract by Modisco from Java projects are not generic ASTM models. The approach
" Reverse Engineering Applied to CMS-Based Web Applications Coded in PHP: A Proposal of Migration"
is based on in the use of the Xtext [26] plugin witch allows defining the syntax of language, wich involves
to write the PHP syntax in Xtext Grammar. Writing the PHP syntax in xtext language is a hard and
time-consuming task,this task is avoided in our approach by using glayzzle php-parser, our approach helpsto
gain this consumed time.
4. CONCLUSION
This paper presented an ADM based approach that allow obtaining KDM models from PHP source
code. This approach is composed of two phases: 1) extracting AST tree from source code, in this phase
the trees are extracted from the PHP code by text-to-model(T2M) transformations implemented by a source
code parser, 2) Generation of ASTM models, KDM models are generated from the previous ASTM models
by means of M2M transformations.For the implementation of the tree extraction phase, we have used
Galyzzle PHP Parser which has allowed us to extract AST tree from the source code.For the implementation
of the Generation of ASTM and KDM models phase we have implemented transformation rules using
QVT-Operational language. The major contribution is the use of the QVT transformation language defined
by the OMG. In addition, using this approach can reduce the necessary time to make the PHP web
applications migration. As a future work, we will perform similar approach to other platform and compare
high-level abstract results.
REFERENCES
[1] Architecture Driven Modernization (ADM). [Online]. Available: http://adm.omg.org/
[2] Object Management Object (OMG). [Online]. Available: http://www.omg.org/
[3] Model Driven Architecture (MDA). [Online]. Available: http://www.omg.org/mda/
[4] E. J. Chikofsky, J. H. Cross. “Reverse engineering and design recovery: a taxonomy," in IEEE Software, vol. 7,
no.1, pp. 13-17, 1990.
[5] C. Raibulet, F. Arcelli Fontana and M. Zanoni, "Model-Driven Reverse Engineering Approaches: A Systematic
Literature Review," in IEEE Access, vol. 5, pp. 14516-14542, 2017.
[6] Abstract Syntax Tree Meta-Model specification of the OMG. [Online]. Available:
http://www.omg.org/spec/ASTM/1.0/
[7] Knowledge Discovery Meta-Model specification of the OMG. [Online]. Available:
http://www.omg.org/spec/KDM/1.3
[8] Comsoft-direct, PowerAMC. [Online]. Available: http://www.comsoft-direct.fr/poweramc
[9] Sparx systems, Enterprise architect. [Online]. Available: http://www.sparxsystems.com.au/products/ea
[10] Objecteering, Objecteering, the model driven development tool. [Online]. Available: http://www.objecteering.com/
[11] Modeliosoft, the open source modeling environment, Modelio. [Online]. Available: https://www.modelio.org/
[12] A. Lanusse, Y. Tanguy, H. Espinoza, C. Mraidha, S. Gerard, P.Tessier, R. Schnekenburger, H. Dubois, F. Terrier.
“Papyrus UML: an open source toolset for MDA”. Proc. of the Fifth European Conference on Model-Driven
Architecture Foundations and Applications (ECMDA-FA 2009), pp. 1-4, 2009.
[13] NodeJS PHP Parser - extract AST or tokens (PHP5 and PHP7) . [Online]. Available: http://glayzzle.com/
php-parser/
[14] QVT (Query/View/Transformation) standard of the OMG. [Online]. Available: http://www.omg.org/spec/QVT/1.3/
Bulletin of Electr Eng & Inf ISSN: 2302-9285 
PHP modernization approach generating KDM models from PHP legacy code (Amine Moutaouakkil)
255
[15] KDM Technical Overview from KDM Analytics. [Online]. Available:
http://kdmanalytics.com/resources/standards/kdm/technical-overview/
[16] A. Elmounadi, N. Berbiche, N. Sefiani, N. El Moukhi, “ADM-Based Hybrid Model Transformation for Obtaining
UML Models from PHP Code,” International Journal of Embedded Systems (IJES), vol. 7, no. 1, pp. 32-41, 2019.
[17] V. Kaliappan, N. Mohd Ali, “Improving Consistency of UML Diagrams and Its Implementation Using Reverse
Engineering Approach,” Bulletin of Electrical Engineering and Informatics (BEEI). Vol. 7, no. 4,
pp. 665-672, 2018.
[18] S. S. Roubi, M. Erramdani, S. Mbarki, “A Model Driven Approach based on Interaction Flow Modeling Language
to Generate Rich Internet Applications,” International Journal of Electrical and Computer Engineering (IJECE),
vol. 6, no. 6, pp. 3073-3079, 2016.
[19] Z. Gotti, S. Mbarki, “Java Swing Modernization Approach: Complete Abstract Representation based on Static and
Dynamic Analysis,” Proceedings of the 11th International Joint Conference on Software Technologies (ICSOFT).
Lisbon. Vol. 1, pp. 210-219, 2016.
[20] V. Cosentino, J. Cabot, P. Albert, P. Bauquel, J. Perronnet, “A Model Driven Reverse Engineering Framework for
Extracting Business Rules out of a Java Application,” Proceeding RuleML'12 Proceedings of the 6th international
conference on Rules on the Web: research and applications. Montpellier, pp. 17-31, 2012.
[21] F. Trias, V. de Castro, M. López-Sanz, and E. Marcos, “Reverse Engineering Applied to CMS-Based Web
Applications Coded in PHP: A Proposal of Migration. Evaluation of Novel Approaches to Software Engineering,”
8th International Conference (ENASE). Angers, pp. 241-256, 2013.
[22] M. Rahmouni, S. Mbarki, “Combining UML Class and Activity Diagrams for MDA Generation of MVC 2 Web
Applications,” International Review on Computers and Software (IRECOS). vol 8, no. 4, pp. 949-957, 2013.
[23] H. Brunelière, J. Cabota, G. Dupé, F. Madiot, “MoDisco: a Model Driven Reverse Engineering Framework:
Information and Software Technology,” Elsevier, vol 56, no. 8, pp.1012-1032, 2014
[24] S. Mbarki, M. Rahmouni, “Validation of ATL Transformation to Generate a Reliable MVC2 Web Models,”
International Journal of Engineering and Applied Computer Science (IJEACS), vol. 2, no. 3, pp.83-91, 2017.
[25] Eclipse Foundation, “JET.” [Online]. Available: http://www.eclipse.org/modeling/m2t/?project=jet
[26] Xtext project. [Online]. Available: http://www.eclipse.org/Xtext

Weitere ähnliche Inhalte

Was ist angesagt?

IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#IRJET Journal
 
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...ijcsit
 
Capital Investment Industrial Modeling Framework - IMPRESS
Capital Investment Industrial Modeling Framework - IMPRESSCapital Investment Industrial Modeling Framework - IMPRESS
Capital Investment Industrial Modeling Framework - IMPRESSAlkis Vazacopoulos
 
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGPYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGijseajournal
 
IRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET Journal
 
Migrating existing projects to Rational solutions
Migrating existing projects to Rational solutionsMigrating existing projects to Rational solutions
Migrating existing projects to Rational solutionsEinar Karlsen
 
BPM-X Pattern-based model transformations (v2)
BPM-X Pattern-based model transformations (v2)BPM-X Pattern-based model transformations (v2)
BPM-X Pattern-based model transformations (v2)BPM-Xchange
 
Computer Aided Process Planning Using Neutral File Step for Rotational Parts
Computer Aided Process Planning Using Neutral File Step for Rotational PartsComputer Aided Process Planning Using Neutral File Step for Rotational Parts
Computer Aided Process Planning Using Neutral File Step for Rotational PartsRSIS International
 
Strategies for Rule-Based Program Transformation
Strategies for Rule-Based Program TransformationStrategies for Rule-Based Program Transformation
Strategies for Rule-Based Program TransformationEelco Visser
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008William Piers
 
OMG Specifications for Enterprise Interoperability
OMG Specifications for Enterprise InteroperabilityOMG Specifications for Enterprise Interoperability
OMG Specifications for Enterprise InteroperabilityBrian Elvesæter
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
A practical approach for model based slicing
A practical approach for model based slicingA practical approach for model based slicing
A practical approach for model based slicingIOSR Journals
 
Evolutionary Multi-Goal Workflow Progress in Shade
Evolutionary  Multi-Goal Workflow Progress in ShadeEvolutionary  Multi-Goal Workflow Progress in Shade
Evolutionary Multi-Goal Workflow Progress in ShadeIRJET Journal
 
Towards Method Engineering of Model-Driven User Interface Development
Towards Method Engineering ofModel-Driven User Interface Development Towards Method Engineering ofModel-Driven User Interface Development
Towards Method Engineering of Model-Driven User Interface Development Jean Vanderdonckt
 

Was ist angesagt? (20)

IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
 
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
 
Capital Investment Industrial Modeling Framework - IMPRESS
Capital Investment Industrial Modeling Framework - IMPRESSCapital Investment Industrial Modeling Framework - IMPRESS
Capital Investment Industrial Modeling Framework - IMPRESS
 
Colloquium Report
Colloquium ReportColloquium Report
Colloquium Report
 
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGPYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
 
IRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation Techniques
 
Migrating existing projects to Rational solutions
Migrating existing projects to Rational solutionsMigrating existing projects to Rational solutions
Migrating existing projects to Rational solutions
 
BPM-X Pattern-based model transformations (v2)
BPM-X Pattern-based model transformations (v2)BPM-X Pattern-based model transformations (v2)
BPM-X Pattern-based model transformations (v2)
 
Computer Aided Process Planning Using Neutral File Step for Rotational Parts
Computer Aided Process Planning Using Neutral File Step for Rotational PartsComputer Aided Process Planning Using Neutral File Step for Rotational Parts
Computer Aided Process Planning Using Neutral File Step for Rotational Parts
 
Different Proposed Models to Mapping MDA to RUP
Different Proposed Models to Mapping MDA to RUPDifferent Proposed Models to Mapping MDA to RUP
Different Proposed Models to Mapping MDA to RUP
 
Ial impl-imf-book-1-0
Ial impl-imf-book-1-0Ial impl-imf-book-1-0
Ial impl-imf-book-1-0
 
Strategies for Rule-Based Program Transformation
Strategies for Rule-Based Program TransformationStrategies for Rule-Based Program Transformation
Strategies for Rule-Based Program Transformation
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008
 
OMG Specifications for Enterprise Interoperability
OMG Specifications for Enterprise InteroperabilityOMG Specifications for Enterprise Interoperability
OMG Specifications for Enterprise Interoperability
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
10.1.1.65.2852
10.1.1.65.285210.1.1.65.2852
10.1.1.65.2852
 
A practical approach for model based slicing
A practical approach for model based slicingA practical approach for model based slicing
A practical approach for model based slicing
 
Evolutionary Multi-Goal Workflow Progress in Shade
Evolutionary  Multi-Goal Workflow Progress in ShadeEvolutionary  Multi-Goal Workflow Progress in Shade
Evolutionary Multi-Goal Workflow Progress in Shade
 
Towards Method Engineering of Model-Driven User Interface Development
Towards Method Engineering ofModel-Driven User Interface Development Towards Method Engineering ofModel-Driven User Interface Development
Towards Method Engineering of Model-Driven User Interface Development
 

Ähnlich wie PHP modernization approach generating KDM models from PHP legacy code

Model-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeModel-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeIJEACS
 
Csit77404
Csit77404Csit77404
Csit77404csandit
 
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...CSCJournals
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyEditor IJCATR
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Editor IJCATR
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyEditor IJCATR
 
Integrating profiling into mde compilers
Integrating profiling into mde compilersIntegrating profiling into mde compilers
Integrating profiling into mde compilersijseajournal
 
A methodology for cim modelling and its transformation to pim
A methodology for cim modelling and its transformation to pimA methodology for cim modelling and its transformation to pim
A methodology for cim modelling and its transformation to pimAlexander Decker
 
Discreate eventsimulation idef
Discreate eventsimulation idefDiscreate eventsimulation idef
Discreate eventsimulation idefMandar Trivedi
 
A service-oriented cloud modeling method and process
 A service-oriented cloud modeling method and process   A service-oriented cloud modeling method and process
A service-oriented cloud modeling method and process IJECEIAES
 
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...IRJET Journal
 
Automatic generation of business process models from user stories
Automatic generation of business process models from user  storiesAutomatic generation of business process models from user  stories
Automatic generation of business process models from user storiesIJECEIAES
 
Application of SHAPE Technologies in Production and Process Optimization
Application of SHAPE Technologies in Production and Process OptimizationApplication of SHAPE Technologies in Production and Process Optimization
Application of SHAPE Technologies in Production and Process OptimizationBrian Elvesæter
 
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARERESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWAREcscpconf
 
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARERESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWAREcsandit
 
Model-Driven Development of Web Applications
Model-Driven Development of Web ApplicationsModel-Driven Development of Web Applications
Model-Driven Development of Web Applicationsidescitation
 
IRJET - Text Summarizer.
IRJET -  	  Text Summarizer.IRJET -  	  Text Summarizer.
IRJET - Text Summarizer.IRJET Journal
 

Ähnlich wie PHP modernization approach generating KDM models from PHP legacy code (20)

Model-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeModel-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to Code
 
Csit77404
Csit77404Csit77404
Csit77404
 
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Integrating profiling into mde compilers
Integrating profiling into mde compilersIntegrating profiling into mde compilers
Integrating profiling into mde compilers
 
A methodology for cim modelling and its transformation to pim
A methodology for cim modelling and its transformation to pimA methodology for cim modelling and its transformation to pim
A methodology for cim modelling and its transformation to pim
 
Discreate eventsimulation idef
Discreate eventsimulation idefDiscreate eventsimulation idef
Discreate eventsimulation idef
 
A service-oriented cloud modeling method and process
 A service-oriented cloud modeling method and process   A service-oriented cloud modeling method and process
A service-oriented cloud modeling method and process
 
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
 
Automatic generation of business process models from user stories
Automatic generation of business process models from user  storiesAutomatic generation of business process models from user  stories
Automatic generation of business process models from user stories
 
Application of SHAPE Technologies in Production and Process Optimization
Application of SHAPE Technologies in Production and Process OptimizationApplication of SHAPE Technologies in Production and Process Optimization
Application of SHAPE Technologies in Production and Process Optimization
 
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARERESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
 
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARERESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
RESILIENT INTERFACE DESIGN FOR SAFETY-CRITICAL EMBEDDED AUTOMOTIVE SOFTWARE
 
Model-Driven Development of Web Applications
Model-Driven Development of Web ApplicationsModel-Driven Development of Web Applications
Model-Driven Development of Web Applications
 
Legacy Migration Overview
Legacy Migration OverviewLegacy Migration Overview
Legacy Migration Overview
 
Legacy Migration
Legacy MigrationLegacy Migration
Legacy Migration
 
IRJET - Text Summarizer.
IRJET -  	  Text Summarizer.IRJET -  	  Text Summarizer.
IRJET - Text Summarizer.
 
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee ApplicatiesFinal Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
 

Mehr von journalBEEI

Square transposition: an approach to the transposition process in block cipher
Square transposition: an approach to the transposition process in block cipherSquare transposition: an approach to the transposition process in block cipher
Square transposition: an approach to the transposition process in block cipherjournalBEEI
 
Hyper-parameter optimization of convolutional neural network based on particl...
Hyper-parameter optimization of convolutional neural network based on particl...Hyper-parameter optimization of convolutional neural network based on particl...
Hyper-parameter optimization of convolutional neural network based on particl...journalBEEI
 
Supervised machine learning based liver disease prediction approach with LASS...
Supervised machine learning based liver disease prediction approach with LASS...Supervised machine learning based liver disease prediction approach with LASS...
Supervised machine learning based liver disease prediction approach with LASS...journalBEEI
 
A secure and energy saving protocol for wireless sensor networks
A secure and energy saving protocol for wireless sensor networksA secure and energy saving protocol for wireless sensor networks
A secure and energy saving protocol for wireless sensor networksjournalBEEI
 
Plant leaf identification system using convolutional neural network
Plant leaf identification system using convolutional neural networkPlant leaf identification system using convolutional neural network
Plant leaf identification system using convolutional neural networkjournalBEEI
 
Customized moodle-based learning management system for socially disadvantaged...
Customized moodle-based learning management system for socially disadvantaged...Customized moodle-based learning management system for socially disadvantaged...
Customized moodle-based learning management system for socially disadvantaged...journalBEEI
 
Understanding the role of individual learner in adaptive and personalized e-l...
Understanding the role of individual learner in adaptive and personalized e-l...Understanding the role of individual learner in adaptive and personalized e-l...
Understanding the role of individual learner in adaptive and personalized e-l...journalBEEI
 
Prototype mobile contactless transaction system in traditional markets to sup...
Prototype mobile contactless transaction system in traditional markets to sup...Prototype mobile contactless transaction system in traditional markets to sup...
Prototype mobile contactless transaction system in traditional markets to sup...journalBEEI
 
Wireless HART stack using multiprocessor technique with laxity algorithm
Wireless HART stack using multiprocessor technique with laxity algorithmWireless HART stack using multiprocessor technique with laxity algorithm
Wireless HART stack using multiprocessor technique with laxity algorithmjournalBEEI
 
Implementation of double-layer loaded on octagon microstrip yagi antenna
Implementation of double-layer loaded on octagon microstrip yagi antennaImplementation of double-layer loaded on octagon microstrip yagi antenna
Implementation of double-layer loaded on octagon microstrip yagi antennajournalBEEI
 
The calculation of the field of an antenna located near the human head
The calculation of the field of an antenna located near the human headThe calculation of the field of an antenna located near the human head
The calculation of the field of an antenna located near the human headjournalBEEI
 
Exact secure outage probability performance of uplinkdownlink multiple access...
Exact secure outage probability performance of uplinkdownlink multiple access...Exact secure outage probability performance of uplinkdownlink multiple access...
Exact secure outage probability performance of uplinkdownlink multiple access...journalBEEI
 
Design of a dual-band antenna for energy harvesting application
Design of a dual-band antenna for energy harvesting applicationDesign of a dual-band antenna for energy harvesting application
Design of a dual-band antenna for energy harvesting applicationjournalBEEI
 
Transforming data-centric eXtensible markup language into relational database...
Transforming data-centric eXtensible markup language into relational database...Transforming data-centric eXtensible markup language into relational database...
Transforming data-centric eXtensible markup language into relational database...journalBEEI
 
Key performance requirement of future next wireless networks (6G)
Key performance requirement of future next wireless networks (6G)Key performance requirement of future next wireless networks (6G)
Key performance requirement of future next wireless networks (6G)journalBEEI
 
Noise resistance territorial intensity-based optical flow using inverse confi...
Noise resistance territorial intensity-based optical flow using inverse confi...Noise resistance territorial intensity-based optical flow using inverse confi...
Noise resistance territorial intensity-based optical flow using inverse confi...journalBEEI
 
Modeling climate phenomenon with software grids analysis and display system i...
Modeling climate phenomenon with software grids analysis and display system i...Modeling climate phenomenon with software grids analysis and display system i...
Modeling climate phenomenon with software grids analysis and display system i...journalBEEI
 
An approach of re-organizing input dataset to enhance the quality of emotion ...
An approach of re-organizing input dataset to enhance the quality of emotion ...An approach of re-organizing input dataset to enhance the quality of emotion ...
An approach of re-organizing input dataset to enhance the quality of emotion ...journalBEEI
 
Parking detection system using background subtraction and HSV color segmentation
Parking detection system using background subtraction and HSV color segmentationParking detection system using background subtraction and HSV color segmentation
Parking detection system using background subtraction and HSV color segmentationjournalBEEI
 
Quality of service performances of video and voice transmission in universal ...
Quality of service performances of video and voice transmission in universal ...Quality of service performances of video and voice transmission in universal ...
Quality of service performances of video and voice transmission in universal ...journalBEEI
 

Mehr von journalBEEI (20)

Square transposition: an approach to the transposition process in block cipher
Square transposition: an approach to the transposition process in block cipherSquare transposition: an approach to the transposition process in block cipher
Square transposition: an approach to the transposition process in block cipher
 
Hyper-parameter optimization of convolutional neural network based on particl...
Hyper-parameter optimization of convolutional neural network based on particl...Hyper-parameter optimization of convolutional neural network based on particl...
Hyper-parameter optimization of convolutional neural network based on particl...
 
Supervised machine learning based liver disease prediction approach with LASS...
Supervised machine learning based liver disease prediction approach with LASS...Supervised machine learning based liver disease prediction approach with LASS...
Supervised machine learning based liver disease prediction approach with LASS...
 
A secure and energy saving protocol for wireless sensor networks
A secure and energy saving protocol for wireless sensor networksA secure and energy saving protocol for wireless sensor networks
A secure and energy saving protocol for wireless sensor networks
 
Plant leaf identification system using convolutional neural network
Plant leaf identification system using convolutional neural networkPlant leaf identification system using convolutional neural network
Plant leaf identification system using convolutional neural network
 
Customized moodle-based learning management system for socially disadvantaged...
Customized moodle-based learning management system for socially disadvantaged...Customized moodle-based learning management system for socially disadvantaged...
Customized moodle-based learning management system for socially disadvantaged...
 
Understanding the role of individual learner in adaptive and personalized e-l...
Understanding the role of individual learner in adaptive and personalized e-l...Understanding the role of individual learner in adaptive and personalized e-l...
Understanding the role of individual learner in adaptive and personalized e-l...
 
Prototype mobile contactless transaction system in traditional markets to sup...
Prototype mobile contactless transaction system in traditional markets to sup...Prototype mobile contactless transaction system in traditional markets to sup...
Prototype mobile contactless transaction system in traditional markets to sup...
 
Wireless HART stack using multiprocessor technique with laxity algorithm
Wireless HART stack using multiprocessor technique with laxity algorithmWireless HART stack using multiprocessor technique with laxity algorithm
Wireless HART stack using multiprocessor technique with laxity algorithm
 
Implementation of double-layer loaded on octagon microstrip yagi antenna
Implementation of double-layer loaded on octagon microstrip yagi antennaImplementation of double-layer loaded on octagon microstrip yagi antenna
Implementation of double-layer loaded on octagon microstrip yagi antenna
 
The calculation of the field of an antenna located near the human head
The calculation of the field of an antenna located near the human headThe calculation of the field of an antenna located near the human head
The calculation of the field of an antenna located near the human head
 
Exact secure outage probability performance of uplinkdownlink multiple access...
Exact secure outage probability performance of uplinkdownlink multiple access...Exact secure outage probability performance of uplinkdownlink multiple access...
Exact secure outage probability performance of uplinkdownlink multiple access...
 
Design of a dual-band antenna for energy harvesting application
Design of a dual-band antenna for energy harvesting applicationDesign of a dual-band antenna for energy harvesting application
Design of a dual-band antenna for energy harvesting application
 
Transforming data-centric eXtensible markup language into relational database...
Transforming data-centric eXtensible markup language into relational database...Transforming data-centric eXtensible markup language into relational database...
Transforming data-centric eXtensible markup language into relational database...
 
Key performance requirement of future next wireless networks (6G)
Key performance requirement of future next wireless networks (6G)Key performance requirement of future next wireless networks (6G)
Key performance requirement of future next wireless networks (6G)
 
Noise resistance territorial intensity-based optical flow using inverse confi...
Noise resistance territorial intensity-based optical flow using inverse confi...Noise resistance territorial intensity-based optical flow using inverse confi...
Noise resistance territorial intensity-based optical flow using inverse confi...
 
Modeling climate phenomenon with software grids analysis and display system i...
Modeling climate phenomenon with software grids analysis and display system i...Modeling climate phenomenon with software grids analysis and display system i...
Modeling climate phenomenon with software grids analysis and display system i...
 
An approach of re-organizing input dataset to enhance the quality of emotion ...
An approach of re-organizing input dataset to enhance the quality of emotion ...An approach of re-organizing input dataset to enhance the quality of emotion ...
An approach of re-organizing input dataset to enhance the quality of emotion ...
 
Parking detection system using background subtraction and HSV color segmentation
Parking detection system using background subtraction and HSV color segmentationParking detection system using background subtraction and HSV color segmentation
Parking detection system using background subtraction and HSV color segmentation
 
Quality of service performances of video and voice transmission in universal ...
Quality of service performances of video and voice transmission in universal ...Quality of service performances of video and voice transmission in universal ...
Quality of service performances of video and voice transmission in universal ...
 

Kürzlich hochgeladen

Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Christo Ananth
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLManishPatel169454
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfRagavanV2
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdfSuman Jyoti
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 

Kürzlich hochgeladen (20)

Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 

PHP modernization approach generating KDM models from PHP legacy code

  • 1. Bulletin of Electrical Engineering and Informatics Vol. 9, No. 1, February 2020,pp. 247~255 ISSN: 2302-9285,DOI: 10.11591/eei.v9i1.1269  247 Journal homepage: http://beei.org PHP modernization approach generating KDM models from PHP legacy code Amine Moutaouakkil, Samir Mbarki MISC Laboratory, Faculty of Science, Ibn Tofail University BP133, Kenitra, Morocco Article Info ABSTRACT Article history: Received Jul 15, 2018 Revised Oct 7, 2019 Accepted Nov 12, 2019 With the rise of new web technologies such as web 2.0, Jquery, Bootstrap. Modernizing legacy web systems to benefit from the advantages of the new technologies is more and more relevant. The migration of a system from an environment to another is a time and effort consuming process; it involves a complete rewrite of the application adapted to the target platform. To realize this migration in an automated and standardized way, many approaches have tried to define standardized engineering processes. Architecture Driven Modernization (ADM) defines an approach to standardize and automate the reengineering process. We defined an ADM approach to represent PHP web applications in the highest level of abstraction models. To do this, we have used software artifacts as an entry point. This paper describes the extraction process, which permits discovering and understanding of the legacy system. Moreover, generate models to represent the system in an abstract way. Keywords: Abstract syntax tree meta-model(ASTM) Architecture-driven modernization (ADM) Knowledge discovery model (KDM) Model-driven engineering Reverse engineering This is an open access article under the CC BY-SA license. Corresponding Author: Amine Moutaouakkil, MISC Laboratory,Faculty of Science, Ibn Tofail University, BP133, Kenitra, Morocco. Email: amine.moutaouakkil@hotmail.fr 1. INTRODUCTION Basing more and more their business on IT solutions, organizations using web technology systems have to modernize their legacy systems to be aligned with competition. Most of websites and web applications are written in PHP language (82,5% in 2017-02-11). The need to immigrate both from and to this language is increasing. The PHP language is constantly evolving, more and more new frameworks and new standartsare available to use which make users in the need of migrating their PHP Web applications to anotherlanguage or to a new version of PHP language. It is necessary to have a standardized an automatic process of reengineering to minimize time and costs. Currently, there is an initiative to standardize and automa te the reengineering process. The Architecture-driven Modernization (ADM) [1] is an Object Management Group (OMG) [2] initiative related to the reverse engineering domain. This initiative has been proposed to enhance the classical reverse engineering processes by introducing the Model-driven Architecture (MDA) [3] concepts. In the same way that the MDA approach provides a leading role to the models, the ADM approach introduces several conceptsto formalize the RE [4] processes based on models too. It is necessary to realize methods for migrating PHP Web applications, but currently there are no relied ADM based methodesmakingit. We defined an ADM based approach to represent PHP source code in form of KDM models. This approach has taken advantage of the potential of the Architecture Driven Modernization (ADM) to modeling the knowledge, which will be extracted from the legacy program artifacts.
  • 2.  ISSN: 2302-9285 Bulletin of Electr Eng & Inf, Vol. 9, No. 1, February 2020 : 247 – 255 248 In this article, we describe the generation of models to represent the legacy system at the highest level of abstraction. The rest of this article is organized as follows: section 2 describes the process based on the ADM approach and describes their different phases. In section 3, we illustrate our proposed approach by a case study. Section 4 makes the analysis of the process result. In section 5 we list some interesting related works. Finally, section 6 concludes the work and presents the perspectives. 2. RESEARCH METHOD - MDRE Model Driven Reverse Engineering (MDRE) [5] is the application of Model Driven Engineering (MDE) principles and techniques to Reverse Engineering (RE) in order to get model based views from legacy systems. The MDRE is based on two main phases: Model Discovery which is extracting information from source code by using parsers, and then represent this information in form of models. And Model Understanding which is applying Model to Model transformations on extracted information to get a higher abstraction level presentation of the information. - ADM Architecture Driven Modernization (ADM) is an initiative proposed by OMG to standardize and automate the reengineering process. ADM is based on three standards meta-models to represent the information involved in a software reengineering process. In the current study, only Abstract Syntax Tree Meta-Model (ASTM) [6] and Knowledge Discovery Meta -Model (KDM) standards are useful for the purpose. ASTM allows modeling the legacy code in form of Abstract Syntax Tree. Otherwise, KDM [7] allows defining models at a higher abstraction level representing semantic information about a software system. 2.1. Model discovery Discovering the legacy system corresponding PSM models by analyze the source code constitutes the first step. PSM models define the structures and relationships between system elements. UML Class Diagram for example is a PSM model that can be generated by many UML tools: PowerAMC [8], Enterprise-Architect [9], Objecteering [10], Modelio [11], Papyrus [12]. Model discovery allows the extraction of information from the system and its representation in concrete models such as ASTM. To represent the information in PHP code in the form of ASTM models, we have found out that we have to write a PHP Discoverer first so that existing PHP code can be represented as a model. After dealing with the creation and operation of discoverers. It turned out that the incorporation and implementation is extremely complex. We looked for alternative ways to transform PHP code into models. After searching and trying the available parsers for PHP, one of them was interesting, glayzzle/php-parser [13]. This parser is working well, it parses the PHP code and gets an abstract syntax tree (AST), and obtained tree is an intermediate step to get ASTM models aftertransformations. 2.2. Model understanding Model understanding consists in the transformation of models to get higher abstract models. In our study, we need to make two transformations: Apply model-to-model transformation on the AST tree to get ASTM model, which is a Generic ASTM model. Apply model-to-model transformation on the ASTM model to get KDM model. - QVT Transformation Standard QVT (Query/View/Transformation) [14] is a standard set of languages for model transformation defined by the OMG. The QVT standard defines three model transformation languages. All of them operate on models which conform to Meta-Object Facility (MOF) 2.0 metamodels; the transformation states which metamodels are used. QVT Operational which we use, it is an imperative language designed for writing unidirectional transformations. Models extraction process a shown in Figure 1. - ASTM Current OMG ASTM meta-model needs to be simplified, to make the transformation easier for our example.ASTM meta-modelprovided by OMG and Simplified one a shown Figure 2. - KDM KDM meta-model provided by OMG a shown in Figure 3. KDM is a standard defined by OMG for the representation of software systems. This meta-model allows to represent systems artifacts in a high level of abstraction. The KDM specification consists of 12 packages that are arranged into the following four layers [15].
  • 3. Bulletin of Electr Eng & Inf ISSN: 2302-9285  PHP modernization approach generating KDM models from PHP legacy code (Amine Moutaouakkil) 249 Figure 1. Models extraction process Figure 2. ASTM meta-modelprovided by OMG and simplified one Figure 3. KDM meta-modelprovided by OMG PHP Source code Specific ASTM Model Generic ASTM Model KDM Model M2M Tranformation Parser M2M Tranformation Core, KDM, Source Action Code UI Data Plateform Event Conceptual Infrastructure Layer Abstractions Layer Resource Layer Program Elements Layer
  • 4.  ISSN: 2302-9285 Bulletin of Electr Eng & Inf, Vol. 9, No. 1, February 2020 : 247 – 255 250 In our approach,we focuson Code package.The Code package represents programming elements as used by programming languages: data types,procedures, classes, methods,variables,etc. - AST to ASTM QVT-O Transformation script We have defined a mapping table between AST model elements and ASTM model elements. Based on the mapping table, we have written a QVT-O transformation script to map AST model elements to ASTM model elements. AST elementsto ASTM elements mappinga shown in Ta ble 1. Table 1. AST elements to ASTM elements mapping AST element ASTM element ChildrenType OwnedElementsType1 BodyType BodyDeclarationsType ArgumentsType ParametersType modeltype AST uses 'http://AstMM'; modeltype ASTM uses 'http://AstmMM'; transformation ast2astm(inast : AST, out ASTM); main() { ast.objects()[AST::ChildrenType]->map R1(); ast.objects()[AST::BodyType]->map R2(); … } mapping AST::ChildrenType::R1() : ASTM::OwnedElementsType1 { if (self.kind<>'inline'){ name := self.name; } } mapping AST::BodyType::R2(): ASTM::BodyDeclarationsType { if (self.kind='property'){ type := self.kind; modifier := self.map R21(); fragments := self.map R22(); } else if (self.kind='method'){ type := self.kind; modifier := self.map R21(); fragments := self.map R22(); parameters :=self.arguments.mapR23(); } } … - ASTM to KDM QVT-O Transformation script We have defined a mapping table between ASTM model elements and KDM model elements. Based on the mapping table, we have written a QVT-O transformation script to map ASTM model elements to KDM model elements. ASTM elements to KDM elements mappinga shown in Table 2. modeltype ASTM uses 'http://AstmMM'; modeltype KDM uses 'http://KdmMM'; transformation astm2kdm(inastm : ASTM, out KDM); main() { astm.rootObjects()[ASTM::Model]->map R0(); astm.objects()[ASTM::ModifierType]->map R1(); astm.objects()[ASTM::OwnedElementsType1]->map R2(); astm.objects()[ASTM::OwnedElementsType1]->map R21(); … } mapping ASTM::Model::R0() : KDM::code::CodeModel{ name := self.name; } mapping ASTM::ModifierType::R1() : KDM::kdm::Attribute { value := self.visibility.toString();
  • 5. Bulletin of Electr Eng & Inf ISSN: 2302-9285  PHP modernization approach generating KDM models from PHP legacy code (Amine Moutaouakkil) 251 } mapping ASTM::OwnedElementsType1::R2() : KDM::code::CodeElement when {self.type<>'Class'}{ name := self.name; } mapping ASTM::OwnedElementsType1::R21(): KDM::code::ClassUnit when {self.type='Class'}{ var a := new KDM::code::ClassUnit(); a.name :=self.name; result.codeElement := a; } … Table 2. ASTM elements to KDM elements mapping ASTM element KDM element ModifierType kdm:Attribute OwnedElementsType1 code:CodeElement OwnedElementsType1 code:ClassUnit BodyDeclarationsType code:CodeElement ParametersType code:ParameterUnit 3. RESULTS AND DISCUSSION 3.1. Case study example Models will be extracted from a simple PHP class: Vegetable Class which has two properties, a constructor and two functions. <?php class Vegetable { private $edible; private $color; public function __construct($edible,$color) { $this->edible = (int) $edible; $this-> color = (int) $color; } public function is_edible () { return $this-> edible; } public function what_color() { return $this-> color; } } ?> 3.2. Result AST tree <?xml version="1.0" encoding="UTF-8" ?> <root> <kind>program</kind> <children> <kind>class</kind> <name>Vegetable</name> <isAnonymous>false</isAnonymous> <extends/> <implements/> <body> <kind>property</kind> <name>edible</name> <value/> <isAbstract>false</isAbstract> <isFinal>false</isFinal> <visibility>private</visibility> <isStatic>false</isStatic> </body> <body> <kind>property</kind> <name>color</name> <value/> <isAbstract>false</isAbstract> <isFinal>false</isFinal> <visibility>private</visibility> <isStatic>false</isStatic> </body> <body> <kind>method</kind> <name>__construct</name> <arguments> <kind>parameter</kind> <name>edible</name> <value/> <type/> <byref>false</byref> <variadic>false</variadic> <nullable>false</nullable> </arguments>
  • 6.  ISSN: 2302-9285 Bulletin of Electr Eng & Inf, Vol. 9, No. 1, February 2020 : 247 – 255 252 - ASTM model <?xml version="1.0" encoding="UTF-8"?> <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:AstmMM="http://AstmMM" xsi:schemaLocation="http://AstmMM platform:/plugin/org.eclipse.m2m.qvto.ast2astm/metamodel/ASTM.ecore"> <AstmMM:OwnedElementsType1 name="Vegetable" type="Class" /> <AstmMM:BodyDeclarationsType> <modifier visibility="private"/> <fragments name="edible"/> <type>property</type> </AstmMM:BodyDeclarationsType> <AstmMM:BodyDeclarationsType> <modifier visibility="private"/> <fragments name="color"/> <type>property</type> </AstmMM:BodyDeclarationsType> <AstmMM:BodyDeclarationsType> <modifier visibility="public"/> <fragments name="__construct"/> <parameters name="edible"/> <parameters name="color"/> <type>method</type> </AstmMM:BodyDeclarationsType> <AstmMM:BodyDeclarationsType/> <AstmMM:BodyDeclarationsType> <modifier visibility="public"/> <fragments name="isValid"/> <parameters/> <type>method</type> </AstmMM:BodyDeclarationsType> <AstmMM:BodyDeclarationsType/> <AstmMM:ExpressionType/> <AstmMM:ExpressionType operator="="/> <AstmMM:ExpressionType operator="="/> <AstmMM:ExpressionType/> <AstmMM:ExpressionType/> <AstmMM:ExpressionType/> </xmi:XMI> - KDM model <?xml version="1.0" encoding="UTF-8"?> <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:code="http://www.eclipse.org/MoDisco/kdm/code" xmlns:kdm="http://www.eclipse.org/MoDisco/kdm/kdm" xsi:schemaLocation="http://www.eclipse.org/MoDisco/kdm/code platform:/plugin/org.eclipse.m2m.qvto.astm2kdm/metamodel/KDM.ecore#//code http://www.eclipse.org/MoDisco/kdm/kdm platform:/plugin/org.eclipse.m2m.qvto.astm2kdm/metamodel/KDM.ecore#//kdm"> <code:CodeModelname="Vegetable_Project"/> <kdm:Attribute value="private"/> <kdm:Attribute value="private"/> <kdm:Attribute value="public"/> <kdm:Attribute value="public"/> <kdm:Attribute value="public"/> <code:CodeElement/> <code:CodeElement/> <code:CodeElement/> <code:CodeElement/> <code:CodeElement/> <code:ClassUnit> <codeElement xsi:type="code:ClassUnit" name="Vegetable"/> </code:ClassUnit> <code:CodeElement name="edible"/> <code:CodeElement name="color"/> <code:CodeElement name="__construct"/> <code:ParameterUnit name="edible"/> <code:ParameterUnit name="color"/> <code:CodeElement/> <code:CodeElement name="is_edible"/>
  • 7. Bulletin of Electr Eng & Inf ISSN: 2302-9285  PHP modernization approach generating KDM models from PHP legacy code (Amine Moutaouakkil) 253 <code:ParameterUnit/> <code:CodeElement/> <code:CodeElement name="what_color"/> <code:ParameterUnit/> <code:CodeElement/> </xmi:XMI> 3.3. Related works More and more research projects use the mechanisms offered by the MDA, in among these projects include eg: - ADM-Based Hybrid Model Transformation forObtaining UML Models from PHP Code [16] - Improving Consistency of UML Diagrams and Its Implementation Using Reverse Engineering Approach [17] - Model Driven Approach based on Interaction Flow Modeling Language to Generate Rich Internet Applications [18] - Java Swing Modernization Approach: Complete Abstract Representation based on Static and Dynamic Analysis [19] - A Model Driven Reverse Engineering Framework for Extracting Business Rules out of a Java Application [20] - Reverse Engineering Applied to CMS-Based Web Applications Coded in PHP: A Proposal of Migration [21] - Combining UML Class and Activity Diagrams for MDA Generation of MVC 2 Web Applications [22] - MoDisco Project [23] ADM-Based Hybrid Model Transformation for Obtaining UML Models from PHP Code (2019). This paper describes a model transformation process performing reverse engineering of PHP web applications. Model to model transformations are implemented using ATL [24] (Atlas Transformation Language). The obtained modelsare expressed in UML. Improving Consistency of UML Diagrams and Its Implementation Using Reverse Engineering Approach (2018). This paper describse the development of a tool that improve the consistency between Unified Modeling Language (UML) design models and its C# implementation using reverse engineering approach. This approach also takes code source as input a pplying to it the reverse eenginering process, and then it takes the models as input too to verivying the consistency. This approach does not generate models asartifacts. A Model Driven Approach based on Interaction Flow Modeling Language to Generate Rich Internet Applications (2016). This paper presents a model driven approach to generat GUI for Rich Internet Application. Using the language IFML adopted by the Object Management Group, Query View Transformation (QVT) for model transformations and Acceleo for code generation, the approach allows to generate a RIA focusing on the graphical aspect of the application. Java Swing Modernization Approach: Complete Abstract Representation based on Static and Dynamic Analysis (2016). This paper defines an ADM-based method to define abstract models representing the GUI knowledge and automate the generation of these models through transformation chains. A Model Driven Reverse Engineering Framework for Extracting Business Rules out of a Java Application (2012). This paper proposes a process of extracting business rules out of a Java application, by identifying business rules from the source code. And presenting the extracted business rules through models. Reverse Engineering Applied to CMS-Based Web Applications Coded in PHP: A Proposal of Migration (2013). This paper defines an ADM-based method for migrating CMS-based Web applications. This method is focused on open-source CMS which are implemented in PHP. It makes the implementation of the reverse engineering phase: ASTM models are extracted from the PHP code by text-to-model (T2M) transformation implemented by a source code parser, KDM models are generated from the previous ASTM models by means of M2M transformations. and by using M2M transformations the CMS Model which conforms to the CMS Common Metamodel is generated. M2M transformations are implemented using ATL Transformation Language. Combining UML Class and Activity Diagrams for MDA Generation of MVC 2 Web Applications (2013). This paper defines an MDA based process that integrates UML class diagram and Activity diagram, in order to generate MVC2 web model of e-commerce web applications. Model-to-model transformations are implemented using ATL Transformation Language, Model to text transformation are implemented using JET language [25].
  • 8.  ISSN: 2302-9285 Bulletin of Electr Eng & Inf, Vol. 9, No. 1, February 2020 : 247 – 255 254 MoDisco Project (2014). The eclipse plugin « Modisco » provides the capability of extracting information from Java software artifacts, The model resulting will conform to meta -model included in Modisco. Model of the abstract syntax tree can be obtained first from the program (based on a generic meta-model such as OMG ASTM), After a transformation, Model of KDM meta -model is obtained; KDM allows representing the entire software system and all its entities at both structural and behavioral levels. Extracted models by Modisco are Ecore models. Modisco is one of rare tools that have allowed to apply the ADM principles in real. Unfortunately, the current Modisco version does not include any specific support for PHP code. 3.4. Analysis and discussion In the ADM approach, KDM plays an important role. It is a meta -model that allows to represent the structuraland semantic aspect of the software systems artifacts in a high level of abstraction.As a system is represented in form of KDM models, the immigration to another platform becomes easier. We can notice that obtained result correspondsto our aim goal. According to the related works we can conclude that ADM approaches that extra ct ASTM and KDM models from PHP code and others platforms are rare. Modisco approach stops at the Specific ASTM level. "java" models extract by Modisco from Java projects are not generic ASTM models. The approach " Reverse Engineering Applied to CMS-Based Web Applications Coded in PHP: A Proposal of Migration" is based on in the use of the Xtext [26] plugin witch allows defining the syntax of language, wich involves to write the PHP syntax in Xtext Grammar. Writing the PHP syntax in xtext language is a hard and time-consuming task,this task is avoided in our approach by using glayzzle php-parser, our approach helpsto gain this consumed time. 4. CONCLUSION This paper presented an ADM based approach that allow obtaining KDM models from PHP source code. This approach is composed of two phases: 1) extracting AST tree from source code, in this phase the trees are extracted from the PHP code by text-to-model(T2M) transformations implemented by a source code parser, 2) Generation of ASTM models, KDM models are generated from the previous ASTM models by means of M2M transformations.For the implementation of the tree extraction phase, we have used Galyzzle PHP Parser which has allowed us to extract AST tree from the source code.For the implementation of the Generation of ASTM and KDM models phase we have implemented transformation rules using QVT-Operational language. The major contribution is the use of the QVT transformation language defined by the OMG. In addition, using this approach can reduce the necessary time to make the PHP web applications migration. As a future work, we will perform similar approach to other platform and compare high-level abstract results. REFERENCES [1] Architecture Driven Modernization (ADM). [Online]. Available: http://adm.omg.org/ [2] Object Management Object (OMG). [Online]. Available: http://www.omg.org/ [3] Model Driven Architecture (MDA). [Online]. Available: http://www.omg.org/mda/ [4] E. J. Chikofsky, J. H. Cross. “Reverse engineering and design recovery: a taxonomy," in IEEE Software, vol. 7, no.1, pp. 13-17, 1990. [5] C. Raibulet, F. Arcelli Fontana and M. Zanoni, "Model-Driven Reverse Engineering Approaches: A Systematic Literature Review," in IEEE Access, vol. 5, pp. 14516-14542, 2017. [6] Abstract Syntax Tree Meta-Model specification of the OMG. [Online]. Available: http://www.omg.org/spec/ASTM/1.0/ [7] Knowledge Discovery Meta-Model specification of the OMG. [Online]. Available: http://www.omg.org/spec/KDM/1.3 [8] Comsoft-direct, PowerAMC. [Online]. Available: http://www.comsoft-direct.fr/poweramc [9] Sparx systems, Enterprise architect. [Online]. Available: http://www.sparxsystems.com.au/products/ea [10] Objecteering, Objecteering, the model driven development tool. [Online]. Available: http://www.objecteering.com/ [11] Modeliosoft, the open source modeling environment, Modelio. [Online]. Available: https://www.modelio.org/ [12] A. Lanusse, Y. Tanguy, H. Espinoza, C. Mraidha, S. Gerard, P.Tessier, R. Schnekenburger, H. Dubois, F. Terrier. “Papyrus UML: an open source toolset for MDA”. Proc. of the Fifth European Conference on Model-Driven Architecture Foundations and Applications (ECMDA-FA 2009), pp. 1-4, 2009. [13] NodeJS PHP Parser - extract AST or tokens (PHP5 and PHP7) . [Online]. Available: http://glayzzle.com/ php-parser/ [14] QVT (Query/View/Transformation) standard of the OMG. [Online]. Available: http://www.omg.org/spec/QVT/1.3/
  • 9. Bulletin of Electr Eng & Inf ISSN: 2302-9285  PHP modernization approach generating KDM models from PHP legacy code (Amine Moutaouakkil) 255 [15] KDM Technical Overview from KDM Analytics. [Online]. Available: http://kdmanalytics.com/resources/standards/kdm/technical-overview/ [16] A. Elmounadi, N. Berbiche, N. Sefiani, N. El Moukhi, “ADM-Based Hybrid Model Transformation for Obtaining UML Models from PHP Code,” International Journal of Embedded Systems (IJES), vol. 7, no. 1, pp. 32-41, 2019. [17] V. Kaliappan, N. Mohd Ali, “Improving Consistency of UML Diagrams and Its Implementation Using Reverse Engineering Approach,” Bulletin of Electrical Engineering and Informatics (BEEI). Vol. 7, no. 4, pp. 665-672, 2018. [18] S. S. Roubi, M. Erramdani, S. Mbarki, “A Model Driven Approach based on Interaction Flow Modeling Language to Generate Rich Internet Applications,” International Journal of Electrical and Computer Engineering (IJECE), vol. 6, no. 6, pp. 3073-3079, 2016. [19] Z. Gotti, S. Mbarki, “Java Swing Modernization Approach: Complete Abstract Representation based on Static and Dynamic Analysis,” Proceedings of the 11th International Joint Conference on Software Technologies (ICSOFT). Lisbon. Vol. 1, pp. 210-219, 2016. [20] V. Cosentino, J. Cabot, P. Albert, P. Bauquel, J. Perronnet, “A Model Driven Reverse Engineering Framework for Extracting Business Rules out of a Java Application,” Proceeding RuleML'12 Proceedings of the 6th international conference on Rules on the Web: research and applications. Montpellier, pp. 17-31, 2012. [21] F. Trias, V. de Castro, M. López-Sanz, and E. Marcos, “Reverse Engineering Applied to CMS-Based Web Applications Coded in PHP: A Proposal of Migration. Evaluation of Novel Approaches to Software Engineering,” 8th International Conference (ENASE). Angers, pp. 241-256, 2013. [22] M. Rahmouni, S. Mbarki, “Combining UML Class and Activity Diagrams for MDA Generation of MVC 2 Web Applications,” International Review on Computers and Software (IRECOS). vol 8, no. 4, pp. 949-957, 2013. [23] H. Brunelière, J. Cabota, G. Dupé, F. Madiot, “MoDisco: a Model Driven Reverse Engineering Framework: Information and Software Technology,” Elsevier, vol 56, no. 8, pp.1012-1032, 2014 [24] S. Mbarki, M. Rahmouni, “Validation of ATL Transformation to Generate a Reliable MVC2 Web Models,” International Journal of Engineering and Applied Computer Science (IJEACS), vol. 2, no. 3, pp.83-91, 2017. [25] Eclipse Foundation, “JET.” [Online]. Available: http://www.eclipse.org/modeling/m2t/?project=jet [26] Xtext project. [Online]. Available: http://www.eclipse.org/Xtext