{"id":543,"date":"2013-09-25T17:41:52","date_gmt":"2013-09-25T15:41:52","guid":{"rendered":"http:\/\/sseblog.ec-spride.de\/?page_id=543"},"modified":"2013-09-25T17:41:52","modified_gmt":"2013-09-25T15:41:52","slug":"reviser","status":"publish","type":"page","link":"https:\/\/blogs.uni-paderborn.de\/sse\/tools\/reviser\/","title":{"rendered":"Reviser &#8211; Incremental Analysis"},"content":{"rendered":"<div class=\"twoclick_social_bookmarks_post_543 social_share_privacy clearfix 1.6.4 locale-en_US sprite-en_US\"><\/div><div class=\"twoclick-js\"><script type=\"text\/javascript\">\/* <![CDATA[ *\/\njQuery(document).ready(function($){if($('.twoclick_social_bookmarks_post_543')){$('.twoclick_social_bookmarks_post_543').socialSharePrivacy({\"txt_help\":\"Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland \\u00fcbertragen und unter Umst\\u00e4nden auch dort gespeichert. N\\u00e4heres erfahren Sie durch einen Klick auf das <em>i<\\\/em>.\",\"settings_perma\":\"Dauerhaft aktivieren und Daten\\u00fcber-tragung zustimmen:\",\"info_link\":\"http:\\\/\\\/www.heise.de\\\/ct\\\/artikel\\\/2-Klicks-fuer-mehr-Datenschutz-1333879.html\",\"uri\":\"https:\\\/\\\/blogs.uni-paderborn.de\\\/sse\\\/tools\\\/reviser\\\/\",\"post_id\":543,\"post_title_referrer_track\":\"Reviser+%26%238211%3B+Incremental+Analysis\",\"display_infobox\":\"on\"});}});\n\/* ]]> *\/<\/script><\/div><p><strong><a href=\"http:\/\/blogs.uni-paderborn.de\/sse\/files\/2014\/06\/Reviser.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-945\" src=\"http:\/\/blogs.uni-paderborn.de\/sse\/files\/2014\/06\/Reviser.jpg\" alt=\"Reviser\" width=\"240\" height=\"209\" \/><\/a>Reviser<\/strong> is an algorithm for incrementally and efficiently updating static analysis results when the target program changes. Conducting static analyses, for instance scanning an Android application for private data leaks, can be a highly time-consuming undertaking on large code bases, especially if very precise analysis algorithms are used. While investing this effort once is acceptable, it can easily be too expensive to conduct such analyses on a regular basis, for instance whenever an update to the respective app is released. However, such updates are frequent and analysis results computed for one version do not necessarily remain valid for the next version.\u00a0Therefore, if a new version of the target program is released, e.g., a bug in the app is fixed, one previously had to perform all these computations anew to check whether required or expected properties still hold despite the high computational cost.<\/p>\n<p>With Reviser, one can now automatically extract the changed parts of the program and analyze only those together with their respective dependencies instead of re-analyzing the complete application. Since Reviser works at the level of the IDE solver, it can be applied to every IDE-based analysis, requiring only minor changes to the implementation of the analysis. Incrementally updating only the changed parts can save up to 80% of the time that would be required for a full recomputation while still maintaining an often negligible overhead as our experiments have shown.<\/p>\n<p>Reviser has been implemented on top of <a href=\"https:\/\/github.com\/Sable\/soot\">Soot<\/a> and <a href=\"http:\/\/sable.github.com\/heros\/\">Heros<\/a> and is available as a open source project on Github: <a href=\"https:\/\/github.com\/secure-software-engineering\/reviser\">https:\/\/github.com\/secure-software-engineering\/reviser<\/a>.<\/p>\n<p>Reviser has been accepted for publication at ICSE 2014:<\/p>\n<p>Reviser: Efficiently Updating IDE-\/IFDS-Based Data-Flow Analyses in Response to\u00a0Incremental Program Changes\u00a0(Steven Arzt, Eric Bodden), 2014 International Conference on Software Engineering (ICSE), To appear.<\/p>\n<p>A technical report is also available. It gives additional details:<br \/>\n<a href=\"http:\/\/www.bodden.de\/pubs\/TUD-CS-2013-0253.pdf\">Efficiently updating IDE-based data-flow analyses in response to incremental program changes <\/a>(Steven Arzt, Eric Bodden),\u00a0Technical report TUD-CS-2013-0253, EC SPRIDE, 2013.<a href=\"http:\/\/www.bodden.de\/pubs\/TUD-CS-2013-0253.pdf\"><em><br \/>\n<\/em><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reviser is an algorithm for incrementally and efficiently updating static analysis results when the target program changes. Conducting static analyses, for instance scanning an Android application for private data leaks, can be a highly time-consuming undertaking on large code bases, &hellip; <a href=\"https:\/\/blogs.uni-paderborn.de\/sse\/tools\/reviser\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":6601,"featured_media":0,"parent":22,"menu_order":4,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-543","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blogs.uni-paderborn.de\/sse\/wp-json\/wp\/v2\/pages\/543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.uni-paderborn.de\/sse\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.uni-paderborn.de\/sse\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.uni-paderborn.de\/sse\/wp-json\/wp\/v2\/users\/6601"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.uni-paderborn.de\/sse\/wp-json\/wp\/v2\/comments?post=543"}],"version-history":[{"count":0,"href":"https:\/\/blogs.uni-paderborn.de\/sse\/wp-json\/wp\/v2\/pages\/543\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/blogs.uni-paderborn.de\/sse\/wp-json\/wp\/v2\/pages\/22"}],"wp:attachment":[{"href":"https:\/\/blogs.uni-paderborn.de\/sse\/wp-json\/wp\/v2\/media?parent=543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}