Framework-specific modeling languages

Framework-specific modeling languages (FSMLs) help developers build applications based on object-oriented frameworks. FSMLs formalize abstractions and rules of the framework's application programming interfaces (APIs) and can express models of how applications use an API. Such models, referred to as framework-specific models, aid developers in understanding, creating, and evolving application code. We present the concept of FSMLs, propose a way of specifying their abstract syntax and semantics, and show how such language specifications can be interpreted to provide reverse, forward, and round-trip engineering of framework-specific models and framework-based application code. We present a method for engineering FSMLs that was extracted post-mortem from the experience of building four such languages. The method is driven by the use cases that the FSMLs under development are to support. We present the use cases, the overall process, and its instantiation for each language. The presentation focuses on providing concrete examples for engineering steps, outcomes, and challenges. It also provides strategies for making engineering decisions. The presented method and experience are aimed at framework developers and tool builders who are interested in engineering new FSMLs. Furthermore, the method represents a necessary step in the maturation of the FSML concept. Finally, the presented work offers a concrete example of software language engineering. FSML engineering formalizes existing domain knowledge that is not present in language form and makes a strong case for the benefits of such formalization. We evaluated the method and the exemplar languages. The evaluation is both empirical and analytical. The empirical evaluation involved measuring the precision and recall of reverse engineering and verifying the correctness or forward and round-trip engineering. The analytical evaluation focused on the generality of the method.

[1]  Spencer Rugaber,et al.  Domain analysis and reverse engineering , 1994, Proceedings 1994 International Conference on Software Maintenance.

[2]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[3]  John Tang Boyland,et al.  Remote attribute grammars , 2005, JACM.

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

[5]  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).

[6]  Cláudio Sant'Anna,et al.  On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[7]  Michal Antkiewicz,et al.  Engineering of Framework-Specific Modeling Languages , 2009, IEEE Transactions on Software Engineering.

[8]  William M. Waite,et al.  Modularity and reusability in attribute grammars , 1994, Acta Informatica.

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

[10]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[11]  Elnar Hajiyev,et al.  codeQuest: Scalable Source Code Queries with Datalog , 2006, ECOOP.

[12]  Kris De Volder JQuery: A Generic Code Browser with a Declarative Configuration Language , 2006, PADL.

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

[14]  Ralph Johnson Documenting frameworks using patterns , 1992, OOPSLA 1992.

[15]  Guillermo Arango,et al.  Domain Analysis and Software Systems Modeling , 1991 .

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

[17]  Hidehiko Masuhara,et al.  in Aspect-Oriented Programming , 2003 .

[18]  Krzysztof Czarnecki,et al.  Feature models are views on ontologies , 2006, 10th International Software Product Line Conference (SPLC'06).

[19]  Kent Beck,et al.  Contributing to Eclipse - principles, patterns, and plug-ins , 2003, The Eclipse series.

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

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

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

[23]  Ondrej Lhoták,et al.  Optimising aspectJ , 2005, PLDI '05.

[24]  Tomi Männistö,et al.  A unified conceptual foundation for feature modelling , 2006 .

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

[26]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[27]  Barbara G. Ryder,et al.  Constructing Accurate Application Call Graphs For Java To Model Library Callbacks , 2006, 2006 Sixth IEEE International Workshop on Source Code Analysis and Manipulation.

[28]  Jan Bosch,et al.  Framework Problems and Experiences , 1999 .

[29]  Peter Kim,et al.  On the Relationship between Feature Models and Ontologies , 2006 .

[30]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

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

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

[33]  Harry M. Sneed,et al.  Restructuring of COBOL/CICS legacy systems , 2002, Sci. Comput. Program..

[34]  Jim Hugunin,et al.  Advice weaving in AspectJ , 2004, AOSD '04.

[35]  Oege de Moor,et al.  JunGL: a scripting language for refactoring , 2006, ICSE.

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

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

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

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

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

[41]  Itay Maman,et al.  JTL: the Java tools language , 2006, OOPSLA '06.

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

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

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

[45]  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).

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

[47]  Nicola Guarino,et al.  Supporting ontological analysis of taxonomic relationships , 2001, Data Knowl. Eng..

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

[49]  Spencer Rugaber,et al.  The use of domain knowledge in program understanding , 2000, Ann. Softw. Eng..

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

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

[52]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[53]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007 .

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

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

[56]  Michal Antkiewicz,et al.  Round-trip engineering of eclipse plug-ins using eclipse workbench part interaction FSML , 2006, OOPSLA '06.

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

[58]  Atanas Rountev,et al.  Interprocedural Dataflow Analysis in the Presence of Large Libraries , 2006, CC.

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

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

[61]  Douglas Samuel Kirk,et al.  Identifying and addressing problems in framework reuse , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

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

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

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

[65]  Michal Antkiewicz Round-Trip Engineering of Framework-Based Software using Framework-Specific Modeling Languages , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[66]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

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

[68]  Laurie J. Hendren,et al.  Optimizing Java Bytecode Using the Soot Framework: Is It Feasible? , 2000, CC.