Simplifying the Structural Complexity of Software Systems

Abstract Simplification of execution traces is peculiarly important in the case of software comprehension. The objective is to make execution traces in ways that are more tractable and less difficult. However, the simplification process is a difficult task, particularly, in object-oriented contexts. Due to coupling, execution traces of object-oriented systems involve the Spaghetti Architectures phenomenon, which is a very complicated structure of dependencies. Therefore, the simplification process needs a well-established approach to be helpful for software comprehension. Otherwise, the simplified execution traces will be informative as their structures will involve several gaps that lead to a misunderstanding process. This research uses decoupling to guide the simplification of object-oriented execution traces. Specifically, decoupling truthfully can decrease the complexity of execution traces without eliminating the trace components and making numerous gaps in the trace structure. Then, decoupling can solve the problem of the Spaghetti Architectures phenomenon. A controlled experiment was conducted to empirically validate the usefulness and effectivity of the suggested work. There was a significant statistical added value demonstrated in the time required and the accurate solutions of the tasks being solved. More precisely, 25% less time required with a 62% more correct solutions were achieved solving the experiment’s comprehension tasks.

[1]  Arie van Deursen,et al.  A Controlled Experiment for Program Comprehension through Trace Visualization , 2011, IEEE Transactions on Software Engineering.

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

[3]  Abdelwahab Hamou-Lhadj,et al.  Quality of the Source Code for Design and Architecture Recovery Techniques: Utilities are the Problem , 2009, 2009 Ninth International Conference on Quality Software.

[4]  Jeff Offutt,et al.  Coupling-based analysis of object-oriented software , 2007 .

[5]  Putra Sumari,et al.  Utility classes detection metrics for execution trace analysis , 2017, 2017 8th International Conference on Information Technology (ICIT).

[6]  Eileen Kraemer,et al.  Designing your Next Empirical Study on Program Comprehension , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[7]  Marc Roper,et al.  A novel software visualisation model to support software comprehension , 2004, 11th Working Conference on Reverse Engineering.

[8]  Eugene Miya,et al.  On "Software engineering" , 1985, SOEN.

[9]  Fabio Palomba,et al.  A survey on software coupling relations and tools , 2019, Inf. Softw. Technol..

[10]  Evangelos Grigoroudis,et al.  A non-compensatory approach for trace clustering , 2019, Int. Trans. Oper. Res..

[11]  Thamer Al-Rousan,et al.  A trace simplification framework , 2017, 2017 8th International Conference on Information Technology (ICIT).

[12]  Heidar Pirzadeh Tabari Trace Abstraction Framework and Techniques , 2012 .

[13]  Margaret-Anne D. Storey,et al.  Theories, tools and research methods in program comprehension: past, present and future , 2006, Software Quality Journal.

[14]  Thamer Al-Rousan and Hasan A. Al Ese Impact of Cloud Computing on Educational Institutions: A Case Study , 2015 .

[15]  Marcelo Arenas Database Theory Column Report on PODS 2018 , 2018, SIGA.

[16]  Alain Abran,et al.  The Guide to the Software Engineering Body of Knowledge , 1999, IEEE Softw..

[17]  Abdelwahab Hamou-Lhadj,et al.  Software Clustering Using Dynamic Analysis and Static Dependencies , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[18]  Jameleddine Hassine,et al.  A framework for the recovery and visualization of system availability scenarios from execution traces , 2018, Inf. Softw. Technol..

[19]  V. Basili Software modeling and measurement: the Goal/Question/Metric paradigm , 1992 .

[20]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[21]  Abdelwahab Hamou-Lhadj,et al.  Approach for solving the feature location problem by measuring the component modification impact , 2009, IET Softw..