{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:18:32Z","timestamp":1763468312980},"reference-count":50,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2016,5,1]],"date-time":"2016-05-01T00:00:00Z","timestamp":1462060800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Form. Asp. Comput."],"published-print":{"date-parts":[[2016,5]]},"abstract":"<jats:title>Abstract<\/jats:title>\n          <jats:p>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\u2019s 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.<\/jats:p>","DOI":"10.1007\/s00165-016-0360-8","type":"journal-article","created":{"date-parts":[[2016,3,11]],"date-time":"2016-03-11T09:50:42Z","timestamp":1457689842000},"page":"441-467","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":22,"title":["Model-driven synthesis of formally precise, stylized software architectures"],"prefix":"10.1145","volume":"28","author":[{"given":"Hamid","family":"Bagheri","sequence":"first","affiliation":[{"name":"School of Information and Computer Sciences, University of California, 92612, Irvine, CA, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kevin","family":"Sullivan","sequence":"additional","affiliation":[{"name":"Department of Computer Science, University of Virginia, 22904, Charlottesville, VA, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","reference":[{"key":"e_1_2_1_2_1_2","doi-asserted-by":"crossref","unstructured":"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\u201371","DOI":"10.1109\/MOMPES.2009.5069138"},{"key":"e_1_2_1_2_2_2","doi-asserted-by":"crossref","unstructured":"Ambriola V Kmiecik A (2002) Architectural transformations. In: Proceedings of the 14th international conference on Software engineering and knowledge engineering pp 275\u2013278","DOI":"10.1145\/568760.568809"},{"key":"e_1_2_1_2_3_2","doi-asserted-by":"crossref","unstructured":"Bondarev E Chaudron MRV de Kock EA (2007) Exploring performance trade-offs of a jpeg decoder using the deepcompass framework. In: Proceedings of WOSP\u201907 pp 153\u2013163","DOI":"10.1145\/1216993.1217020"},{"key":"e_1_2_1_2_4_2","unstructured":"Bass L Clements P Kazman R (2003) Software architecture in practice. Addison-Wesley Professional 2nd edn"},{"key":"e_1_2_1_2_5_2","unstructured":"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)"},{"key":"e_1_2_1_2_6_2","doi-asserted-by":"crossref","unstructured":"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","DOI":"10.1007\/978-3-642-11811-1_32"},{"key":"e_1_2_1_2_7_2","doi-asserted-by":"crossref","unstructured":"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\u201910) pp 159\u2013162","DOI":"10.1145\/1858996.1859026"},{"key":"e_1_2_1_2_8_2","doi-asserted-by":"crossref","unstructured":"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\u2013390","DOI":"10.1007\/978-3-642-16129-2_27"},{"key":"e_1_2_1_2_9_2","unstructured":"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\u2013775"},{"key":"e_1_2_1_2_10_2","doi-asserted-by":"crossref","unstructured":"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\u201912) pp 93\u2013102","DOI":"10.1145\/2371401.2371416"},{"key":"e_1_2_1_2_11_2","doi-asserted-by":"crossref","unstructured":"Bagheri H Sullivan K (2013) Bottom-up model-driven development. In: Proceedings of the international conference on software engineering (ICSE\u201913) pp 1221\u20131224","DOI":"10.1109\/ICSE.2013.6606683"},{"key":"e_1_2_1_2_12_2","doi-asserted-by":"crossref","unstructured":"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\u201311","DOI":"10.1145\/2393596.2393616"},{"key":"e_1_2_1_2_13_2","doi-asserted-by":"crossref","unstructured":"DeLine R (1999) Avoiding packaging mismatch with flexible packaging. In: Proceedings of the 21st international conference on Software engineering pp 97\u2013106","DOI":"10.1145\/302405.302456"},{"key":"e_1_2_1_2_14_2","doi-asserted-by":"publisher","DOI":"10.1007\/s001650050011"},{"key":"e_1_2_1_2_15_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2012.02.001"},{"issue":"8","key":"e_1_2_1_2_16_2","first-page":"1182","article-title":"Model interpreter frameworks: A foundation for the analysis of domain-specific software architectures","volume":"14","author":"Edwards G","year":"2008","journal-title":"J Univ Comput Sci"},{"key":"e_1_2_1_2_17_2","unstructured":"Freemarker java template engine. http:\/\/freemarker.org\/."},{"key":"e_1_2_1_2_18_2","doi-asserted-by":"crossref","unstructured":"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","DOI":"10.1109\/WICSA.2009.5290799"},{"key":"e_1_2_1_2_19_2","doi-asserted-by":"crossref","unstructured":"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\u201497","DOI":"10.1007\/11966104_7"},{"key":"e_1_2_1_2_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/2.153255"},{"key":"e_1_2_1_2_21_2","doi-asserted-by":"crossref","unstructured":"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\u201338","DOI":"10.1145\/582128.582135"},{"key":"e_1_2_1_2_22_2","unstructured":"Garlan D Monroe RT Wile D (2000) Acme: architectural description of component-based systems. In: Foundations of component-based systems pp 47\u201367"},{"key":"e_1_2_1_2_23_2","doi-asserted-by":"crossref","unstructured":"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\u201905 pp 324\u2013329","DOI":"10.1109\/SNPD-SAWN.2005.37"},{"key":"e_1_2_1_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/505145.505149"},{"key":"e_1_2_1_2_25_2","unstructured":"Jackson D (2012) Software Abstractions 2nd edn. MIT Press"},{"key":"e_1_2_1_2_26_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2010.01.049"},{"key":"e_1_2_1_2_27_2","doi-asserted-by":"crossref","unstructured":"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 \u201907 Washington DC. IEEE Computer Society pp 147\u2013157","DOI":"10.1109\/ICSE.2007.43"},{"key":"e_1_2_1_2_28_2","doi-asserted-by":"crossref","unstructured":"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\u2013704","DOI":"10.1007\/978-3-540-87875-9_48"},{"key":"e_1_2_1_2_29_2","doi-asserted-by":"publisher","DOI":"10.1109\/52.391832"},{"key":"e_1_2_1_2_30_2","doi-asserted-by":"publisher","DOI":"10.5555\/619069.621837"},{"key":"e_1_2_1_2_31_2","unstructured":"MetaEdit+. http:\/\/www.metacase.com\/."},{"key":"e_1_2_1_2_32_2","unstructured":"MiniSat (2015) Minisat website"},{"key":"e_1_2_1_2_33_2","doi-asserted-by":"crossref","unstructured":"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\u2013116","DOI":"10.1145\/1712605.1712624"},{"key":"e_1_2_1_2_34_2","unstructured":"Mukerji J Miller J (2013) MDA guide version 1.0.1. omg\/2003-06-01. Technical report"},{"key":"e_1_2_1_2_35_2","unstructured":"Monarch tool suite. http:\/\/www.cs.virginia.edu\/~hb2j\/Downloads\/Monarch-ToolSuite.zip."},{"key":"e_1_2_1_2_36_2","doi-asserted-by":"crossref","unstructured":"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\u201913) pp 444\u2013454","DOI":"10.1145\/2491411.2491414"},{"key":"e_1_2_1_2_37_2","doi-asserted-by":"crossref","unstructured":"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","DOI":"10.1109\/ICSE.2007.69"},{"key":"e_1_2_1_2_38_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.825767"},{"key":"e_1_2_1_2_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/361598.361623"},{"key":"e_1_2_1_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/141874.141884"},{"key":"e_1_2_1_2_41_2","unstructured":"SAT4J (2015) Sat4j website"},{"key":"e_1_2_1_2_42_2","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2006.58"},{"key":"e_1_2_1_2_43_2","unstructured":"Shaw M Garlan D (1996) Software architecture: perspectives on an emerging discipline. Prentice Hall"},{"key":"e_1_2_1_2_44_2","doi-asserted-by":"crossref","unstructured":"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\u201378","DOI":"10.1109\/ECBS.2010.15"},{"key":"e_1_2_1_2_45_2","doi-asserted-by":"crossref","unstructured":"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\u2013304","DOI":"10.1145\/225014.225042"},{"key":"e_1_2_1_2_46_2","doi-asserted-by":"crossref","unstructured":"Taylor RN Medvidovic N Dashofy E (2009) Software architecture: foundations theory and practice. Wiley","DOI":"10.1145\/1810295.1810435"},{"key":"e_1_2_1_2_47_2","unstructured":"Torlak E (2009) A constraint solver for software engineering: finding models and cores of large relational specifications. PhD thesis MIT"},{"key":"e_1_2_1_2_48_2","doi-asserted-by":"crossref","unstructured":"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\u201346","DOI":"10.1109\/ASE.2006.12"},{"issue":"6","key":"e_1_2_1_2_49_2","first-page":"11","article-title":"Introduction to the generic eclipse modelling system","volume":"2007","author":"White J","year":"2007","journal-title":"Eclipse Mag"},{"key":"e_1_2_1_2_50_2","doi-asserted-by":"crossref","unstructured":"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\u201334","DOI":"10.1109\/ICECCS.2008.16"}],"container-title":["Formal Aspects of Computing"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s00165-016-0360-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s00165-016-0360-8\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1007\/s00165-016-0360-8","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,1,6]],"date-time":"2022-01-06T16:12:58Z","timestamp":1641485578000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1007\/s00165-016-0360-8"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,5]]},"references-count":50,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2016,5]]}},"alternative-id":["10.1007\/s00165-016-0360-8"],"URL":"https:\/\/doi.org\/10.1007\/s00165-016-0360-8","relation":{},"ISSN":["0934-5043","1433-299X"],"issn-type":[{"value":"0934-5043","type":"print"},{"value":"1433-299X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,5]]}}}