Aiming Towards Modernization: Visualization to Assist Structural Understanding of Oracle Forms Applications

Oracle Forms is a tool for creating screens that interact with an Oracle database. It appeared in the eighties and its use spread to many IT sectors today. There are pressures that push software engineers to modernize Oracle Forms applications: obsolescence of technology, requirements of users, etc. For a straightforward modernization, it is necessary to comprehend the applications from a prior step. This paper reports the preliminary results of the ”Forms Modernization” project, in particular, of the understanding step. In most cases, the understanding of Forms applications is a complex and time-consuming task due to several reasons: large size of applications, lack of design documentation, lack of software organization. This paper proposes a visualization process to alleviate these issues. The process takes static Oracle Forms code as input and produces a set of domain specific diagrams/views, that ranges from high to low abstraction levels, as output. The gist of diagrams and views is to assist engineers in a structural understanding of the Oracle Forms software. The process includes algorithms for element discovery and clustering, and is instrumented by means of a tool running on Eclipse Modeling technologies. We take advantage of four real Oracle Forms applications to illustrate the benefits of this approach. These applications have been provided by Asesoftware, which is the Colombian industrial partner of the project. Keywords—program comprehension; reverse engineering; tools; clustering algorithms; model-driven engineering; graphical editors.

[1]  Reinder J. Bril,et al.  Maintaining a legacy: towards support at the architectural level , 2000 .

[2]  Nancy R. Mead,et al.  Advances in Software Engineering and Software Assurance , 2016, Adv. Comput..

[3]  Brian A. Malloy,et al.  A language and platform-independent approach for reverse engineering , 2005, Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05).

[4]  Scott R. Tilley,et al.  Documenting software systems with views VI: lessons learned from 15 years of research & practice , 2009, SIGDOC '09.

[5]  Morgan Ericsson,et al.  VizzAnalyzer – A Software Comprehension Framework , 2003 .

[6]  Giuseppe A. Di Lucca,et al.  Reverse engineering Web applications: the WARE approach , 2004, J. Softw. Maintenance Res. Pract..

[7]  Daniel M. Germán,et al.  A survey and evaluation of tool features for understanding reverse-engineered sequence diagrams , 2008, J. Softw. Maintenance Res. Pract..

[8]  Emden R. Gansner,et al.  Bunch: a clustering tool for the recovery and maintenance of software system structures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[9]  Saurabh Sinha,et al.  Semantics-based reverse engineering of object-oriented data models , 2006, ICSE '06.

[10]  James R. Cordy,et al.  Automated Reverse Engineering of UML Sequence Diagrams for Dynamic Web Applications , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[11]  Arthur D. Fisk,et al.  Choosing the Right Task Analysis Tool , 2012 .

[12]  Jesús García Molina,et al.  An Architecture-Driven Modernization Tool for Calculating Metrics , 2010, IEEE Software.

[13]  Jesús Sánchez Cuadrado,et al.  Model-driven reverse engineering of legacy graphical user interfaces , 2010, ASE.

[14]  Stéphane Ducasse,et al.  Recovering high-level views of object-oriented applications from static and dynamic information , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[15]  Nicolas Anquetil,et al.  Legacy Software Restructuring: Analyzing a Concrete Case , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.