De som köpt den här boken har ofta också köpt Art of Arcane av Elisabeth Vincentelli (inbunden).
Köp båda 2 för 1298 krThe book is an important addition to one's bookshelf. ... it is insightful, close to faultless, and a wonderful reference. Read it from front to back and cite it in your proposals and professional and scholarly papers. ... This book can and should be taught as part of an undergraduate or graduate software engineering program. I wish it had been available when I was setting up a graduate software engineering program ... . -Larry Bernstein, Computing Reviews, June 2012 This book takes full advantage of the extensive work that has been undertaken over many years on the creation of a rich set of system dependability concepts. John Knight makes excellent use of these concepts in producing a very well-argued and comprehensive account, aimed squarely at software engineers, of the variety of dependability issues they are likely to find in real systems and of the strategies that they should use to address these issues. Appropriately qualified students who study this book thoroughly and computer professionals seeking a greater understanding of the various dependability-related problems that they have encountered already in their careers should gain much from this book. I therefore take great pleasure in enthusiastically recommending it to both classes of reader. -From the Foreword by Brian Randell, Newcastle University, UK
John Knight is a professor of computer science at the University of Virginia. Prior to joining the University of Virginia, he was with NASA's Langley Research Center. Dr. Knight has been a recipient of the Harlan D. Mills award from the IEEE Computer Society and the Distinguished Service award from ACM's Special Interest Group on Software Engineering (SIGSOFT). He is an editorial board member of the Empirical Software Engineering Journal and was editor of the IEEE Transactions on Software Engineering from January 2002 to December 2005.
Introduction The Elements of Dependability The Role of the Software Engineer Our Dependence on Computers Some Regrettable Failures Consequences of Failure The Need for Dependability Systems and Their Dependability Requirements Where Do We Go from Here? Organization of This Book Dependability Requirements Why We Need Dependability Requirements The Evolution of Dependability Concepts The Role of Terminology What Is a System? Requirements and Specification Failure Dependability and Its Attributes Systems, Software and Dependability Defining Dependability Requirements As Low as Is Reasonably Practicable (ALARP) Errors, Faults, and Hazards Errors The Complexity of Erroneous States Faults and Dependability The Manifestation of Faults Degradation Faults Design Faults Byzantine Faults Component Failure Semantics Fundamental Principle of Dependability Anticipated Faults Hazards Engineering Dependable Systems Dependability Analysis Anticipating Faults Generalizing the Notion of Hazard Fault Tree Analysis Failure Modes, Effects and Criticality Analysis Hazard and Operability Analysis Dealing with Faults Faults and Their Treatment Fault Avoidance Fault Elimination Fault Tolerance Fault Forecasting Applying the Four Approaches to Fault Treatment Dealing with Byzantine Faults Degradation Faults and Software Impact on Software Redundancy Redundant Architectures Quantifying the Benefits of Redundancy Distributed Systems and Fail Stop Computers Software Dependability Faults and the Software Lifecycle Formal Techniques Verification by Model Checking Correctness by Construction Approaches to Correctness by Construction Correctness by Construction - Synthesis Correctness by Construction - Refinement Software Fault Avoidance Software Fault Elimination Managing Software Fault Avoidance and Elimination Misconceptions about Software Dependability Software Fault Avoidance in Specification The Role of Specification Difficulties with Natural Languages Specification Difficulties Formal Languages Model-Based Specification The Declarative Language Z A Simple Example A Detailed Example Overview of Formal Specification Development Software Fault Avoidance in Implementation Implementing Software Programming Languages An Overview of Ada Programming Standards Correctness by Construction - SPARK Software Fault Elimination Why Fault Elimination? Inspection Testing Software Fault Tolerance Components Subject to Design Faults Issues with Design Fault Tolerance Software Replication Design Diversity Data Diversity Targeted Fault Tolerance Dependability Assessment Approaches to Assessment Quantitative Assessment Prescriptive Standards Rigorous Arguments Applicability of Argumentation Bibliography Exercises appear at the end of each chapter.