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

Research Projects

In addition to the dynamic nature of software while executing, this dynamism extends to the evolution of the software's code itself. The software's evolution is often captured in its entirety by revision-control systems (such as CVS, Subversion, and Git). By utilizing this rich artifact, as well as other historical artifacts (e.g., bug-tracking systems and mailing lists), we can offer a number of techniques for recommending future actions to developers.

Project Dates: 
August 2011

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

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

The dynamic nature of markets wherein business relationships are established and dissolved continuously demands systems that can cope with constant change, and do so with security paramount. These relationships are reified as services  that are offered by organizations and used  within a spectrum of domains and use contexts. Current service technologies fail to meet the requirements, however; interfaces are rigid, non-secure, and “one-size-fits-all solutions” which hardly meet the demands of any of its users.

Project Dates: 
July 2007

Microtask crowdsourcing systems such as FoldIt and ESP partition work into short, self-contained microtasks, reducing barriers to contribute, increasing parallelism, and reducing the time to complete work. Could this model be applied to software development? To explore this question, we are designing a development process and cloud-based IDE for crowd development.

Project Dates: 
May 2012

ArchStudio is an open-source software and systems architecture development environment developed by the Institute for Software Research at the University of California, Irvine. It is an environment of integrated tools for modeling, visualizing, analyzing and implementing software and systems architectures. It is based on the Eclipse open development platform.

Project Dates: 
January 2001

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

This research addresses challenges in understanding and developing lightweight, Web-based informal music education environments that bring the complexity and joy of orchestral music to diverse audiences. The challenges span from providing awareness and appreciation of different classical music genres through creation of multi-instrument musical compositions, in ways that are fun and interactive.

Project Dates: 
January 2011

Pages