2019  |  2018  |  2017  |  2016  |  2015  |  2014  |  2013  |  2012  |  2011  |  2010  |  2009  |  2008  |  2007  |  2006  |  2005  |  2004  |  2003  |  2002  |  2001  |  2000

Research Projects

One method of facilitating developers to understand the complex inner nature of software that we have employed is the use of information visualization. Software is often so complex that even the developers who initially created it cannot understand all of the possible runtime behaviors that it can exhibit --- specifically, all of the bugs that it may contain. In order to present large code bases with innumerable characteristics and relationships of its components (e.g., instructions, variables, values, and timings) we have developed a number of novel visualizations of software.

Research Area(s): 
Project Dates: 
May 2001

Cross-situational personality consistency has been of interest in social psychology since the 1960s. With the advent of the Internet, a new range of “situations” has been presented for investigating human behavior in online environments.

Project Dates: 
October 2012

We developed techniques for clustering of failures. Failure-clustering techniques attempt to categorize failing test cases according to the bugs that caused them. Test cases are clustered by utilizing their execution profiles (gathered from instrumented versions of the code) as a means to encode the behavior of those executions. Such techniques can offer suggestions for duplicate submissions of bug reports.

Research Area(s): 
Project Dates: 
July 2007

Code search has become an integral part of the day-to-day programming activity with developers seeking to take advantage of the vast amount of code and advice available on sites such as Stack Overflow, GitHub, and Ohloh.  Finding the 'right' code, however, remains a serious challenge.  CodeExchange is a new code search platform that offers social-technical code search: search enriched with social-technical metadata through which targeted queries can be formulated, results quickly filtered, and code that is found easily integrated into the project at hand.

Project Dates: 
July 2012

In order to produce effective fault-localization, debugging, failure-clustering, and test-suite maintenance techniques, researchers would benefit from a deeper understanding of how faults (i.e., bugs) behave and interact with each other. Some faults, even if executed, may or may not propagate to the output, and even still may or may not influence the output in a way to cause failure. Furthermore, in the presence of multiple faults, faults may interact in a way to obscure each other or in a way to produce behavior not seen in their isolation.

Research Area(s): 
Project Dates: 
August 2011

Previous studies have shown that there is a non-trivial amount of duplication in source code. We analyzed a corpus of 2.6 million non-fork projects hosted on GitHub representing over 258 million files written in Java, C++ Python and JavaScript. We found that this corpus has a mere 54 million unique files. In other words, 79% of the code on GitHub consists of clones of previously created files. There is considerable variation between language ecosystems. JavaScript has the highest rate of file duplication, only 7% of the files are distinct.

Project Dates: 
January 2017

This project describes and documents observational results that arise from the playtesting­-based evaluation of twenty-­six computer games focused on science learning or scientific research. We refer to this little studied genre of computer games as science learning games (SLGs). Our goal was to begin to identify a new set of criteria, play mechanics, and play experiences that give rise to play­-based learning experiences in the realm of different scientific topics.

Project Dates: 
October 2014

Literature about design suggests that a variety of alternatives leads to a higher quality final design. When software designers, either individually or together, are designing in front of the whiteboard, they rarely explore different solution alternatives. How can we help designers to explore more design alternatives for software problems? To achieve this, we are working on a process to facilitate designers to collaborate and produce high quality software designs while considering more solution alternatives.

Research Area(s): 
Project Dates: 
April 2015

Pages