Migrating inheritance-based applications into components

Abstract

Inheritance is one of the most important object-oriented mechanisms, allowing code reuse and a conceptual hierachical modelling of a given domain. However, as a white-box reuse mechanism, it introduces hidden (implicit) coupling between classes in a hierarchy. This problem makes understanding and maintenance difficult to grasp. Actual approaches (such as Gamma’s) propose object composition over class inheritance as reuse mechanism to obtain better object-oriented design. However the migration of a class-based application (or just some software artifacts) from inheritance to composition paradigms is not trivial. To our knowledge, there are only a few approaches that can deal with this problem, but there is no formal language-independent analysis of a transformation algorithm that guarantees the exact same behavior of a system once the migration strategies have been applied. Thus, this paper presents some initial results in designing a refactoring approach for a class hierarchy by analyzing the dependencies between the classes involved in the inheritance relationship in a class-based system, and how they can be transformed to obtain a better structure of the class hierarchy, focusing on getting components with offered- and required-services in component-based system. Based on this study, our main goal in this approach is to develop a (semi)automatic language-independent algorithm using refactoring-based strategies which allows the user to transform an inheritance relationship between a set of classes into an association between two independent components with well defined interfaces.Presentado en el VIII Workshop Ingeniería de Software (WIS)Red de Universidades con Carreras en Informática (RedUNCI

    Similar works