Visualizing, Assessing and Re-Modularizing Object-Oriented Architectural Elements

Hani Abdeen 1
1 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
LIFL - Laboratoire d'Informatique Fondamentale de Lille, Inria Lille - Nord Europe
Abstract : To cope with the complexity of large object-oriented software systems, developers organize classes into subsystems using the concepts of module or package. Such modular structure helps software systems to evolve when facing new requirements. The organization of classes into packages and/or subsystems represents the software modularization. the software modularization usually follows interrelationships between classes. Ideally, packages should to be loosely coupled and cohesive to a certain extent. However, Studies show that as software evolves to meet requirements and environment changes, the software modularization gradually drifts and looses quality. As a consequence, the software modularization must be maintained. It is thus important to understand, to assess and to optimize the organization of packages and their relationships. Our claim is that the maintenance of large and complex software modularizations needs approaches that help in: (1) understanding package shapes and relationships; (2) assessing the quality of a modularization, as well as the quality of a single package within a given modularization; (3) optimizing the quality of an existing modulariza- tion. In this thesis, we concentrate on three research fields: software visualizations, metrics and algorithms. At first, we define two visualizations that help maintainers: (1) to understand packages structure, usage and relationships; (2) to spot patterns; and (3) to identify misplaced classes and structural anomalies. In addition to visual- izations, we define a suite of metrics that help in assessing the package design quality (i.e., package cohesion and coupling). We also define metrics that assess the quality of a collection of inter-dependent packages from different view points, such as the degree of package coupling and cycles. Finally, we define a search-based algorithm that automatically reduces package coupling and cycles only by moving classes over existing packages. Our optimization approach takes explicitly into account the origi- nal class organization and package structure. It also allows maintainers to control the optimization process by specifying: (1) the maximal number of classes that may change their packages; (2) the classes that are candidate for moving and the classes that should not; (3) the packages that are candidate for restructuring and the packages that should not; and (4) the maximal number of classes that a given package can entail. The approaches presented in this thesis have been applied to real large object- oriented software systems. The results we obtained demonstrate the usefulness of our visualizations and metrics; and the effectiveness of our optimization algorithm.
Document type :
Theses
Complete list of metadatas

Cited literature [125 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-00498389
Contributor : Lse Lse <>
Submitted on : Wednesday, July 7, 2010 - 2:30:53 PM
Last modification on : Thursday, February 21, 2019 - 10:52:50 AM
Long-term archiving on : Tuesday, October 23, 2012 - 10:05:10 AM

Identifiers

  • HAL Id : tel-00498389, version 1

Collections

Citation

Hani Abdeen. Visualizing, Assessing and Re-Modularizing Object-Oriented Architectural Elements. Software Engineering [cs.SE]. Université des Sciences et Technologie de Lille - Lille I, 2009. English. ⟨tel-00498389⟩

Share

Metrics

Record views

660

Files downloads

427