Download Free Practical Formal Software Engineering Book in PDF and EPUB Free Download. You can read online Practical Formal Software Engineering and write the review.

Based around a theme of the construction of a game engine, this textbook is for final year undergraduate and graduate students, emphasising formal methods in writing robust code quickly. This book takes an unusual, engineering-inspired approach to illuminate the creation and verification of large software systems . Where other textbooks discuss business practices through generic project management techniques or detailed rigid logic systems, this book examines the interaction between code in a physical machine and the logic applied in creating the software. These elements create an informal and rigorous study of logic, algebra, and geometry through software. Assuming prior experience with C, C++, or Java programming languages, chapters introduce UML, OCL, and Z from scratch. Extensive worked examples motivate readers to learn the languages through the technical side of software science.
Software programs are formal entities with precise meanings independent of their programmers, so the transition from ideas to programs necessarily involves a formalisation at some point. The first part of this graduate-level introduction to formal methods develops an understanding of what constitutes formal methods and what their place is in Software Engineering. It also introduces logics as languages to describe reasoning and the process algebra CSP as a language to represent behaviours. The second part offers specification and testing methods for formal development of software, based on the modelling languages CASL and UML. The third part takes the reader into the application domains of normative documents, human machine interfaces, and security. Use of notations and formalisms is uniform throughout the book. Topics and features: Explains foundations, and introduces specification, verification, and testing methods Explores various application domains Presents realistic and practical examples, illustrating concepts Brings together contributions from highly experienced educators and researchers Offers modelling and analysis methods for formal development of software Suitable for graduate and undergraduate courses in software engineering, this uniquely practical textbook will also be of value to students in informatics, as well as to scientists and practical engineers, who want to learn about or work more effectively with formal theories and methods. Markus Roggenbach is a Professor in the Dept. of Computer Science of Swansea University. Antonio Cerone is an Associate Professor in the Dept. of Computer Science of Nazarbayev University, Nur-Sultan. Bernd-Holger Schlingloff is a Professor in the Institut für Informatik of Humboldt-Universität zu Berlin. Gerardo Schneider is a Professor in the Dept. of Computer Science and Engineering of University of Gothenburg. Siraj Ahmed Shaikh is a Professor in the Institute for Future Transport and Cities of Coventry University. The companion site for the book offers additional resources, including further material for selected chapters, prepared lab classes, a list of errata, slides and teaching material, and virtual machines with preinstalled tools and resources for hands-on experience with examples from the book. The URL is: https://sefm-book.github.io
In any serious engineering discipline, it would be unthinkable to construct a large system without having a precise notion of what is to be built and without verifying how the system is expected to function. Software engineering is no different in this respect. Formal methods involve the use of mathematical notation and calculus in software development; such methods are difficult to apply to large-scale systems with practical constraints (e.g., limited developer skills, time and budget restrictions, changing requirements). Here Liu claims that formal engineering methods may bridge this gap. He advocates the incorporation of mathematical notation into the software engineering process, thus substantially improving the rigor, comprehensibility and effectiveness of the methods commonly used in industry. This book provides an introduction to the SOFL (Structured Object-Oriented Formal Language) method that was designed and industry-tested by the author. Written in a style suitable for lecture courses or for use by professionals, there are numerous exercises and a significant real-world case study, so the readers are provided with all the knowledge and examples needed to successfully apply the method in their own projects.
Practical Formal Software Engineering is a textbook aimed at final year undergraduate and graduate students, emphasizing formal methods in writing robust code quickly. Engineering is an informal process using formal logics as tools and components to obtain timely practical solutions. This book takes an engineering approach to illuminate the creation and verification of large software systems in which theorems and axioms are intuited as the formalism materializes through practice. Where other textbooks discuss business practices through generic project management techniques or detailed rigid logic systems, this book examines the interaction between code in a physical machine and the logic applied in creating the software. These elements create an informal and rigorous study of logic, algebra, and geometry through software. Assuming prior experience with C, C++, or Java programming languages, chapters introduce UML, OCL, and Z from scratch. Based around a theme of the construction of a game engine, extensive worked examples motivate readers to learn the languages through the technical side of software science.
"Aimed mainly at practitioners in software engineering and formal methods, this book will also be of interest to academic researchers working in formal methods, and students on advanced software engineering courses who need real-life specifications and examples on which to base their work."--Jacket.
In this book, Hussmann builds a bridge between the pragmatic methods for the design of information systems and the formal, mathematical background. Firstly, the principal feasibility of an integration of the different methods is demonstrated. Secondly, the formalism is used as a systematic semantic analysis of the concepts in SSADM, a British standard structured software engineering method. Thirdly, a way of obtaining a hybrid formal-pragmatic specification using a combination of SSADM notations and formal (SPECTRUM) specifications is shown. This well-written book encourages scientists and software engineers to apply formal methods to practical software development problems.
The B Language and Method provides a comprehensive introduction to the B Abstract Machine Notation, and how it can be used to support formal specification and development of high integrity systems. Beginning with a discussion of the history of B, it builds up a description of the notation from the basic mathematical notation for sets and sequences, through to the structuring mechanisms of the language, and how it supports "programming in the large".
Industrial Strength Formal Methods in Practice provides hands-on experience and guidance for anyone who needs to apply formal methods successfully in an industrial context. Each chapter is written by an expert in software engineering or formal methods, and contains background information, introductions to the techniques being used, actual fragments of formalised components, details of results and an analysis of the overall approach. It provides specific details on how to produce high-quality software that comes in on-time and within budget. Aimed mainly at practitioners in software engineering and formal methods, this book will also be of interest to the following groups; academic researchers working in formal methods who are interested in evidence of their success and in how they can be applied on an industrial scale, and students on advanced software engineering courses who need real-life specifications and examples on which to base their work.