Skip to main content
Log in

Model-driven synthesis of formally precise, stylized software architectures

  • Original Article
  • Published:
Formal Aspects of Computing

Abstract

Reliably producing software architectures in selected architectural styles requires significant expertise yet remains difficult and error-prone. Our research goals are to better understand the nature of style-specific architectures, and relieve architects of the need to produce such architectures by hand. To achieve our goals, this paper introduces a formally precise approach to separate architectural style design decisions from application-specific decisions, and then uses these separate decisions as inputs to an automated synthesizer. This in effect supports a model-driven development (MDD) approach to architecture synthesis with style as a separate design variable. We claim that it is possible to formalize this separation of concerns, long implicit in software engineering research; to automatically synthesize style-specific architectures; and thereby to improve software design productivity and quality. To test these claims, we employed a combination of experimental systems and case study methods: we developed an MDD tool and used it to carry out case studies using Kitchenham’s methods. Our contributions include: a theoretical framework formalizing our separation of concerns and synthesis approach; an MDD framework, Monarch; and results of case studies that we interpret as supporting our claims. This work advances our understanding of software architectural style as a formal refinement; makes application descriptions an explicit subject of study; and suggests that synthesis of architectures can improve software productivity and quality.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aleti A, Bjornander S, Grunske L, Meedeniya I (2009) Archeopterix: An extendable tool for architecture optimization of aadl models. In: Proceedings of the international workshop on model-based methodologies for pervasive and embedded software (MOMPES), pp 61–71

  2. Ambriola V, Kmiecik A (2002) Architectural transformations. In: Proceedings of the 14th international conference on Software engineering and knowledge engineering, pp 275–278

  3. Bondarev E, Chaudron MRV, de Kock EA (2007) Exploring performance trade-offs of a jpeg decoder using the deepcompass framework. In: Proceedings of WOSP’07, pp 153–163

  4. Bass L, Clements P, Kazman R (2003) Software architecture in practice. Addison-Wesley Professional, 2nd edn

  5. Bucchiarone A, Galeotti JP (2008) Dynamic software architectures verification using DynAlloy. In: Proceedings 7th international workshop on graph transformation and visual modeling techniques (GT-VMT 2008)

  6. Bagheri H, Sullivan K (2010) Architecture as an independent variable for aspect-oriented application descriptions. In: Abstract State Machines, Alloy, B and Z (ABZ 2010), (LNCS 5977), Canada

  7. Bagheri H, Song Y, Sullivan K (2010) Architectural style as an independent variable. In: Proceedings of the 25th IEEE/ACM international conference on automated software engineering (ASE’10), pp 159–162

  8. Bagheri H, Sullivan K (2010) Monarch: model-based development of software architectures. In: Proceedings of the 13th ACM/IEEE international conference on model driven engineering languages and systems (MoDELS 2010), Lecture Notes in Computer Science 6395, pp 376–390

  9. Bagheri H, Sullivan K (2011) A formal approach for incorporating architectural tactics into the software architecture. In: Proceedings of the 23rd international conference on software engineering and knowledge engineering, pp 770–775

  10. Bagheri H. Sullivan K (2012) Pol: specification-driven synthesis of architectural code frameworks for platform-based applications. In: Proceedings proceedings of the 11th ACM SIGPLAN international conference on generative programming and component engineering (GPCE’12), pp 93–102

  11. Bagheri H, Sullivan K (2013) Bottom-up model-driven development. In: Proceedings of the international conference on software engineering (ICSE’13), pp 1221–1224

  12. Canavera KR, Esfahani N, Malek S (2012) Mining the execution history of a software system to infer the best time for its adaptation. In: Proceedings of the International Symp. on the Foundations of Software Engineering, pp 1–11

  13. DeLine R (1999) Avoiding packaging mismatch with flexible packaging. In: Proceedings of the 21st international conference on Software engineering, pp 97–106

  14. Dingel J, Garlan D, Jha S, Notkin D: Towards a formal treatment of implicit invocation. Formal Aspects Comput 10, 193–213 (1998)

    Article  MATH  Google Scholar 

  15. Esfahani N, Malek S: Utilizing architectural styles to enhance the adaptation support of middleware platforms. Inf Softw Technol 54(7), 786–801 (2012)

    Article  Google Scholar 

  16. Edwards G, Seo C, Medvidovic N: Model interpreter frameworks: A foundation for the analysis of domain-specific software architectures. J Univ Comput Sci 14(8), 1182–1206 (2008)

    Google Scholar 

  17. Freemarker java template engine. http://freemarker.org/.

  18. Garlan D, Barnes JM, Schmerl B, Celiku O (2009) Evolution styles: foundations and tool support for software architecture evolution. In: Joint 8th Working international conference on software architecture and 3rd European conference on software architecture, Cambridge

  19. Garcia A, Chavez C, Batista T, Santanna C, Kulesza U, Rashid A, Lucena C (2006) On the modular representation of architectural aspects. In: Proceedings of the European Workshop on Software Architecture, Lecture Notes in Computer Science, Nantes, pp 82—97

  20. Garlan D, Kaiser G, Notkin D: Using tool abstraction to compose systems. Computer 25(6), 30–38 (1992)

    Article  Google Scholar 

  21. Georgiadis I, Magee J, Kramer J (2002) Self-organising software architectures for distributed systems. In: Proceedings of the first workshop on Self-healing systems, pp 33–38

  22. Garlan D, Monroe RT, Wile D (2000) Acme: architectural description of component-based systems. In: Foundations of component-based systems, pp 47–67

  23. Grunske L (2005) Formalizing architectural refactorings as graph transformation systems. In: Proceedings of the sixth international conference on software engineering, artificial intelligence, networking and parallel/distributed computing and first ACIS international workshop on self-assembling wireless networks SNPD/SAWN’05, pp 324–329

  24. Jackson D: Alloy: a lightweight object modelling notation. ACM Trans Softw Eng Methodol (TOSEM) 11(2), 256–290 (2002)

    Article  Google Scholar 

  25. Jackson D (2012) Software Abstractions, 2nd edn. MIT Press

  26. Kim JS, Garlan D: Analyzing architectural styles. J Syst Softw 83(7), 1216–1235 (2010)

    Article  Google Scholar 

  27. Kojarski S, Lorenz DH (2007) Identifying feature interactions in multi-language aspect-oriented frameworks. In: Proceedings of the 29th international conference on Software Engineering, ICSE ’07, Washington, DC. IEEE Computer Society, pp 147–157

  28. Kelsen P, Ma Q (2008) A lightweight approach for defining the formal semantics of a modeling language. In: Proceedings of the 11th international conference on model driven engineering languages and systems, pp 690–704

  29. Kitchenham B, Pickard L, Pfleeger SL: Case studies for method and tool evaluation. IEEE Softw 12(4), 52–62 (1995)

    Article  Google Scholar 

  30. Lédeczi Á, Bakay Á, Maróti M, Völgyesi P, Nordstrom G, Sprinkle J, Karsai G: Composing domain-specific design environments. Computer 34(11), 44–51 (2001)

    Article  Google Scholar 

  31. MetaEdit+. http://www.metacase.com/.

  32. MiniSat (2015) Minisat website

  33. Martens A, Koziolek H, Becker S, Reussner RH (2010) Automatically improve software models for performance, reliability and cost using genetic algorithms. In: Proceedings of the 1st Int. Conf. on performance engineering, pp 105–116

  34. Mukerji J, Miller J (2013) MDA guide version 1.0.1. omg/2003-06-01. Technical report

  35. Monarch tool suite. http://www.cs.virginia.edu/~hb2j/Downloads/Monarch-ToolSuite.zip.

  36. Maoz S, Ringert JO, Rumpe B (2013) Synthesis of component and connector models from crosscutting structural views. In: Proceedings of the European software engineering conference held jointly with the ACM SIGSOFT international symposium on Foundations of software engineering (ESEC/FSE’13), pp 444–454

  37. Malek S, Seo C, Ravula S, Petrus B, Medvidovic N (2007) Reconceptualizing a family of heterogeneous embedded systems via explicit architectural support. In: Proceedings of the international conference on software engineering

  38. Medvidovic N, Taylor RN: A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1), 70–93 (2000)

    Article  Google Scholar 

  39. Parnas DL: On the criteria to be used in decomposing systems into modules. Commun ACM 15, 1053–1058 (1972)

    Article  Google Scholar 

  40. Perry DE, Wolf AL: Foundations for the study of software architecture. ACM SIGSOFT Softw Eng Notes 17(4), 40–52 (1992)

    Article  Google Scholar 

  41. SAT4J (2015) Sat4j website

  42. Schmidt DC: Model-driven engineering. IEEE Comput 39(2), 25–31 (2006)

    Article  Google Scholar 

  43. Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline. Prentice Hall

  44. Tamzalit D, Mens T (2010) Guiding architectural restructuring through architectural styles. In: Proceedings of the 17th IEEE international conference and workshops on engineering of computer based systems, pp 69–78

  45. Taylor RN, Medvidovic N, Anderson KM, James Whitehead Jr E, Robbins JE (1995) A component- and message-based architectural style for GUI software. In: Proceedings of the 17th international conference on Software engineering. ACM, pp 295–304

  46. Taylor RN, Medvidovic N, Dashofy E (2009) Software architecture: foundations, theory, and practice. Wiley

  47. Torlak E (2009) A constraint solver for software engineering: finding models and cores of large relational specifications. PhD thesis, MIT

  48. Warren I, Sun J, Krishnamohan S, Weerasinghe T (2006) An automated formal approach to managing dynamic reconfiguration. In: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, pp 37–46

  49. White J, Schmidt DC, Nechypurenko A, Wuchner E: Introduction to the generic eclipse modelling system. Eclipse Mag 2007(6), 11–18 (2007)

    Google Scholar 

  50. Wong S, Sun J, Warren I, Sun J (2008) A scalable approach to multi-style architectural modeling and verification. In: Proceedings of the 13th IEEE international conference on engineering of complex computer systems. IEEE Computer Society, pp 25–34

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hamid Bagheri.

Additional information

Stephan Merz, Jun Pang, and Jin Song Dong

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Bagheri, H., Sullivan, K. Model-driven synthesis of formally precise, stylized software architectures. Form Asp Comp 28, 441–467 (2016). https://doi.org/10.1007/s00165-016-0360-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-016-0360-8

Keywords

Navigation