Front. Comput. Sci., 2012, 6(1): 1–2 DOI 10.1007/s11704-012-2900-6
Formal engineering methods for software quality assurance Shaoying LIU Department of Computer Science, Faculty of Computer and Information Sciences, Hosei University, Tokyo 184-8584, Japan
c Higher Education Press and Springer-Verlag Berlin Heidelberg 2012
Conventional software engineering on the basis of informal or semi-formal methods is facing tremendous challenges in ensuring software quality. Formal methods have attempted to address these challenges by introducing mathematical notation and calculus to support formal specification, refinement, and verification in software development. Their theoretical contributions to the discipline of software engineering are significant. However, in spite of their potential in improving the controllability of software process and reliability, formal methods are generally diﬃcult to apply to large-scale and complex systems in practice because of many constraints (e.g., limited expertise, complexity, changing requirements, and theoretical limitations). Researches on the integration of formal methods into conventional software engineering technologies and processes are likely to create eﬀective ways to transfer formal methods to industry for software productivity and quality. One of the examples is the development of the structured object-oriented formal language (SOFL) and its associated SOFL method for industrial software development. To promote this kind of research, the terminology “formal engineering methods (FEM)” was formally proposed when the first international conference on formal engineering methods (ICFEM’97) was organized in Hiroshima in November 1997. Due to many research activities over the last twenty years, formal engineering methods have gradually become an exciting and important research area. Its further development is expected to ultimately lead to a breakthrough in overcoming the problem of the software crisis in software engineering. As the first special issue on formal engineering methods in the field, this issue includes four articles contributed by excellent individual researchers or groups, reporting their progress in research or experience in application. In his article “The use of mathematics in software quality assurance”, Parnas points out that ultimately, the quality of software rests on three legs: rigour, testing, and qualified personnel, and describes how rigour can be achieved by using mathematics on the basis of his past experiences. The article “rCOS: a formal model-driven engineering method for component-based software” by Liu and Stolz introduces a formal model-driven software engineering method rCOS. The focus of this paper is on how the method can be used in a software development process, illustrating what models need to be constructed, what and how validation can be done for them, and which major model transformations can eﬀectively support the design activities. The article “An institution theory of formal meta-modelling in graphically extended BNF” by Zhu emphasizes the importance of building a theoretical foundation for a meta-modeling approach that supports model-driven software development. The paper points out that meta-modelling can be performed by defining the abstract syntax of a modelling language in graphically extended BNF (GEBNF) and by formally specifying the constraints on models in the formal logic language induced from GEBNF. The article “SeVe: automatic tool for verification of security protocols” by Luu et al. is concerned with a framework for specifying security protocols in the labeled transition system (LTS) semantics model, which embeds the knowledge of the participants and parameterizes the ability of attacker. The paper describes the formal definitions for three types of privacy properties based on Professor Shaoying Liu is the guest editor of the special section on Formal engineering methods for software quality assurance. E-mail: [email protected]
Front. Comput. Sci., 2012, 6(1): 1–2
trace equivalence and knowledge reasoning, and their verification algorithms that are implemented in a SeVe module in PAT model checker, which supports specifying, simulating, and verifying security protocols. Striking a good balance between simplicity, visualization, and preciseness is regarded as a useful feature of a formal engineering method and building intelligent tool support for a method is a necessary condition for it to be widely used in practice. There is still a long way to go before reaching this goal, and I hope that more and more researchers will join us to work on formal engineering methods for a bright future of software engineering. Shaoying Liu is a professor at Hosei University, Japan. He received his PhD in Computer Science from the University of Manchester, UK in 1992. His research interests include Formal Engineering Methods, Specificationbased Inspection and Testing, and Intelligent Software Engineering Environments. He has published a book titled “Formal Engineering for Industrial Software Development” with Springer-Verlag, four edited conference proceedings, and over 120 academic papers in refereed journals and international conferences. He is on the editorial board for the journal Software Testing, Verification and Reliability (STVR) and for journal ISRN Software Engineering. He is a Fellow of the British Computer Society.