Designing complex distributed client/server applications that meet performa
nce requirements may prove extremely difficult in practice if software deve
lopers are not willing or do not have the time to help software performance
analysts. This paper advocates the need to integrate both design and perfo
rmance modeling activities so that one can help the other. We present a met
hod developed and used by the authors in the design of a fairly large and c
omplex client/server application. The method is based on a software perform
ance engineering language developed by one of the authors. Use cases ware d
eveloped and mapped to a performance modeling specification using the langu
age. A compiler for the language generates an analytic performance model fo
r the system. Service demand parameters at servers, storage boxes, and netw
orks are derived by the compiler from the system specification. A detailed
model of DBMS query optimizers allows the compiler to estimate the number o
f I/Os and CPU time for SQL statements. The paper concludes with some resul
ts of the application that prompted the development of the method and langu
age.