NOTE: This is primarily an invitation for the “SEI and White House OSTP to Explore the Future of Software and AI Engineering”, but there is this big section on the “future of software engineering” that is very interesting.
As discussed in Architecting the Future of Software Engineering: A Research and Development Roadmap, the SEI developed six research focus areas in close collaboration with our advisory board and other leaders in the software engineering research community … AI-Augmented Software Development: By shifting the attention of humans to the conceptual tasks that computers are not good at and eliminating human error from tasks where computers can help, AI will play an essential role in a new, multi-modal human-computer partnership… taking advantage of the data generated throughout the lifecycle
Assuring Continuously Evolving Software Systems: …generating error-free code, especially for trivial implementation tasks… generating surprising recommendations that may themselves create additional assurance concerns… develop a theory and practice of rapid and assured software evolution that enables efficient and bounded re-assurance of continuously evolving systems
Software Construction through Compositional Correctness: …unrealistic for any one person or group to understand the entire system… need to integrate (and continually re-integrate) software-reliant systems… create methods and tools that enable the intelligent specification and enforcement of composition rules that allow (1) the creation of required behaviors (both functionality and quality attributes) and (2) the assurance of these behaviors at scale
Engineering AI-enabled Software Systems: …AI-enabled systems share many parallels with developing and sustaining conventional software-reliant systems. Many future systems will likely either contain AI-related components, including but not limited to LLMs, or will interface with other systems that execute capabilities using AI… focus on exploring which existing software engineering practices can reliably support the development of AI systems and the ability to assess their output, as well as identifying and augmenting software engineering techniques for specifying, architecting, designing, analyzing, deploying, and sustaining AI-enabled software systems
Engineering Socio-Technical Systems: … As generative AI makes rapid progress, these societal-scale software systems are also prone to abuse and misuse by AI-enabled bad actors via techniques such as chatbots imitating humans, deep fakes, and vhishing… leverage insights from such as the social sciences, as well as regulators and legal professionals to build and evolve societal-scale software systems that consider these challenges and attributes.
Engineering Quantum Computing Software Systems: …enable the programming of current quantum computers more easily and reliably and then enable increasing abstraction as larger, fully fault-tolerant quantum computing systems become available… create approaches that integrate different types of computational devices into predictable systems and a unified software development lifecycle.