Software designers frequently sketch when they design, particularly during the early phases of exploration of a design problem and its solution. In so doing, they shun formal design tools, opting for the whiteboard of pen/paper instead. Calico is a sketch-based distributed software design tool that supports software designers with a variety of features that improve over the use of just pen-and-paper or a regular whiteboard, and are tailored specifically for early software design on tablets and electronic whiteboards.
Computer games may well be the quintessential domain for software engineering R&D. Why? Modern multi-player online games (MMOG) must address core issues in just about every major area of Computer Science and SE research and education.
To enable much of our research to enable program understanding, software quality, and maintenance, we utilize and develop analyses of program code. These analyses model the flows of information through the logic of programs and systems. With these analysis models enable automated techniques to assist development and maintenance tasks.
Sourcerer is an ongoing research project at the University of California, Irvine aimed at exploring open source projects through the use of code analysis. The existence of an extremely large body of open source code presents a tremendous opportunity for software engineering research. Not only do we leverage this code for our own research, but we provide the open source Sourcerer Infrastructure and curated datasets for other researchers to use.
The Sourcerer Infrastructure is composed of a number of layers.
TrimDroid is a novel combinatorial approach for generating GUI system tests for Android apps.
TrimDroid is comprised of four major components: Model Extraction, Dependency Extraction, Sequence Generation, and Test-Case Generation. Together, these components produce a significantly smaller number of test cases than exhaustive combinatorial technique, yet achieve a comparable coverage.
When there is a major environmental disruption such as a natural disaster or war, it is not only the technical infrastructure that needs to be repaired but also the human infrastructure. I am currently studying collaboration resilience-the extent to which people continue to work and socialize despite such a disruption. In this project we are examining the role that information technology plays in helping people repair their human infrastructure.
Scientists are always working to determine which articles are interesting to them, timely, and relevant to their research. If working in an unfamiliar research area, searching for papers becomes even more difficult. By allowing users to vote on the prominence of links, social news sites like Slashdot, Digg, and reddit.com have addressed the issue of surfacing new and interesting content from across the internet. Moreover, they provide opportunities to provide context and comment on the content.
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.