This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Engineering of Framework-Specific Modeling Languages
November/December 2009 (vol. 35 no. 6)
pp. 795-824
Michał Antkiewicz, University of Waterloo, Waterloo
Krzysztof Czarnecki, University of Waterloo, Waterloo
Matthew Stephan, University of Waterloo, Waterloo
Framework-specific modeling languages (FSMLs) help developers build applications based on object-oriented frameworks. FSMLs model abstractions and rules of application programming interfaces (APIs) exposed by frameworks and can express models of how applications use APIs. Such models aid developers in understanding, creating, and evolving application code. We present four exemplar FSMLs and a method for engineering new FSMLs. The method was created postmortem by generalizing the experience of building the exemplars and by specializing existing approaches to domain analysis, software development, and quality evaluation of models and languages. The method is driven by the use cases that the FSML under development should support and the evaluation of the constructed FSML is guided by two existing quality frameworks. The method description provides concrete examples for the engineering steps, outcomes, and challenges. It also provides strategies for making engineering decisions. Our work offers a concrete example of software language engineering and its benefits. FSMLs capture existing domain knowledge in language form and support application code understanding through reverse engineering, application code creation through forward engineering, and application code evolution through round-trip engineering.

[1] Eclipse Documentation—Version 3.3: Editors, Eclipse Foundation, http://help.eclipse.org/help33/index.jsp?topic=/ org.eclipse. platform.doc.isv/guide editors.htm, 2009.
[2] D. Springgay, Creating an Eclipse View, http://www.eclipse.org/articles/viewArticle ViewArticle2.html, Nov. 2001.
[3] Java Tutorials, Lesson: Applets, Sun Microsystems, http://java.sun. com/docs/books/tutorial/ deployment/appletindex.html, 2009.
[4] M. Antkiewicz and K. Czarnecki, “Framework-Specific Modeling Languages with Round-Trip Engineering,” Proc. Int'l Conf. Model Driven Eng. Languages and Systems, pp. 692-706, 2006.
[5] M. Antkiewicz, “Framework-Specific Modeling Languages,” PhD dissertation, Univ. of Waterloo, http://hdl.handle.net/100124030, 2008.
[6] I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development Process. Addison-Wesley Longman Publishing Co., Inc., 1999.
[7] K. Kang, S. Cohen, J. Hess, W. Nowak, and S. Peterson, “Feature-Oriented Domain Analysis (FODA) Feasibility Study,” Technical Report CMU/SEI-90TR-21, Software Eng. Inst., Carnegie Mellon Univ., 1990.
[8] A.R. Hevner, S.T. March, J. Park, and S. Ram, “Design Science in Information Systems Research,” Management Information Systems (MIS) Quarterly, vol. 28, no. 1, pp. 75-105, 2004.
[9] O.I. Lindland, G. Sindre, and A. Sølvberg, “Understanding Quality in Conceptual Modeling,” IEEE Software, vol. 11, no. 2, pp. 42-49, Mar./Apr. 1994.
[10] J. Krogstie, G. Sindre, and H. Jørgensen, “Process Models Representing Knowledge for Action: A Revised Quality Framework,” European J. Information Systems, vol. 15, no. 1, pp. 91-102, 2006.
[11] T.R.G. Green, “Cognitive Dimensions of Notations,” Proc. Fifth Conf. British Computer Soc., Human-Computer Interaction Specialist Group on People and Computers V, A. Sutcliffe and L. Macaulay, eds., pp. 443-460, 1989.
[12] T.R.G. Green and M. Petre, “Usability Analysis of Visual Programming Environments: A `Cognitive Dimensions' Framework,” J. Visual Languages & Computing, vol. 7, no. 2, pp. 131-174, 1996.
[13] S.T. March and G.F. Smith, “Design and Natural Science Research on Information Technology,” Decision Support Systems, vol. 15, no. 4, pp. 251-266, 1995.
[14] M. Antkiewicz, T.T. Bartolomei, and K. Czarnecki, “Fast Extraction of High-Quality Framework-Specific Models from Application Code,” Automated Software Eng., vol. 16, no. 1, pp. 101-144, Mar. 2009.
[15] K. Czarnecki, S. Helsen, and U. Eisenecker, “Formalizing Cardinality-Based Feature Models and Their Specialization,” Software Process Improvement and Practice, vol. 10, no. 1, pp. 7-29, special issue on software variability process and management, 2005.
[16] M. Stephan and M. Antkiewicz, “Ecore.FMP: A Tool for Editing and Instantiating Class Models as Feature Models,” Technical Report #2008-08, ECE, Univ. of Waterloo, http://gp.uwaterloo. ca/tr2008-stephan-ecore-fmp.pdf , 2008.
[17] K. Czarnecki and U.W. Eisenecker, Generative Programming: Methods, Tools, and Applications. Addison-Wesley Publishing Co., 2000.
[18] M. Antkiewicz and K. Czarnecki, “Design Space of Heterogeneous Synchronization,” Generative and Transformational Techniques in Software Eng. II, pp. 3-46, Springer, 2008.
[19] S. Khanna, K. Kunal, and B.C. Pierce, “A Formal Investigation of Diff3,” FSTTCS 2007: Foundations of Software Technology and Theoretical Computer Science, Springer, 2007.
[20] J. Makhoul, F. Kubala, R. Schwartz, and R. Weischedel, “Performance Measures for Information Extraction,” Proc. Defense Advanced Research Projects Agency (DARPA) Broadcast News Workshop, pp. 249-252, 1999.
[21] W. Nöth, Handbook of Semiotics. Indiana Univ. Press, 1996.
[22] M. Stephan, “Discovery of Java EE 5 EJB Antipattern Instances Using Framework-Specific Models,” master's thesis, Univ. of Waterloo, 2009.
[23] G. Fairbanks, D. Garlan, and W. Scherlis, “Design Fragments Make Using Frameworks Easier,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, pp.75-88, 2006.
[24] B. Dudney, S. Asbury, J. Krozak, and K. Wittkopf, J2EE AntiPatterns. Wiley, 2003.
[25] A.P. Cheema, “Struts2JSF—Framework Migration in J2EE Using Framework-Specific Modeling Languages,” master's thesis, Univ. of Waterloo, http://hdl.handle.net/100123031, 2007.
[26] Javadoc for Package org.eclipse.ui.part, Eclipse Foundation, http://help.eclipse.org/help33/index.jsp?topic=/ org.eclipse.platform. doc.isv/reference/ api/org/eclipse/ui/partpackage-summary. html , 2007.
[27] C. Pandit, “Make Your Eclipse Applications Richer with View Linking,” http://www-128.ibm.com/developerworks/ opensource/ libraryos-ecllink/, 2005.
[28] M.R. Hoffmann, Eclipse Workbench: Using the Selection Service, http://www.eclipse.org/articles/Article-WorkbenchSelections article.html, Apr. 2006.
[29] Struts Javadoc, Apache Software Foundation, http://struts.apache. org/1.3.5/apidocsindex.html , 2006.
[30] Struts 1.35 dtd, Apache Software Foundation, http://struts. apache.org/1.3.5/dtdsstruts-config_1_3.dtd , July 2006.
[31] Struts 1.35 User Guide, Apache Software Foundation, http://struts.apache.org/1.3.5/userGuide introduction.html, July 2006.
[32] A Walking Tour of the Struts MailReader Demonstration Application, Apache Software Foundation, http://svn.apache.org/viewvc/struts/struts1/ trunk/apps/mailreader/src/main/webapp tour.html?revision=481833, 2009.
[33] Lesson: Applets, Sun Microsystems, Inc., http://java.sun.com/docs/books/tutorial/ deployment/appletindex.html, Feb. 2008.
[34] Processes and Threads, Sun Microsystems, Inc., http://java.sun. com/docs/books/tutorial/ essential/concurrencyprocthread. html, Feb. 2008.
[35] JavaTM Platform Enterprise Edition, v 5.0 API Specifications, Sun Microsystems, Inc., http://java.sun.com/javaee/5/docsapi/, 2007.
[36] L. DeMichiel, EJB Core Contracts and Requirements, Sun Microsystems, Inc., May 2006.
[37] Enterprise JavaBeans Deployment Descriptor Schema, Sun Microsystems, Inc., http://java.sun.com/xml/ns/javaeeejb-jar_3_0.xsd , May 2006.
[38] E. Jendrock, J. Ball, D. Carson, I. Evans, S. Fordin, and K. Haase, The Java EE 5 Tutorial, Sun Microsystems, Inc., http://java.sun. com/javaee/5/docs/tutorial/ docindex.html, Sept. 2007.
[39] K. Lee and K.C. Kang, “Feature Dependency Analysis for Product Line Component Design,” Proc. Int'l Conf. Software Reuse, pp. 69-85, 2004.
[40] M. Antkiewicz, T. Tonelli Bartolomei, and K. Czarnecki, “Automatic Extraction of Framework-Specific Models from Framework-Based Application Code,” Proc. Int'l Conf. Automated Software Eng., pp. 214-223, 2007.
[41] A. Blackwell and T. Green, “A Cognitive Dimensions Questionnaire,” http://www.cl.cam.ac.uk/afb21/CognitiveDimensions CDquestionnaire.pdf, Feb. 2007.
[42] D.L. Parnas and P.C. Clements, “A Rational Design Process: How and Why to Fake It,” IEEE Trans. Software Eng., vol. 12, no. 2, pp.251-257, Feb. 1986.
[43] D. Hou, K. Wong, and H.J. Hoover, “What Can Programmer Questions Tell Us about Frameworks?” Proc. Int'l Workshop Program Comprehension, pp. 87-96, 2005.
[44] F. Shull, F. Lanubile, and V.R. Basili, “Investigating Reading Techniques for Object-Oriented Framework Learning,” IEEE Trans. Software Eng., vol. 26, no. 11, pp. 1101-1118, Nov. 2000.
[45] M. Antkiewicz and K. Czarnecki, “Framework-Specific Modeling Languages; Examples and Algorithms,” Technical Report 2007-18, Electrical and Computer Eng. Dept., Univ. of Waterloo, 2007.
[46] H. Lee, M. Antkiewicz, and K. Czarnecki, “Towards a Generic Infrastructure for Framework-Specific Integrated Development Environment Extensions,” Proc. Int'l Workshop Domain-Specific Program Development, 2008.
[47] G. Little and R.C. Miller, “Keyword Programming in Java,” Automated Software Eng., vol. 16, no. 1, pp. 37-71, Mar. 2008.
[48] D. Harel and B. Rumpe, “Meaningful Modeling: What's the Semantics of “Semantics?” Computer, vol. 37, no. 10, pp. 64-72, Oct. 2004.
[49] P. Avgustinov, E. Hajiyev, N. Ongkingco, O. de Moor, D. Sereni, J. Tibble, and M. Verbaere, “Semantics of Static Pointcuts in AspectJ,” SIGPLAN Notices, vol. 42, pp. 11-23, 2007.
[50] C. Allan, P. Avgustinov, A.S. Christensen, L. Hendren, S. Kuzins, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble, “Adding Trace Matching with Free Variables to AspectJ,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 345-364, 2005.
[51] M. Antkiewicz and K. Czarnecki, “FeaturePlugin: Feature Modeling Plug In for Eclipse,” Proc. Eclipse Technology eXchange Workshop, pp. 67-72, 2004.
[52] K. Czarnecki and P. Kim, “Cardinality-Based Feature Modeling and Constraints: A Progress Report,” Proc. Int'l Workshop Software Factories, OOPSLA, 2005.
[53] K. Czarnecki and A. Wasowski, “Feature Diagrams and Logics: There and Back Again,” Proc. Int'l Software Product Line Conf., pp.23-34, 2007.
[54] D. Roberts and R. Johnson, “Evolving Frameworks: A Pattern Language for Developing Object-Oriented Frameworks,” Proc. Conf. Pattern Languages of Programs, 1996.
[55] M. Mernik, J. Heering, and A.M. Sloane, “When and How to Develop Domain-Specific Languages,” ACM Computing Surveys, vol. 37, no. 4, pp. 316-344, 2005.
[56] M. Bravenboer and E. Visser, “Concrete Syntax for Objects: Domain-Specific Language Embedding and Assimilation without Restrictions,” Proc. Conf. Object-Oriented Programming Systems Languages and Applications, pp. 365-383, 2004.
[57] T. Stahl and M. Voelter, Model-Driven Software Development, first ed. Wiley, May 2006.
[58] T. Clark, P. Sammut, and J. Willans, Applied Metamodeling. A Foundation for Language Driven Development, second ed. Ceteva, 2008.
[59] J. Greenfield, K. Short, S. Cook, and S. Kent, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, 2004.
[60] Meta Object Facility (mof) Core Specification v. 2.0, Object Management Group, Inc., http://www.omg.orgmof/, Jan. 2008.
[61] F. Budinsky, S.A. Brodsky, and E. Merks, Eclipse Modeling Framework. Pearson Education, 2003.
[62] S. Cook, G. Jones, S. Kent, and A.C. Wills, Domain-Specific Development with Visual Studio DSL Tools. Addison-Wesley Professional, 2007.
[63] K. Smolander, “GOPRR: A Proposal for a Meta Level Model,” Univ. of Jyväskylä, 1993.
[64] S. Kelly and J.-P. Tolvanen, Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE CS Press, 2008.
[65] D.L. Moody, “Theoretical and Practical Issues in Evaluating the Quality of Conceptual Models: Current State and Future Directions,” Data and Knowledge Eng., vol. 55, no. 3, pp. 243-276, 2005.
[66] M. Kutar, C. Britton, and T. Barker, “A Comparison of Empirical Study and Cognitive Dimensions Analysis in the Evaluation of UML Diagrams,” Proc. Workshop Psychology of Programming Interest Group, pp. 1-14, 2002.
[67] C.A. Austin, “Renaissance: A Functional Shading Language,” master's thesis, Iowa State Univ., 2005.
[68] A.F. Blackwell, C. Britton, A.L. Cox, T.R.G. Green, C.A. Gurr, G.F. Kadoda, M. Kutar, M. Loomes, C.L. Nehaniv, M. Petre, C. Roast, C. Roe, A. Wong, and R.M. Young, “Cognitive Dimensions of Notations: Design Tools for Cognitive Technology,” Proc. Int'l Conf. Cognitive Technology, pp. 325-341, 2001.
[69] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.V. Lopes, J.-M. Loingtier, and J. Irwin, “Aspect-Oriented Programming,” Proc. European Conf. Object-Oriented Programming, pp. 220-242, 1997.
[70] S. Apel and D. Batory, “When to Use Features and Aspects?: A Case Study,” Proc. Int'l Conf. Generative Programming and Component Eng., pp. 59-68, 2006.
[71] C.H.P. Kim, K. Czarnecki, and D. Batory, “On-Demand Materialization of Aspects for Application Development,” Proc. Workshop Software Eng. Properties of Languages and Aspect Technologies, pp. 1-6, 2008.
[72] D. Batory, J.N. Sarvela, and A. Rauschmayer, “Scaling Step-Wise Refinement,” Proc. Int'l Conf. Software Eng., pp. 187-197, 2003.
[73] J. Liu, D. Batory, and C. Lengauer, “Feature Oriented Refactoring of Legacy Applications,” Proc. Int'l Conf. Software Eng., pp.112-121, 2006.
[74] G.E. Krasner and S.T. Pope, “A Cookbook for Using the Model-View Controller User Interface Paradigm in Smalltalk-80,” J.Object Oriented Programming, vol. 1, no. 3, pp. 26-49, 1988.
[75] W. Pree, G. Pomberger, A. Schappert, and P. Sommerlad, “Active Guidance of Framework Development,” Software—Concepts and Tools, vol. 3, no. 16, 1995.
[76] A. Ortigosa and M. Campo, “Smartbooks: A Step Beyond Active-Cookbooks to Aid in Framework Instantiation,” Proc. Int'l Conf. Technology of Object-Oriented Languages and Systems, p.131, 1999.
[77] R.E. Johnson, “Documenting Frameworks Using Patterns,” Proc. Conf. Object-Oriented Programming Systems Languages and Applications, pp. 63-76, 1992.
[78] M. Fontoura, W. Pree, and B. Rumpe, “UML-F: A Modeling Language for Object-Oriented Frameworks,” Proc. European Conf. Object-Oriented Programming, pp. 63-82, 2000.
[79] M. Hakala, J. Hautamäki, K. Koskimies, J. Paakki, A. Viljamaa, and J. Viljamaa, “Generating Application Development Environments for Java Frameworks,” Proc. Third Int'l Conf. Generative and Component-Based Software Eng., pp. 163-176, 2001.
[80] T. Tourwé, “Automated Support for Framework-Based Software Evolution,” PhD dissertation, Vrije Universiteit Brussel, 2002.
[81] G. Ammons, R. Bodík, and J.R. Larus, “Mining Specifications,” Proc. Symp. Principles of Programming Languages, pp. 4-16, 2002.
[82] J. Yang, D. Evans, D. Bhardwaj, T. Bhat, and M. Das, “Perracotta: Mining Temporal API Rules from Imperfect Traces,” Proc. Int'l Conf. Software Eng., pp. 282-291, 2006.
[83] D. Lo, S.-C. Khoo, and C. Liu, “Efficient Mining of Iterative Patterns for Software Specification Discovery,” Proc. Int'l Conf. Knowledge Discovery and Data Mining, pp. 460-469, 2007.
[84] S. Sankaranarayanan, F. Ivanči, and A. Gupta, “Mining Library Specifications Using Inductive Logic Programming,” Proc. Int'l Conf. Software Eng., pp. 131-140, 2008.
[85] A. Wasylkowski, A. Zeller, and C. Lindig, “Detecting Object Usage Anomalies,” Proc. Symp. Foundations of Software Eng., 2007.
[86] M. Acharya, T. Xie, J. Pei, and J. Xu, “Mining API Patterns as Partial Orders from Source Code: From Usage Scenarios to Specifications,” Proc. Symp. Foundations of Software Eng., 2007.
[87] M.K. Ramanathan, A. Grama, and S. Jagannathan, “Path-Sensitive Inference of Function Precedence Protocols,” Proc. Int'l Conf. Software Eng., pp. 240-250, 2007.
[88] D. Mandelin, L. Xu, R. Bodík, and D. Kimelman, “Jungloid Mining: Helping to Navigate the API Jungle,” Proc. Conf. Programming Language Design and Implementation, pp. 48-61, 2005.
[89] S. Thummalapenta and T. Xie, “PARSEWeb: A Programmer Assistant for Reusing Open Source Code on the Web,” Proc. Int'l Conf. Automated Software Eng., pp. 204-213, 2007.
[90] N. Sahavechaphan and K. Claypool, “XSnippet: Mining for Sample Code,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 413-430, 2006.
[91] R. Holmes and G.C. Murphy, “Using Structural Context to Recommend Source Code Examples,” Proc. Int'l Conf. Software Eng., pp. 117-125, 2005.
[92] M. Bruch, T. Schafer, and M. Mezini, “FrUiT: IDE Support for Framework Understanding,” Proc. Workshop Eclipse Technology eXchange, pp. 55-59, 2006.
[93] A. Michail, “Data Mining Library Reuse Patterns using Generalized Association Rules,” Proc. Int'l Conf. Software Eng., pp. 167-176, 2000.
[94] A. Heydarnoori, “Supporting Framework Use via Automatically Extracted Concept Implementation Templates,” PhD dissertation, Univ. of Waterloo, 2009.
[95] A. Heydarnoori, K. Czarnecki, and T. Tonelli Bartolomei, “Supporting Framework Use via Automatically Extracted Concept Implementation Templates,” Proc. European Conf. Object-Oriented Programming, 2009.
[96] K. Czarnecki, S. She, and A. Wasowski, “Sample Spaces and Feature Models: There and Back Again,” Proc. Int'l Software Product Line Conf., pp. 22-31, 2008.
[97] D. Hou and H. Hoover, “Using SCL to Specify and Check Design Intent in Source Code,” IEEE Trans. Software Eng., vol. 32, no. 6, pp. 404-423, June 2006.
[98] D. Hou, “FCL: Automatically Detecting Structural Errors in Framework-Based Development,” PhD dissertation, Univ. of Alberta, 2004.
[99] D. Dig and R. Johnson, “The Role of Refactorings in API Evolution,” Proc. Int'l Conf. Software Maintenance, pp. 389-398, 2005.
[100] Z. Xing and E. Stroulia, “API-Evolution Support with Diff-CatchUp,” IEEE Trans. Software Eng., vol. 33, no. 12, pp. 818-836, Dec. 2007.
[101] T. Schäfer, J. Jonas, and M. Mezini, “Mining Framework Usage Changes from Instantiation Code,” Proc. Int'l Conf. Software Eng., pp. 471-480, 2008.
[102] A. Mesbah and A. van Deursen, “Migrating Multi-Page Web Applications to Single-Page AJAX Interfaces,” Proc. European Conf. Software Maintenance and Reeng., pp. 181-190, 2007.

Index Terms:
Framework-specific modeling language, domain-specific language, object-oriented framework, application programming interface (API), feature model, framework-specific model, forward engineering, reverse engineering, round-trip engineering, evolution, code pattern, mapping.
Citation:
Michał Antkiewicz, Krzysztof Czarnecki, Matthew Stephan, "Engineering of Framework-Specific Modeling Languages," IEEE Transactions on Software Engineering, vol. 35, no. 6, pp. 795-824, Nov.-Dec. 2009, doi:10.1109/TSE.2009.30
Usage of this product signifies your acceptance of the Terms of Use.