Skip to main content

Lund University Publications

LUND UNIVERSITY LIBRARIES

Copy-paste redeemed

Narasimhan, Krishna and Reichenbach, Christoph LU orcid (2016) Software Engineering-Konferenz, SE 2016 - Software Engineering Conference, SE 2016 In Lecture Notes in Informatics (LNI), Proceedings - Series of the Gesellschaft fur Informatik (GI) P252. p.61-62
Abstract

Software evolves continuously. As software evolves, it's code bases require implementations of new features. These new functionalities are sometimes mere extensions of existing functionalities with minor changes. A commonly used method of extending an existing feature into a similar new feature is to copy the existing feature and modify it. This method of extending feature is called "Copy-paste-modify". Another method of achieving the same goal of extending existing feature into similar feature is abstracting the multiple similar features into one common feature with appropriate selectors that enable choosing between the features. The advantages of the "Copy-paste-modify" technique range from speed of development to reduced possibility... (More)

Software evolves continuously. As software evolves, it's code bases require implementations of new features. These new functionalities are sometimes mere extensions of existing functionalities with minor changes. A commonly used method of extending an existing feature into a similar new feature is to copy the existing feature and modify it. This method of extending feature is called "Copy-paste-modify". Another method of achieving the same goal of extending existing feature into similar feature is abstracting the multiple similar features into one common feature with appropriate selectors that enable choosing between the features. The advantages of the "Copy-paste-modify" technique range from speed of development to reduced possibility of breaking existing feature. The advantages of abstraction vary from user preference to have abstracted code to long term maintenance benefits. In our paper, we describe an informal poll and discuss related work to confirm our beliefs about the advantages of each method of extending features. We observe a potential compromise while developers extend features which are near-clones of existing features. We propose to address this dilemma by coming up with a novel approach that can semi-automatically abstract nearclone features and evaluate our approach by building a prototype in C++ and abstracting near-clone methods in popular open source repositories.

(Less)
Please use this url to cite or link to this publication:
author
and
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
keywords
Abstraction, Refactoring, Software clones, Software evolution, Static analysis
host publication
Software Engineering 2016
series title
Lecture Notes in Informatics (LNI), Proceedings - Series of the Gesellschaft fur Informatik (GI)
editor
Knoop, Jens and Zdun, Uwe
volume
P252
pages
2 pages
publisher
Gesellschaft fur Informatik
conference name
Software Engineering-Konferenz, SE 2016 - Software Engineering Conference, SE 2016
conference location
Wien, Austria
conference dates
2016-02-23 - 2016-02-26
external identifiers
  • scopus:85016252704
ISSN
1617-5468
ISBN
9783885796466
language
English
LU publication?
no
id
df65950a-58c4-465f-88ea-867fc023a710
alternative location
https://dl.gi.de/handle/20.500.12116/722;jsessionid=481FFCA151E5944AB67DAF24D103282F
date added to LUP
2021-12-06 10:49:56
date last changed
2025-04-04 15:23:25
@inproceedings{df65950a-58c4-465f-88ea-867fc023a710,
  abstract     = {{<p>Software evolves continuously. As software evolves, it's code bases require implementations of new features. These new functionalities are sometimes mere extensions of existing functionalities with minor changes. A commonly used method of extending an existing feature into a similar new feature is to copy the existing feature and modify it. This method of extending feature is called "Copy-paste-modify". Another method of achieving the same goal of extending existing feature into similar feature is abstracting the multiple similar features into one common feature with appropriate selectors that enable choosing between the features. The advantages of the "Copy-paste-modify" technique range from speed of development to reduced possibility of breaking existing feature. The advantages of abstraction vary from user preference to have abstracted code to long term maintenance benefits. In our paper, we describe an informal poll and discuss related work to confirm our beliefs about the advantages of each method of extending features. We observe a potential compromise while developers extend features which are near-clones of existing features. We propose to address this dilemma by coming up with a novel approach that can semi-automatically abstract nearclone features and evaluate our approach by building a prototype in C++ and abstracting near-clone methods in popular open source repositories.</p>}},
  author       = {{Narasimhan, Krishna and Reichenbach, Christoph}},
  booktitle    = {{Software Engineering 2016}},
  editor       = {{Knoop, Jens and Zdun, Uwe}},
  isbn         = {{9783885796466}},
  issn         = {{1617-5468}},
  keywords     = {{Abstraction; Refactoring; Software clones; Software evolution; Static analysis}},
  language     = {{eng}},
  pages        = {{61--62}},
  publisher    = {{Gesellschaft fur Informatik}},
  series       = {{Lecture Notes in Informatics (LNI), Proceedings - Series of the Gesellschaft fur Informatik (GI)}},
  title        = {{Copy-paste redeemed}},
  url          = {{https://dl.gi.de/handle/20.500.12116/722;jsessionid=481FFCA151E5944AB67DAF24D103282F}},
  volume       = {{P252}},
  year         = {{2016}},
}