Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Thirumalesh Bhat is active.

Publication


Featured researches published by Thirumalesh Bhat.


international conference on software engineering | 2006

Perracotta: mining temporal API rules from imperfect traces

Jinlin Yang; David Evans; Deepali Bhardwaj; Thirumalesh Bhat; Manuvir Das

Dynamic inference techniques have been demonstrated to provide useful support for various software engineering tasks including bug finding, test suite evaluation and improvement, and specification generation. To date, however, dynamic inference has only been used effectively on small programs under controlled conditions. In this paper, we identify reasons why scaling dynamic inference techniques has proven difficult, and introduce solutions that enable a dynamic inference technique to scale to large programs and work effectively with the imperfect traces typically available in industrial scenarios. We describe our approximate inference algorithm, present and evaluate heuristics for winnowing the large number of inferred properties to a manageable set of interesting properties, and report on experiments using inferred properties. We evaluate our techniques on JBoss and the Windows kernel. Our tool is able to infer many of the properties checked by the Static Driver Verifier and leads us to discover a previously unknown bug in Windows.


international symposium on empirical software engineering | 2006

Evaluating the efficacy of test-driven development: industrial case studies

Thirumalesh Bhat; Nachiappan Nagappan

This paper discusses software development using the Test Driven Development (TDD) methodology in two different environments (Windows and MSN divisions) at Microsoft. In both these case studies we measure the various context, product and outcome measures to compare and evaluate the efficacy of TDD. We observed a significant increase in quality of the code (greater than two times) for projects developed using TDD compared to similar projects developed in the same organization in a non-TDD fashion. The projects also took at least 15% extra upfront time for writing the tests. Additionally, the unit tests have served as auto documentation for the code when libraries/APIs had to be used as well as for code maintenance.


Empirical Software Engineering | 2008

Realizing quality improvement through test driven development: results and experiences of four industrial teams

Nachiappan Nagappan; E. Michael Maximilien; Thirumalesh Bhat; Laurie Williams

Test-driven development (TDD) is a software development practice that has been used sporadically for decades. With this practice, a software engineer cycles minute-by-minute between writing failing unit tests and writing implementation code to pass those tests. Test-driven development has recently re-emerged as a critical enabling practice of agile software development methodologies. However, little empirical evidence supports or refutes the utility of this practice in an industrial context. Case studies were conducted with three development teams at Microsoft and one at IBM that have adopted TDD. The results of the case studies indicate that the pre-release defect density of the four products decreased between 40% and 90% relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a 15–35% increase in initial development time after adopting TDD.


asia-pacific software engineering conference | 2006

Building Scalable Failure-proneness Models Using Complexity Metrics for Large Scale Software Systems

Thirumalesh Bhat; Nachiappan Nagappan

Building statistical models for estimating failure-proneness of systems can help software organizations make early decisions on the quality of their systems. Such early estimates can be used to help inform decisions on testing, refactoring, code inspections, design rework etc. This paper demonstrates the efficacy of building scalable failure-proneness models based on code complexity metrics across the Microsoft Windows operating system code base. We show the ability of such models to estimate failure-proneness and provide feedback on the complexity metrics to help guide refactoring and the design rework effort.


international symposium on software reliability engineering | 2013

Predicting risk of pre-release code changes with Checkinmentor

Alexander Tarvo; Nachiappan Nagappan; Thomas Zimmermann; Thirumalesh Bhat; Jacek Czerwonka

Code defects introduced during the development of the software system can result in failures after its release. Such post-release failures are costly to fix and have negative impact on the reputation of the released software. In this paper we propose a methodology for early detection of faulty code changes. We describe code changes with metrics and then use a statistical model that discriminates between faulty and non-faulty changes. The predictions are done not at a file or binary level but at the change level thereby assessing the impact of each change. We also study the impact of code branches on collecting code metrics and on the accuracy of the model. The model has shown high accuracy and was developed into a tool called CheckinMentor. CheckinMentor was deployed to predict risk for the Windows Phone software. However, our methodology is versatile and can be used to predict risk in a variety of large complex software systems.


empirical software engineering and measurement | 2014

Mining energy traces to aid in software development: an empirical case study

Ashish Gupta; Thomas Zimmermann; Christian Bird; Nachiappan Nagappan; Thirumalesh Bhat; Syed Emran

Context: With the advent of increased computing on mobile devices such as phones and tablets, it has become crucial to pay attention to the energy consumption of mobile applications. Goal: The software engineering field is now faced with a whole new spectrum of energy-related challenges, ranging from power budgeting to testing and debugging the energy consumption, for which exists only limited tool support. The goal of this work is to provide techniques to engineers to analyze power consumption and detect anomalies. Method: In this paper, we present our work on analyzing energy patterns for the Windows Phone platform. We first describe the data that is collected for testing (power traces and execution logs). We then present several approaches for describing power consumption and detecting anomalous energy patterns and potential energy defects. Finally we show prediction models based on usage of individual modules that can estimate the overall energy consumption with high accuracy. Results: The techniques in this paper were successful in modeling and estimating power consumption and in detecting anomalies. Conclusions: The techniques presented in the paper allow assessing the individual impact of modules on the overall energy consumption and support overall energy planning.


Archive | 2011

Technologies for Code Failure Proneness Estimation

Nachiappan Nagappan; Thirumalesh Bhat


Archive | 2004

Framework for collecting, storing, and analyzing system metrics

Alan T. G. Jowett; Balaji Santhanam; Ravishankar V. Sathanur; Sivaprasad V. Padisetty; Thirumalesh Bhat


Archive | 2015

Analyzing power consumption in mobile computing devices

Thomas Zimmermann; Christian Bird; Nachiappan Nagappan; Syed Emran; Thirumalesh Bhat; Ashish Gupta


Archive | 2011

Detecting Energy Patterns in Software Development

Ashish Gupta; Thomas Zimmermann; Christian Bird; Nachiappan Nagappan; Thirumalesh Bhat; Syed Emran

Collaboration


Dive into the Thirumalesh Bhat's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge