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

Research Projects

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

Over the last several years we have been studying how digital media affects people’s lives. Rather than bring people into a laboratory, I view the real world as a living laboratory--I go where people live, study, and work, to study them as they go about their normal activities. Digital media use affects people’s mood, stress, and behavior quite significantly. In particular, people experience disruptions when working with digital media due to multi-tasking and interruptions.

Research Area(s): 
Project Dates: 
January 2004

Test suites often need to adapt to the software that it is intended to test. The core software changes and grows, and as such, its test suite also needs to change and grow. However, the test suites can often grow so large as to be unmaintainable. We have developed techniques to assist in the maintenance of these test suites, specifically in allowing for test-suite reduction (while preserving coverage adequacy) and test-suite prioritization.

Research Area(s): 
Project Dates: 
May 2001

When a live site is down or time is of the essence, software teams mobilize to fix bugs as fast as possible. How might such important bugs be fixed more quickly? One answer is through crowdsourcing, where ad-hoc participants are each given small, self-contained microtasks that are then aggregated into an overall solution. To explore this idea, we are currently designing new techniques and tools for crowd debugging.

Research Area(s): 
Project Dates: 
January 2013

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

One of the many challenges of software development and maintenance is the need to collaborate among many constituents and stakeholders. For example, clients interact with software development organizations; software-development organizations consist of many developers and maintainers within the same location and across different locations; and the development organization often outsources some of the testing efforts to independent test agencies. Each of these parties may reside in different locations, often across many very disparate time zones.

Project Dates: 
May 2009

This research focuses on techniques for identifying and reducing the costs, streamlining the process, and improving the readiness of future workforce for the acquisition of complex software systems. Emphasis is directed at identifying, tracking, and analyzing software component costs and cost reduction opportunities within acquisition life cycle of open architecture (OA) systems, where such systems combine best-of-breed software components and software products lines (SPLs) that are subject to different intellectual property (IP) license requirements.

Research Area(s): 
Project Dates: 
October 2007

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

Pages