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.