Abstract
Architecture reviews are effective for identifying potential problems in architectures, particularly concerning the quality attributes of the system, but are generally expensive. We propose that architecture reviews based on the architecture patterns and their interactions with quality attributes can be done with small effort. We performed an exploratory study to investigate how much time and effort is required to perform such a review, and how many related issues it uncovers. We performed nine architecture reviews on small systems, and recorded the time and effort spent, and the number of issues identified. On average, a pattern-based review took less than two person-days of effort and less than a day of calendar time. The median number of issues identified was three, one of which was major. We recommend that where extensive architecture reviews are too expensive, a pattern-based review can be done with small effort and time.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Sommerville, I.: Software Engineering, 8th edn. Addison Wesley Longman (2007)
Bachmann, F., Bass, L., Klein, M., Shelton, C.: Designing Software Architectures to Achieve Quality Attribute Requirements. IEE Proceedings 152(4), 153–165 (2005)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley (2003)
International Standards Organization, Information Technology – Software Product Quality – Part 1: Quality Model, ISO/IEC FDIS 9126-1 (2000)
Bengtsson, P.: Towards Maintainability Metrics on Software Architecture: An Adaptation of Object-Oriented Metrics. In: First Nordic Workshop on Software Architecture, Ronneby (1998)
Abowd, G., Bass, L., Clements, P., Kazman, R., Northrop, L., Zaremski, A.: Recommended Best Industrial Practice for Software Architecture Evaluation. Technical Report CMU/SEI-96-TR-025, CMU Software Engineering Institute (1997)
Obbink, H., Kruchten, P., Kozaczynski, P., Hilliard, R., Ran, A., Postema, H., Lutz, D., Kazman, R., Tracz, W., Kahane, E.: Report on Software Architecture Review and Assessment, SARA (2002), http://philippe.kruchten.com/architecture/SARAv1.pdf
Dobrica, L., Niemelä, E.: A Survey on Software Architecture Analysis Methods. IEEE Trans. Softw. Eng. 28(7), 638–653 (2002)
Ali-Babar, M., Zhu, L., Jeffery, R.: A Framework for Classifying and Comparing Software Architecture Evaluation Methods. In: 15th Australian Software Engineering Conference, Melbourne, pp. 309–318 (2004)
Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley (2002)
Maranzano, J., Rozsypal, S., Zimmerman, G., Warnken, G., Wirth, P., Weiss, D.: Architecture Reviews: Practice and Experience. IEEE Software 22(2), 34–43 (2002)
Bass, L., Nord, R., Wood, W., Zubrow, D.: Risk Themes Discovered Through Architecture Evaluations. SEI Report CMU/SEI-2006-TR-012 (2006)
Beck, K., et al.: Manifesto for Software Development, http://agilemanifesto.org (accessed October 2008)
Kitchenham, B.A., Pfleeger, S.L., Pickard, L.M., Jones, P.W., Hoaglin, D.C., Emam, K.E., Rosenberg, J.: Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. 28(8), 721–734 (2002)
Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)
Harrison, N., Avgeriou, P., Zdun, U.: Architecture Patterns as Mechanisms for Capturing Architectural Decisions. IEEE Software 24(4), 38–45 (2007)
Shaw, M.: Toward Higher-Level Abstractions for Software Systems. In: Proc. Tercer Simposio Internacional del Conocimiento y su Ingerieria, pp. 55–61 (October 1988); reprinted in Data and Knowledge Engineering, vol. 5, pp. 19–28 (1990)
Buschmann, F., et al.: Pattern-Oriented Software Architecture: A System of Patterns. Wiley (1996)
Avgeriou, P., Zdun, U.: Architectural Patterns Revisited – a Pattern Language. In: 10th European Conference on Pattern Languages of Programs (EuroPLoP 2005), Irsee, Germany (2005)
Harrison, N., Avgeriou, P.: Leveraging Architecture Patterns to Satisfy Quality Attributes. In: Oquendo, F. (ed.) ECSA 2007. LNCS, vol. 4758, pp. 263–270. Springer, Heidelberg (2007)
Harrison, N., Avgeriou, P.: Pattern-Driven Architectural Partitioning - Balancing Functional and Non-functional Requirements. In: First International Workshop on Software Architecture Research and Practice (SARP 2007). IEEE Computer Society Press (2007)
Harrison, N., Avgeriou, P., Zdun, U.: Focus Group Report: Capturing Architectural Knowledge with Architectural Patterns. In: 11th European Conference on Pattern Languages of Programs (EuroPLoP 2006), Irsee, Germany (2006)
Coplien, J., Harrison, N.: Organizational Patterns of Agile Software Development. Prentice-Hall (2004)
Harrison, N., Avgeriou, P.: Analysis of Architecture Pattern Usage in Legacy System Architecture Documentation. In: 7th Working IEEE/IFIP Conference on Software Architecture, Vancouver, pp. 147–156 (2008)
Utas, G.: Robust Communications Software: Extreme Availability, Reliability and Scalability for Carrier-Grade Systems. Wiley (2005)
Harrison, N., Avgeriou, P.: Incorporating Fault Tolerance Techniques in Software Architecture Patterns. In: International Workshop on Software Engineering for Resilient Systems (SERENE 2008). ACM Press, Newcastle upon Tyne (2008)
Kazman, R., Bass, L., Abword, G., Webb, M.: SAAM: A Method for Analyzing the Properties of Software Architectures. In: 16th International Conference on Software Engineering (1994)
Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., Carriere, J.: The Architecture Tradeoff Analysis Method. In: Proceedings of IEEE, ICECCS (1998)
Zhu, L., Babar, M.A., Jeffrey, R.: Mining Patterns to Support Software Architecture Evaluation. In: Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA). IEEE Computer Society, Washington, DC (2004)
Bass, L., Nord, R., Wood, W., Zubrow, D., Ozkaya, I.: Analysis of architecture evaluation data. J. Syst. Softw. 81(9), 1443–1455 (2008)
Clements, P.: Active Reviews for Intermediate Designs, SEI Carnegie Mellon University CUM/SEI-2000-TN-009 (2000)
Bengtsson, P.-O., Lassing, N., Bosch, J., Van Vliet, H.: Architecture-Level Modifiability Analysis. Journal of Systems and Software 69 (2004)
Bengtsson, P.O., Bosch, J.: Architectural Level Prediction of Software Maintenance. In: 3rd European Conf. on Software Engineering Maintenance and Reengineering (1999)
Bengtsson, P.O., Bosch, J.: Scenario-based Architecture Reengineering. In: 5th International Conference on Software Reuse (1998)
Alavi, M., Carlson, P.: A Review of MIS Research and Disciplinary Development. Journal of Management Information Systems 3(4), 45–62 (1992)
Holz, H., Applin, A., Haberman, B., Joyce, D., Purchase, H., Reed, C.: Research methods in computing: what are they, and how should we teach them? SIGCSE Bull. 38(4), 96–114 (2006)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering: an Introduction. Kluwer Academic Publishers (2000)
Jedlitschka, A., Pfal, D.: Reporting Guidelines for Controlled Experiments in Software Engineering. In: Intl. Symp. on Empirical Software Engineering (2005)
Cockburn, A.: Agile Software Development: The Cooperative Game, 2nd edn. Addison-Wesley (2007)
Schwaber, K.: Agile Project Management with Scrum. Microsoft Press (2004)
Johnson, P.M., Tjahjono, D.: Does Every Inspection Really Need a Meeting? Empirical Softw. Eng. 3(1), 9–35 (1998)
Falessi, D., Ali Babar, M., Cantone, G., Kruchten, P.: Applying empirical software engineering to software architecture: challenges and lessons learned. Empirical Swre. Eng. (2010) (to appear)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Harrison, N.B., Avgeriou, P. (2013). Using Pattern-Based Architecture Reviews to Detect Quality Attribute Issues - An Exploratory Study. In: Noble, J., Johnson, R., Zdun, U., Wallingford, E. (eds) Transactions on Pattern Languages of Programming III. Lecture Notes in Computer Science, vol 7840. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38676-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-38676-3_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38675-6
Online ISBN: 978-3-642-38676-3
eBook Packages: Computer ScienceComputer Science (R0)