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
SEDICI (UNLP)
Institución
Universidad Nacional de La Plata
OAI Identificador
oai:sedici.unlp.edu.ar:10915/18739

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