Page 278 -
P. 278
2 and Security
PART Dependability
As software systems increase in size and complexity, I strongly believe that
the most significant challenge that we face in software engineering is
ensuring that we can trust these systems. To trust a system, we must have
confidence that it will be available when required and perform as expected.
It must be secure so that our computers or data are not threatened by it.
This means that issues of system dependability and security are often more
important than the details of system functionality. This part of the book has
therefore been designed to introduce students and practising software
engineers to the important topics of dependability and security.
The first chapter in this section, Chapter 10, covers sociotechnical systems,
which at first sight, may not appear to have much to do with software
dependability. However, many security and dependability failures stem
from human and organizational causes and we cannot ignore these when
considering system dependability and security. Software engineers must
be aware of this and should not imagine that better techniques and tech-
nology can ensure that our systems are completely dependable and secure.
Chapter 11 introduces the basic concepts of dependability and security and
explains the fundamental principles of avoidance, detection, and recovery
that are used to build dependable systems. Chapter 12 supplements
Chapter 4, which covers requirements engineering, with a discussion of
specific approaches that are used for deriving and specifying system