Welcome to P K Kelkar Library, Online Public Access Catalogue (OPAC)

Normal view MARC view ISBD view

Java software development with event B : : a practical guide /

By: Cataño Collazos, Nestor 1975- [author.].
Material type: materialTypeLabelBookSeries: Synthesis digital library of engineering and computer science: ; Synthesis lectures on software engineering: #5.Publisher: [San Rafael, California] : Morgan & Claypool, [2020]Description: 1 PDF (x, 89 pages) : illustrations (some color).Content type: text Media type: electronic Carrier type: online resourceISBN: 9781681736884.Subject(s): Java (Computer program language) | Formal methods (Computer science) | B method (Computer science) | Computer software -- Development | correct-by-construction | discrete mathematics | Event B | Java | programming | refinement | software engineering | verificationDDC classification: 005.13/3 Online resources: Abstract with links to resource | Abstract with links to full text Also available in print.
Contents:
1. Introduction -- 2. 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
3. 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 learned
4. 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 -- 5. Conclusion.
Summary: 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.
    average rating: 0.0 (0 votes)
Item type Current location Call number Status Date due Barcode Item holds
E books E books PK Kelkar Library, IIT Kanpur
Available EBKE955
Total holds: 0

Mode of access: World Wide Web.

System requirements: Adobe Acrobat Reader.

Part of: Synthesis digital library of engineering and computer science.

Includes bibliographical references (pages 83-84) and index.

1. Introduction -- 2. 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

3. 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 learned

4. 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 -- 5. Conclusion.

Abstract freely available; full-text restricted to subscribers or individual document purchasers.

Compendex

INSPEC

Google scholar

Google book search

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.

Also available in print.

Title from PDF title page (viewed on January 28, 2020).

There are no comments for this item.

Log in to your account to post a comment.

Powered by Koha