Abstract
Software architecture provides the high-level design of software systems with the most critical decisions. The source code of a system has to conform to the architectural decisions to guarantee the systems’ success in terms of quality properties. Therefore, architects have to continuously ensure that architecture decisions are implemented correctly to prevent architecture erosion. This is the main goal of Architecture Enforcement. For an effective enforcement, architects have to be aware of the most important enforcement concerns and activities. Unfortunately, current state of the art does not provide a concrete structure on how the process of architecture enforcement is actually applied in industry. Therefore, we conducted an empirical study in order to gain insight in the industrial practice of architecture enforcement. For this, we interviewed 12 experienced software architects from different companies. As a result, we identified the most important concerns that software architects care about during architecture enforcement. Additionally, we investigated which activities architects usually apply in order to enforce those concerns.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. Addison-Wesley Professional, Boston (2012)
Brunet, J., Serey, D., Figueiredo, J.: Structural conformance checking with design tests: an evaluation of usability and scalability. In: 27th IEEE International Conference on Software Maintenance (ICSM), pp. 143–152. IEEE Computer Society, Washington, DC, September 2011
Caracciolo, A., Lungu, M.F., Nierstrasz, O.: A unified approach to architecture conformance checking. In: 12th Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 41–50. IEEE Computer Society, Washington, DC, May 2015
Caracciolo, A., Lungu, M.F., Nierstrasz, O.: How do software architects specify and validate quality requirements? In: Avgeriou, P., Zdun, U. (eds.) ECSA 2014. LNCS, vol. 8627, pp. 374–389. Springer, Switzerland (2014). doi:10.1007/978-3-319-09970-5_32
Christensen, H.B., Hansen, K.M., Schougaard, K.R.: An empirical study of software architects’ concerns. In: 16th Asia-Pacific Software Engineering Conference, pp. 111–118. IEEE Computer Society, Washington, DC, December 2009
Fairbanks, G.: Just Enough Software Architecture: A Risk-Driven Approach. Marshall & Brainerd, Boulder (2010)
Fowler, M.: Who needs an architect? IEEE Softw. 20(5), 11–13 (2003)
Gasson, S.: Rigor in grounded theory research: an interpretive perspective on generating theory from qualitative field studies. In: The Handbook of Information Systems Research, pp. 79–102 (2004)
Hove, S.E., Anda, B.: Experiences from conducting semi-structured interviews in empirical software engineering research. In: 11th IEEE International Software Metrics Symposium (METRICS 2005), pp. 10–23, September 2005
Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: 5th Working IEEE/IFIP Conference on Software Architecture, WICSA 2005, pp. 109–120. IEEE Computer Society, Washington, DC (2005)
Jansen, A., van der Ven, J., Avgeriou, P., Hammer, D.K.: Tool support for architectural decisions. In: Sixth Working IEEE/IFIP Conference on Software Architecture, WICSA 2007, p. 4. IEEE Computer Society, Washington, DC (2007)
Kruchten, P.: What do software architects really do? J. Syst. Softw. 81(12), 2413–2416 (2008)
Malavolta, I., Lago, P., Muccini, H., Pelliccione, P., Tang, A.: What industry needs from architectural languages: a survey. IEEE Trans. Softw. Eng. 39(6), 869–891 (2013)
McBride, M.R.: The software architect. Commun. ACM 50(5), 75–81 (2007)
Mirakhorli, M., Cleland-Huang, J.: Detecting, tracing, and monitoring architectural tactics in code. IEEE Trans. Softw. Eng. 42(3), 205–220 (2016)
Murphy, G.C., Notkin, D., Sullivan, K.: Software reflexion models: bridging the gap between source and high-level models. In: Proceedings of the 3rd ACM SIGSOFT Symposium on Foundations of Software Engineering, SIGSOFT 1995, pp. 18–28. ACM, New York (1995)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)
Sangal, N., Jordan, E., Sinha, V., Jackson, D.: Using dependency models to manage complex software architecture. In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 167–176. ACM, New York (2005)
Strauss, A., Corbin, J., et al.: Basics of Qualitative Research, vol. 15. Sage, Newbury Park (1990)
Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory, and Practice. Wiley Publishing, Chichester (2009)
Terra, R., Valente, M.T.: A dependency constraint language to manage object-oriented software architectures. Softw. Pract. Exper. 39(12), 1073–1094 (2009)
Vogel, O., Arnold, I., Chughtai, A., Kehrer, T.: Software Architecture: A Comprehensive Framework and Guide for Practitioners. Springer, Heidelberg (2011)
Zimmermann, O., Gschwind, T., Küster, J., Leymann, F., Schuster, N.: Reusable architectural decision models for enterprise application development. In: Overhage, S., Szyperski, C.A., Reussner, R., Stafford, J.A. (eds.) QoSA 2007. LNCS, vol. 4880, pp. 15–32. Springer, Heidelberg (2007). doi:10.1007/978-3-540-77619-2_2
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Schröder, S., Riebisch, M., Soliman, M. (2016). Architecture Enforcement Concerns and Activities - An Expert Study. In: Tekinerdogan, B., Zdun, U., Babar, A. (eds) Software Architecture. ECSA 2016. Lecture Notes in Computer Science(), vol 9839. Springer, Cham. https://doi.org/10.1007/978-3-319-48992-6_19
Download citation
DOI: https://doi.org/10.1007/978-3-319-48992-6_19
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-48991-9
Online ISBN: 978-3-319-48992-6
eBook Packages: Computer ScienceComputer Science (R0)