All software is not created equal.
At one end are apps on a smartphone and consumer-facing programs for which periodic updates to fix bugs and security issues are routine, like replacing an air conditioning filter or getting an annual flu shot.
At the other end are large, complex software systems such as software used in airplanes, logistics, satellites, nuclear power plants and other critical infrastructure.
For the latter, the Department of Defense, under its ‘Intent-Defined Adaptive Software’ program, is funding huge research efforts to create novel software engineering approaches. Gabor Karsai, associate director of the Vanderbilt Institute for Software Integrated Systems, leads one of them—an $8.8 million project funded by DARPA and the Air Force Research Laboratory. The goal is to develop technologies that capture the intentions of software engineers and enable rapid code generation that supports continual adaptation and evolution of DoD software-enabled systems.
“You can’t throw them out and start from scratch,” said Karsai, Professor of Computer Engineering, Computer Science and Electrical Engineering. “You may have new requirements and new features or new hardware and network platforms, but you don’t want to mess up what you already have.”
The main idea is that changes in the requirements will result in the developer making changes in the models that will result in changes in the generated artifacts, or changes in the target system, he said. And these derived changes should take place with minimal human involvement.
“We consider software development as a continuous process, where the software is undergoing sustained change, improvement and extension,” Karsai said. “Our goal is to build the tools to support this.”
Standard practice today is a highly manual process: designers receive new requirements, which are then translated into design changes, which are handed down to developers who translate those into changes in the implementation code. A change in requirements creates an avalanche of actions with plenty of room for error at each step.
“The bulk of new code is still being developed using conventional programming languages, where objectives, design, intentions, and constraints about the software are often poorly represented,” Karsai said.
The proposed new framework—Model-based Intent-Driven Adaptive Software (MIDAS)—focuses on growth and adaptation. It requires more intense work at the outset, including mathematical verification and validation, which has been at the end of the process.
Also on the four-year project is Kestrel Institute, a nonprofit computer science research center located in Palo Alto’s Stanford Research Park. Kestrel develops mathematical refinement techniques and tools for various domains, including blockchain, learning systems, adaptive systems, constraint solving, planning and networking software.
Kestrel will focus on the synthesis and generation technology. Vanderbilt will be the lead on the project and responsible for all work, including integration. Abhishek Dubey, assistant professor of computer science and computer engineering, will lead the modeling and toolchain components.
Grants for this and related projects have been extremely competitive. Vanderbilt is one of the four research teams selected by DARPA from several applicants that develop new technologies for this program.