Migrating inheritance-based applications into components
- Autores
- Passerini, Nicolás; Arévalo, Gabriela Beatriz
- Año de publicación
- 2011
- Idioma
- inglés
- Tipo de recurso
- documento de conferencia
- Estado
- versión publicada
- Descripción
- 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) - Materia
-
Ciencias Informáticas
Inheritance
Software
Methodologies (e.g., object-oriented, structured) - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
- Repositorio
- Institución
- Universidad Nacional de La Plata
- OAI Identificador
- oai:sedici.unlp.edu.ar:10915/18739
Ver los metadatos del registro completo
id |
SEDICI_a583d6f3604e4a0ac0575cf18380ebc6 |
---|---|
oai_identifier_str |
oai:sedici.unlp.edu.ar:10915/18739 |
network_acronym_str |
SEDICI |
repository_id_str |
1329 |
network_name_str |
SEDICI (UNLP) |
spelling |
Migrating inheritance-based applications into componentsPasserini, NicolásArévalo, Gabriela BeatrizCiencias InformáticasInheritanceSoftwareMethodologies (e.g., object-oriented, structured)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)2011-10info:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/publishedVersionObjeto de conferenciahttp://purl.org/coar/resource_type/c_5794info:ar-repo/semantics/documentoDeConferenciaapplication/pdf827-836http://sedici.unlp.edu.ar/handle/10915/18739enginfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-sa/2.5/ar/Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-09-29T10:53:37Zoai:sedici.unlp.edu.ar:10915/18739Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-09-29 10:53:37.39SEDICI (UNLP) - Universidad Nacional de La Platafalse |
dc.title.none.fl_str_mv |
Migrating inheritance-based applications into components |
title |
Migrating inheritance-based applications into components |
spellingShingle |
Migrating inheritance-based applications into components Passerini, Nicolás Ciencias Informáticas Inheritance Software Methodologies (e.g., object-oriented, structured) |
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 |
dc.creator.none.fl_str_mv |
Passerini, Nicolás Arévalo, Gabriela Beatriz |
author |
Passerini, Nicolás |
author_facet |
Passerini, Nicolás Arévalo, Gabriela Beatriz |
author_role |
author |
author2 |
Arévalo, Gabriela Beatriz |
author2_role |
author |
dc.subject.none.fl_str_mv |
Ciencias Informáticas Inheritance Software Methodologies (e.g., object-oriented, structured) |
topic |
Ciencias Informáticas Inheritance Software Methodologies (e.g., object-oriented, structured) |
dc.description.none.fl_txt_mv |
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) |
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. |
publishDate |
2011 |
dc.date.none.fl_str_mv |
2011-10 |
dc.type.none.fl_str_mv |
info:eu-repo/semantics/conferenceObject info:eu-repo/semantics/publishedVersion Objeto de conferencia http://purl.org/coar/resource_type/c_5794 info:ar-repo/semantics/documentoDeConferencia |
format |
conferenceObject |
status_str |
publishedVersion |
dc.identifier.none.fl_str_mv |
http://sedici.unlp.edu.ar/handle/10915/18739 |
url |
http://sedici.unlp.edu.ar/handle/10915/18739 |
dc.language.none.fl_str_mv |
eng |
language |
eng |
dc.rights.none.fl_str_mv |
info:eu-repo/semantics/openAccess http://creativecommons.org/licenses/by-nc-sa/2.5/ar/ Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5) |
eu_rights_str_mv |
openAccess |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-sa/2.5/ar/ Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5) |
dc.format.none.fl_str_mv |
application/pdf 827-836 |
dc.source.none.fl_str_mv |
reponame:SEDICI (UNLP) instname:Universidad Nacional de La Plata instacron:UNLP |
reponame_str |
SEDICI (UNLP) |
collection |
SEDICI (UNLP) |
instname_str |
Universidad Nacional de La Plata |
instacron_str |
UNLP |
institution |
UNLP |
repository.name.fl_str_mv |
SEDICI (UNLP) - Universidad Nacional de La Plata |
repository.mail.fl_str_mv |
alira@sedici.unlp.edu.ar |
_version_ |
1844615792130260992 |
score |
13.070432 |