Most important aspect of many systems
- Dependability of the system
- Hardware fails because of design and manufacturing errors, or because components have reached the end of their natural life.
- Software fails due to errors in its specification, design, or implementation.
- Human operators make mistakes. This is now perhaps the largest single cause of system failures in sociotechnical systems.
- The inclusion of spare capacity in a system that can be used in the event of failure of part of the system
- The use of different types of redundant components so that the probability of a common failure that affects all redundant components is reduced
- Formal specification
- Specification analysis and proof
- Transformational development
- Program verification
- These are different representations of a software system such that a specification and a program implementing that specification are proved to be equivalent.
- This demonstrates the absence of implementation errors.
- A representation of a system is systematically transformed into another, lower-level representation, e.g., a specification is transformed automatically into an implementation.
- This means that, if the transformation is correct, the representations are equivalent.
Causes of failures
- Operational failure
- Increase exponentially with dependability requirement.
Holistic system design
- Interaction between all components and layers in a system
- Explicitly defined