Abstract

In this paper, we apply different software complexity measures to a set of shortest-path algorithms. Our intention is to study what kind of new information about the algorithms the complexity measures (lines-of-code, Halstead's volume, and cyclomatic number) are able to give, to study which software complexity measures are the most useful ones in algorithm comparison, and to analyze when the software complexity comparisons are appropriate. The experiment indicates that the software complexity measures give a new dimension to empirical algorithm comparison. The results explicitly show the trade-off between speed and implementation complexity: a faster algorithm typically requires a more complex implementation. Different complexity measures correlate strongly. Therefore, even the simple lines-of-code measure gives useful results. As the software complexity measures are easy to calculate and since they give useful information, the study suggests that such measures should be included in empirical algorithm comparisons. Unfortunately, for meaningful results, all the algorithms have to be developed in the same fashion which makes the comparison of independent implementations difficult. [12pt] Scope and purpose For practical use an algorithm has to be fast and accurate as well as easy to implement, test, and maintain. In this work, we investigate whether software complexity measures could make the implementation aspects more explicit and allow algorithm comparisons also in this dimension. We calculate lines-of-code, Halstead's volume, and cyclomatic number measures for different shortest-path algorithms. We investigate if such measures are applicable to algorithm comparison and study what can be learned from algorithms when they are also compared in implementation dimension. The main purpose of the work is to understand if it is possible to explicitly measure the implementation complexity of an algorithm. Having such measures available would help the practitioner to choose the algorithm that best matches the need. The optimal algorithm for a given task would have adequate performance with minimal implementation complexity. For algorithm research implementation, complexity measures would offer a new analysis dimension and make easy implementation a parallel goal with algorithm performance.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call