Advertisement

Automated Software Engineering

, Volume 23, Issue 3, pp 427–467 | Cite as

Preserving architectural decisions through architectural patterns

  • Minh Tu Ton That
  • Salah Sadou
  • Flavio Oquendo
  • Régis Fleurquin
Article

Abstract

Architectural decisions have emerged as a means to maintain the quality of the architecture during its evolution. One of the most important decisions made by architects are those about the design approach such as the use of patterns or styles in the architecture. The structural nature of this type of decisions give them the potential to be controlled systematically. In the literature, there are some works on the automation of architectural decision violation checking. In this paper we show that these works do not allow to detect all possible architectural decision violations. To solve this problem we propose an approach which: (i) describes architectural patterns that hold the architectural decision definition, (ii) integrates architectural decisions into an architectural model and, (iii) automates the architectural decision conformance checking. The approach is implemented using Eclipse modeling framework and its accompanying technologies. Starting from well-known architectural patterns, we show that we can formalize all those related to the structural aspect. Through two evaluations, we show that our approach can be adapted to different architecture paradigms and allows to detect more violations comparing to the existing approaches.

Keywords

Architectural decision Pattern Model driving engineering 

References

  1. Allen, R.:A formal approach to software architecture. Ph.D. thesis, Carnegie Mellon, School of Computer Science (1997)Google Scholar
  2. Avgeriou, P., Zdun, U.: Architectural patterns revisited a pattern language. In: 10th European Conference on Pattern Languages of Programs (EuroPlop 2005), Irsee, pp. 1–39 (2005)Google Scholar
  3. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley Professional, New York (2003)Google Scholar
  4. Beisiegel, M., Booz, D., Tibco, S., Bea, M., Sharp, C., Sap, Y.: SCA service component architecture. Assembly Model Specification (2007)Google Scholar
  5. Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. ACM Press/Addison-Wesley Publishing Co., New York (2000)Google Scholar
  6. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture, Volume 1: A System of Patterns. Wiley, Chichester (1996)Google Scholar
  7. Capilla, R., Nava, F., Pérez, S., Due Nas, J.C.: A web-based tool for managing architectural design decisions. SIGSOFT Softw. Eng. Notes 31, 20–27 (2006)CrossRefGoogle Scholar
  8. Capilla, R., Zimmermann, O., Zdun, U., Avgeriou, P., Küster, J.M.: An enhanced architectural knowledge metamodel linking architectural design decisions to other artifacts in the software engineering lifecycle. In: Proceedings of the 5th European Conference on Software Architecture, pp. 303–318. Springer, Berlin (2011)Google Scholar
  9. Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson, P., Nord, R., Stafford, J.: Documenting Software Architectures: Views and Beyond, 2nd edn. Addison-Wesley Professional, Boston (2010)Google Scholar
  10. Elaasar, M., Briand, L.: An Overview of UML Consistency Management. Carleton University, Canada, Technical Report SCE-04-18 (2004)Google Scholar
  11. France, R.B., Kyoo Kim, D., Ghosh, S., Song, E.: A UML-based pattern specification technique. IEEE Trans. Softw. Eng. 30, 193–206 (2004)CrossRefGoogle Scholar
  12. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: abstraction and reuse of object-oriented design. In: ECOOP’ 93: Object-Oriented Programming. Lecture Notes in Computer Science, pp. 406–431. Springer, Berlin (1993)Google Scholar
  13. Garlan, D., Monroe, R.T., Wile, D.: ACME: architectural description of component-based systems. In: Foundations of Component-Based Systems, pp. 47–68 (2000)Google Scholar
  14. Harrison, N.B., Avgeriou, P.: Leveraging architecture patterns to satisfy quality attributes. In: Proceedings of the First European Conference on Software Architecture, pp. 263–270 (2007)Google Scholar
  15. Harrison, N.B., Avgeriou, P., Zdun, U.: Using patterns to capture architectural decisions. IEEE Softw. 24(4), 38–45 (2007)CrossRefGoogle Scholar
  16. Hohpe, G., Woolf, B.: Enterprise Integration Pattern. Addison-Wesley, Boston (2003)Google Scholar
  17. ISO/IEC/IEEE 42010:2011: Systems and Software Engineering: Architecture Description. ISO, Geneva (2011)Google Scholar
  18. Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture, pp. 109–120. IEEE Computer Society (2005)Google Scholar
  19. Jansen, A., van der Ven, J., Avgeriou, P., Hammer, D.: Tool support for architectural decisions. In: The Working IEEE/IFIP Conference on Software Architecture (WICSA, 07), pp. 4–4 (2007)Google Scholar
  20. Könemann, P., Zimmermann, O.: Linking design decisions to design models in model-based software development. In: Proceedings of the 4th European Conference on Software Architecture, pp. 246–262. Springer, Berlin (2010)Google Scholar
  21. Kruchten, P., Lago, P., van Vliet, H.: Building up and reasoning about architectural knowledge. In: Proceedings of the Second International Conference on Quality of Software Architectures, pp. 43–58. Springer, Berlin (2006)Google Scholar
  22. Küster, M.: Architecture-centric modeling of design decisions for validation and traceability. In: European Conference on Software Architecture (ECSA), pp. 184–191 (2013)Google Scholar
  23. Lucas, F.J., Molina, F., Toval, A.: A systematic review of uml model consistency management. Inf. Softw. Technol. 51(12), 1631–1645 (2009)CrossRefGoogle Scholar
  24. Lytra, I., Tran, H., Zdun, U.: Supporting consistency between architectural design decisions and component models through reusable architectural knowledge transformations. In: Proceedings of the 7th European Conference on Software Architecture, ECSA’13. Springer, Berlin (2013)Google Scholar
  25. Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26, 70–93 (2000)CrossRefGoogle Scholar
  26. Medvidovic, N., Rosenblum, D.S., Redmiles, D.F., Robbins, J.E.: Modeling software architectures in the unified modeling language. ACM Trans. Softw. Eng. Methodol. 11, 2–57 (2002)CrossRefGoogle Scholar
  27. Muller, P.-A., Fleurey, F., Jézéquel, J.-M.: Weaving executability into object-oriented meta-languages. In: Proceedings of the 8th International Conference on Model Driven Engineering Languages and Systems, pp. 264–278. Springer, Genova (2005)Google Scholar
  28. OMG: Object constraint language, OCL Version 2.0, formal/2006-05-01. Technical report, OMG (2006)Google Scholar
  29. Miller, J., Mukerji, J.: MDA guide version 1.0.1. Technical report, Object Management Group (OMG) (2003)Google Scholar
  30. Oquendo, F.: An architecture description language based on the higher-order typed pi-calculus for specifying dynamic and mobile software architectures. SIGSOFT Softw. Eng. Notes 29, 1–14 (2004)Google Scholar
  31. Savolainen, J., Kuusela, J., Mnnist, T., Nyyssnen, A.: Experiences in making architectural decisions during the development of a new base station platform. In: Babar, M.A., Gorton, I. (eds.) ECSA, Lecture Notes in Computer Science, pp. 425–432. Springer, Heidelberg (2010)Google Scholar
  32. Shahin, M., Liang, P., Khayyambashi, M.: Architectural design decision: existing models and tools. In: Software Architecture, 2009 European Conference on Software Architecture. WICSA/ECSA 2009, pp. 293–296 (2009)Google Scholar
  33. Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: Eclipse Modeling Framework. Addison-Wesley Professional, Reading (2008)Google Scholar
  34. Tang, A., Jin, Y., Han, J.: A rationale-based architecture model for design traceability and reasoning. J. Syst. Softw. 80, 918–934 (2007)CrossRefGoogle Scholar
  35. That, M.T.T., Sadou, S., Oquendo, F.: Using architectural patterns to define architectural decisions. In: Joint IEEE/IFIP Working Conference on Software Architecture (WICSA) and European Conference on Software Architecture (ECSA), pp. 196–200 (2012)Google Scholar
  36. That, M.T.T., Sadou, S., Oquendo, F., Borne, I.: Composition-centered architectural pattern description language. In: Proceedings of the 7th European Conference on Software Architecture. Springer, Heidelberg (2013)Google Scholar
  37. Thomas, E.: SOA Design Patterns. Prentice Hall, Upper Saddle River (2009)Google Scholar
  38. Tibermacine, C., Fleurquin, R., Sadou, S.: Preserving architectural choices throughout the component-based software development process. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture, pp. 121–130 (2005)Google Scholar
  39. Tibermacine, C., Fleurquin, R., Sadou, S.: A family of languages for architecture constraint specification. J. Syst. Softw. 83, 815–831 (2010)CrossRefGoogle Scholar
  40. Tibermacine, C., Sadou, S., Dony, C., Fabresse, L.: Component-based specification of software architecture constraints. In: Proceedings of the 14th International ACM Sigsoft Symposium on Component Based Software Engineering, pp. 31–40 (2011)Google Scholar
  41. Tyree, J., Akerman, A.: Architecture decisions: demystifying architecture. IEEE Softw. 22, 19–27 (2005)CrossRefGoogle Scholar
  42. Wojcik, R., Bachmann, F., Bass, L., Clements, P.C., Merson, P., Nord, R., Wood, W. G.: Attribute-Driven Design (ADD), Version 2.0. Technical report, Software Engineering Institute (2006)Google Scholar
  43. Zalewski, A., Kijas, S., Sokolowska, D.: Capturing architecture evolution with maps of architectural decisions 2.0. In: Proceedings of the 5th European Conference on Software Architecture, pp. 83–96. Springer, Heidelberg (2011)Google Scholar
  44. Zdun, U., Avgeriou, P., Hentrich, C., Dustdar, S.: Architecting as decision making with patterns and primitives. In: Proceedings of the 3rd International Workshop on Sharing and Reusing Architectural Knowledge, SHARK ’08, pp. 11–18. ACM, New York (2008)Google Scholar
  45. Zimmermann, O.: Architectural decisions as reusable design assets. IEEE Softw. 28, 64–69 (2011)CrossRefGoogle Scholar
  46. Zimmermann, O.: Architectural decision identification in architectural patterns. In: Proceedings of the WICSA/ECSA 2012 Companion Volume, WICSA/ECSA ’12, pp. 96–103. ACM, New York (2012)Google Scholar
  47. Zimmermann, O., Gschwind, T., Küster, J., Leymann, F., Schuster, N.:Reusable architectural decision models for enterprise application development. In: Proceedings of the Quality of Software Architectures 3rd International Conference on Software Architectures, Components, and Applications, pp. 15–32. Springer, Berlin (2007)Google Scholar
  48. Zimmermann, O., Zdun, U., Gschwind, T., Leymann, F.: Combining pattern languages and reusable architectural decision models into a comprehensive and comprehensible design method. In: Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008), pp. 157–166. IEEE Computer Society, Washington, DC (2008)Google Scholar

Copyright information

© Springer Science+Business Media New York 2014

Authors and Affiliations

  • Minh Tu Ton That
    • 1
  • Salah Sadou
    • 1
  • Flavio Oquendo
    • 1
  • Régis Fleurquin
    • 1
  1. 1.IRISAUniversite de Bretagne SudVannesFrance

Personalised recommendations