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...
Autores principales: | , |
---|---|
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 |