Migrating inheritance-based applications into components

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 m...

Descripción completa

Detalles Bibliográficos
Autores principales: Passerini, Nicolás, Arévalo, Gabriela Beatriz
Formato: Objeto de conferencia
Lenguaje:Inglés
Publicado: 2011
Materias:
Acceso en línea:http://sedici.unlp.edu.ar/handle/10915/18739
Aporte de:
id I19-R120-10915-18739
record_format dspace
institution Universidad Nacional de La Plata
institution_str I-19
repository_str R-120
collection SEDICI (UNLP)
language Inglés
topic Ciencias Informáticas
Inheritance
Software
Methodologies (e.g., object-oriented, structured)
spellingShingle Ciencias Informáticas
Inheritance
Software
Methodologies (e.g., object-oriented, structured)
Passerini, Nicolás
Arévalo, Gabriela Beatriz
Migrating inheritance-based applications into components
topic_facet Ciencias Informáticas
Inheritance
Software
Methodologies (e.g., object-oriented, structured)
description 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.
format Objeto de conferencia
Objeto de conferencia
author Passerini, Nicolás
Arévalo, Gabriela Beatriz
author_facet Passerini, Nicolás
Arévalo, Gabriela Beatriz
author_sort Passerini, Nicolás
title Migrating inheritance-based applications into components
title_short Migrating inheritance-based applications into components
title_full Migrating inheritance-based applications into components
title_fullStr Migrating inheritance-based applications into components
title_full_unstemmed Migrating inheritance-based applications into components
title_sort migrating inheritance-based applications into components
publishDate 2011
url http://sedici.unlp.edu.ar/handle/10915/18739
work_keys_str_mv AT passerininicolas migratinginheritancebasedapplicationsintocomponents
AT arevalogabrielabeatriz migratinginheritancebasedapplicationsintocomponents
bdutipo_str Repositorios
_version_ 1764820463225143298