{"title":"Event Views and Graph Reductions for Understanding System Level C Code","authors":"Srinivas Neginhal, S. Kothari","doi":"10.1109/ICSM.2006.28","DOIUrl":null,"url":null,"abstract":"Concurrent processing, runtime bindings, and an extensive use of aggregate data structures make system level C codes difficult to understand. This paper proposes event views and graph reductions as techniques to facilitate program comprehension. Starting with some domain knowledge, a user can apply these techniques to quickly identify and analyze exactly those parts of the program that are relevant to a given concern. We have built a tool called CVision to demonstrate applicability of the proposed techniques. CVision is an interactive tool that allows the user to: (a) quickly get to the relevant parts of the code; (b) graphically visualize relationships between program elements; and (c) interactively apply different graph reductions to eliminate irrelevant relationships. Using these capabilities, the user can quickly distill a large body of code and extract meaningful views of runtime events that capture the user's concern. The proposed program comprehension techniques are demonstrated through two case studies based on Linux and XINU operating systems","PeriodicalId":436673,"journal":{"name":"2006 22nd IEEE International Conference on Software Maintenance","volume":"74 1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2006-09-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"14","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2006 22nd IEEE International Conference on Software Maintenance","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSM.2006.28","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 14
Abstract
Concurrent processing, runtime bindings, and an extensive use of aggregate data structures make system level C codes difficult to understand. This paper proposes event views and graph reductions as techniques to facilitate program comprehension. Starting with some domain knowledge, a user can apply these techniques to quickly identify and analyze exactly those parts of the program that are relevant to a given concern. We have built a tool called CVision to demonstrate applicability of the proposed techniques. CVision is an interactive tool that allows the user to: (a) quickly get to the relevant parts of the code; (b) graphically visualize relationships between program elements; and (c) interactively apply different graph reductions to eliminate irrelevant relationships. Using these capabilities, the user can quickly distill a large body of code and extract meaningful views of runtime events that capture the user's concern. The proposed program comprehension techniques are demonstrated through two case studies based on Linux and XINU operating systems