QUALITY ATTRIBUTES IN SOFTWARE ARCHITECTURE DESIGN

Quality attributes of large software systems are to a large extent determined the system’s software architecture, i.e. qualities such as performance and modifiability depend at least as much on the overall architecture as on the code level implementation. Our experience shows that there are conflicts between modifiability and performance. The largest conflicts occur when there is a requirement that it should be possible to modify the system by run-time reconfigurations. Consequently, there is a need for providing tradeoffs between modifiability and performance when designing the system’s architecture. Based on experiences from five industrial projects we define eight design guidelines and a small taxonomy for some performance related quality attributes as well as for attributes related to the modifiability of the system. We also incorporate the guidelines in a design method, thus making it clear how and when the guidelines should be used.

[1]  Jan Bosch,et al.  Scenario-based software architecture reengineering , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[2]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[3]  Lars Lundberg,et al.  Promis, a generic product information database system , 1999, Computers and Their Applications.

[4]  Connie U. Smith,et al.  Software Performance Engineering: A Case Study Including Performance Comparison with Design Alternatives , 1993, IEEE Trans. Software Eng..

[5]  Stephen J. Mellor,et al.  Recursive Design of an Application-Independent Architecture , 1997, IEEE Softw..

[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]  Jan Bosch,et al.  Haemo dialysis software architecture design experiences , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[8]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[9]  Jan Bosch,et al.  Software architecture design: evaluation and transformation , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[10]  Lennart Ohlsson,et al.  Points & Deviations : A Pattern Language for Fire Alarm Systems , 1996 .