I am a Ph.D. Candidate in Software Engineering, at the Department of Informatics, University of California, Irvine. I graduated, my undergrad Bachelor of Engineering (B.E.) program, with a First Class with Distinction in Computer Engineering from the University of Pune, India.
As a student of Software Engineering Research, I am interested in building, visualizing and studying reusable models of the runtime behavior of software components that can be leveraged for a number of software development, maintenance, and testing tasks. My current focus, however, is to facilitate software debugging which is a complex and ubiquitous activity within software engineering.
My advisor is Prof. James A. Jones at the Spider Lab. James' research is focused towards software testing, analysis (compile-time and run-time) and debugging.
Background Photo: Mt. Ranier, © Vijay Krishna Palepu, 2015
Hosted at: http://spideruci.github.io/cerebro
Cerebro, formerly known as "The Brain", reveals clusters of source code that co-execute to produce behavioral features of the program throughout and within executions. We created a clustered visualization of source-code that is informed by dynamic control flow of multiple executions; each cluster represents commonly interacting logic that composes software features. In addition, we render individual executions atop the clustered multiple-execution visualization as user-controlled animations to reveal characteristics of specific executions—these animations may provide exemplars for the clustered features and provide chronology for those behavioral features, or they may reveal anomalous behaviors that do not fit with the overall operational profile of most executions. Both the clustered multiple-execution view and the animated individual-execution view provide insights for the constituent behaviors within executions that compose behaviors of whole executions. Inspired by neural imaging of human brains of people who were subjected to various external stimuli, we designed and implemented Cerebro to reveal program activity during execution. The result has revealed the principal behaviors of execution. Those behaviors were revealed to be (in some cases) cohesive, modular source-code structures and (in other cases) cross-cutting, emergent behaviors involving multiple modules.