Knight Fundamentals of Dependable Computing for Software Engineers

E-Book, Englisch, 433 Seiten

Reihe: Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series

ISBN: 978-1-4665-1821-6
Verlag: Taylor & Francis
Format: EPUB
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)



Fundamentals of Dependable Computing for Software Engineers presents the essential elements of computer system dependability. The book describes a comprehensive dependability-engineering process and explains the roles of software and software engineers in computer system dependability.

Readers will learn:

- Why dependability matters

- What it means for a system to be dependable

- How to build a dependable software system

- How to assess whether a software system is adequately dependable

The author focuses on the actions needed to reduce the rate of failure to an acceptable level, covering material essential for engineers developing systems with extreme consequences of failure, such as safety-critical systems, security-critical systems, and critical infrastructure systems. The text explores the systems engineering aspects of dependability and provides a framework for engineers to reason and make decisions about software and its dependability. It also offers a comprehensive approach to achieve software dependability and includes a bibliography of the most relevant literature.

Emphasizing the software engineering elements of dependability, this book helps software and computer engineers in fields requiring ultra-high levels of dependability, such as avionics, medical devices, automotive electronics, weapon systems, and advanced information systems, construct software systems that are dependable and within budget and time constraints.
Knight Fundamentals of Dependable Computing for Software Engineers jetzt bestellen!

Zielgruppe


Practicing software engineers and software developers; senior undergraduate and graduate students in software engineering.


Autoren/Hrsg.


Weitere Infos & Material


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.


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.


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.