Author: Néstor Cataño Collazos
Publisher: Springer Nature
ISBN: 3031025504
Category : Technology & Engineering
Languages : en
Pages : 89
Book Description
The cost of fixing software design flaws after the completion of a software product is so high that it is vital to come up with ways to detect software design flaws in the early stages of software development, for instance, during the software requirements, the analysis activity, or during software design, before coding starts. It is not uncommon that software requirements are ambiguous or contradict each other. Ambiguity is exacerbated by the fact that software requirements are typically written in a natural language, which is not tied to any formal semantics. A palliative to the ambiguity of software requirements is to restrict their syntax to boilerplates, textual templates with placeholders. However, as informal requirements do not enjoy any particular semantics, no essential properties about them (or about the system they attempt to describe) can be proven easily. Formal methods are an alternative to address this problem. They offer a range of mathematical techniques and mathematical tools to validate software requirements in the early stages of software development. This book is a living proof of the use of formal methods to develop software. The particular formalisms that we use are EVENT B and refinement calculus. In short: (i) software requirements as written as User Stories; (ii) they are ported to formal specifications; (iii) they are refined as desired; (iv) they are implemented in the form of a prototype; and finally (v) they are tested for inconsistencies. If some unit-test fails, then informal as well as formal specifications of the software system are revisited and evolved. This book presents a case study of software development of a chat system with EVENT B and a case study of formal proof of properties of a social network.
Java Software Development with Event B
Author: Néstor Cataño Collazos
Publisher: Springer Nature
ISBN: 3031025504
Category : Technology & Engineering
Languages : en
Pages : 89
Book Description
The cost of fixing software design flaws after the completion of a software product is so high that it is vital to come up with ways to detect software design flaws in the early stages of software development, for instance, during the software requirements, the analysis activity, or during software design, before coding starts. It is not uncommon that software requirements are ambiguous or contradict each other. Ambiguity is exacerbated by the fact that software requirements are typically written in a natural language, which is not tied to any formal semantics. A palliative to the ambiguity of software requirements is to restrict their syntax to boilerplates, textual templates with placeholders. However, as informal requirements do not enjoy any particular semantics, no essential properties about them (or about the system they attempt to describe) can be proven easily. Formal methods are an alternative to address this problem. They offer a range of mathematical techniques and mathematical tools to validate software requirements in the early stages of software development. This book is a living proof of the use of formal methods to develop software. The particular formalisms that we use are EVENT B and refinement calculus. In short: (i) software requirements as written as User Stories; (ii) they are ported to formal specifications; (iii) they are refined as desired; (iv) they are implemented in the form of a prototype; and finally (v) they are tested for inconsistencies. If some unit-test fails, then informal as well as formal specifications of the software system are revisited and evolved. This book presents a case study of software development of a chat system with EVENT B and a case study of formal proof of properties of a social network.
Publisher: Springer Nature
ISBN: 3031025504
Category : Technology & Engineering
Languages : en
Pages : 89
Book Description
The cost of fixing software design flaws after the completion of a software product is so high that it is vital to come up with ways to detect software design flaws in the early stages of software development, for instance, during the software requirements, the analysis activity, or during software design, before coding starts. It is not uncommon that software requirements are ambiguous or contradict each other. Ambiguity is exacerbated by the fact that software requirements are typically written in a natural language, which is not tied to any formal semantics. A palliative to the ambiguity of software requirements is to restrict their syntax to boilerplates, textual templates with placeholders. However, as informal requirements do not enjoy any particular semantics, no essential properties about them (or about the system they attempt to describe) can be proven easily. Formal methods are an alternative to address this problem. They offer a range of mathematical techniques and mathematical tools to validate software requirements in the early stages of software development. This book is a living proof of the use of formal methods to develop software. The particular formalisms that we use are EVENT B and refinement calculus. In short: (i) software requirements as written as User Stories; (ii) they are ported to formal specifications; (iii) they are refined as desired; (iv) they are implemented in the form of a prototype; and finally (v) they are tested for inconsistencies. If some unit-test fails, then informal as well as formal specifications of the software system are revisited and evolved. This book presents a case study of software development of a chat system with EVENT B and a case study of formal proof of properties of a social network.
Java Software Development with Event B
Author: Néstor Cataño Collazos
Publisher: Morgan & Claypool Publishers
ISBN: 1681736888
Category : Computers
Languages : en
Pages : 101
Book Description
The cost of fixing software design flaws after the completion of a software product is so high that it is vital to come up with ways to detect software design flaws in the early stages of software development, for instance, during the software requirements, the analysis activity, or during software design, before coding starts. It is not uncommon that software requirements are ambiguous or contradict each other. Ambiguity is exacerbated by the fact that software requirements are typically written in a natural language, which is not tied to any formal semantics. A palliative to the ambiguity of software requirements is to restrict their syntax to boilerplates, textual templates with placeholders. However, as informal requirements do not enjoy any particular semantics, no essential properties about them (or about the system they attempt to describe) can be proven easily. Formal methods are an alternative to address this problem. They offer a range of mathematical techniques and mathematical tools to validate software requirements in the early stages of software development. This book is a living proof of the use of formal methods to develop software. The particular formalisms that we use are EVENT B and refinement calculus. In short: (i) software requirements as written as User Stories; (ii) they are ported to formal specifications; (iii) they are refined as desired; (iv) they are implemented in the form of a prototype; and finally (v) they are tested for inconsistencies. If some unit-test fails, then informal as well as formal specifications of the software system are revisited and evolved. This book presents a case study of software development of a chat system with EVENT B and a case study of formal proof of properties of a social network.
Publisher: Morgan & Claypool Publishers
ISBN: 1681736888
Category : Computers
Languages : en
Pages : 101
Book Description
The cost of fixing software design flaws after the completion of a software product is so high that it is vital to come up with ways to detect software design flaws in the early stages of software development, for instance, during the software requirements, the analysis activity, or during software design, before coding starts. It is not uncommon that software requirements are ambiguous or contradict each other. Ambiguity is exacerbated by the fact that software requirements are typically written in a natural language, which is not tied to any formal semantics. A palliative to the ambiguity of software requirements is to restrict their syntax to boilerplates, textual templates with placeholders. However, as informal requirements do not enjoy any particular semantics, no essential properties about them (or about the system they attempt to describe) can be proven easily. Formal methods are an alternative to address this problem. They offer a range of mathematical techniques and mathematical tools to validate software requirements in the early stages of software development. This book is a living proof of the use of formal methods to develop software. The particular formalisms that we use are EVENT B and refinement calculus. In short: (i) software requirements as written as User Stories; (ii) they are ported to formal specifications; (iii) they are refined as desired; (iv) they are implemented in the form of a prototype; and finally (v) they are tested for inconsistencies. If some unit-test fails, then informal as well as formal specifications of the software system are revisited and evolved. This book presents a case study of software development of a chat system with EVENT B and a case study of formal proof of properties of a social network.
Using Event-B for Critical Device Software Systems
Author: Neeraj Kumar Singh
Publisher: Springer Science & Business Media
ISBN: 1447152603
Category : Mathematics
Languages : en
Pages : 335
Book Description
Defining a new development life-cycle methodology, together with a set of associated techniques and tools to develop highly critical systems using formal techniques, this book adopts a rigorous safety assessment approach explored via several layers (from requirements analysis to automatic source code generation). This is assessed and evaluated via a standard case study: the cardiac pacemaker. Additionally a formalisation of an Electrocardiogram (ECG) is used to identify anomalies in order to improve existing medical protocols. This allows the key issue - that formal methods are not currently integrated into established critical systems development processes - to be discussed in a highly effective and informative way. Using Event-B for Critical Device Software Systems serves as a valuable resource for researchers and students of formal methods. The assessment of critical systems development is applicable to all industries, but engineers and physicians from the health domain will find the cardiac pacemaker case study of particular value.
Publisher: Springer Science & Business Media
ISBN: 1447152603
Category : Mathematics
Languages : en
Pages : 335
Book Description
Defining a new development life-cycle methodology, together with a set of associated techniques and tools to develop highly critical systems using formal techniques, this book adopts a rigorous safety assessment approach explored via several layers (from requirements analysis to automatic source code generation). This is assessed and evaluated via a standard case study: the cardiac pacemaker. Additionally a formalisation of an Electrocardiogram (ECG) is used to identify anomalies in order to improve existing medical protocols. This allows the key issue - that formal methods are not currently integrated into established critical systems development processes - to be discussed in a highly effective and informative way. Using Event-B for Critical Device Software Systems serves as a valuable resource for researchers and students of formal methods. The assessment of critical systems development is applicable to all industries, but engineers and physicians from the health domain will find the cardiac pacemaker case study of particular value.
Safety and Security of Cyber-Physical Systems
Author: Frank J. Furrer
Publisher: Springer Nature
ISBN: 365837182X
Category : Computers
Languages : en
Pages : 559
Book Description
Cyber-physical systems (CPSs) consist of software-controlled computing devices communicating with each other and interacting with the physical world through sensors and actuators. Because most of the functionality of a CPS is implemented in software, the software is of crucial importance for the safety and security of the CPS. This book presents principle-based engineering for the development and operation of dependable software. The knowledge in this book addresses organizations that want to strengthen their methodologies to build safe and secure software for mission-critical cyber-physical systems. The book: • Presents a successful strategy for the management of vulnerabilities, threats, and failures in mission-critical cyber-physical systems; • Offers deep practical insight into principle-based software development (62 principles are introduced and cataloged into five categories: Business & organization, general principles, safety, security, and risk management principles); • Provides direct guidance on architecting and operating dependable cyber-physical systems for software managers and architects.
Publisher: Springer Nature
ISBN: 365837182X
Category : Computers
Languages : en
Pages : 559
Book Description
Cyber-physical systems (CPSs) consist of software-controlled computing devices communicating with each other and interacting with the physical world through sensors and actuators. Because most of the functionality of a CPS is implemented in software, the software is of crucial importance for the safety and security of the CPS. This book presents principle-based engineering for the development and operation of dependable software. The knowledge in this book addresses organizations that want to strengthen their methodologies to build safe and secure software for mission-critical cyber-physical systems. The book: • Presents a successful strategy for the management of vulnerabilities, threats, and failures in mission-critical cyber-physical systems; • Offers deep practical insight into principle-based software development (62 principles are introduced and cataloged into five categories: Business & organization, general principles, safety, security, and risk management principles); • Provides direct guidance on architecting and operating dependable cyber-physical systems for software managers and architects.
Issues in Computer Programming: 2013 Edition
Author:
Publisher: ScholarlyEditions
ISBN: 1490109048
Category : Computers
Languages : en
Pages : 520
Book Description
Issues in Computer Programming / 2013 Edition is a ScholarlyEditions™ book that delivers timely, authoritative, and comprehensive information about Computer Simulation. The editors have built Issues in Computer Programming: 2013 Edition on the vast information databases of ScholarlyNews.™ You can expect the information about Computer Simulation in this book to be deeper than what you can access anywhere else, as well as consistently reliable, authoritative, informed, and relevant. The content of Issues in Computer Programming: 2013 Edition has been produced by the world’s leading scientists, engineers, analysts, research institutions, and companies. All of the content is from peer-reviewed sources, and all of it is written, assembled, and edited by the editors at ScholarlyEditions™ and available exclusively from us. You now have a source you can cite with authority, confidence, and credibility. More information is available at http://www.ScholarlyEditions.com/.
Publisher: ScholarlyEditions
ISBN: 1490109048
Category : Computers
Languages : en
Pages : 520
Book Description
Issues in Computer Programming / 2013 Edition is a ScholarlyEditions™ book that delivers timely, authoritative, and comprehensive information about Computer Simulation. The editors have built Issues in Computer Programming: 2013 Edition on the vast information databases of ScholarlyNews.™ You can expect the information about Computer Simulation in this book to be deeper than what you can access anywhere else, as well as consistently reliable, authoritative, informed, and relevant. The content of Issues in Computer Programming: 2013 Edition has been produced by the world’s leading scientists, engineers, analysts, research institutions, and companies. All of the content is from peer-reviewed sources, and all of it is written, assembled, and edited by the editors at ScholarlyEditions™ and available exclusively from us. You now have a source you can cite with authority, confidence, and credibility. More information is available at http://www.ScholarlyEditions.com/.
Software Engineering and Algorithms
Author: Radek Silhavy
Publisher: Springer Nature
ISBN: 3030774422
Category : Technology & Engineering
Languages : en
Pages : 741
Book Description
This book constitutes the refereed proceedings of the Software Engineering and Algorithms section of the 10th Computer Science On-line Conference 2021 (CSOC 2021), held on-line in April 2021. Software engineering research and its applications to intelligent algorithms take an essential role in computer science research. In this book, modern research methods, application of machine and statistical learning in the software engineering research are presented.
Publisher: Springer Nature
ISBN: 3030774422
Category : Technology & Engineering
Languages : en
Pages : 741
Book Description
This book constitutes the refereed proceedings of the Software Engineering and Algorithms section of the 10th Computer Science On-line Conference 2021 (CSOC 2021), held on-line in April 2021. Software engineering research and its applications to intelligent algorithms take an essential role in computer science research. In this book, modern research methods, application of machine and statistical learning in the software engineering research are presented.
Symbolic Execution and Quantitative Reasoning
Author: Corina S. Păsăreanu
Publisher: Springer Nature
ISBN: 3031025512
Category : Technology & Engineering
Languages : en
Pages : 65
Book Description
This book reviews recent advances in symbolic execution and its probabilistic variant and discusses how they can be used to ensure the safety and security of software systems. Symbolic execution is a systematic program analysis technique which explores multiple program behaviors all at once by collecting and solving symbolic constraints collected from the branching conditions in the program. The obtained solutions can be used as test inputs that execute feasible program paths. Symbolic execution has found many applications in various domains, such as security, smartphone applications, operating systems, databases, and more recently deep neural networks, uncovering subtle errors and unknown vulnerabilities. We review here the technique has also been extended to reason about algorithmic complexity and resource consumption. Furthermore, symbolic execution has been recently extended with probabilistic reasoning, allowing one to reason about quantitative properties of software systems. The approach computes the conditions to reach target program events of interest and uses model counting to quantify the fraction of the input domain satisfying these conditions thus computing the probability of event occurrence. This probabilistic information can be used for example to compute the reliability of an aircraft controller under different wind conditions (modeled probabilistically) or to quantify the leakage of sensitive data in a software system, using information theory metrics such as Shannon entropy. This book is intended for students and software engineers who are interested in advanced techniques for testing and verifying software systems.
Publisher: Springer Nature
ISBN: 3031025512
Category : Technology & Engineering
Languages : en
Pages : 65
Book Description
This book reviews recent advances in symbolic execution and its probabilistic variant and discusses how they can be used to ensure the safety and security of software systems. Symbolic execution is a systematic program analysis technique which explores multiple program behaviors all at once by collecting and solving symbolic constraints collected from the branching conditions in the program. The obtained solutions can be used as test inputs that execute feasible program paths. Symbolic execution has found many applications in various domains, such as security, smartphone applications, operating systems, databases, and more recently deep neural networks, uncovering subtle errors and unknown vulnerabilities. We review here the technique has also been extended to reason about algorithmic complexity and resource consumption. Furthermore, symbolic execution has been recently extended with probabilistic reasoning, allowing one to reason about quantitative properties of software systems. The approach computes the conditions to reach target program events of interest and uses model counting to quantify the fraction of the input domain satisfying these conditions thus computing the probability of event occurrence. This probabilistic information can be used for example to compute the reliability of an aircraft controller under different wind conditions (modeled probabilistically) or to quantify the leakage of sensitive data in a software system, using information theory metrics such as Shannon entropy. This book is intended for students and software engineers who are interested in advanced techniques for testing and verifying software systems.
Formal Methods Teaching
Author: Brijesh Dongol
Publisher: Springer Nature
ISBN: 3030324419
Category : Mathematics
Languages : en
Pages : 253
Book Description
This book constitutes the refereed proceedings of the Third International Workshop and Tutorial, FMTea 2019, Held as Part of the Third World Congress on Formal Methods, FM 2019, Porto, Portugal, October 2019. The 14 full papers presented together with 3 abstract papers were carefully reviewed and selected from 22 submissions. The papers are organized in topical sections named: Tutorial lectures; Teaching Program Verification; Teaching Program Development; and Effective Teaching Techniques.
Publisher: Springer Nature
ISBN: 3030324419
Category : Mathematics
Languages : en
Pages : 253
Book Description
This book constitutes the refereed proceedings of the Third International Workshop and Tutorial, FMTea 2019, Held as Part of the Third World Congress on Formal Methods, FM 2019, Porto, Portugal, October 2019. The 14 full papers presented together with 3 abstract papers were carefully reviewed and selected from 22 submissions. The papers are organized in topical sections named: Tutorial lectures; Teaching Program Verification; Teaching Program Development; and Effective Teaching Techniques.
Formal Methods Applied to Complex Systems
Author: Jean-Louis Boulanger
Publisher: John Wiley & Sons
ISBN: 1119002923
Category : Computers
Languages : en
Pages : 353
Book Description
This book presents real-world examples of formal techniques in an industrial context. It covers formal methods such as SCADE and/or the B Method, in various fields such as railways, aeronautics, and the automotive industry. The purpose of this book is to present a summary of experience on the use of “formal methods” (based on formal techniques such as proof, abstract interpretation and model-checking) in industrial examples of complex systems, based on the experience of people currently involved in the creation and assessment of safety critical system software. The involvement of people from within the industry allows the authors to avoid the usual confidentiality problems which can arise and thus enables them to supply new useful information (photos, architecture plans, real examples, etc.).
Publisher: John Wiley & Sons
ISBN: 1119002923
Category : Computers
Languages : en
Pages : 353
Book Description
This book presents real-world examples of formal techniques in an industrial context. It covers formal methods such as SCADE and/or the B Method, in various fields such as railways, aeronautics, and the automotive industry. The purpose of this book is to present a summary of experience on the use of “formal methods” (based on formal techniques such as proof, abstract interpretation and model-checking) in industrial examples of complex systems, based on the experience of people currently involved in the creation and assessment of safety critical system software. The involvement of people from within the industry allows the authors to avoid the usual confidentiality problems which can arise and thus enables them to supply new useful information (photos, architecture plans, real examples, etc.).
Software Engineering and Formal Methods. SEFM 2022 Collocated Workshops
Author: Paolo Masci
Publisher: Springer Nature
ISBN: 3031262360
Category : Computers
Languages : en
Pages : 424
Book Description
This volume constitutes the revised selected papers from the four workshops collocated with the 20th International Conference on Software Engineering and Formal Methods, SEFM 2022, held in Berlin, Germany, in September 2022. The 19 full papers presented together with 9 short papers in this volume were carefully reviewed and selected from a total of 39 submissions. The contributions that are collected in this volume have been selected from the presentations at the following workshops: AI4EA 2022: First Berlin Workshop on Artificial Intelligence for Engineering Applications; F-IDE 2022: 7th Workshop on Formal Integrated Development Environment; CoSim-CPS 2022: 6th Workshop on Formal Co-Simulation of Cyber-Physical Systems; CIFMA 2022: 4th International Workshop on Cognition: Interdisciplinary Foundations, Models and Applications.
Publisher: Springer Nature
ISBN: 3031262360
Category : Computers
Languages : en
Pages : 424
Book Description
This volume constitutes the revised selected papers from the four workshops collocated with the 20th International Conference on Software Engineering and Formal Methods, SEFM 2022, held in Berlin, Germany, in September 2022. The 19 full papers presented together with 9 short papers in this volume were carefully reviewed and selected from a total of 39 submissions. The contributions that are collected in this volume have been selected from the presentations at the following workshops: AI4EA 2022: First Berlin Workshop on Artificial Intelligence for Engineering Applications; F-IDE 2022: 7th Workshop on Formal Integrated Development Environment; CoSim-CPS 2022: 6th Workshop on Formal Co-Simulation of Cyber-Physical Systems; CIFMA 2022: 4th International Workshop on Cognition: Interdisciplinary Foundations, Models and Applications.