search menu icon-carat-right cmu-wordmark
2020 Year in Review

Architecting the Future of Software Engineering

Software has become more complex, pervasive, and essential to the defense and national security of our nation. Individuals, organizations, entire industries, and governments depend on software almost as much as they do electricity, and today most new Department of Defense (DoD) capability is delivered through software. Our ever-growing dependence on software systems makes it imperative to maintain our nation’s leadership and strategic advantage in software engineering.

To spur a national discussion that can inform the future direction of the field, the SEI is leading an effort to redefine how software is developed. “We’re thinking about where the field of software engineering is headed and the new development and architectural paradigms it will take to get there,” said Anita Carleton, director of the SEI’s Software Solutions Division and head of the SEI’s effort.

We’re thinking about where the field of software engineering is headed and the new development and architectural paradigms it will take to get there.

Anita Carleton
Director, SEI Software Solutions Division
Anita Carlton  (BW)

Rapidly deploying software with confidence requires fundamental shifts in software engineering. How will these new types of systems push beyond the bounds of what current software engineering theories, tools, and practices can support? Based on where we are today, where will innovation take us in the next 5, 10, or 20 years? And what do we need to do to prepare for those futures?

The SEI has been engaging experts from across the entire software engineering ecosystem to answer these questions. One key event, which the SEI conducted in collaboration with DARPA, was the Software Engineering Grand Challenges and Future Visions Workshop. This event promoted a discussion among leading researchers, practitioners, and government stakeholders and promoted communication and collaboration within and across these communities. Its goal was to stimulate new thinking, articulate future needs, and discuss how emerging or disruptive software engineering technologies, methods, and tools can help address future challenges.

Five major themes emerged over the course of the workshop:

  • assuring continuously evolving systems: Provide evidence and arguments that a system will behave as intended, considering both desired functionality and quality attributes, as it evolves continuously to incorporate new capability and dynamically self-adapts its operating configuration at runtime.
  • AI-augmented software development: Augment each stage of software development with artificial intelligence (AI) to orchestrate continuous systems evolution, positioning for constant high-speed change.
  • engineering of AI-enabled software: Develop empirically validated practices to support development and sustainment of next-generation AI-enabled software. Provide tools, verification methods, techniques, and practice to apply sound software engineering principles to AI engineering.
  • designing in ethics in software, systems, and societal-scale systems: Build and evolve societal-scale software systems that enable transparency and mitigate risks of unethical influence on individuals, unrestrained social manipulation, or disruption of social epistemology.
  • composable software systems: Provide a scientific and engineering basis for designing, building, analyzing, and assuring heterogeneous and composable software systems. Provide languages, tools, environments, and techniques to support these activities.

The SEI will combine these themes with input from other members of the software engineering community and our own research to produce a research roadmap and a strategy to

  • catalyze the software engineering community to create a compelling multiyear vision, strategy, and roadmap for the research and development of next-generation software and software-reliant systems on which national security depend
  • contribute to the development of an ecosystem for software engineering that engages academic, defense, and commercial communities to work together on solving future problems and developing critical abilities
  • increase national security by informing future decisions, policies, and investments in software engineering

“Maintaining our nation’s competitive advantage in defense, infrastructure, healthcare, commerce, and education means that we need the best engineers of software in the world,” said Carleton. “Working with the best minds in the software engineering community, we are putting together a strategy to make software development a key part of the nation’s security and prosperity, going forward.”

More Software Engineering Research and Development from the 2020 Year in Review