Show simple item record

Authordc.contributor.authorRobbes, Romain 
Authordc.contributor.authorRóthlisberger, David 
Authordc.contributor.authorTanter, Éric Pierre 
Admission datedc.date.accessioned2015-08-23T00:20:39Z
Available datedc.date.available2015-08-23T00:20:39Z
Publication datedc.date.issued2015
Cita de ítemdc.identifier.citationEmpir Software Eng (2015) 20:745–782en_US
Identifierdc.identifier.issn1573-7616
Identifierdc.identifier.otherDOI: 10.1007/s10664-013-9298-0
Identifierdc.identifier.urihttps://repositorio.uchile.cl/handle/2250/133043
General notedc.descriptionArtículo de publicación ISIen_US
Abstractdc.description.abstractAs software evolves, data types have to be extended, possibly with new data variants or new operations. Object-oriented design is well-known to support data extensions well. In fact, most popular books showcase data extensions to illustrate how objects adequately support software evolution. Conversely, operation extensions are typically better supported by a functional design. A large body of programming language research has been devoted to the challenge of properly supporting both kinds of extensions. While this challenge is well-known from a language design standpoint, it has not been studied empirically. We perform such a study on a large sample of Smalltalk projects (over half a billion lines of code) and their evolution over more than 130,000 committed changes. Our study of extensions during software evolution finds that extensions are indeed prevalent evolution tasks, and that both kinds of extensions are equally common in object-oriented software. We also discuss findings about: the evolution of the kinds of extensions over time; the viability of the Visitor pattern as an object-oriented solution to operation extensions; the change-proneness of extensions; and the prevalence of extensions by third parties. This study suggests that object-oriented design alone is not sufficient, and that practical support for both kinds of program decomposition approaches are in fact needed, either by the programming language or by the development environment.en_US
Patrocinadordc.description.sponsorshipFONDECYT Projects 11110463 and 1110051en_US
Lenguagedc.language.isoenen_US
Publisherdc.publisherSpringeren_US
Type of licensedc.rightsAtribución-NoComercial-SinDerivadas 3.0 Chile*
Link to Licensedc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/cl/*
Keywordsdc.subjectObject-oriented programmingen_US
Keywordsdc.subjectSoftware evolutionen_US
Keywordsdc.subjectData extensionsen_US
Keywordsdc.subjectOperation extensionsen_US
Keywordsdc.subjectEmpirical studiesen_US
Keywordsdc.subjectMining software repositoriesen_US
Títulodc.titleObject-oriented software extensions in practiceen_US
Document typedc.typeArtículo de revista


Files in this item

Icon

This item appears in the following Collection(s)

Show simple item record

Atribución-NoComercial-SinDerivadas 3.0 Chile
Except where otherwise noted, this item's license is described as Atribución-NoComercial-SinDerivadas 3.0 Chile