18
Reverse Engineering of Web Pages based on Derivations and Transformations L.Bouillon, Q.Limbourg, J.Vanderdonckt, B.Michotte Université catholique de Louvain, School of Management (IAG) Information Systems Unit (ISYS)

Reverse Engineering of Web Pages based on Derivations and Transformations L.Bouillon, Q.Limbourg, J.Vanderdonckt, B.Michotte Université catholique de Louvain,

Embed Size (px)

Citation preview

Reverse Engineering of Web Pages based on Derivations and Transformations

L.Bouillon, Q.Limbourg, J.Vanderdonckt, B.Michotte

Université catholique de Louvain, School of Management (IAG)Information Systems Unit (ISYS)

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Introduction

Forward and reverse engineering following four paths: Code-to-code Code-to-model Model-to-code Model-to-model

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Properties of ReengineeringInitial User Interface

Reengineering engineReengineeringparameters

Reengineeringlogic

Final User Interface

Reengineering system

Initial User Interface

Reengineering engineReengineeringparameters

Reengineeringlogic

Final User Interface

Reengineering system

Flexible operationalization of reengineering logicFlexible usage of reengineering engineLanguage NeutralityModality independenceMulti-level abstractionSeparation of concerns

a reengineering logic containing the knowledgerequired to perform the reengineering should be separated from the reengineering engine applying this knowledge.

the system should also produce a UI model that remains independent of any modality of interaction

a consequence of the platform independence is that, in principle, the system should be developed so as to accommodate UI programming in multiple languages whether they are imperative, declarative or markup

means that any type of knowledge should be specifiedexplicitly in a way that remains external to the engine so that the engine remains autonomous when the logicchanges.

the engine should be controlled by reengineering parameters so that the process can be made observable and traceable to the designer.

the system should produce a reengineered final UI from an initial UI so as to reach multiple levels of abstraction.

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Cameleon Reference Framework(2)

Task & Concepts

Abstract UI

Concrete UI

Final UI

Task & Concepts

Abstract UI

Concrete UI

Final UI

Source platform Target platform

Task & Concepts

Abstract UI

Concrete UI

Final UI

Task & Concepts

Abstract UI

Concrete UI

Final UI

Source platform Target platform

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Cameleon Reference Framework(2)

Task & Concepts

Abstract UI

Concrete UI

Final UI

Task & Concepts

Abstract UI

Concrete UI

Final UI

Source platform Target platform

Task & Concepts

Abstract UI

Concrete UI

Final UI

Task & Concepts

Abstract UI

Concrete UI

Final UI

Source platform Target platform

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Usixml Graph transformation based language Usixml model collection:

AUI model CUI model Task model Domain model Mapping model uiModel Context model

User model Platform model Environment model

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Derivations rules (1)

Set of rules developped to recover CUI and AUI from several FUIs

(HTML, WML, VoiceXML…) Examine language patterns of the

source code and create a corresponding structure in terms of UI graph.

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Derivation rules examples

For a textbox in HTML x Ts : x = input ٨ (x.type=“text” ٧ type=“password” ٧ x.type=NULL) Addnode (“textComponent”, idtext) where idtext=∑ node Tt

For a table in HTML x Ts : x = table ٨ x.border>0

Addnode (“table”, idtable) where idtable = ∑ node Tt x Ts : x = table ٨ x.border=0

Addnode (“box”, idbox) where idbox = ∑ node Tt AddAttribute (idbox, type, “vertical”)

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Model Transformations

Graph Transformation

Graph rewriting rules

(conditions: attribute

& negative application)

When LHS matches into G (and NAC does not) then LHS is replaced by RHS in G’.

LHS can also compare value (attibute condition)

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Model Transformations Example

NAC LHS RHS

::=

NAC LHS RHS

::=

AGG Tool : programming environment for graph transformations

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Properties of Model transformation

Traceability Reversibility Multi-directional development

(explicitly connects various levels) Powerfull and formal approach Graphcial / textual formalism

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Software support

ReversiXML TransformXML GrafiXML

All these tools are available on http://www. usixml.org

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

ReversiXML

Accessible on-line at: http://www.isys.ucl.ac.be/research/reversi/RevXMLUI.php

Application developped in PHP 5 allowing to dynamically apply flexible reverse engineering of HTML pages.

Short demonstration

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

ReversiXML (2)

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

TransformiXML Tool developped in

Java, based on the AGG tool engine

Accept as input UsiXML specifications and allows to apply rules to transform models

Export transformed UsiXML specifications

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

GrafiXML

Java-based forward engineering tool Allows to graphically draw a UI and

generates the correspond UI code in Java, XHTML or XUL.

Allows to apply complete reengineering thanks to the three tools: ReversiXML, TransformiXML and GrafiXML

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Multi-path support for MDA

UsiXML model:Abstract user

interface

UsiXML model:Concrete user

interface

Rendering

Final userinterface

UsiXMLmodels: task,

domainGenerative

programming

Graphtransformations

Graphtransformations

Derivation rules

IdealXML

ReversiXML

FlashiXML

VisualiXML

TransformiXML

GrafiXMLVisiXML

SketchiXMLFormiXML

KnowiXML

LA-WEB 2005 – Buenos Aires, Oct. 31 – Nov. 2nd

Conclusion

120 derivations rules incorporated in ReversiXML (not for scripts & .css)

Flexible application of rules: observable, traceable and controllable

Multiple level of abstraction More levels of abstraction available with

transformiXML Generability of rules used in transformiXML