Plan to Improve Software Performance Garners CAREER Award for EECS Assistant Professor

Brian Demsky to study ways to prevent catastrophic failure in crucial software systems

Critical infrastructure, ranging from airplanes to medical equipment, is often controlled by complex software systems. All too often, failures triggered by the proliferation of errors in critical components of the systems cause them to malfunction.  Failures linked to software errors, like the explosion of the Ariane 5 rocket shortly after its first launch in 1996, bring wide publicity to these issues.  However, they continue to be an ongoing concern in many software systems, and have been a contributing factor in many catastrophic failures.



Current industry practice focuses on attempting to develop error-free software, a nearly impossible task, and largely ignores recovering from the errors that will inevitably occur. A fundamental limitation of this approach to software development is that any error will prevent the software from continuing to run past the failure point because some future operations likely depend on the failed operation.  If the software system controls a critical system, stopping after an error can have catastrophic consequences.



Brian Demsky, Ph.D., assistant professor of electrical engineering and computer science, and his research group, aim to improve the resilience of software with a proposal, “CAREER:  Language Features for Robust Software,” which earned him a five-year, $450,000 Faculty Early Career Development (CAREER) Award from the National Science Foundation



Demsky’s group is working to create the tools developers would need, including new programming languages and other automated tools, to write software that would isolate software components, and allow programs to continue running if they encounter a bug, preventing catastrophic failures.



Current software systems contain little information about the dependences between their components.  If one software component fails, it is difficult to know which other components depend on the failed component.  These new development tools would help make these dependencies more evident, allowing software systems to automatically recover from errors by identifying which components are unaffected by the error, and therefore can safely continue to operate and provide critical services. 



Demsky received bachelor’s degrees in electrical engineering and physics from the University of Texas at Austin, in 1998, and master’s and Ph.D. degrees in computer sciences from the Massachusetts Institute of Technology in 2001 and 2006, respectively.  His research interests include compilation, program analysis, and software engineering, and he holds a joint appointment in the Donald Bren School of Information and Computer Science at UC Irvine.