๐”– Scriptorium
โœฆ   LIBER   โœฆ

๐Ÿ“

Java Software Development with Event B: A Practical Guide

โœ Scribed by Luciano Baresi (editor), Nรฉstor Cataรฑo Collazos


Publisher
MORGAN & CLAYPOOL
Year
2020
Tongue
English
Leaves
101
Series
Synthesis Lectures on Software Engineering
Category
Library

โฌ‡  Acquire This Volume

No coin nor oath required. For personal study only.

โœฆ Synopsis


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.

โœฆ Table of Contents


Contents
Preface
Introduction
An Overview of EVENT B
2.1 Relations and Functions
2.2 EVENT B Mathematical Notation
2.3 Software Development with EVENT B
2.4 A Methodology for Early Validation of Software Requirements
2.5 Correctness-by-Construction
2.6 RODIN
2.7 JML
2.8 EVENTB2JAVA
2.9 A Chat Application
Software Development of a Chat System with EVENT B
3.1 MachineZero
3.2 MachineOne
3.3 MachineTwo
3.4 MachineZero in EVENT B
3.5 MachineOne in EVENT B
3.6 MachineTwo in EVENT B
3.7 The Implementation of the Chat System
3.8 Testing and Code Animation of the Chat System
3.9 Fixing the Software Requirements
3.10 Lessons Learnt
3.10.1 Event create-chat-session
3.10.2 Event chatting
3.10.3 Events delete-content and remove-content
The Poporo Social Network
4.1 Poporoโ€™s General Structure
4.2 Poporoโ€™s Formalization in EVENT B
4.3 Invariant POs
4.4 Discharging POs in Rodin
4.5 POs for Quantified Expressions
4.6 Strengthening the Specification
4.7 Further Strengthening
4.8 Refinement Proof Obligations
Conclusion
Bibliography
Author's Biography


๐Ÿ“œ SIMILAR VOLUMES


Object-Oriented Discrete-Event Simulatio
โœ Josรฉ M. Garrido (auth.) ๐Ÿ“‚ Library ๐Ÿ“… 2001 ๐Ÿ› Springer US ๐ŸŒ English

<p>Researches and developers of simulation models state that the Java programยญ ming language presents a unique and significant opportunity for important changes in the way we develop simulation models today. The most important characteristics of the Java language that are advantageous for simulation

Object-Oriented Software Engineering: Pr
โœ Timothy Lethbridge, Robert Laganiere ๐Ÿ“‚ Library ๐Ÿ“… 2005 ๐Ÿ› McGraw-Hill Science/Engineering/Math ๐ŸŒ English

This book covers the essential knowledge and skills needed by a student who is specializing in software engineering. Readers will learn principles of object orientation, software development, software modeling, software design, requirements analysis, and testing. The use of the Unified Modelling Lan

Genetic Algorithm Afternoon: A Practical
โœ Brownlee, Jason ๐Ÿ“‚ Library ๐Ÿ“… 2024 ๐Ÿ› AlgorithmAfternoon.com ๐ŸŒ English

Are you a software developer looking to harness the power of genetic algorithms to solve complex optimization problems? "Genetic Algorithm Afternoon: A Practical Guide for Software Developers" is your go-to resource for mastering this innovative and powerful technique. Whether you're a beginner or a