It has been observed that minor modifications to the design of a transaction or to the physical database design can lead to performance improvements by factors of 5 to 10 [5, 6]. Modifications are much less costly during the system design phase than in the system testing phase. Performance problems found in the late phases of the software development life cycle may require major software rewrites to correct them.
As shown in this chapter, software performance engineering (SPE) techniques should be employed in any software development project to allow for alternative designs to be compared before any major implementation effort takes place. The main difficulty in applying SPE techniques lies in estimating service demands for nonexisting applications. Service demand estimates become increasingly accurate as the software development life cycle progresses. During early stages of development, even gross order-of-magnitude predictions are useful. To properly size an application, effort should be concentrated on the subset of transactions that will be most frequently invoked.
An analysis of why SPE is not yet fully integrated into software engineering practices can be found in . This analysis raises five possible causes for the fact that software systems rarely meet their performance requirements: 1) lack of scientific models that must be used in software development, 2) little performance education in the vast majority of undergraduate Computer Science curricula, 3) shortage of Information Technology workers leading to poorly trained and performance naive software developers, 4) the "singleuser" mindset of many programmers who ignore contention issues, and 5) the "small database" mindset that leads programmers to fail to consider the effects of queries to large databases. In an attempt to bridge the gap between the performance and software engineering communities, and between industry and academia, special purpose workshops are now appearing. Interested readers are encouraged to read the proceedings of these events to find out the latest on SPE theory and practice [1, 13, 17].