Dependable Systems Flashcards Preview

COMP 3521: Software Engineering > Dependable Systems > Flashcards

Flashcards in Dependable Systems Deck (15)
Loading flashcards...
1

Most important aspect of many systems

  • Dependability of the system

2

Dependable system

  • Reliability
  • Availability
  • Security

3

Hardware failure

  • Hardware fails because of design and manufacturing errors, or because components have reached the end of their natural life.

4

Software failure

  • Software fails due to errors in its specification, design, or implementation.

5

Operational failure

  • Human operators make mistakes. This is now perhaps the largest single cause of system failures in sociotechnical systems.

6

Redundancy

  • The inclusion of spare capacity in a system that can be used in the event of failure of part of the system

7

Diversity

  • The use of different types of redundant components so that the probability of a common failure that affects all redundant components is reduced

8

Formal methods

  • Formal specification
  • Specification analysis and proof
  • Transformational development
  • Program verification

9

Verification-based approaches

  • 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.

10

Refinement-based approaches

  • 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.

11

Causes of failures

  • Hardware
  • Software
  • Operational failure

12

Dependability costs:

  • Increase exponentially with dependability requirement.

13

Holistic system design

  • Interaction between all components and layers in a system

14

Dependability process

  • Explicitly defined
  • Repeatable

15

Formal methods

  • Approaches to software development based on mathematical representation and analysis