Developing software concerns all the aspects of the production cycle of software systems and requires expertise in data management, design and algorithm paradigms, programming languages, and human computer interfaces. Most software development life cycle methodologies are either iterative or follow a sequential model. Such systems may contain a huge amount of lines of code. Thus, when developing these systems, it is necessary to apply sound engineering principles in order to economically obtain reliable and efficient software.
Formal methods refer to techniques based on mathematics for the specification, development, and verification of systems. The use of formal methods is especially important in reliable systems where, due to safety and security reasons, it is important to ensure that errors are not included during the development process. Formal methods are particularly effective when used early in the development process, at the requirements and specification levels, but can be used for a completely formal development of a system. One of the advantages of using a formal representation of systems is that it allows to rigorously analyze their properties. In particular, it helps to establish the correctness of the system with respect to the specification or the fulfillment of a specific set of requirements, to check the semantic equivalence of two systems, to analyze the preference of a system to another one with respect to a given criterion, to predict the possibility of incorrect behaviors, to establish the performance level of a system, etc. This new workshop welcomes papers on any aspect concerning the formal development of software systems.