Software comprehension based on database relational algebra

Execution trace file analysis facilitates software comprehension which is a fundamental part of the software maintenance process. However, the scalability of large execution trace files limits understanding programmes and increases the complexity of the maintenance process. A programme interior representation which reflects the actual data structure is constructed from reduced execution traces. These reduced execution traces are extracted from a profiled run or logs of a programme. As a result, the generated output of these representations can then be easily analysed and visualised. This paper presents an approach to analyse execution trace files using relational database algebra methods to better comprehend and maintain softwares. Furthermore, this work can be helpful in evaluating the software's security using the logs trace files. The proposed approach was tested on real open source software. The results indicate that the proposed approach simplifies software comprehension, and may reduce the execution trace file size for up to 70% of its original size.

[1]  Hausi A. Müller,et al.  Rigi: a system for programming-in-the-large , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[2]  Mark N. Wegman,et al.  Execution Patterns in Object-Oriented Visualization , 1998, COOTS.

[3]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.

[4]  Abdelwahab Hamou-Lhadj,et al.  A Metamodel for Dynamic Information Generated from Object-Oriented Systems , 2004, Electron. Notes Theor. Comput. Sci..

[5]  Bogdan Dit,et al.  Integrating information retrieval, execution and link analysis algorithms to improve feature location in software , 2012, Empirical Software Engineering.

[6]  Abdelwahab Hamou-Lhadj,et al.  Understanding the complexity embedded in large routine call traces with a focus on program comprehension tasks , 2010, IET Softw..

[7]  Harald C. Gall,et al.  System evolution tracking through execution trace analysis , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[8]  B. J. Mohd,et al.  Relational database approach for execution trace analysis , 2012, 2012 International Conference on Computer, Information and Telecommunication Systems (CITS).

[9]  John T. Stasko,et al.  Visualizing Interactions in Program Executions , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[10]  Daniel Amyot,et al.  Understanding Existing Software with Use Case Map Scenarios , 2002, SAM.

[11]  Hausi A. Müller,et al.  Shimba—an environment for reverse engineering Java software systems , 2001, Softw. Pract. Exp..

[12]  Marcelo de Almeida Maia,et al.  On the Use of Execution Trace Alignment for Driving Perfective Changes , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[13]  Arie van Deursen,et al.  Execution trace analysis through massive sequence and circular bundle views , 2008, J. Syst. Softw..

[14]  Abdelwahab Hamou-Lhadj,et al.  A survey of trace exploration tools and techniques , 2004, CASCON.

[15]  Victor R. Basili,et al.  Evolving and packaging reading technologies , 1997, J. Syst. Softw..

[16]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[17]  David Harel,et al.  On Visualization and Comprehension of Scenario-Based Programs , 2011, 2011 IEEE 19th International Conference on Program Comprehension.