systematically for diversity estimation based on fault
injection and failure tracing. A key issue is the
assessment of fault tolerance, on which conclusions
are based. The presented approach used fault
injection. By definition these faults are artificial. The
current understanding of software failure modes is
insufficient to allow the definition of realistic fault
sets - it is not clear what these might be. Therefore
this approach relies on an assumption that
hypothetical fault sets used in this way are
informative.
Diverse wrappers and wrappers embedded with
diagnostic assertions or data diversity have been
demonstrated as providing some level of increased
effectiveness at protecting system from potential
defects inside a COTS component.
The experiments on diversity designs of safety
features in middleware did not distinguish functional
and structural diversity: in terms of performance
they were similar. Anyhow, from these limited
experimental results it would clearly not be possible
to make general claims about the fault detection
capabilities of the different assertion type.
Some tentative conclusions are suggested that
are relevant to practice:
• A ‘wrapper’ can be built from multiple
smaller complementary wrappers which can
be very effective and easy to implement
• Functional diversity is easier to design than
structural diversity in multi wrappers
• The application of check-style wrappers
reduces the scope for faults because they are
usually simpler modules than other kinds of
functional wrappers. It was clear in our
experiments that check-style wrappers can be
considerably more succinct than the code they
check. This is not surprising; it is well known
that checking a function can be a less complex
task than computing it. This effect was
sometimes so pronounced that it was difficult
to select plausible fault modes for injection
into the check-style wrappers.
• A degree of orthogonality between old and
new wrappers was observed, which suggests
that software reliability will be most improved
if both assertion types are used (particularly
for faults with small footprints in the input
space).
• Data diversity would appear to offer an
effective and appropriate way to improve
safety in smart sensors. It remains unexplored
in practice.
ACKNOWLEDGEMENTS
The work presented in this paper comprises aspects
of a study (NewDISPO2-4) performed as part of the
UK Nuclear Safety Research programme, funded
and controlled by the CINIF together with elements
from the SSRC Generic Research Programme
funded by British Energy, Lloyd's Register, and the
Health and Safety Executive.
REFERENCES
Ammann, P.E., Knight, J.C., 1988. Data Diversity: An
Approach to Software Fault Tolerance. IEEE Trans.
on Computers, 37(4): pp. 418-425.
Brown, A., Wallnau, K., 1998. The Current State of
CBSE. IEEE Software, 15(5): pp.37-46.
Chen, L., May, J., Hughes, G., 2002. Assessment of the
Benefit of Redundant Systems, Lecture Notes in
Computer Science, volume 2434, Springer, pp.151-162.
Chen, L., May, J., 2004. Safety Assessment of Systems
Embedded with COTS Components by PIP technique,
Lecture Notes in Informatics 58 GI.
Crnkovic, I., Larsson, M., 2002. Building Reliable
Component-Based Software System, Artech House Books.
Harel, D., 1992. Algorithmics: The Spirit of Computing,
Addison-Wesley.
Lindsay, P., Smith, G., 2000. Safety Assurance of
Commercial-Off-The-Shelf Software, Proc 5th
Australian Workshop on Safety Critical Systems and
Software.
May, J., 2002. Testing the reliability of component-based
safety critical software. Proc. 20th International
System Safety Conference, pp. 214—224.
Napier, J., Chen, L., May, J., Hughes, G., 2000. Fault
Simulating to validate fault-tolerance in Ada.
International Journal of Computer Systems, 15(1):61-67
Napier, J., 2001. Assessing Diagnostics for Fault Tolerant
Software. PhD thesis, Department of Computer
Science, University of Bristol.
Panel Discussion, 2002. How useful is software fault
injection for evaluating the security of COTS
products. Proceedings of the 17
th
ACSAC, IEEE
Computer Society.
Profeta., J, Andrianos, N., Yu, B., 1996. Safety-Critical
Systems Built with COTS, IEEE Comp. 29(11), pp 46-
54.
Quirk, J., Wall, N., 1991. Customer Functional
Requirements for the Protection System to be used as
the DARTS Example, DARTS consortium deliverable
report DARTS-032-HAR-160190-G supplied under the
HSE programme on Software Reliability.
Shin, M., Paniagua, F., 2006. Self-Management of COTS
Component-Based Systems Using Wrappers, 30th
COMPSAC, pp. 33-36.
Voas, J., 1998. Certifying Off-The Shelf Software
Components, IEE Computer, pp.53-59.
ICSOFT 2007 - International Conference on Software and Data Technologies
282