<div class="csl-bib-body">
<div class="csl-entry">Sperl, M. (2019). <i>PolyCoDif : a method for semantic patches of multiple programming languages based on continuously captured changes</i> [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2019.67302</div>
</div>
-
dc.identifier.uri
https://doi.org/10.34726/hss.2019.67302
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/11484
-
dc.description.abstract
Modern tools for developing software have added a plethora of capabilities to support software engineers in their daily work. These tools do not only provide simple features based on the words in a file, but parse and understand the code, and extract the underlying structure. Especially operations for refactoring have become more and more sophisticated. It is possible with a couple of clicks to change the signature of methods, move classes, extract variables, and structurally search and replace code snippets. These advances in writing new code and adapting existing code have been a major advantage for developers. While integrated development environments and editors like IntelliJ IDEA can perform more and more operations based on the structure of the source code, tools for reviewing code are still stuck with the textual representation of the code. The difference between two versions of the source code is calculated line by line, word by word, character by character without any regard for the semantic meaning and tree-like structure of source code. Diff algorithms which work on the abstract syntax trees can, for example, mark changes in the code which have no effect on the runtime behavior of the program. If, for example, a programmer changes the formatting of the code, this will result in many detected changes when using classic text-based algorithms. Semantic diff algorithms could hide these changes so that a reviewer can focus on semantically relevant changes. The goal of this thesis is to take existing algorithms for calculating the difference between two versions of source code in a tree structure and extend them to work with multiple programming languages. Current Version Control Systems are tracking the changes only on actions of software engineers to track change between certain points in the history. This results in a loss of information between these points in time. To remedy that, the semantic diff algorithms are combined with approaches to continuously track changes of source code without relying on the developer to record fixed points in time with explicit commits. A qualitative user study tests the usefulness of the resulting prototype, where developers try to answer questions about source code in four different scenarios. The usability of the tool is judged by the participants of the user study based on the System Usability Scale and reached an overall value of 73,75.
en
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Quellcode Differenz Extraktion
de
dc.subject
Algorithmen für Änderungserkennung von Baumstrukturen
de
dc.subject
kontinuierliche Änderungserkennung
de
dc.subject
Software Evolution
de
dc.subject
Source code change extraction
en
dc.subject
tree-differencing algorithms
en
dc.subject
continuous tracking
en
dc.subject
polyglot
en
dc.subject
software repositories
en
dc.subject
software evolution analysis
en
dc.title
PolyCoDif : a method for semantic patches of multiple programming languages based on continuously captured changes
en
dc.type
Thesis
en
dc.type
Hochschulschrift
de
dc.rights.license
In Copyright
en
dc.rights.license
Urheberrechtsschutz
de
dc.identifier.doi
10.34726/hss.2019.67302
-
dc.contributor.affiliation
TU Wien, Österreich
-
dc.rights.holder
Matthias Sperl
-
dc.publisher.place
Wien
-
tuw.version
vor
-
tuw.thesisinformation
Technische Universität Wien
-
tuw.publication.orgunit
E194 - Institut für Information Systems Engineering
-
dc.type.qualificationlevel
Diploma
-
dc.identifier.libraryid
AC15530588
-
dc.description.numberOfPages
87
-
dc.identifier.urn
urn:nbn:at:at-ubtuw:1-131669
-
dc.thesistype
Diplomarbeit
de
dc.thesistype
Diploma Thesis
en
dc.rights.identifier
In Copyright
en
dc.rights.identifier
Urheberrechtsschutz
de
tuw.advisor.staffStatus
staff
-
tuw.advisor.orcid
0009-0000-5622-8598
-
item.openairetype
master thesis
-
item.fulltext
with Fulltext
-
item.cerifentitytype
Publications
-
item.openaccessfulltext
Open Access
-
item.mimetype
application/pdf
-
item.languageiso639-1
en
-
item.openairecristype
http://purl.org/coar/resource_type/c_bdcc
-
item.grantfulltext
open
-
crisitem.author.dept
E188 - Institut für Softwaretechnik und Interaktive Systeme