Applications of clustering techniques to software partitioning, recovery and restructuring

  • Authors:
  • Chung-Horng Lung;Marzia Zaman;Amit Nandi

  • Affiliations:
  • Department of Systems and Computer Engineering, Carleton University, 1125 Colonel By Drive, Ottawa, ON, Canada K1S 5B6;Cistel Technology, 200-210 Colonnade Road, Ottawa, ON, Canada K2E 7L5;Nortel Networks, P.O. Box 3511, Station C, Ottawa, ON, Canada K1Y 4H7

  • Venue:
  • Journal of Systems and Software - Special issue: Applications of statistics in software engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The artifacts constituting a software system are sometimes unnecessarily coupled with one another or may drift over time. As a result, support of software partitioning, recovery, and restructuring is often necessary. This paper presents studies on applying the numerical taxonomy clustering technique to software applications. The objective is to facilitate those activities just mentioned and to improve design, evaluation and evolution. Numerical taxonomy is mathematically simple and yet it is a useful mechanism for component clustering and software partitioning. The technique can be applied at various levels of abstraction or to different software life-cycle phases. We have applied the technique to: (1) software partitioning at the software architecture design phase; (2) grouping of components based on the source code to recover the software architecture in the reverse engineering process; (3) restructuring of a software to support evolution in the maintenance stage; and (4) improving cohesion and reducing coupling for source code. In this paper, we provide an introduction to the numerical taxonomy, discuss our experiences in applying the approach to various areas, and relate the technique to the context of similar work.