ePrints.FRI - University of Ljubljana, Faculty of Computer and Information Science

Transforming PL/SQL source code into an application transition graph

Luka Bac (2015) Transforming PL/SQL source code into an application transition graph. EngD thesis.

Download (1760Kb)


    A graph providing an overview of an application would serve the reverse engineering effort well. We have walked through the workings of an application that was developed to automatically generate one such graph, which was represented by an Atomic Section Model with an approximation of its Application Targeted Graph. The case-study for this application was the student information system e-Študent. This system uses an Oracle Database to host the data, while our effort only had access to a database dump from which to retrieve the PL/SQL source code in the form of functions, dynamic structures and procedures. The first step was to restore the database itself, followed by scraping the source code into text files which were then analyzed using a lexical analyzer developed by the open source tool flex, in which we defined the required PL/SQL lexical structure, focused mainly on recognizing function calls. This output was then fed through a Python script that generated a file in the DOT format, describing the function calls of the individual input files. This was presented by rendering it into a graph with the open source graph visualization software Graphviz. These graphs were then made easier to read by injecting Javascript functions and CSS styles to enable highlighting of edges and vertices. In addition, the application calculates the in and out degree of each vertex, which can help the analyst in deciding to exclude certain vertices.

    Item Type: Thesis (EngD thesis)
    Keywords: PL/SQL, Oracle SQL, atomic section model, application transition graph, component interaction model, Flex, Graphviz, Python
    Number of Pages: 37
    Language of Content: Slovenian
    Mentor / Comentors:
    Name and SurnameIDFunction
    doc. dr. Boštjan Slivnik280Mentor
    Link to COBISS: http://www.cobiss.si/scripts/cobiss?command=search&base=51012&select=(ID=1536308419)
    Institution: University of Ljubljana
    Department: Faculty of Computer and Information Science
    Item ID: 2981
    Date Deposited: 20 Apr 2015 15:17
    Last Modified: 21 May 2015 11:30
    URI: http://eprints.fri.uni-lj.si/id/eprint/2981

    Actions (login required)

    View Item