Formality in Software Requirements

11/06/2019
by   Jean-Michel Bruel, et al.
0

A major determinant of the quality of software systems is the quality of their requirements, which should be both understandable and precise. Natural language, the most commonly used for writing requirements, helps understandability, but lacks precision. To achieve precision, researchers have for many years advocated the use of "formal" approaches to writing requirements. These efforts have produced many requirements methods and notations, which vary considerably in their style, scope and applicability. The present survey discusses some of the principal approaches. The analysis uses a number of complementary criteria, such as traceability support, level of abstraction and tool support. It classifies the surveyed techniques into five categories: general-purpose, natural-language-based, graph and automata, other mathematical notations, and programming-language-based). The review includes examples from all of these categories, altogether 22 different methods, including for example SysML, Relax, Petri Nets, VDM, Eiffel, Event-B, Alloy. The review discusses a number of important open questions, including the role of tools and education and how to make industrial applications benefit more from the contributions of formal approaches.

READ FULL TEXT

page 1

page 14

research
11/06/2019

The role of formalism in system requirements

A major determinant of the quality of software systems is the quality of...
research
11/06/2019

The role of formalism in system requirements (extended version)

A major determinant of the quality of software systems is the quality of...
research
11/06/2019

The role of formalism in system requirements (full version)

A major determinant of the quality of software systems is the quality of...
research
10/08/2017

Expressing and verifying embedded software requirements

Writing requirements for embedded software is pointless unless they refl...
research
03/08/2021

Langar: An Approach to Evaluate Reo Programming Language

Reo is a formal coordination language. In order to assess and evaluate i...
research
12/17/2019

Prema: A Tool for Precise Requirements Editing, Modeling and Analysis

We present Prema, a tool for Precise Requirement Editing, Modeling and A...
research
07/06/2023

3D Environment Modeling for Falsification and Beyond with Scenic 3.0

We present a major new version of Scenic, a probabilistic programming la...

Please sign up or login with your details

Forgot password? Click here to reset