ABSTRACT
Framework-specific models represent the design of pplicationcode from the framework viewpoint by showing how framework-provided concepts are implemented in the code. In this paper, we describe an experimental study of the static analyses necessary to automatically retrieve such models from application code. We reverse engineer a number of applications based on three open-source frameworks and evaluate the quality of the retrieved models. The models are expressed using framework-specific modeling languages(FSMLs), each designed for one of the open-source frameworks. For reverse engineering, we use prototype implementations of the three FSMLs. Our results show that for the considered frameworks rather simple code analysesare sufficient for automatically retrieving framework-specific models form a large body of application code with high precision and recall
- C. Allan, P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, O. Lhotak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Adding trace matching with free variables to AspectJ. SIGPLAN Not., 40(10):345--364, 2005. Google ScholarDigital Library
- M. Antkiewicz and K. Czarnecki. Framework-specific modeling languages with round-trip engineering. In MoDELS, volume 4199 of LNCS, pages 692--706, 2006. Google ScholarDigital Library
- M. Antkiewicz and K. Czarnecki. Framework-specific modeling languages; examples and algorithms. Technical Report 2007--18, ECE, U. of Waterloo, 2007.Google Scholar
- Apache Software Foundation. Roller Weblogger 3.0. http://rollerweblogger.org/.Google Scholar
- Apache Software Foundation. Struts User's Guide. http://struts.apache.org/1.3.8/index.html.Google Scholar
- P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhotak, O. Lhotak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Optimising AspectJ. In PLDI'05, pages 117--128, 2005. Google ScholarDigital Library
- T. Cohen, J. Y. Gil, and I. Maman. JTL: the Java tools language. In OOPSLA'06, pages 89--108, 2006. Google ScholarDigital Library
- K. Czarnecki and U. W. Eisenecker. Generative programming: methods, tools, and applications; Appendix A: Conceptual Modeling, pages 721--737. ACM Press/Addison-Wesley Publishing Co., 2000. Google ScholarDigital Library
- K. De Volder. JQuery: A generic code browser with a declarative configuration language. In PADL'06, volume 3819 of LNCS, pages 88102, 2006. Google ScholarDigital Library
- Eclipse Foundation. Java Development Tools. http://www.eclipse.org/jdt/.Google Scholar
- G. Fairbanks, D. Garlan, and W. Scherlis. Design fragments make using frameworks easier. In OOPSLA'06, pages 75--88, 2006. Google ScholarDigital Library
- E. Hajiyev, M. Verbaere, and O. de Moor. CodeQuest: Scalable source code queries with datalog. In ECOOP'06, volume 4067 of LNCS, pages 227, 2006. Google ScholarDigital Library
- E. Hilsdale and J. Hugunin. Advice weaving in AspectJ. In AOSD '04, pages 26--35, 2004. Google ScholarDigital Library
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In ECOOP'01, pages 327--355, 2001. Google ScholarDigital Library
- G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP'97, pages 220--242, 1997.Google ScholarCross Ref
- B. A. Kitchenham, S. L. Pfleeger, L. M. Pickard, P. W. Jones, D. C. Hoaglin, K. E. Emam, and J. Rosenberg. Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng., 28(8):721--734, 2002. Google ScholarDigital Library
- H. Masuhara and K. Kawauchi. Dataflow pointcut in aspect-oriented programming. In APLAS'03, volume 2895 of LNCS, pages 105--121, 2003.Google ScholarCross Ref
- C. Pandit. Make your Eclipse applications richer with view linking, 2005. http://www-128.ibm.com/developerworks/opensource/library/os-ecllink/.Google Scholar
- A. Rountev, S. Kagan, and T. J. Marlowe. Interprocedural dataflow analysis in the presence of large libraries. In CC'06, volume 3923 of LNCS, pages 216, 2006. Google ScholarDigital Library
- Sun Microsystems. Java Tutorials, Lesson: Applets. http://java.sun.com/docs/books/tutorial/deployment/applet/index.html.Google Scholar
- W. Zhang and B. G. Ryder. Constructing accurate application call graphs for Java to model library callbacks. In SCAM 2006, pages 63--74, 2006. Google ScholarDigital Library
Index Terms
- Automatic extraction of framework-specific models from framework-based application code
Recommendations
Fast extraction of high-quality framework-specific models from application code
Framework-specific models represent the design of application code from the framework viewpoint by showing how framework-provided concepts are instantiated in the code. Retrieving such models quickly and precisely is necessary ...
Round-trip engineering using framework-specific modeling languages
OOPSLA '07: Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companionThis research explores the synergies between object-oriented application frameworks and model-driven engineering. We propose Framework-Specific Modeling Languages (FSMLs) which are domain-specific modeling languages designed for areas of concern to ...
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 ...
Comments