{"id":4038,"date":"2017-12-13T09:46:58","date_gmt":"2017-12-13T17:46:58","guid":{"rendered":"https:\/\/blogs.ubc.ca\/karthik\/?p=4038"},"modified":"2022-11-24T12:41:43","modified_gmt":"2022-11-24T19:41:43","slug":"inferring-hierarchical-motifs-from-execution-traces","status":"publish","type":"post","link":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/2017\/12\/13\/inferring-hierarchical-motifs-from-execution-traces\/","title":{"rendered":"Inferring Hierarchical Motifs from Execution Traces"},"content":{"rendered":"<p>Saba Alimadadi, Ali Mesbah, and Karthik Pattabiraman, <a href=\"https:\/\/www.icse2018.org\/\">ACM\/IEEE International Conference on Software Engineering (ICSE), 2018<\/a>. (Acceptance Rate: 21%). [ <a href=\"https:\/\/blogs.ubc.ca\/karthik\/files\/2018\/02\/Saba-ICSE18.pdf\">PDF<\/a> | <a href=\"https:\/\/blogs.ubc.ca\/karthik\/files\/2018\/06\/Saba-icse2018.pdf\">Talk <\/a>]<\/p>\n<p><!--more--><\/p>\n<p><strong>Abstract:<\/strong> Program comprehension is a necessary step for performing many software engineering tasks. Dynamic analysis is effective in producing execution traces that assist comprehension. Traces are rich sources of  information regarding the behaviour of a program. However, it is challenging to gain insight from traces due to their overwhelming amount of data and complexity. We propose a generic technique for facilitating comprehension by inferring recurring execution motifs. Inspired by bioinformatics, motifs are patterns in traces that are flexible to small changes in execution, and are captured in a hierarchical model. The hierarchical nature of the model provides an overview of the behaviour at a high-level, while preserving the execution details and intermediate levels in a structured manner. We design a visualization that allows developers to observe and interact with the model. We implement our approach in an open-source tool, called Sabalan, and evaluate it through a user experiment. The results show that using Sabalan improves developers\u2019 accuracy in performing comprehension tasks by 54%. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saba Alimadadi, Ali Mesbah, and Karthik Pattabiraman, ACM\/IEEE International Conference on Software Engineering (ICSE), 2018. (Acceptance Rate: 21%). [ PDF | Talk ]<\/p>\n","protected":false},"author":10348,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[19,4,20,16],"class_list":["post-4038","post","type-post","status-publish","format-standard","hentry","category-publications","tag-19","tag-conference","tag-saba","tag-web-2-0"],"_links":{"self":[{"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/posts\/4038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/users\/10348"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/comments?post=4038"}],"version-history":[{"count":1,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/posts\/4038\/revisions"}],"predecessor-version":[{"id":5619,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/posts\/4038\/revisions\/5619"}],"wp:attachment":[{"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/media?parent=4038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/categories?post=4038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/tags?post=4038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}