The Role of Formal Methods in Software Development for Railway Applications

2014 ◽  
pp. 1103-1118
Author(s):  
Alessandro Fantechi

Formal methods for thirty years have promised to be the solution for the safety certification headaches of railway software designers. This chapter looks at the current industrial application of formal methods in the railway domain. After a recall of the dawning of formal methods in this domain, recent trends are presented that focus in particular on formal verification by means of model checking engines, with its potential and limitations. The paper ends with a perspective into the next future, in which formal methods will be expected to pervade in more respects the production of railway software and systems.

Author(s):  
Alessandro Fantechi

Formal methods for thirty years have promised to be the solution for the safety certification headaches of railway software designers. This chapter looks at the current industrial application of formal methods in the railway domain. After a recall of the dawning of formal methods in this domain, recent trends are presented that focus in particular on formal verification by means of model checking engines, with its potential and limitations. The paper ends with a perspective into the next future, in which formal methods will be expected to pervade in more respects the production of railway software and systems.


Author(s):  
Alexander Konstantinovich Petrenko ◽  
Denis Valentinovich Efremov ◽  
Eugeny Valerievich Kornykhin ◽  
Alexey Vladimirovich Khoroshilov ◽  
Ilya Viktorovich Shchepetkov ◽  
...  

Research on formal methods of software development and verification focuses on building specifications using incremental and iterative development methodologies. The presence of several levels of specifications simplifies proving of properties, since it is possible to reuse the proofs that were performed for more abstract layers of the model. It is desirable to use the same models that were used for formal verification also in testing of real systems for compliance with the requirements set by these models. In practice, large software systems are described by multi-level models. There was no experience of using such models as the basis for testing and monitoring. The paper discusses various methods for developing multi-level models, new opportunities that can be obtained through a combination of functional specifications and implementation-level refinements, limitations that must be considered during testing and monitoring of real systems for compliance with multi-level models.


This chapter provides a brief introduction to the domain of formal methods (Boca, Bowen, & Siddiqi, 2009) and the most commonly used verification methods (i.e., theorem proving [Harrison, 2009] and model checking [Baier & Katoen, 2008]). Due to their inherent precision, formal verification methods are increasingly being used in modeling and verifying safety and financial-critical systems these days.


2022 ◽  
Vol 72 (1) ◽  
pp. 40-48
Author(s):  
K.H. Kochaleema ◽  
G. Santhosh Kumar

This paper discusses a Unified Modelling Language (UML) based formal verification methodology for early error detection in the model-based software development cycle. Our approach proposes a UML-based formal verification process utilising functional and behavioural modelling artifacts of UML. It reinforces these artifacts with formal model transition and property verification. The main contribution is a UML to Labelled Transition System (LTS) Translator application that automatically converts UML Statecharts to formal models. Property specifications are derived from system requirements and corresponding Computational Tree Logic (CTL)/Linear Temporal Logic (LTL) model checking procedure verifies property entailment in LTS. With its ability to verify CTL and LTL specifications, the methodology becomes generic for verifying all types of embedded system behaviours. The steep learning curve associated with formal methods is avoided through the automatic formal model generation and thus reduces the reluctance of using formal methods in software development projects. A case study of an embedded controller used in military applications validates the methodology. It establishes how the methodology finds its use in verifying the correctness and consistency of UML models before implementation.


2016 ◽  
Vol 850 ◽  
pp. 30-37
Author(s):  
Sherif Agamy ◽  
Ahmed Sayed ◽  
Rafik Guindi

The increasing complexity of System on a Chip (SOC) using Network on a Chip (NoC) results in significant increases in traditional verification times. Formal methods fully prove design properties, without deadline vs. coverage compromises, hence tremendously reducing time to market. In this work we use the CONNECT NOC to illustrate our new white box formal verification methodology. We develop constraints and assertions for properties verification. Our methodology is faster than the current methods; it also uncovered key gaps in current practices. In addition, our assertion checkers can be reused both in simulation and as monitors on silicon.


Author(s):  
Štefan Korečko ◽  
Ján Sorád

Because of the current trend of massification of higher education, motivation of students is a serious issue, especially in courses closely related to mathematics. The ones that undoubtedly belong to this group are courses dealing with formal methods for software development, such as Z notation, B-Method, or VDM. The chapter shows how a customized simulation game can be used to bring a domain typical for utilization of formal methods, the railway domain, to students and thus motivate them to learn these sophisticated ways of software development. By means of two examples, it demonstrates that such a tool, despite its limited scope, can be used to teach a variety of concepts related to formal methods. It also discusses related approaches to teaching formal methods, describes the customized game and its application in teaching, and evaluates experience with the application.


Author(s):  
Vishnu Sharma ◽  
Vijay Singh Rathore

In these days most of the software development uses preexisting software components. This approach provides plenty of benefits over the traditional development. Most of the software industries uses their own domain based software libraries where components resides in the form of modules, codes, executable file, documentations, test plans which may be used as it is or with minor changes. Due to shrinking time and high demand of software development it is necessary to use pre tested software components to ensure high functionality in software developed. Software components can be used very easily and without having the worries of errors and bugs because these are developed under expert supervision and well tested. What we have to do is just embed these components in our project. In this paper a survey got conducted over 112 software developer,testers and freelancers. In survey several issues in CBSD were identified. An efficient repository along with a component search engine is developed. All the component retrieval techniques were evaluated and compared with precise and recall method.


Sign in / Sign up

Export Citation Format

Share Document