1 Introduction

We are in the world in which society is increasingly dependent on software, and so, the quality of this software is more important than ever. Unfortunately, the development of high-quality software is becoming increasingly challenging as complexity grows and systems are often concurrent and distributed. The Software Engineering and Formal Methods communities have developed a range of approaches that help address this problem, but initially there was relatively little interaction between these areas and some saw them as rivals. Thankfully, these attitudes have gradually changed, with the communities accepting that each makes a useful contribution in tackling an important problem.

It is arguable that several factors have helped bring together the Software Engineering and Formal Methods communities. For example, there has been increasing interest in topics such as model-based testing that fall within both areas, and so, there is much more overlap between the communities. Recent years have seen increases in computation power and improvements in solution mechanisms such as SAT/SMT solvers and model checkers. This has led to verification and static analysis techniques, developed in the formal methods community, scaling to much larger systems and being used by many more software engineers. However, events that bring these communities together have also played a crucial role.

The first edition of the International Conference on Software Engineering and Formal Methods (SEFM) was held in Brisbane, Australia, in September 2003. The purpose of the SEFM conference is to bring together practitioners and researchers from academia, industry and government to advance the state of the art in formal methods, to facilitate their uptake in the software industry and to encourage their integration with practical engineering methods. SEFM is now an important, established annual event.

This special issue contains extended versions of papers from the 11th International Conference on Software Engineering and Formal Methods (SEFM 2013). The conference received 58 submissions. After a careful reviewing process, the Programme Committee accepted 21 regular papers. Authors of seven of these papers were invited to extend their papers, with one declining. After the standard review process, we were able to accept the two papers that appear in this special issue.

2 In this issue

This issue contains two papers. In “Constraint-based test generation for automotive operating systems”, Yunja Choi and Taejoon Byun propose a methodology for safety checking automotive operating systems based on a novel constraint specification language, called OSEK_CSL. With OSEK_CSL, they specify usage constraints using a predefined set of constraint types identified from the international standard OSEK/VDX. Test sequences with varying degrees of constraint satisfaction are, then, automatically generated from the set of usage constraints. The authors report the results of a series of experiments that show that their methodology detects safety issues more effectively than conventional testing-based approaches.

The importance of type checking is widely accepted, but typically this does not solve the problem of verifying the correct use of units and dimensions in a model of a software system. In “Inferring Physical Units in Formal Models”, Sebastian Krings and Michael Leuschel present an extension to the B, Event-B and TLA \(+\) formal specification languages to support the analysis and partial inference of units of measure for physical quantities. The proposal is mainly based on abstract interpretation combined with classical animation, constraint solving and model checking. This contrasts with the type inference approach of some programming language proposals. The technique has been applied in several case studies and has been implemented as a plug-in for the ProB tool.