A strong focus on quality attributes such as maintainability and flexibilit
y has resulted in a number of new methodologies, e.g., object-oriented and
component-based design, which can significantly limit the application perfo
rmance. A major challenge is to fmd solutions that balance and optimize the
quality attributes, e.g., symmetric multiprocessor (SMP) performance contr
a maintainability and flexibility. We have studied three large real-time te
lecommunication server applications developed by Ericsson. In all these app
lications maintainability is strongly prioritized. The applications are als
o very demanding with respect to performance due to real-time requirements
on throughput and response time. SMP:s and multithreading are used in order
to give these applications a high and scalable performance. Our main findi
ng is that dynamic memory management is a major bottleneck in these types o
f applications. The bottleneck can, however, be removed using memory alloca
tors optimized for SMP:s or by reducing the number of allocations. We found
that the number of allocations can be significantly reduced by using alter
native design strategies for maintainability and flexibility. Based on our
experiences we have defined a simple guideline-based process with the aim o
f helping designers of server applications to establish a balance between S
MP performance, maintainability and flexibility. (C) 2001 Elsevier Science
Inc. All rights reserved.