Hot Research

The ability to use software with ease is important for everyone, especially for approximately 15% of the world population with disabilities. Even the simplest operations, taken for granted by nondisabled users, can be daunting tasks for disabled users. A recent observational study found that to simply open a web browser, enter a search term, and navigate to the first result on a mobile device, it can take over 50 interactional turns for a blind person. Because of this, blind users often resort to rote memorization of navigation sequences, decline to update apps they have committed to memory, or stop using apps altogether.

Global tracking systems, multi-user games, collaborative editors, geo-replicated databases, and real-time collaborative tools are designed around the concept of replicated objects. A replicated object is a single conceptual data unit for which multiple copies exist, one in each node of the distributed application. The reasons for replication are simple: we want the nodes to be highly responsive to local manipulations of the data. Waiting for round-trips to a single, central object would make for a terrible experience at the terminal nodes. Hence, replicas that are, at least partially, autonomous.

Prof. Joshua GarciaOver the past few years, Prof. Joshua Garcia has been working extensively in the areas of mobile security, testing, and analysis; software architecture; and software maintenance and re-engineering. Garcia’s research utilizes static and dynamic analysis techniques, machine learning, and artificial intelligence to address problems in the area of mobile applications and decay of software architecture.

Software will always have bugs, and as software continues to become a more and more pervasive part of our lives, software bugs will continue to affect more people than ever. If we don’t engineer for quality, over time software quality decreases. Prof. Iftekhar Ahmed’s research interests are fundamentally driven by a desire to build less error prone systems, not only by identifying bugs through effective testing, but also by helping developers write better code from the start.

Software does exactly what the developer told it to do — including when it fails. The reason that it sometimes fails is that it was told to do the wrong thing — in other words, it contained bugs created by the developers. Professor Jim Jones and his students conduct research to help address such bugs and thus ultimately improve the quality of software. As Jones puts it, “One way to define a bug is as a gap between human intention and implementation reality, neither of which are easy to identify or define. Understanding what the program is doing during execution and deployment can involve extensive research. Similarly, defining exactly what should be happening — what you want to happen — is often a process of discovery and iterative modification.” Making both intention and reality more visible and discoverable is a common theme of Jones’s and his students’ research.>

The Internet of Things (IoT) refers to the emerging concept that everyday objects and environments become enriched with computing and networking capabilities in order to be more responsive to our needs. Specialized sensors (e.g. motion, temperature, video) monitor and detect specific conditions of interest and then stream data about them over the Internet for further processing, including triggering further actions in the physical environment through devices that can automatically control lighting, temperature, door locks, etc. By combining different specialized devices, our environments can become more responsive and “smart.”

With all the advances they have made in designing new software systems for all kinds of different domains, purposes, and users, one would think that software engineers would pay as much attention to improving the software they use themselves. After all, why would they not want to work with the best possible development tools they could imagine?

Despite all the reasons why complex simulations are desirable for decision and policy making, and despite advances in computing power, large distributed simulations are still rarely used.  The reality is that developing distributed simulations is much harder than developing non-distributed, specialized ones, and requires a much higher level of software engineering expertise.  Prof. Cristina Lopes and her students have been working on a software architecture, and a corresponding software framework, which have the goal of lowering the barriers for the simulation of large, complex systems, such as entire cities.

Mobile app markets are creating a fundamental paradigm shift in the way software is delivered to end users. By providing a medium for reaching a large consumer market at a nominal cost, app markets have leveled the software industry, allowing entrepreneurs and hobbyist programmers to compete with prominent software development companies.  The result of this has been an explosive growth in the number of new apps for platforms that have embraced this method of provisioning software, such as Android. This paradigm shift, however, has given rise to a new set of security challenges. 

The revolution in sensor technology development is changing how human behavior can be studied. It enables detailed measurements of people in their natural environments–providing big data. While some forms of big data collection may be well known to the general public (e.g. mining Twitter feeds), another paradigm for big data collection is beginning to occur: measuring human behavior in everyday life.