Dependability reflects a systems trustworthiness(no system failure), and can be divided into five main categories namely:
Safety
Reliability
Security
Resilience
Availability
1. Sociotechnical Systems
Annotations:
These are broad systems that include both
non-technical and technical components, all of which
affect/influence the systems dependability. These
systems can be viewed as layers of these various
components, which make up the sociotechnical
system stack
Data Management
Operating System
Equipment
Organization
Society
Business Processes
Application System
They include both
non-technical and technical
components, all of which
influence the systems
dependability.
5. Redundancy and Diversity
Annotations:
Redundancy means extra components
are included in the that can be used if
part of the system fails. Diversity means
there are different types of redundant
components used, in order to reduce the
chances of a system failure.
4. Dependable Processes
Annotations:
Software processes designed to produce dependable systems. So investing in dependable processes is a good idea because this will likely lead to the delivery of software that is reliable. e.g prog testing to find errors
- Process used depends on the type of system being built
These are processes
designed to produce
dependable systems e.g
program inspection and
testing to find errors
3. Formal Methods and
Dependability
Annotations:
Researchers have advocated for formal methods, where a formal model of a system is used as a basis for development, to help reduce specification and implementation errors - thus increasing system dependability
-Effective for discovering or avoiding two classes of errors with the software, namely:
(Adv. - Disad.)
Specification and
Design Errors
Inconsistencies between a
specification and a program
Annotations:
Mistakes made by the developer that make the software inconsistent with the specification are avoided