Identifying Complex Functions By Investigating Various Aspects of Code Complexity
Paper i proceeding, 2015

The complexity management of software code has become one of the major problems in software development industry. With growing complexity the maintenance effort of software code increases. Moreover, multiple aspects of complexity create difficulties for optimal complexity management. The objective of this study is to investigate the relationships of several aspects of code complexity and assess the possibilities of optimizing overall code complexity. We conducted an action research project in two software development companies and complemented it with a study of three open source products. Four complexity metrics were measured, and their nature and mutual influence were investigated using statistical methods. The results and possible explanations were discussed with software engineers in industry. The results showed that there are two distinguishable aspects of complexity of source code functions; internal and external complexities. Those have an inverse relationship. Moreover, the product of them cannot be greater than a certain limit, regardless of software size. We developed a method that permits identification of most complex functions considering the two aspects of complexities. The evaluation showed that the use of the method is effective in industry; it enables identification of few (0.5%) most complex functions out of thousands of functions for manual assessment and reengineering.

Författare

Vard Antinyan

Göteborgs universitet

Miroslaw Staron

Göteborgs universitet

Jesper Derehag

Ericsson Sweden

Mattias Runsten

Högskolan i Skövde

Volvo

Erik Wikström

Ericsson Sweden

Wilhelm Meding

Ericsson Sweden

anders Henriksson

Chalmers

Jörgen Hansson

Chalmers, Data- och informationsteknik, Software Engineering

Proceedings of 2015 Science and Information Conference (SAI)

879-888

Ämneskategorier

Programvaruteknik

DOI

10.1109/SAI.2015.7237246

ISBN

9781479985470