Search papers, labs, and topics across Lattice.
This paper critiques the traditional software assurance methods that rely on formal correctness and expert judgment, highlighting the limitations of these approaches in the context of generative AI, which operates on probabilistic predictions rather than deterministic correctness. It argues for a systematic reevaluation of assurance techniques to adapt to the new realities introduced by AI, emphasizing the need for a blend of methodologies that consider both functional requirements and fitness for purpose. The key finding is that generative AI necessitates a shift in mindset towards probabilistic assurances, challenging the conventional belief in achieving absolute correctness through rigorous reasoning alone.
Generative AI forces a paradigm shift in software assurance, revealing that traditional notions of correctness may be obsolete in the face of probabilistic outputs.
Software engineering has a complicated relationship with"correctness". We recognize the challenges of full formal rigor as well as many required properties beyond functional correctness. Although we satisfice in practice, we are still stuck in the mindset that we could reason our way to correctness, if only we had enough information. Generative AI has introduced a new dimension to assurances: its foundation is statistical rather than formal. Traditional software engineering establishes confidence through rigorous reasoning, domain knowledge and expert judgment. In contrast, generative AI's results are sophisticated predictions, in Valiant's words"probably approximately correct". This inherently limits assurances about the results are to probabilistic assertions. Further, the nuances and implicit associations that guide human judgment are not accessible to its training sets, so that tacit knowledge cannot be incorporated in its models. We have many approaches for developing assurances that a software system does what it's expected to do, though most of them focus on the specification of the code rather than the requirements for the system, let alone fitness for purpose. We have failed to develop a systematic understanding of the relative merits of the various approaches. I hope that generative AI will finally force us to tackle this. To that end, I will challenge us to think systematically about our assurance techniques. We need ways to make informed, reasoned choices about cost-effective combinations of approaches to devel-oping confidence in our systems. We call ourselves software engineers. Let's act like engineers.