developed by this industry have been adapted for use in software systems outside the financial services industry itself.
26. The examples of attacks on critical infrastructures and IT systems cited in this paragraph are derived from CSTB (1999a).
27. Hewlett-Packard, for example, claims that it can achieve 99.999 percent reliability in some of its hardware systems.
28. As the telephone industry has become more competitive, with more providers of telecommunications services and more suppliers of telecommunications equipment, the potential for compatibility and reliability problems has grown.
29. Other techniques have been used to create highly reliable software, suggesting hope for improvement in general practice. The software for the space shuttle system, for example, has performed with a high level of reliability because it is well maintained and the programmers are intimately familiar with it. They also use a number of the tools discussed in this chapter. See Fishman (1996).
30. As an example, customization usually is accomplished through the programming of general-purpose computers; huge computer programs often are built to form the core functionality of the system. How to design and construct such large computer programs is the focus of research in software engineering. Current research efforts, however, do not go far enough, as discussed later in this chapter. For a lengthier discussion of the challenges of developing better “glue” to hold together compound systems, see CSTB (1999a).
31. See TOPCCIP (1998) and CSTB (1999a).
32. In fact, a famous paper by Fred Brooks argues that there will be no single major improvement in the ability to develop large-scale software. See Brooks (1987).
33. Transaction processing does this by capturing some inherent challenges (such as an explosion of failure modes and resource conflicts due to concurrency) that plague all distributed systems and by providing countermeasures within an infrastructure supporting the application development.
34. Benchmarks play an important role in driving innovation by focusing system designers on improving particular attributes of a system. If the benchmark does not truly reflect the capabilities of the system, then engineering effort—and consumers—can be misdirected. An example might be the focus on microprocessor clock speeds as an indicator of performance. Consumers tend to look at such statistics when they purchase computers even though the architecture of a microprocessor can significantly influence the performance actually delivered.
35. As a simple example, automata theory can reason about the properties (such as decidability) of finite automata of arbitrary complexity. Here, the term “complexity” is interpreted differently than in the systems sense, in terms of the number of elements or operations but not necessarily their heterogeneity or the intricacy of their interaction.
36. To quote from the abstract of this study, titled Representation and Analysis for Modeling, Specification, Design, Prediction, Control and Assurance of Large Scale, Complex Systems: “Complete modeling of complex systems is not possible because of insufficient understanding, insufficient information, or insufficient computer cycles. This study focuses on the use of abstraction in modeling such systems. Abstraction of such systems is based on a semantic framework, and the choice of semantic framework affects the ability to model particular features of the system such as concurrency, adaptability, security, robustness in the presence of faults, and real-time performance. A rich variety of semantic frameworks have been developed over time. This study will examine their usefulness for modeling complex systems. In particular, questions to be addressed include the scalability (Do the semantics support hierarchy? Is it practical to have a very large number of components?), heterogeneity (Can it be combined with other semantic frameworks at multiple levels of abstraction?), and formalism (Are the formal properties of the semantics useful?). The study will also