AI Meets Program Analysis: Lessons from a Decade of Enterprise Software Modernization at IBM
TL;DR
This paper argues that AI and program analysis are not competing technologies but complementary capabilities, and envision enterprise software engineering as a collaboration in which program analysis provides evidence, AI provides intelligence, and human engineers contribute the judgment and wisdom required to build trustworthy software systems.
Abstract
Generative AI has rapidly transformed software engineering through code generation, explanation, translation, documentation, and agentic development workflows. This transformation raises a fundamental question: what is the role of program analysis in the era of AI? Drawing on a decade of enterprise software modernization research at IBM, this paper argues that AI and program analysis are not competing technologies but complementary capabilities. Program analysis provides semantic evidence, dependency reasoning, correctness guarantees, and architectural constraints, while AI leverages this evidence to generate code, produce documentation, derive specifications, assist architectural design, and improve developer productivity. We illustrate this synergy through IBM's modernization research spanning legacy software understanding, business function extraction, service refactoring, APIfication, code generation, COBOL-to-Java translation, and automated testing. Across these workflows, a consistent lesson emerges: the most reliable and trustworthy AI-assisted modernization is achieved when AI is grounded in semantic artifacts extracted and validated through program analysis. Looking ahead, we envision enterprise software engineering as a collaboration in which program analysis provides evidence, AI provides intelligence, and human engineers contribute the judgment and wisdom required to build trustworthy software systems.