Page 363 -
P. 363

346   Chapter 13   Dependability engineering


                     Process Characteristic  Description

                     Documentable            The process should have a defined process model that sets out the activities
                                             in the process and the documentation that is to be produced during these
                                             activities.

                     Standardized            A comprehensive set of software development standards covering software
                                             production and documentation should be available.

                     Auditable               The process should be understandable by people apart from process participants,
                                             who can check that process standards are being followed and make suggestions
                                             for process improvement.

                     Diverse                 The process should include redundant and diverse verification and validation
                                             activities.

                     Robust                  The process should be able to recover from failures of individual process
                                             activities.



                                    followed. The regulator also has to be convinced that the process is used consistently
                  Figure 13.2
                  Attributes of     by all of the process participants and that it can be used in different development
                  dependable        projects. This means that the process must be explicitly defined and repeatable:
                  processes
                                    1.  An explicitly defined process is one that has a defined process model that is used
                                        to drive the software production process. There must be data collected during
                                        the process that demonstrates that all of the necessary steps in the process model
                                        have been enacted.
                                    2.  A repeatable process is one that does not rely on individual interpretation and
                                        judgment. Rather, the process can be repeated across projects and with different
                                        team members, irrespective of who is involved in the development. This is par-
                                        ticularly important for critical systems, which often have a long development
                                        cycle during which there are often significant changes in the development team.

                                      Dependable processes make use of redundancy and diversity to achieve reliabil-
                                    ity. They often include different activities that have the same aim. For example, pro-
                                    gram inspections and testing aim to discover errors in a program. The approaches are
                                    complementary so that together they are likely to discover a higher proportion of
                                    errors than would be found using one technique on its own.
                                      The activities that are used in dependable processes obviously depend on the type
                                    of software that is being developed. In general, however, these activities should be
                                    geared to avoiding the introduction of errors into a system, detecting and removing
                                    errors, and maintaining information about the process itself. Examples of activities
                                    that might be included in a dependable process include:

                                    1.  Requirements reviews to check that the requirements are, as far as possible,
                                        complete and consistent.
   358   359   360   361   362   363   364   365   366   367   368