2023  |  22  |  21  |  20  |  19  |  18  |  17  |  16  |  15  |  14  |  13  |  12  |  11  |  10  |  09  |  08  |  07  |  06  |  05  |  04  |  03  |  02  |  01  |  00  |  99

Research Projects

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

Although a wide variety of approaches identify vulnerabilities in Android apps, none attempt to determine exploitability of those vulnerabilities. Exploitability can aid in reducing false positives of vulnerability analysis, and can help engineers triage bugs. Specifically, one of the main attack vectors of Android apps is their inter-component communication (ICC) interface, where apps may receive messages called Intents.

Research Area(s): 
Project Dates: 
January 2017

Sticky

ISR has long been an internationally recognized leader in research into all aspects of open source software development. In this role, researchers at ISR along with colleagues throughout the U.S. helped to develop a new agenda that can help guide future research into open source software development.

Research Area(s): 
Project Dates: 
January 2000

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.

Research Area(s): 
Project Dates: 
March 2015

The absence of explicit architectural constructs in mainstream programming languages has prevented software developers from achieving the many benefits of architecture-based development. To address this issue, Java 9 has introduced the Java Platform Module System (JPMS), resulting in the first instance of modules with rich software architectural interfaces added to a mainstream programming language. JPMS aims to support the encapsulation, security, and maintainability of Java applications and the JDK.

Research Area(s): 
Project Dates: 
November 2017

Bitcoin is a digital currency and payment platform that has been the source of much media attention. The currency is not backed by a government like most conventional currencies but is part of a democratic and dencentralized movement. Bitcoin transactions are pseudo-anonymous in a similar way to cash money. Why do people use this currency? How do their political values align with their usage of bitcoin? Furthermore, how does the community regulate itself in the absence of a formal hierarchical structure? Lastly, how do anonymous users form communities?

Research Area(s): 
Project Dates: 
October 2013

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

We are on the cusp of a major opportunity: software tools that take advantage of Big Code. Specifically, Big Code will enable novel tools in areas such as security enhancers, bug finders, and code synthesizers. What do researchers need from Big Code to make progress on their tools? Our answer is an infrastructure that consists of 100,000 executable Java programs together with a set of working tools and an environment for building new tools.

Research Area(s): 
Project Dates: 
March 2019

Pages