1 The role of formalism in system requirements JEAN-MICHEL BRUEL, University of Toulouse, IRIT SOPHIE EBERSOLD, University of Toulouse, IRIT FLORIAN GALINIER, University of Toulouse, IRIT MANUEL MAZZARA, Innopolis University ALEXANDR NAUMCHEV, Innopolis University BERTRAND MEYER, Schafhausen Institute of Technology and Innopolis University A major determinant of the quality of software systems is the quality of their requirements, which should be both understandable and precise. Most requirements are written in natural language, good for understandability but lacking in precision. To make requirements precise, researchers have for years advocated the use of mathematics-based notations and methods, known as łformalž. Many exist, difering in their style, scope and applicability. The present survey discusses some of the main formal approaches and compares them to informal methods. The analysis uses a set of 9 complementary criteria, such as level of abstraction, tool availability, traceability support. It classifes the approaches into fve categories based on their principal style for specifying require- ments: natural-language, semi-formal, automata/graph, mathematical, seamless (programming-language- based). It includes examples from all of these categories, altogether 21 diferent approaches, including for example SysML, Relax, Eifel, Event-B, Alloy. The review discusses a number of open questions, including seamlessness, the role of tools and education, and how to make industrial applications beneft more from the contributions of formal approaches. ACM Reference Format: Jean-Michel Bruel, Sophie Ebersold, Florian Galinier, Manuel Mazzara, Alexandr Naumchev, and Bertrand Meyer. 2021. The role of formalism in system requirements. ACM Comput. Surv. 1, 1, Article 1 (January 2021), 35 pages. https://doi.org/10.1145/3448975 1 INTRODUCTION In a world where software pervades every aspect of our lives, a core issue for the IT industry is how to guarantee the quality of the systems it produces. Software quality is a complex and widely studied topic, but it is not hard to provide a simple defnition: quality means that the software does the right things, and does them right. These łthingsž that a software system does are known as its requirements. Not surprisingly, requirements engineering is a core area of software engineering. Both goals, doing the right things and doing things right, are dependent on the quality of the requirements: the requirements must defne the system so that it will satisfy user needs; and they must make it possible to assess a candidate implementation against this defnition, a task Authors’ addresses: Jean-Michel Bruel, bruel@irit.fr, University of Toulouse, IRIT; Sophie Ebersold, sophie.ebersold@irit.fr, University of Toulouse, IRIT; Florian Galinier, forian.galinier@irit.fr, University of Toulouse, IRIT; Manuel Mazzara, m.mazzara@innopolis.ru, Innopolis University; Alexandr Naumchev, a.naumchev@innopolis.ru, Innopolis University; Bertrand Meyer, Bertrand.Meyer@inf.ethz.ch, Schafhausen Institute of Technology and Innopolis University. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proft or commercial advantage and that copies bear this notice and the full citation on the frst page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specifc permission and/or a fee. Request permissions from permissions@acm.org. © 2021 Association for Computing Machinery. 0360-0300/2021/1-ART1 $15.00 Preprint of article published in ACM Computing Surveys, vol. 54, no. 5, June 2021, pages 1-36, DOI https://doi.org/10.1145/3448975