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
   273   274   275   276   277   278   279   280   281   282   283