{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,20]],"date-time":"2026-01-20T09:09:21Z","timestamp":1768900161160,"version":"3.49.0"},"reference-count":88,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2016,6,29]],"date-time":"2016-06-29T00:00:00Z","timestamp":1467158400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100004055","name":"King Fahd University of Petroleum & Minerals","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100004055","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Comput. Surv."],"published-print":{"date-parts":[[2017,3,31]]},"abstract":"<jats:p>A design pattern is a well-defined solution to a recurrent problem. Over the years, the number of patterns and domains of design patterns have expanded, as the patterns are the experiences of the experts of the domain captured in a higher-level abstraction. This led others to work on languages for design patterns to systematically document abstraction detailed in the design pattern rather than capture algorithms and data. These design-pattern specification languages come in different flavors, targeting different aspects of design patterns. Some design-pattern specification languages tried to capture the description of the design pattern in graphical or textual format, others tried to discover design patterns in code or design diagrams, and still other design-pattern specification languages have other objectives. However, so far, no effort has been made to compare these design-pattern specification languages and identify their strengths and weaknesses. This article provides a survey and a comparison between existing design-pattern specification languages using a design-pattern specification language evaluation framework. Analysis is done by grouping the design-pattern specification languages into different categories. In addition, a brief description is provided regarding the tools available for the design-pattern specification languages. Finally, we identify some open research issues that still need to be resolved.<\/jats:p>","DOI":"10.1145\/2926966","type":"journal-article","created":{"date-parts":[[2016,7,5]],"date-time":"2016-07-05T14:08:13Z","timestamp":1467727693000},"page":"1-35","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["Survey On Software Design-Pattern Specification Languages"],"prefix":"10.1145","volume":"49","author":[{"given":"Salman","family":"Khwaja","sequence":"first","affiliation":[{"name":"King Fahd University of Petroleum &amp; Minerals, Dhahran, Saudi Arabia"}]},{"given":"Mohammad","family":"Alshayeb","sequence":"additional","affiliation":[{"name":"King Fahd University of Petroleum &amp; Minerals, Dhahran, Saudi Arabia"}]}],"member":"320","published-online":{"date-parts":[[2016,6,29]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"World Congress on Formal Methods. 576--594","author":"Alencar P. S. C."},{"key":"e_1_2_1_2_1","volume-title":"A Pattern Language","author":"Alexander C."},{"key":"e_1_2_1_3_1","volume-title":"The Timeless Way of Building","author":"Alexander C."},{"key":"e_1_2_1_4_1","first-page":"2","article-title":"Design patterns for multimedia mobile applications","volume":"1","author":"Ali M. M.","year":"2014","journal-title":"Journal of Computer Science"},{"key":"e_1_2_1_5_1","doi-asserted-by":"crossref","unstructured":"H. Angel and J. J. Moreno-Navarro. 2007. Modeling and reasoning about design patterns in slam-sl. Design Pattern Formalization Techniques 206--235. H. Angel and J. J. Moreno-Navarro. 2007. Modeling and reasoning about design patterns in slam-sl. Design Pattern Formalization Techniques 206--235.","DOI":"10.4018\/978-1-59904-219-0.ch010"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPSE.2000.913228"},{"key":"e_1_2_1_7_1","volume-title":"Patterns and Software: Essential Concepts and Terminology. Accessed","author":"Appleton B.","year":"2016"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.5381\/jot.2015.14.1.a1"},{"key":"e_1_2_1_9_1","unstructured":"A. L. Baroni Y. G. Gueheneuc and H. Albin-Amiot. 2003. Design patterns formalization. Rapport De Recherche D\u00e9partement D\u2019informatique \u00c9cole Des Mines De Nantes 03 03. A. L. Baroni Y. G. Gueheneuc and H. Albin-Amiot. 2003. Design patterns formalization. Rapport De Recherche D\u00e9partement D\u2019informatique \u00c9cole Des Mines De Nantes 03 03."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/SEFM.2007.22"},{"key":"e_1_2_1_11_1","doi-asserted-by":"crossref","unstructured":"K. Beck and W. Cunningham. 1987. Using pattern languages for object oriented programs. OOPSLA - Conference on Object-Oriented Programming Systems Languages and Applications. K. Beck and W. Cunningham. 1987. Using pattern languages for object oriented programs. OOPSLA - Conference on Object-Oriented Programming Systems Languages and Applications.","DOI":"10.1145\/28697.28734"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1002\/smr.1674"},{"key":"e_1_2_1_13_1","volume-title":"SPINE: Language for Pattern Verification, IGI Global","author":"Blewitt A.","year":"2007"},{"key":"e_1_2_1_14_1","volume-title":"Toward Tool Support for Usage of Object-Oriented Design Patterns Expressed in Unified Modeling Language","author":"Bohdanowicz D."},{"key":"e_1_2_1_15_1","unstructured":"J. Bosch. 1996a. Language Support for Design Patterns. (1996) 197--210. J. Bosch. 1996a. Language Support for Design Patterns. (1996) 197--210."},{"key":"e_1_2_1_16_1","first-page":"39","article-title":"Relations as object model components","volume":"4","author":"Bosch J.","year":"1996","journal-title":"Journal of Programming Languages"},{"key":"e_1_2_1_17_1","unstructured":"F. Buschmann K. Henney and D. C. Schmidt. 2007. Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages Wiley Hoboken NNJ. F. Buschmann K. Henney and D. C. Schmidt. 2007. Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages Wiley Hoboken NNJ."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.asoc.2014.10.027"},{"key":"e_1_2_1_19_1","doi-asserted-by":"crossref","volume-title":"Advanced C++ Programming Styles and Idioms","author":"Coplien O.","DOI":"10.1109\/TOOLS.1997.681881"},{"key":"e_1_2_1_20_1","doi-asserted-by":"crossref","volume-title":"Advanced C++ Programming Styles and Idioms","author":"Coplien J. O.","DOI":"10.1109\/TOOLS.1997.681881"},{"key":"e_1_2_1_21_1","unstructured":"S. Crane J. Magee and N. Pryce. 1995. Design Patterns for Binding in Distributed Systems. Citeseer. S. Crane J. Magee and N. Pryce. 1995. Design Patterns for Binding in Distributed Systems. Citeseer."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5381\/jot.2010.9.6.a5"},{"key":"e_1_2_1_23_1","doi-asserted-by":"crossref","volume-title":"Ontology-Driven Pattern Selection and Matching in Software Design","author":"Noia T. Di","DOI":"10.1007\/978-3-319-09970-5_8"},{"key":"e_1_2_1_24_1","doi-asserted-by":"crossref","unstructured":"J. Dietrich and C. Elgar. 2007. An Ontology Based Representation of Software Design Patterns IGI Global Hershey PA. J. Dietrich and C. Elgar. 2007. An Ontology Based Representation of Software Design Patterns IGI Global Hershey PA.","DOI":"10.4018\/978-1-59904-219-0.ch012"},{"key":"e_1_2_1_25_1","volume-title":"Precise Specification of Design Patterns and Tool Support in their Application","author":"Eden A. H."},{"key":"e_1_2_1_26_1","unstructured":"A. H. Eden J. Y. Gil and A. Yehudai. 1996. A Formal Language for Design Patterns. Washington University St. Louis MO. A. H. Eden J. Y. Gil and A. Yehudai. 1996. A Formal Language for Design Patterns. Washington University St. Louis MO."},{"key":"e_1_2_1_27_1","doi-asserted-by":"crossref","unstructured":"A. H. Eden A. Yehudai and J. Gil. 1997. Precise Specification and Automatic Application of Design Patterns. IEEE 143--152. A. H. Eden A. Yehudai and J. Gil. 1997. Precise Specification and Automatic Application of Design Patterns. IEEE 143--152.","DOI":"10.1109\/ASE.1997.632834"},{"key":"e_1_2_1_28_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Erich Gamma R. H.","year":"1994"},{"key":"e_1_2_1_29_1","doi-asserted-by":"crossref","unstructured":"A. Flores A. Cechich and G. Aranda. 2007. A Generic Model of Object-Oriented Patterns Specified in RSL IGI Global Hershey PA. A. Flores A. Cechich and G. Aranda. 2007. A Generic Model of Object-Oriented Patterns Specified in RSL IGI Global Hershey PA.","DOI":"10.4018\/978-1-59904-219-0.ch003"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2008.4493309"},{"key":"e_1_2_1_31_1","volume-title":"Patterns of Software: Tales from the Software Community","author":"Gabriel R."},{"key":"e_1_2_1_32_1","doi-asserted-by":"crossref","volume-title":"LePUS: A Formal Language for Modeling Design Patterns","author":"Gasparis E.","DOI":"10.4018\/978-1-59904-219-0.ch016"},{"key":"e_1_2_1_33_1","unstructured":"A. H. Hannousse and Z. Liu. 2007. Towards A Calculus for Design Patterns. International Institute for Software Technology. A. H. Hannousse and Z. Liu. 2007. Towards A Calculus for Design Patterns. International Institute for Software Technology."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/640141.640146"},{"key":"e_1_2_1_35_1","doi-asserted-by":"crossref","unstructured":"G. Hedin. 1998. Language support for design patterns using attribute extension. Object-Oriented Technologies 137--140. G. Hedin. 1998. Language support for design patterns using attribute extension. Object-Oriented Technologies 137--140.","DOI":"10.1007\/3-540-69687-3_29"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1772070.1772087"},{"key":"e_1_2_1_37_1","unstructured":"A. Herranz and J. J. Moreno-Navarro. 2003. Formal agility. how much of each. Taller De Metodologias Agiles en el Desarrollo Del Software. JISBD 47--51. A. Herranz and J. J. Moreno-Navarro. 2003. Formal agility. how much of each. Taller De Metodologias Agiles en el Desarrollo Del Software. JISBD 47--51."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1016\/S1571-0661(04)80794-1"},{"key":"e_1_2_1_39_1","volume-title":"Focus group: Draft rec. Z. 151--goal-oriented requirements language (GRL)","author":"U."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-015-9361-0"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2007.1012"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/263698.263756"},{"key":"e_1_2_1_43_1","volume-title":"The 12th IEEE\/ACIS International Conference on Computer and Information Science. 16--20","author":"Khwaja S."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.1122"},{"key":"e_1_2_1_45_1","volume-title":"Role-Based Metamodeling Language for Specifying Design Patterns","author":"Kim D. K."},{"key":"e_1_2_1_46_1","volume-title":"Workshop Software Model Engineering (WiSME) with Unified Modeling Language Conference.","author":"Kim D. K."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00165-008-0090-7"},{"key":"e_1_2_1_48_1","first-page":"3","article-title":"A mathematical approach to object oriented design patterns","volume":"36","author":"Kodituwakku S.","year":"2009","journal-title":"Journal of the National Science Foundation of Sri Lanka"},{"key":"e_1_2_1_49_1","first-page":"11","article-title":"MCDMfJ : Mining creational design motifs from java source code","volume":"2","author":"Kumar P.","year":"2010","journal-title":"International Journal of Computer and Network Security"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/177492.177726"},{"key":"e_1_2_1_51_1","doi-asserted-by":"crossref","volume-title":"Formalising Design Patterns as Model Transformations","author":"Lano K.","DOI":"10.4018\/978-1-59904-219-0.ch008"},{"key":"e_1_2_1_52_1","doi-asserted-by":"crossref","unstructured":"A. Lauder and S. Kent. 1998. Precise visual specification of design patterns. ECOOP\u201998\u2014Object-Oriented Programming 114--134. A. Lauder and S. Kent. 1998. Precise visual specification of design patterns. ECOOP\u201998\u2014Object-Oriented Programming 114--134.","DOI":"10.1007\/BFb0054089"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/181610.181617"},{"key":"e_1_2_1_54_1","doi-asserted-by":"crossref","unstructured":"C. Fehling F. Leymann R. Retter W. Schupeck and P. Arbitter. 2014. Cloud Computing Patterns: Fundamentals to Design Build and Manage Cloud Applications. Springer. C. Fehling F. Leymann R. Retter W. Schupeck and P. Arbitter. 2014. Cloud Computing Patterns: Fundamentals to Design Build and Manage Cloud Applications. Springer.","DOI":"10.1007\/978-3-7091-1568-8"},{"key":"e_1_2_1_55_1","doi-asserted-by":"crossref","unstructured":"J. K. Mak C. S. Choy and D. P. Lun. 2004. Precise Modeling of Design Patterns in UML. IEEE 252--261. J. K. Mak C. S. Choy and D. P. Lun. 2004. Precise Modeling of Design Patterns in UML. IEEE 252--261.","DOI":"10.1109\/ICSE.2004.1317447"},{"key":"e_1_2_1_56_1","unstructured":"D. Mapelsden J. Hosking and J. Grundy. 2002. Design Pattern Modelling and Instantiation Using DPML. Australian Computer Society Inc. Sydney Australia. D. Mapelsden J. Hosking and J. Grundy. 2002. Design Pattern Modelling and Instantiation Using DPML. Australian Computer Society Inc. Sydney Australia."},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2336"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2008.87"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2013.07.004"},{"key":"e_1_2_1_60_1","volume-title":"Design Patterns Java Workbook","author":"Metsker S. J."},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.5555\/302163.302175"},{"key":"e_1_2_1_62_1","volume-title":"The 3rd Latin American Conference on Pattern Languages of Programming.","author":"Montes J. L. I.","year":"2003"},{"key":"e_1_2_1_63_1","unstructured":"OMG. 2005. Object Constraint Language Specification Version 2.0. Available: http:\/\/www.omg.org\/spec\/OCL\/. OMG. 2005. Object Constraint Language Specification Version 2.0. Available: http:\/\/www.omg.org\/spec\/OCL\/."},{"key":"e_1_2_1_64_1","volume-title":"Languages of Programs Conference.","author":"Pattern","year":"1994"},{"key":"e_1_2_1_65_1","doi-asserted-by":"crossref","unstructured":"Y. Pan and E. Stolterman. 2013. Pattern Language and HCI: Expectations and Experiences ACM Paris France. Y. Pan and E. Stolterman. 2013. Pattern Language and HCI: Expectations and Experiences ACM Paris France.","DOI":"10.1145\/2468356.2468716"},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2009.92"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.988711"},{"key":"e_1_2_1_68_1","doi-asserted-by":"crossref","unstructured":"R. R. Raje and S. Chinnasamy. 2001. eLePUS\u2014a Language for Specification of Software Design Patterns ACM Las Vegas NV. R. R. Raje and S. Chinnasamy. 2001. eLePUS\u2014a Language for Specification of Software Design Patterns ACM Las Vegas NV.","DOI":"10.1145\/372202.372480"},{"key":"e_1_2_1_69_1","first-page":"2","article-title":"A survey on design pattern recovery techniques","volume":"8","author":"Rasool G.","year":"2011","journal-title":"Journal of Computer Science"},{"key":"e_1_2_1_70_1","doi-asserted-by":"crossref","unstructured":"R. Ravindran R. Suchdev Y. Tanna and S. Swamy. 2014. Context Aware and Pattern Oriented Machine Learning Framework (CAPOMF) for Android. IEEE 1--7. R. Ravindran R. Suchdev Y. Tanna and S. Swamy. 2014. Context Aware and Pattern Oriented Machine Learning Framework (CAPOMF) for Android. IEEE 1--7.","DOI":"10.1109\/ICAETR.2014.7012912"},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1145\/263698.263739"},{"key":"e_1_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1096-9942(1996)2:1%3C3::AID-TAPO1%3E3.0.CO;2-#"},{"key":"e_1_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1007\/11951148_13"},{"key":"e_1_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1109\/APSEC.2000.896727"},{"key":"e_1_2_1_75_1","volume-title":"Reflective Specification: Applying a Reflective Language to Formal Specification","author":"Saeki M.","year":"1993"},{"key":"e_1_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11334-011-0178-8"},{"key":"e_1_2_1_77_1","doi-asserted-by":"crossref","volume-title":"Reverse Engineering of Design Patterns from Java Source Code","author":"Shi N.","DOI":"10.1109\/ASE.2006.57"},{"key":"e_1_2_1_78_1","first-page":"1232","article-title":"Empirical analysis of design pattern metrics for building modest formalized catalog","volume":"2","author":"Sriharsha A. V.","year":"2015","journal-title":"International Journal of Information Research and Review"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-13595-8_22"},{"key":"e_1_2_1_80_1","doi-asserted-by":"crossref","volume-title":"An Integrated Approach to Design Patterns Formalization","author":"Taibi T.","DOI":"10.4018\/978-1-59904-219-0.ch001"},{"key":"e_1_2_1_81_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0950-5849(02)000195-7"},{"key":"e_1_2_1_82_1","unstructured":"OMG UML. 2003. Superstructure Specification Version 2.4.1. Available: http:\/\/www.omg.org\/spec\/UML\/2.4.1\/2011. OMG UML. 2003. Superstructure Specification Version 2.4.1. Available: http:\/\/www.omg.org\/spec\/UML\/2.4.1\/2011."},{"key":"e_1_2_1_83_1","unstructured":"W3C. 2008. Extensible Markup Language (XML) Version 1.0. Available: http:\/\/www.w3.org\/TR\/REC-xml\/2008. W3C. 2008. Extensible Markup Language (XML) Version 1.0. Available: http:\/\/www.w3.org\/TR\/REC-xml\/2008."},{"key":"e_1_2_1_84_1","unstructured":"W3C. 2004. OWL Web Ontology Language Guide. Available: https:\/\/www.w3.org\/TR\/owl-guide\/. W3C. 2004. OWL Web Ontology Language Guide. Available: https:\/\/www.w3.org\/TR\/owl-guide\/."},{"key":"e_1_2_1_85_1","unstructured":"W3C. 2005. Resource Description Framework (RDF). Available: https:\/\/www.w3.org\/RDF\/. W3C. 2005. Resource Description Framework (RDF). Available: https:\/\/www.w3.org\/RDF\/."},{"key":"e_1_2_1_86_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2015.01.019"},{"key":"e_1_2_1_87_1","doi-asserted-by":"crossref","unstructured":"M. Zaki and P. Forbrig. 2011. User-Oriented Accessibility Patterns for Smart Environments Springer. M. Zaki and P. Forbrig. 2011. User-Oriented Accessibility Patterns for Smart Environments Springer.","DOI":"10.1007\/978-3-642-21602-2_35"},{"key":"e_1_2_1_88_1","first-page":"47","article-title":"Well-formedness, consistency and completeness of graphic models","volume":"6","author":"Zhu H.","year":"2006","journal-title":"Proceedings of UKSIM"}],"container-title":["ACM Computing Surveys"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2926966","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2926966","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:56:21Z","timestamp":1750222581000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2926966"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,6,29]]},"references-count":88,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2017,3,31]]}},"alternative-id":["10.1145\/2926966"],"URL":"https:\/\/doi.org\/10.1145\/2926966","relation":{},"ISSN":["0360-0300","1557-7341"],"issn-type":[{"value":"0360-0300","type":"print"},{"value":"1557-7341","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,6,29]]},"assertion":[{"value":"2015-12-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-06-29","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}