Engineering of Framework-Specific Modeling Languages

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]  James R. Larus,et al.  Mining specifications , 2002, POPL '02.

[2]  Suresh Jagannathan,et al.  Path-Sensitive Inference of Function Precedence Protocols , 2007, 29th International Conference on Software Engineering (ICSE'07).

[3]  Salvatore T. March,et al.  Design and natural science research on information technology , 1995, Decis. Support Syst..

[4]  Chad Anthony Austin,et al.  Renaissance : A Functional Shading Language , 2005 .

[5]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[6]  Mira Mezini,et al.  Mining framework usage changes from instantiation code , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[7]  Chao Liu,et al.  Efficient mining of iterative patterns for software specification discovery , 2007, KDD '07.

[8]  Tom Tourwé,et al.  Automated Support for Framework-Based Software Evolution , 2003 .

[9]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007, 11th International Software Product Line Conference (SPLC 2007).

[10]  Don Roberts,et al.  Evolving Frameworks A Pattern Language for Developing Object-Oriented Frameworks , 2004 .

[11]  Steve Cook,et al.  Domain-Specific Development with Visual Studio DSL Tools , 2007 .

[12]  Michal Antkiewicz,et al.  Framework-specific modeling languages , 2008 .

[13]  Michal Antkiewicz,et al.  Design Space of Heterogeneous Synchronization , 2007, GTTSE.

[14]  Michal Antkiewicz,et al.  Automatic extraction of framework-specific models from framework-based application code , 2007, ASE.

[15]  Jack Greenfield,et al.  Software factories: assembling applications with patterns, models, frameworks and tools , 2004, OOPSLA '03.

[16]  Mira Mezini,et al.  FrUiT: IDE support for framework understanding , 2006, ETX.

[17]  Michał Antkiewicz Ecore.fmp a Tool for Editing and Instantiating Class Models as Feature Models , 2008 .

[18]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[19]  Elnar Hajiyev,et al.  Semantics of static pointcuts in aspectJ , 2007, POPL '07.

[20]  Michal Antkiewicz,et al.  Fast extraction of high-quality framework-specific models from application code , 2009, Automated Software Engineering.

[21]  Amir Michail,et al.  Data mining library reuse patterns using generalized association rules , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[22]  Michal Antkiewicz,et al.  Framework-Specific modeling languages with round-trip engineering , 2006, MoDELS'06.

[23]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[24]  Arie van Deursen,et al.  Migrating Multi-page Web Applications to Single-page AJAX Interfaces , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[25]  Alan R. Hevner,et al.  Design Science in Information Systems Research , 2004, MIS Q..

[26]  Krzysztof Czarnecki,et al.  Sample Spaces and Feature Models: There and Back Again , 2008, 2008 12th International Software Product Line Conference.

[27]  Ralph E. Johnson,et al.  Documenting frameworks using patterns , 1992, OOPSLA '92.

[28]  Thomas R. G. Green,et al.  Cognitive dimensions of notations , 1990 .

[29]  John Krogstie,et al.  Process models representing knowledge for action: a revised quality framework , 2006, Eur. J. Inf. Syst..

[30]  Daniel L. Moody,et al.  Theoretical and practical issues in evaluating the quality of conceptual models: current state and future directions , 2005, Data Knowl. Eng..

[31]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[32]  Aseem Paul Singh Cheema,et al.  Struts2JSF: Framework Migration in J2EE Using Framework Specific Modeling Languages , 2007 .

[33]  Tao Xie,et al.  Parseweb: a programmer assistant for reusing open source code on the web , 2007, ASE.

[34]  Ralph Weischedel,et al.  PERFORMANCE MEASURES FOR INFORMATION EXTRACTION , 2007 .

[35]  Eleni Stroulia,et al.  API-Evolution Support with Diff-CatchUp , 2007, IEEE Transactions on Software Engineering.

[36]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[37]  Gail C. Murphy,et al.  Using structural context to recommend source code examples , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[38]  Kenny Wong,et al.  What can programmer questions tell us about frameworks? , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[39]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[40]  Rob Miller,et al.  Keyword programming in Java , 2008, Automated Software Engineering.

[41]  W. Nöth Handbook of Semiotics , 2001 .

[42]  David Lorge Parnas,et al.  A rational design process: How and why to fake it , 1986, IEEE Transactions on Software Engineering.

[43]  David Osborne,et al.  J2EE AntiPatterns , 2003 .

[44]  John Makhoul Information Extraction from speech , 2006, SLT.

[45]  Krzysztof Czarnecki,et al.  Towards a Generic Infrastructure for Framework-Specific Integrated Development Environment Extensions , 2008 .

[46]  Peter Sommerlad,et al.  Active Guidance of Framework Development , 1995, Softw. Concepts Tools.

[47]  Sriram Sankaranarayanan,et al.  Mining library specifications using inductive logic programming , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[48]  Kajal T. Claypool,et al.  XSnippet: mining For sample code , 2006, OOPSLA '06.

[49]  Eelco Visser,et al.  Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions , 2004, OOPSLA '04.

[50]  Michal Antkiewicz,et al.  FeaturePlugin: feature modeling plug-in for Eclipse , 2004, eclipse '04.

[51]  Marcelo R. Campo,et al.  SmartBooks: a step beyond active-cookbooks to aid in framework instantiation , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).

