<p><P>The now customary expectation for high-quality software products places an immense demand on industries and organizations to fulfill this need and to consistently produce quality software.</P><P><EM>Mathematical Approaches to Software Quality</EM> provides a comprehensive introduction to vario
Mathematical Approaches to Software Quality
β Scribed by Gerard O'Regan
- Year
- 2006
- Tongue
- English
- Leaves
- 243
- Edition
- 1st Edition.
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
This book provides a comprehensive introduction to various mathematical approaches to achieving high-quality software. An introduction to mathematics that is essential for sound software engineering is provided as well as a discussion of various mathematical methods that are used both in academia and industry. The mathematical approaches considered include: Z specification language Vienna Development Methods (VDM) Irish school of VDM (VDM) approach of Dijkstra and Hoare classical engineering approach of Parnas Cleanroom approach developed at IBM software reliability, and unified modelling language (UML). Additionally, technology transfer of the mathematical methods to industry is considered. The book explains the main features of these approaches and applies mathematical methods to solve practical problems. Written with both studentΒ and professional in mind, this book assists the reader in applying mathematical methods to solve practical problems that are relevant to software engineers.
β¦ Table of Contents
Contents......Page 9
Preface......Page 6
Acknowledgments......Page 8
1. Introduction......Page 14
1.1 Software Engineering......Page 16
1.2 Software Engineering Mathematics......Page 19
1.3 Formal Methods......Page 21
1.3.1 Why Should We Use Formal Methods?......Page 23
1.3.2 Applications of Formal Methods......Page 25
1.3.3 Tools for Formal Methods......Page 26
1.3.4 Model-Oriented Approach......Page 29
1.3.5 Axiomatic Approach......Page 30
1.3.6 The Vienna Development Method......Page 31
1.3.7 VDM[sup(♣)], the Irish School of VDM......Page 32
1.3.8 The Z Specification Language......Page 33
1.3.9 Propositional and Predicate Calculus......Page 35
1.3.10 The Parnas Way......Page 38
1.3.11 Unified Modeling Language......Page 40
1.3.12 Proof and Formal Methods......Page 42
1.4 Organization of This Book......Page 43
1.5 Summary......Page 44
2.1 Introduction......Page 46
2.2 Set Theory......Page 47
2.3 Relations......Page 50
2.4 Functions......Page 51
2.5 Logic......Page 53
2.6 Tabular Expressions......Page 55
2.7 Probability and Applied Statistics......Page 56
2.8 Calculus......Page 59
2.9 Matrix Theory......Page 60
2.10 Finite State Machines......Page 61
2.11 Graph Theory......Page 63
2.13 Summary......Page 64
3.1 Introduction......Page 66
3.2 Propositional Logic......Page 68
3.2.1 Truth Tables......Page 69
3.2.2 Properties of Propositional Calculus......Page 70
3.2.3 Proof in Propositional Calculus......Page 71
3.2.4 Applications of Propositional Calculus......Page 74
3.3 Predicate Calculus......Page 75
3.3.1 Properties of Predicate Calculus......Page 77
3.3.2 Applications of Predicate Calculus......Page 78
3.4 Undefined Values......Page 79
3.4.1 Logic of Partial Functions......Page 80
3.4.2 Parnas Logic......Page 81
3.4.3 Dijkstra and Undefinedness......Page 83
3.5 Miscellaneous......Page 84
3.6 Tools for Logic......Page 85
3.7 Summary......Page 86
4.1 Introduction......Page 88
4.2 Sets......Page 91
4.3 Relations......Page 92
4.4 Functions......Page 94
4.5 Sequences......Page 95
4.6 Bags......Page 96
4.7 Schemas and Schema Composition......Page 98
4.8 Reification and Decomposition......Page 100
4.9 Proof in Z......Page 102
4.10 Tools for Z......Page 103
4.11 Summary......Page 104
5.1 Introduction......Page 105
5.2 Sets......Page 108
5.3 Sequences......Page 110
5.4 Maps......Page 111
5.5 Logic in VDM......Page 113
5.6 Data Types and Data Invariants......Page 114
5.7 Specification in VDM......Page 115
5.8 Refinement......Page 117
5.9 Tools for VDM......Page 118
5.10 Summary......Page 120
6.1 Introduction......Page 122
6.2 Mathematical Structures and Their Morphisms......Page 124
6.4 Sets......Page 127
6.5 Relations and Functions......Page 129
6.6 Sequences......Page 131
6.8 Specifications and Proofs......Page 133
6.9 Refinement......Page 135
6.10 Summary......Page 138
7.1 Introduction......Page 139
7.2 Calculus of Weakest Preconditions......Page 142
7.3 Axiomatic Definition of Programming Languages......Page 148
7.4 Communicating Sequential Processes......Page 151
7.5 Summary......Page 154
8.1 Introduction......Page 156
8.2 Achievements......Page 157
8.3 Tabular Expressions......Page 159
8.4 Software Development Documentation......Page 167
8.5 System Requirements......Page 171
8.6 System Design and Software Requirements......Page 177
8.7 Software Design......Page 178
8.8 Software Inspections......Page 183
8.9 Tools......Page 187
8.10 Summary......Page 188
9.1 Introduction......Page 189
9.2 Cleanroom......Page 190
9.3 Statistical Techniques......Page 197
9.4 Software Reliability......Page 198
9.5 Summary......Page 208
10.1 Introduction......Page 210
10.2 Overview of UML......Page 211
10.3 UML Diagrams......Page 214
10.4 Object Constraint Language......Page 219
10.5 Rational Unified Process......Page 220
10.6 Tools for UML......Page 222
10.7 Summary......Page 223
11.1 Introduction......Page 224
11.2 Formal Methods and Industry......Page 225
11.3 Usability of Formal Methods......Page 227
11.4 Pilot of Formal Methods......Page 229
11.6 Summary......Page 231
References......Page 233
Abbreviations......Page 239
L......Page 241
T......Page 242
Z......Page 243
π SIMILAR VOLUMES
<p>Overview The aim of this book is to provide a practical introduction to software quality in an industrial environment and is based on the author's experience in working in software engineering and software quality improvement with leading indusΒ trial companies. The book is written from a practit
Describes the first practical attempt to place software development under statistical quality control and to deliver software with a known and certified meantime to failure. Shows how to improve productivity during software development using statistical design methods, and gives guidelines for writi
<p>What is this Book About? At the beginning of the 21st century, computer systemsβand especially so- wareβplay an important role in our society. Software is contained in virtually every technical device that we use in everyday life (e.g., cellular phones and cars). Furthermore, computers and their
Software quality stems from two distinctive, but associated, topics in software engineering: software functional quality and software structural quality. Software Quality Engineering studies the tenets of both of these notions, which focus on the efficiency and value of a design, respectively. The t