SEApr 29, 2020
A Formalization of Group Decision Making in Multi-viewpoints DesignSaloua Bennani, Iliass Ait El Kouch, Mahmoud El Hamlaoui et al.
Complex systems are typically designed collaboratively by stakeholders from different domains. This multi viewpoints paradigm promotes the separation of concerns since separate teams, from different business viewpoints, build partial models describing the system. These partial models are naturally heterogeneous. So, it is difficult to ensure their inter-model consistency if kept separately. For that, we propose a collaborative approach that combines Group Decision Making (GDM) and Model-Based Engineering (MBE). This paper highlights the GDM part of our approach and especially the concept of decision policy that enables coming up with collective decisions in group decision-making contexts.
SENov 6, 2019
The role of formalism in system requirements (full version)Jean-Michel Bruel, Sophie Ebersold, Florian Galinier et al.
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, differing 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 classifies the approaches into five categories: general-purpose, natural-language, graph/automata, other mathematical notations, seamless (programming-language-based). It presents approaches in all of these categories, altogether 22 different ones, including for example SysML, Relax, Eiffel, 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 benefit more from the contributions of formal approaches. (This is the full version of the survey, including some sections and two appendices which, because of length restrictions, do not appear in the submitted version.)
SEJun 15, 2019
The Anatomy of RequirementsBertrand Meyer, Jean-Michel Bruel, Sophie Ebersold et al.
Requirements engineering is crucial to software development but lacks a precise definition of its fundamental concepts. Even the basic definitions in the literature and in industry standards are often vague and verbose. To remedy this situation and provide a solid basis for discussions of requirements, this work provides precise definitions of the fundamental requirements concepts and two systematic classifications: a taxonomy of requirement elements (such as components, goals, constraints...) ; and a taxonomy of possible relations between these elements (such as "extends", "excepts", "belongs"...). The discussion evaluates the taxonomies on published requirements documents; readers can test the concepts in two online quizzes. The intended result of this work is to spur new advances in the study and practice of software requirements by clarifying the fundamental concepts.
SEOct 8, 2017
AutoReq: expressing and verifying requirements for control systemsAlexandr Naumchev, Bertrand Meyer, Manuel Mazzara et al.
The considerable effort of writing requirements is only worthwhile if the result meets two conditions: the requirements reflect stakeholders' needs, and the implementation satisfies them. In usual approaches, the use of different notations for requirements (often natural language) and implementations (a programming language) makes both conditions elusive. AutoReq, presented in this article, takes a different approach to both the writing of requirements and their verification. Applying the approach to a well-documented example, a landing gear system, allowed for a mechanical proof of consistency and uncovered an error in a published discussion of the problem.
SEApr 17, 2017
A contract-based method to specify stimulus-response requirementsAlexandr Naumchev, Manuel Mazzara, Bertrand Meyer et al.
A number of formal methods exist for capturing stimulus-response requirements in a declarative form. Someone yet needs to translate the resulting declarative statements into imperative programs. The present article describes a method for specification and verification of stimulus-response requirements in the form of imperative program routines with conditionals and assertions. A program prover then checks a candidate program directly against the stated requirements. The article illustrates the approach by applying it to an ASM model of the Landing Gear System, a widely used realistic example proposed for evaluating specification and verification techniques.