[52]  Jennifer Ball,et al.  The Java? EE 5 Tutorial , 2006 .

[53]  Juha-Pekka Tolvanen,et al.  Domain-Specific Modeling: Enabling Full Code Generation , 2008 .

[54]  Bernhard Rumpe,et al.  Meaningful modeling: what's the semantics of "semantics"? , 2004, Computer.

[55]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[56]  R. Holmes,et al.  Using structural context to recommend source code examples , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[57]  Maria Kutar,et al.  Cognitive Dimensions of Notations: Design Tools for Cognitive Technology , 2001, Cognitive Technology.

[58]  K. Czarnecki,et al.  Cardinality-Based Feature Modeling and Constraints : A Progress Report , 2005 .

[59]  Jian Pei,et al.  Mining API patterns as partial orders from source code: from usage scenarios to specifications , 2007, ESEC-FSE '07.

[60]  Kyo Chul Kang,et al.  Feature Dependency Analysis for Product Line Component Design , 2004, ICSR.

[61]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[62]  Rastislav Bodík,et al.  Jungloid mining: helping to navigate the API jungle , 2005, PLDI '05.

[63]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[64]  Forrest Shull,et al.  Investigating Reading Techniques for Object-Oriented Framework Learning , 2000, IEEE Trans. Software Eng..

[65]  Andreas Zeller,et al.  Detecting object usage anomalies , 2007, ESEC-FSE '07.

[66]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[67]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[68]  M. Antkiewicz,et al.  Czarnecki Framework-Specific Modeling Languages Examples And Algorithms , 2007 .

[69]  H. James Hoover,et al.  Using SCL to specify and check design intent in source code , 2006, IEEE Transactions on Software Engineering.

[70]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[71]  Jia Liu,et al.  Feature oriented refactoring of legacy applications , 2006, ICSE '06.

[72]  Krzysztof Czarnecki,et al.  On-demand materialization of aspects for application development , 2008 .

[73]  Arne Sølvberg,et al.  Understanding quality in conceptual modeling , 1994, IEEE Software.

[74]  Sven Apel,et al.  When to use features and aspects?: a case study , 2006, GPCE '06.

[75]  Maria Kutar,et al.  A Comparison of Empirical Study and Cognitive Dimensions Analysis in the Evaluation of UML Diagrams , 2002, PPIG.

[76]  Bernhard Rumpe,et al.  UML-F: A Modeling Language for Object-Oriented Frameworks , 2000, ECOOP.

[77]  E KrasnerGlenn,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[78]  Ralph E. Johnson,et al.  The role of refactorings in API evolution , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[79]  H. James Hoover,et al.  Fcl: automatically detecting structural errors in framework-based development , 2004 .

[80]  Matthew Stephan,et al.  Detection of Java EE EJB Antipattern Instances using Framework-Specific Models , 2009 .

[81]  David Garlan,et al.  Design fragments make using frameworks easier , 2006, OOPSLA '06.

[82]  Kai Koskimies,et al.  Generating Application Development Environments for Java Frameworks , 2001, GCSE.

[83]  Krzysztof Czarnecki,et al.  Supporting Framework Use via Automatically Extracted Concept-Implementation Templates , 2009, ECOOP.

[84]  Manuvir Das,et al.  Perracotta: mining temporal API rules from imperfect traces , 2006, ICSE.

[85]  Volker Gruhn,et al.  Model-Driven Software Development , 2005 .