The Experts below are selected from a list of 65154 Experts worldwide ranked by ideXlab platform
David Binkley - One of the best experts on this subject based on the ideXlab platform.
-
Source Code Analysis with LDA
Journal of Software: Evolution and Process, 2016Co-Authors: David Binkley, Daniel Heinz, Dawn Lawrie, Justin OverfeltAbstract:Latent Dirichlet allocation (LDA) has seen increasing use in the understanding of Source Code and its related artifacts in part because of its impressive modeling power. However, this expressive power comes at a cost: The technique includes several tuning parameters whose impact on the resulting LDA model must be carefully considered. The aim of this work is to provide insights into the tuning parameters' impact. Doing so improves the comprehension of both researchers who look to exploit the power of LDA in their research and those who interpret the output of LDA-using tools. It is important to recognize that the goal of this work is not to establish values for the tuning parameters because there is no universal best setting. Rather, appropriate settings depend on the problem being solved, the input corpus (in this case, typically words from the Source Code and its supporting artifacts), and the needs of the engineer performing the Analysis. This work's primary goal is to aid software engineers in their understanding of the LDA tuning parameters by demonstrating numerically and graphically the relationship between the tuning parameters and the LDA output. A secondary goal is to enable more informed setting of the parameters. Copyright © 2016 John Wiley & Sons, Ltd.
-
understanding lda in Source Code Analysis
International Conference on Program Comprehension, 2014Co-Authors: David Binkley, Daniel Heinz, Dawn Lawrie, Justin OverfeltAbstract:Latent Dirichlet Allocation (LDA) has seen increasing use in the understanding of Source Code and its related artifacts in part because of its impressive modeling power. However, this expressive power comes at a cost: the technique includes several tuning parameters whose impact on the resulting LDA model must be carefully considered. An obvious example is the burn-in period; too short a burn-in period leaves excessive echoes of the initial uniform distribution. The aim of this work is to provide insights into the tuning parameter's impact. Doing so improves the comprehension of both, 1) researchers who look to exploit the power of LDA in their research and 2) those who interpret the output of LDA-using tools. It is important to recognize that the goal of this work is not to establish values for the tuning parameters because there is no universal best setting. Rather, appropriate settings depend on the problem being solved, the input corpus (in this case, typically words from the Source Code and its supporting artifacts), and the needs of the engineer performing the Analysis. This work's primary goal is to aid software engineers in their understanding of the LDA tuning parameters by demonstrating numerically and graphically the relationship between the tuning parameters and the LDA output. A secondary goal is to enable more informed setting of the parameters. Results obtained using both production Source Code and a synthetic corpus underscore the need for a solid understanding of how to configure LDA's tuning parameters.
-
ICPC - Understanding LDA in Source Code Analysis
Proceedings of the 22nd International Conference on Program Comprehension - ICPC 2014, 2014Co-Authors: David Binkley, Daniel Heinz, Dawn Lawrie, Justin OverfeltAbstract:Latent Dirichlet Allocation (LDA) has seen increasing use in the understanding of Source Code and its related artifacts in part because of its impressive modeling power. However, this expressive power comes at a cost: the technique includes several tuning parameters whose impact on the resulting LDA model must be carefully considered. An obvious example is the burn-in period; too short a burn-in period leaves excessive echoes of the initial uniform distribution. The aim of this work is to provide insights into the tuning parameter's impact. Doing so improves the comprehension of both, 1) researchers who look to exploit the power of LDA in their research and 2) those who interpret the output of LDA-using tools. It is important to recognize that the goal of this work is not to establish values for the tuning parameters because there is no universal best setting. Rather, appropriate settings depend on the problem being solved, the input corpus (in this case, typically words from the Source Code and its supporting artifacts), and the needs of the engineer performing the Analysis. This work's primary goal is to aid software engineers in their understanding of the LDA tuning parameters by demonstrating numerically and graphically the relationship between the tuning parameters and the LDA output. A secondary goal is to enable more informed setting of the parameters. Results obtained using both production Source Code and a synthetic corpus underscore the need for a solid understanding of how to configure LDA's tuning parameters.
-
Source Code Analysis a road map
International Conference on Software Engineering, 2007Co-Authors: David BinkleyAbstract:The automated and semi-automated Analysis of Source Code has remained a topic of intense research for more than thirty years. During this period, algorithms and techniques for Source-Code Analysis have changed, sometimes dramatically. The abilities of the tools that implement them have also expanded to meet new and diverse challenges. This paper surveys current work on Source-Code Analysis. It also provides a road map for future work over the next five-year period and speculates on the development of Source-Code Analysis applications, techniques, and challenges over the next 10, 20, and 50 years.
-
FOSE - Source Code Analysis: A Road Map
Future of Software Engineering (FOSE '07), 2007Co-Authors: David BinkleyAbstract:The automated and semi-automated Analysis of Source Code has remained a topic of intense research for more than thirty years. During this period, algorithms and techniques for Source-Code Analysis have changed, sometimes dramatically. The abilities of the tools that implement them have also expanded to meet new and diverse challenges. This paper surveys current work on Source-Code Analysis. It also provides a road map for future work over the next five-year period and speculates on the development of Source-Code Analysis applications, techniques, and challenges over the next 10, 20, and 50 years.
Juergen Rilling - One of the best experts on this subject based on the ideXlab platform.
-
Software trustworthiness 2.0-A semantic web enabled global Source Code Analysis approach
Journal of Systems and Software, 2014Co-Authors: Iman Keivanloo, Juergen RillingAbstract:Introduction of a Semantic Web enabled global Source Code Analysis infrastructure.Novel Source Code Analysis approach combining crowdsourcing and linked-data.Novel proactive approach to improve trustworthiness of software systems.Case studies illustrating the applicability of the approach using different reSources. There has been an ongoing trend toward collaborative software development using open and shared Source Code published in large software repositories on the Internet. While traditional Source Code Analysis techniques perform well in single project contexts, new types of Source Code Analysis techniques are ermerging, which focus on global Source Code Analysis challenges. In this article, we discuss how the Semantic Web, can become an enabling technology to provide a standardized, formal, and semantic rich representations for modeling and analyzing large global Source Code corpora. Furthermore, inference services and other services provided by Semantic Web technologies can be used to support a variety of core Source Code Analysis techniques, such as semantic Code search, call graph construction, and clone detection. In this paper, we introduce SeCold, the first publicly available online linked data Source Code dataset for software engineering researchers and practitioners. Along with its dataset, SeCold also provides some Semantic Web enabled core services to support the Analysis of Internet-scale Source Code repositories. We illustrated through several examples how this linked data combined with Semantic Web technologies can be harvested for different Source Code Analysis tasks to support software trustworthiness. For the case studies, we combine both our linked-data set and Semantic Web enabled Source Code Analysis services with knowledge extracted from StackOverflow, a crowdsourcing website. These case studies, we demonstrate that our approach is not only capable of crawling, processing, and scaling to traditional types of structured data (e.g., Source Code), but also supports emerging non-structured data Sources, such as crowdSourced information (e.g., StackOverflow.com) to support a global Source Code Analysis context.
-
COMPSAC - Semantic Web - The Missing Link in Global Source Code Analysis?
2012 IEEE 36th Annual Computer Software and Applications Conference, 2012Co-Authors: Iman Keivanloo, Juergen Rilling, Philippe CharlandAbstract:There has been an ongoing trend towards open and shared Source Code that is published on the Internet in large software repositories to support collaborative development processes. While traditional Source Code Analysis techniques perform well in single project contexts, new types of global Source Code Analysis techniques are slowly introduced to address the Analysis of global distributed and often incomplete Source Code. In this article, we discuss how the Semantic Web, an enabling technology for these emerging Source Code Analysis domains, can support a standardized, formal, and semantic rich representation to model these corpora. We also illustrate how inference services can be used to provide support for emerging Source Code Analysis approaches on this data, such as search, call graph construction, and clone detection.
-
The CONCEPT Project Applying Source Code Analysis to Reduce Information Complexity of Static and Dynamic Visualization Techniques
2002Co-Authors: Juergen Rilling, Ahmed Seffah, Christophe BouthierAbstract:The goal of software visualization is to acquire sufficient knowledge about a software system by identifying program artifacts and understanding their relationships. Graphical representations have long been recognized as having an important impact in improving the comprehension of Source Code. In this paper, we present several visualization techniques that we combine with analytical Source Code Analysis to reduce the amount and, therefore, the complexity of data that has to be displayed. In particular, we focus on static and dynamic program slicing and apply this Source Code Analysis technique on treemaps, Hyperbolic trees, and UML based visualization techniques to support programmers in creating better mental models of the Source Code. We also introduce our CONCEPT prototype and describe how the presented approaches can be applied to reduce the information complexity for particular Source Code comprehension applications.
-
VISSOFT - The CONCEPT project - applying Source Code Analysis to reduce information complexity of static and dynamic visualization techniques
Proceedings First International Workshop on Visualizing Software for Understanding and Analysis, 1Co-Authors: Juergen Rilling, Ahmed Seffah, C. BouthlierAbstract:The goal of software visualization is to acquire sufficient knowledge about a software system by identifying program artifacts and understanding their relationships. Graphical representations have long been recognized as having an important impact in improving the comprehension of Source Code. In this paper, we present several visualization techniques that we combine with analytical Source Code Analysis to reduce the amount and, therefore, the complexity of data that has to be displayed. In particular, we focus on static and dynamic program slicing and apply this Source Code Analysis technique on tree maps, hyperbolic trees, and UML based visualization techniques to support programmers in creating better mental models of the Source Code. We also introduce our CONCEPT prototype and describe how the presented approaches can be applied to reduce the information complexity for particular Source Code comprehension applications.
Shobha Vasudevan - One of the best experts on this subject based on the ideXlab platform.
-
Assertion Ranking Using RTL Source Code Analysis
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2020Co-Authors: Debjit Pal, Spencer Offenberger, Shobha VasudevanAbstract:We present a systematic and efficient ranking method to quantify the goodness of an assertion. We model dependencies among design variables as a directed graph called a variable dependency graph . We define assertion importance and assertion complexity metrics and use the dependency graph to algorithmically compute those two metrics. We repurpose an assertion coverage algorithm from the literature to form a statement-coverage-based ranking as our baseline. We compare our assertion ranking both qualitatively and quantitatively to this baseline. We demonstrate that our ranking is computationally more efficient than statement-coverage-based ranking and takes up to $4366\times $ less computation time. We identify the potential design intents that each ranking prioritizes. We also discuss at length the effect of those prioritizations on the rank agreement and the bug detection ability of the top-ranked assertions according to the two rankings. Finally, we provide a comprehensive ranking for a set of assertions by combining our ranking and the statement-coverage-based ranking.
-
Code coverage of assertions using rtl Source Code Analysis
Design Automation Conference, 2014Co-Authors: Viraj Athavale, Samuel Hertz, Shobha VasudevanAbstract:Assertions are gaining importance in pre-silicon hardware verification to ensure expected design behavior. Coverage of an assertion in terms of statements of a Register Transfer Level (RTL) Source Code is a very accessible metric for understanding the scope of assertions and for debug. However, few methods to report it currently exist. We present a methodology to define and compute Code coverage of an assertion. Our method is based on static and dynamic Analysis of the RTL Source Code. We demonstrate the scalability and effectiveness of our approach with experimental results on real designs for both manual and automatically generated assertions.
-
DAC - Code Coverage of Assertions Using RTL Source Code Analysis
Proceedings of the The 51st Annual Design Automation Conference on Design Automation Conference - DAC '14, 2014Co-Authors: Viraj Athavale, Samuel Hertz, Shobha VasudevanAbstract:Assertions are gaining importance in pre-silicon hardware verification to ensure expected design behavior. Coverage of an assertion in terms of statements of a Register Transfer Level (RTL) Source Code is a very accessible metric for understanding the scope of assertions and for debug. However, few methods to report it currently exist. We present a methodology to define and compute Code coverage of an assertion. Our method is based on static and dynamic Analysis of the RTL Source Code. We demonstrate the scalability and effectiveness of our approach with experimental results on real designs for both manual and automatically generated assertions.
-
DAC - Early prediction of NBTI effects using RTL Source Code Analysis
Proceedings of the 49th Annual Design Automation Conference on - DAC '12, 2012Co-Authors: Jayanand Asok Kumar, Kenneth M. Butler, Heesoo Kim, Shobha VasudevanAbstract:In present day technology, the design of reliable systems must factor in temporal degradation due to aging effects such as Negative Bias Temperature Instability (NBTI). In this paper, we present a methodology to estimate delay degradation early at the Register Transfer Level (RTL). We statically analyze the RTL Source Code to determine signal correlations. We then determine probability distributions of RTL signals formally by using probabilistic model checking. Finally, we propagate these signal probabilities through delay macromodels and estimate the delay degradation. We demonstrate our methodology on several benchmarks RTL designs. We estimate the degradation with
-
efficient validation input generation in rtl by hybridized Source Code Analysis
Design Automation and Test in Europe, 2011Co-Authors: Shobha VasudevanAbstract:We present HYBRO, an automatic methodology to generate high coverage input vectors for Register Transfer Level (RTL) designs based on branch-coverage directed approach. HYBRO uses dynamic simulation data and static Analysis of RTL control flow graphs (CFGs). A concrete simulation is applied over a fixed number of cycles. Instrumented Code records the branches covered. The corresponding symbolic trace is extracted from the CFG with an RTL symbolic execution engine. A guard in the symbolic expression is mutated. If the mutated guard has dependent branches that have not already been covered, it is mutated and passed to an SMT solver. A satisfiable assignment generates a valid input vector. We implement the Verilog RTL symbolic execution engine and show that the notion of branch-coverage directed exploration can avoid path explosion caused by previous path-based approach to input vector generation and achieve full branch and more than 90% functional(assertion) coverage quickly on ITC99 benchmark and several Openrisc designs. We also describe two types of optimizations a) dynamic UD chain slicing b)local conflict resolution to speed up HYBRO by 1.6–12 times on different benchmarks.
Slinger Jansen - One of the best experts on this subject based on the ideXlab platform.
-
itmviz interactive topic modeling for Source Code Analysis
International Conference on Program Comprehension, 2015Co-Authors: Amir Saeidi, Jurriaan Hage, Ravi Khadka, Slinger JansenAbstract:Topic modeling has seen a surge in use for software comprehension. Although the models inferred from the Source Code are a great Source of knowledge, they fail to fully capture the conceptual relationships between the topics. Here we investigate the use of interactive topic modeling for Source Code Analysis by feeding-in information from the end-users, including developers and architects, to refine the inferred topic models. We have implemented a web-based toolkit called ITMViz to provide support to interpret the topic models, and use the results to cluster modules together. A medium-sized Java project is used to evaluate our approach in understanding the software system.
-
ICPC - ITMViz: interactive topic modeling for Source Code Analysis
2015 IEEE 23rd International Conference on Program Comprehension, 2015Co-Authors: Amir Saeidi, Jurriaan Hage, Ravi Khadka, Slinger JansenAbstract:Topic modeling has seen a surge in use for software comprehension. Although the models inferred from the Source Code are a great Source of knowledge, they fail to fully capture the conceptual relationships between the topics. Here we investigate the use of interactive topic modeling for Source Code Analysis by feeding-in information from the end-users, including developers and architects, to refine the inferred topic models. We have implemented a web-based toolkit called ITMViz to provide support to interpret the topic models, and use the results to cluster modules together. A medium-sized Java project is used to evaluate our approach in understanding the software system.
Iman Keivanloo - One of the best experts on this subject based on the ideXlab platform.
-
Software trustworthiness 2.0-A semantic web enabled global Source Code Analysis approach
Journal of Systems and Software, 2014Co-Authors: Iman Keivanloo, Juergen RillingAbstract:Introduction of a Semantic Web enabled global Source Code Analysis infrastructure.Novel Source Code Analysis approach combining crowdsourcing and linked-data.Novel proactive approach to improve trustworthiness of software systems.Case studies illustrating the applicability of the approach using different reSources. There has been an ongoing trend toward collaborative software development using open and shared Source Code published in large software repositories on the Internet. While traditional Source Code Analysis techniques perform well in single project contexts, new types of Source Code Analysis techniques are ermerging, which focus on global Source Code Analysis challenges. In this article, we discuss how the Semantic Web, can become an enabling technology to provide a standardized, formal, and semantic rich representations for modeling and analyzing large global Source Code corpora. Furthermore, inference services and other services provided by Semantic Web technologies can be used to support a variety of core Source Code Analysis techniques, such as semantic Code search, call graph construction, and clone detection. In this paper, we introduce SeCold, the first publicly available online linked data Source Code dataset for software engineering researchers and practitioners. Along with its dataset, SeCold also provides some Semantic Web enabled core services to support the Analysis of Internet-scale Source Code repositories. We illustrated through several examples how this linked data combined with Semantic Web technologies can be harvested for different Source Code Analysis tasks to support software trustworthiness. For the case studies, we combine both our linked-data set and Semantic Web enabled Source Code Analysis services with knowledge extracted from StackOverflow, a crowdsourcing website. These case studies, we demonstrate that our approach is not only capable of crawling, processing, and scaling to traditional types of structured data (e.g., Source Code), but also supports emerging non-structured data Sources, such as crowdSourced information (e.g., StackOverflow.com) to support a global Source Code Analysis context.
-
COMPSAC - Semantic Web - The Missing Link in Global Source Code Analysis?
2012 IEEE 36th Annual Computer Software and Applications Conference, 2012Co-Authors: Iman Keivanloo, Juergen Rilling, Philippe CharlandAbstract:There has been an ongoing trend towards open and shared Source Code that is published on the Internet in large software repositories to support collaborative development processes. While traditional Source Code Analysis techniques perform well in single project contexts, new types of global Source Code Analysis techniques are slowly introduced to address the Analysis of global distributed and often incomplete Source Code. In this article, we discuss how the Semantic Web, an enabling technology for these emerging Source Code Analysis domains, can support a standardized, formal, and semantic rich representation to model these corpora. We also illustrate how inference services can be used to provide support for emerging Source Code Analysis approaches on this data, such as search, call graph construction, and clone detection.