Conflicts and Trade-Offs between Software Performance and Maintainability

This chapter presents experiences from five large performance-demanding industrial applications. Performance and maintainability are two prioritized qualities in all of these systems. We have identified a number of conflicts between performance and maintainability. We have also identified three major techniques for handling these conflicts. (1) By defining guidelines for obtaining acceptable performance without seriously degrading maintainability. (2) By developing implementation techniques that guarantee acceptable performance for programs that are designed for maximum maintainability. (3) By using modern execution platforms that guarantee acceptable performance without sacrificing the maintainability aspect. We conclude that the relevant performance question is not only if the system meets its performance requirements using a certain software design on a certain platform. An equally interesting question is if the system can be made more maintainable by changing the software architecture and compensating this with modern hardware and/or optimized resource allocation algorithms and techniques.

[1]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[2]  John L. Hennessy,et al.  The Future of Systems Research , 1999, Computer.

[3]  J. Henessy,et al.  The Future of System Research , 1999 .

[4]  Lars Lundberg,et al.  A simple process for migrating server applications to SMP: s , 2001, J. Syst. Softw..

[5]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[6]  Lars Lundberg,et al.  Optimizing dynamic memory management in a multithreaded application executing on a multiprocessor , 1998, Proceedings. 1998 International Conference on Parallel Processing (Cat. No.98EX205).

[7]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[8]  Barry W. Boehm,et al.  Identifying Quality-Requirement Conflicts , 1996, IEEE Softw..

[9]  Lars Lundberg,et al.  Maintainability myth causes performance problems in SMP application , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[10]  Emery D. Berger,et al.  Hoard: A Fast, Scalable, and Memory-Efficient Allocator for Shared-MemoryMultiprocessors , 1999 .

[11]  Lars Lundberg,et al.  A distributed component architecture for a large telecommunication application , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[12]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.