id ndltd-OhioLink-oai-etd.ohiolink.edu-kent150074391000591
record_format oai_dc
spelling ndltd-OhioLink-oai-etd.ohiolink.edu-kent1500743910005912021-08-03T07:03:35Z srcDiff: Syntactic Differencing to Support Software Maintenance and Evolution Decker, Michael John Computer Science differencing syntactic differencing change comprehension change visualization stereotypes method stereotypes code rewrite code replace code conversion The dissertation presents the construction and evaluation of an efficient and scalable rule-based syntactic-differencing approach and its application to several software engineering research tasks. The approach, called srcDiff, is built upon the srcML infrastructure. srcML adds abstract syntactic information into the code via an XML format. A syntactic difference of srcML documents is then computed. During this process, the differences are further refined using a set of rules that model typical editing patterns of source code by developers. Thus, the resulting deltas model edits to the code that are programmer centric versus a purely syntactic tree edit view. Other syntactic differencing approaches focus on obtaining an optimal tree-edit distance with the assumption that this will produce an accurate difference. By contrast, srcDiff, purposely deviates from an optimal tree-difference in order to create a delta that is both easier to understand and better models changes between the original and modified.To evaluate the approach, a comparison study against a state-of-the-art syntactic differencing approach and two line-based differencing tools is conducted as an online within-participant study of about 70 subjects. The results show that the rule-based syntactic-differencing approach produces more accurate and understandable deltas. srcDiff is utilized to analyze the complete history of fifty open-source software systems for a number of software engineering research tasks. The first task is an investigation into the stability and consequences of changes in a method’s stereotype. The results show that a method’s stereotype is very stable and that certain classes of stereotype changes are indicators of poor method design and inappropriate changes to methods. The second task is an investigation into how often developers rewrite code and the consequences. The results show that developers frequently rewrite code at the text, expression, and statement level, and that the replacement of functions is not uncommon. The last study investigates how often developers convert code from one type to another. The results show that conversion occurs most frequently between declaration-statements, expression-statements, and return-statements. The consequence for both code replacement and code conversion is that a syntactic differencing approach must support both to arrive at meaningful and accurate deltas. 2017-07-24 English text Kent State University / OhioLINK http://rave.ohiolink.edu/etdc/view?acc_num=kent150074391000591 http://rave.ohiolink.edu/etdc/view?acc_num=kent150074391000591 unrestricted This thesis or dissertation is protected by copyright: all rights reserved. It may not be copied or redistributed beyond the terms of applicable copyright laws.
collection NDLTD
language English
sources NDLTD
topic Computer Science
differencing
syntactic differencing
change comprehension
change visualization
stereotypes
method stereotypes
code rewrite
code replace
code conversion
spellingShingle Computer Science
differencing
syntactic differencing
change comprehension
change visualization
stereotypes
method stereotypes
code rewrite
code replace
code conversion
Decker, Michael John
srcDiff: Syntactic Differencing to Support Software Maintenance and Evolution
author Decker, Michael John
author_facet Decker, Michael John
author_sort Decker, Michael John
title srcDiff: Syntactic Differencing to Support Software Maintenance and Evolution
title_short srcDiff: Syntactic Differencing to Support Software Maintenance and Evolution
title_full srcDiff: Syntactic Differencing to Support Software Maintenance and Evolution
title_fullStr srcDiff: Syntactic Differencing to Support Software Maintenance and Evolution
title_full_unstemmed srcDiff: Syntactic Differencing to Support Software Maintenance and Evolution
title_sort srcdiff: syntactic differencing to support software maintenance and evolution
publisher Kent State University / OhioLINK
publishDate 2017
url http://rave.ohiolink.edu/etdc/view?acc_num=kent150074391000591
work_keys_str_mv AT deckermichaeljohn srcdiffsyntacticdifferencingtosupportsoftwaremaintenanceandevolution
_version_ 1719452694759866368