ABSTRACT
A novel method for identifying dense communities of classes (clusters) within an Object-Oriented system has been developed. Such communities might possibly imply relevance of functionality and thus be used as Reusable Components. The term "Reusable Components" is used to refer to a set of interrelated classes that represent a module that can be used in different software systems. To accomplish this identification we employ Algebraic Graph Theory (Spectral Graph Partitioning Techniques). From a modified class diagram of the software system we create a graph in which classes stand for the nodes and the discrete messages exchanged between the classes stand for the edges. Our approach is based on an iterative method for partitioning the graph in order to identify possible reusable components within the system. The eigenvectors of the Laplacian matrix derived from the graph are used for the partitioning.
- Bertrand Meyer, Object Success - A Manager's Guide to Object Orientation, its Impact on the Corporation, and its Use for Reengineering the Software Process, Prentice Hall, 1995. Google ScholarDigital Library
- I. Jacobson, M. Christerson, P. Jonsson, G. Overgaard, Object-Oriented Software Engineering - A Use Case Driven Approach, Reading, MA, USA / Wonkingam, England, Addison Wesley / ACM Press, 1992. Google ScholarDigital Library
- M. Fiedler. Algebraic connectivity of graphs, Czechoslovak Mathematical Journal, 23(98), pp.298--305, 1973.Google ScholarCross Ref
- M. Fiedler. A property of eigenvectors of nonnegative symmetric matrices and its applications to graph theory. Czechoslovak Mathematical Journal, 25(100), pp. 619--633, 1975.Google ScholarCross Ref
- C. Ghezzi, M. Jazayeri, D. Mandrioli, Fundamentals of Software Engineering, Englewood Cliffs, New Jersey, USA, Prentice Hall, 1991. Google ScholarDigital Library
- Clemens Szyperski, Component Software, Addison Wesley, 2002.Google Scholar
- W.E. Donath and A.J. Hoffman, Lower bounds for the partitioning of graphs, IBM Journal of Research and Development, 17, pp. 420--425, September 1973.Google ScholarDigital Library
- F. Radicchi, C. Castellano, F. Cecconi, V. Loreto, and Domenico Parisi Defining and identifying communities in networks, PNAS, vol. 101, no. 9, pp. 2658--2663, March 2004.Google Scholar
Index Terms
- Identification of reusable components within an object-oriented software system using algebraic graph theory
Recommendations
Constructing Applications from Reusable Components
By integrating commercial off-the-shelf software, reusable components from other projects, and custom-developed code, the author quickly and cheaply created a flexible and extensible financial risk-management application. He also found that the Nextstep ...
Producing reusable object-oriented components: a domain-and-organization-specific perspective
SSR '01: Proceedings of the 2001 symposium on Software reusability: putting software reuse in contextDeveloping reusable object-oriented software requires a designer to determine how to structure a software system so as to achieve the necessary functionality, while at the same time increasing the reuse potential of the software. We introduce a set of ...
Reverse engineering reusable software components from object-oriented APIs
Automatic component recovery from object-oriented APIs.We mined components as classes frequently used together and structural dependent.Experimented on 100 applications used four APIs. Object-oriented Application Programing Interfaces (APIs) support ...
Comments