Modern software systems are inherently concurrent. They consist of components running simultaneously and sharing access to resources provided by the execution platform. This leads to resource contention and potential deadlocks compromising mission- and safety-critical operations. Similar problems are observed in various kinds of software, including system, work-flow management, integration software, web services etc. Essentially, any software entity that goes beyond simply computing a certain function, necessarily has to interact and share resources with other such entities.
The intrinsic concurrent nature of such interactions is the root cause of the sheer complexity of the resulting software, which is exponential in the number of components, making complete a posteriori verification practically infeasible. An alternative approach consists in ensuring correctness by construction.
The term “Rigorous System Design” denotes the design approach that is based on a formal, accountable and iterative process for deriving trustworthy and optimised implementations from models of application software, its execution platform and its external environment. In particular, a system implementation is derived from a set of appropriate high-level models by applying a sequence of semantics-preserving transformations.
Saddek Bensalem (Verimag / Université Grenoble Alpes, France)
Simon Bliudze (INRIA Lille – Nord Europe, France)