Modularity in Object-Oriented (OO) applications has been a major concern since the early years of OO programming languages. Migrating existing OO applications to Component-Based (CB) ones can contribute to improve modularity, and therefore maintainability and reuse. In this paper, we propose a method for source code transformation (refactoring) in order to perform this migration. This method enhances decoupling by considering that some dependencies between classes should be set through abstract types (interfaces) like in CB applications. In addition, some anticipated instantiations of these classes "buried" in the source code are extracted and replaced by declarative statements (like connectors in CB applications) which are processed by a dependency injection mechanism. For doing so, a set of "Bad Smells", i.e., modularity-violating symptoms, has been defined. These are first detected in the source code. Then, some refactoring operations are applied for their elimination. An implementation of the method was successfully experimented on a set of open source Java projects. The results of this experimentation are reported in this paper.
CITATION STYLE
Zellagui, S., Tibermacine, C., Bouziane, H. L., Seriai, A. D., & Dony, C. (2017). Refactoring object-oriented applications towards a better decoupling and instantiation unanticipation. In Proceedings of the International Conference on Software Engineering and Knowledge Engineering, SEKE (pp. 450–455). Knowledge Systems Institute Graduate School. https://doi.org/10.18293/SEKE2017-119
Mendeley helps you to discover research relevant for your work.