Hot Research

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.

A decentralized system is a distributed system for which there is no central administrative authority to dictate how the distributed subsystems must be developed, operated, or maintained.  In decentralized systems service providers and service clients can each operate under different authority and evolve independently.  Designing and implementing these systems is a substantial challenge.  ISR Director Richard Taylor’s research group addresses these questions from a fresh perspective, COmputationAl State Transfer (COAST), an architectural style for secure and adaptive decentralized systems.  COAST constructions permit and encourage continuous accounting and systemic auditing to verify the correct operation and integrity of critical elements of a decentralized system.

A software engineer in Mountain View needs trust to collaborate with his peer in Bangalore efficiently. But they may never have the opportunity to meet each other physically. Technology is not yet good enough to produce a mini-wormhole for them to enjoy a coffee break together, but it is good enough for them to share fun images of their lattes and chat about everyday topics while they enjoy their lattes remotely, using appli-cations such as Facebook Messenger. Managers often distress when team members interact this way, thinking it a waste of time. But does informally ‘talking’ about everyday things in such ways help team members to build trust, or does it just squander valuable development time?

“Dynamism.  The quality of being characterized by change and progress.” Software, in particular, is defined by this quality.  From changing source code, contributed by teams of developers over the course of years, to billions of instructions performing calculations in the blink of an eye, software is highly dynamic. 

Although this quality can be awe-inspiring, it can also be intimidating and challenging for even the developers of the software to comprehend.  Bridging these gaps between ever-changing complexity and the need for human comprehension of these aspects of software is the subject of Professor Jim Jones’s research at UC Irvine.