Efficient Retrieval and Ranking of Undesired Package Cycles in Large Software Systems

By: Jannik Laval, Jean-Rémy Falleri, Philippe Vismara, Stéphane Ducasse

Abstract

Many design guidelines state that a software system architecture should avoid cycles between its packages. Yet such cycles appear again and again in many programs. We believe that the existing approaches for cycle detection are too coarse to assist developers to remove cycles from their programs. In this paper, we describe an efficient algorithm that performs a fine-grained analysis of cycles among application packages. In addition, we define multiple metrics to rank cycles by their level of undesirability, prioritizing cycles that are the more undesired by developers. We compare these multiple ranking metrics on four large and mature software systems in Java and Smalltalk.

Keywords

Software architecture, software re-engineering, package cycle, package dependency

Cite as:

Jannik Laval, Jean-Rémy Falleri, Philippe Vismara, Stéphane Ducasse, “Efficient Retrieval and Ranking of Undesired Package Cycles in Large Software Systems”, Journal of Object Technology, Volume 11, no. 1 (April 2012), pp. 4:1-24, doi:10.5381/jot.2012.11.1.a4.

PDF | DOI | BiBTeX | Tweet this | Post to CiteULike | Share on LinkedIn

The JOT Journal   |   ISSN 1660-1769   |   DOI 10.5381/jot   |   AITO   |   Open Access   |    Contact