One issue in the software
project management domain is determining how the system will behave once it is
functional. Waiting until it is functional to find out can be disastrous.
Performance analysis is one way to address some of the design issues up front.
The Art of
Computer Systems Performance Analysis, Raj Jain, John Wiley and Sons,
1991. There are several classic text in performance modeling. This is one of
the best in that it covers most of topics found in the other books. This
book should be read by the architect, since it provides all the foundation
for performance and reliability modeling.
The two other
"backup" books for the really serious analysis person are Introduction
to Probability Models, 4th ed, Sheldon Ross, Academic Press and Probability
& Statistics with Reliability, Queuing and Computer Science Applications,
Kishor Trivedi, Prentice Hall. Both of these books are heavy going for the
uninitiated, but they form the foundation of the Markov models used in most
queuing analysis programs.
Performance Analyst, Neil Gunther, McGraw Hill. As the title says, this
is a very practical book and should be part of our engineering process.
Gunther does not use Markov models (which do not always have closed forms to
the differential equations representing flow), but uses a meta-stable
evaluation, which assumes all process are in steady state. Anyone who says
performance analysis is not necessary during the architecture phase of the
project, should read this book. Understanding how the system will scale,
behave under load, respond to impulse requests, and generally operate is
mandatory for a commercially robust system.
In order to have a full understanding of
the foundations of queuing theory the following texts should have been read.
This does not mean that they will have been read and understood, but
at least these books should be on the shelf of anyone calling themselves a
Systems Architect: Queuing Systems: Volume 1: Theory and Volume 2:
Computer Applications, Leonard Klienrock, John Wiley & Sons, 1975.
These two volumes are the foundation of all things "queuing",
including packet switching, the internet, operating systems performance
modeling, database transaction modeling.
Simulating Computer Systems:
Techniques and Tools, M. H. MacDougall, MIT Press, 1987. This text is an
introduction to computer system performance modeling. It includes models for
networks, processors, and databases.
Theory, Markov Chains, Statistics, and Other Mathematical Texts
of the primary missing elements in modern computing is a good theoretical
foundation for the design of systems. In the science world (of which compute
science is a very weak cousin), mathematics is the basis for all
understanding. The following mathematics texts should be considered fundamental
to anyone working in the area of system design. Without this understanding the
programmer or software engineer cannot claim to be literate in the field.
Volume 1: Theory and Volume 2: Computer Applications, Leonard
Kleinrock, John Wiley and Sons, 1975. These text are the basis of ALL
computer queuing theory. They are out of print, and impractical for the
non–mathematical person to read. But their contents forms the basis of all
they we experience on the Internet, Ethernet, distributed operating systems,
and digital communications.
Queues, N. K. Jaiswal, Academic Press. This book provides a comprehensive
discussion of various priority queuing processes.
Theory, D. R. Cox, Methuen's Monographs on Applied Probability and
Statistics. This book is a fundamental source for reliability and queuing
D. R. Cox and Walter L. Smith, Chapman and Hall. This is the original source
book on queues.
Queuing and Computer System Applications, P. J. Courtois, Academic Press.
and Networks of Queues, Gerald S. Shedler, Springer Verlag.
Theory, Wataru Mayeda, Wiley Interscience.
Chains: Theory and Applications, D. L. Isaacson and R. W. Madsen, John
Wiley & Sons
Random Variables, and Stochastic Processes, Athanasios Papoulis, McGraw
Hill, 1965. This is the classic engineering probability and stochastic
process book. I have personally designed many control system software
algorithms using the materials in the this book. Much of the flight control
systems in modern aircraft and ship steering controls are based on the
stochastic process tracking algorithms described here.
Equations and Their Applications Fourth Edition, Martin Braun, Springer
Verlag, 1993. Almost all of nature can be described by second order linear
differential equations. This includes computing systems, queuing systems, reliability
systems and most of the performance management problems. This is a text with a
rich set of application examples.