Download Reverse engineering of Graphical User Interfaces based

Transcript
2 State of the art
I will mension here some related works to the reverse engineering of application’s user
interfaces to show that this method is commonly used today. Many organizations for example
are choosing to reengineer their critical applications to better fit their needs and to take
advantage of the new technologies. Most of these researches lead to reverse engineering of
legacy systems6 user interfaces.
MORPH [1] is a process for reengineering the user interfaces of text-based legacy systems to
graphical user interfaces. The resulting model is used to transform the abstractions in the
model to a specific graphical widget toolkit. The process is composed of three steps. In the
detection step, the source code is analyzed to identify user interaction components in the
legacy system thanks to a detection engine. In the representation step, an abstract model is
build expressing the existing user interface (as derived from the detection step). The model is
then stored in the knowledge base. In the transformation step, human analyst can refine the
model thanks to the transformation engine which makes it possible to manipulate, augment
and restructure of the resulting model to a graphical environment. The transformation stage
suggests specific graphical implementations and integrates them for user interface
abstractions into the legacy code.
The AIUDL [2] environment was a pioneer approach in user interface (UI) reengineering.
The original UI is first translated in AUIDL (Abstract UI Description Language). This
language is able to represent UI objects in terms of both structure and behaviour. Different
levels of abstractions can be defined. To translate the interface in AUIDL, user actions and
system responses have to be identified using pattern matching techniques7. The Milner’s
process algebra is used to map out the behaviour of the system. The spatial organization of
display objects is explicitly described with two mechanisms: containment and importation of
attributes from other objects8. An abstract syntax tree is first obtained from the source code of
the system. A module extracts UI fragments from it, and the abstract specification of the UI is
then constructed. This last step is semi-automated: a part of the code is parsed and
automatically abstracted and the remaining is left to the programmer. Finally, the AUIDL
specifications are translated in the EASEL language (this language allows the automated
6
A legacy system is a computer system or application program which has been in place for a long time and
which continues to be used because an organization does not want to support the costs of replace or redesign it.
7
The code of a UI is parsed to build a manipulable representation of it. Interface fragments are then extracted
from this representation, and a pattern matcher identifies syntactic patterns in the fragments. Using the code
fragments as a basis, details about modes of interaction and conditions of activation are identified with control
flow analysis.
8
For example, an object imports the x-coordinate of another object to describe an alignment for these objects.
7