Skip to main content
Log in

Fast extraction of high-quality framework-specific models from application code

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

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 for practical model-supported software engineering, in which developers use design models for development tasks such as code understanding, verifying framework usage rules, and round-trip engineering. Also, comparing models extracted at different times of the software lifecycle supports software evolution tasks.

We describe an experimental study of the static analyses necessary to automatically retrieve framework-specific 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 an open-source framework. For reverse engineering, we use prototype implementations of the three FSMLs.

Our results show that for the considered frameworks and a large body of application code rather simple code analyses are sufficient for automatically retrieving framework-specific models with high precision and recall. Based on the initial results, we refine the static analyses and repeat the study on a larger set of applications to provide more evidence and confirm the results. The refined static analyses provide precision and recall of close to 100% for the analyzed applications.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. SIGPLAN Not. 40(10), 345–364 (2005)

    Article  Google Scholar 

  • Antkiewicz, M.: Framework-specific modeling languages. PhD thesis, University of Waterloo (2008). http://hdl.handle.net/10012/4030

  • Antkiewicz, M., Czarnecki, K.: Framework-specific modeling languages with round-trip engineering. In: Models. LNCS, vol. 4199, pp. 692–706. Springer, Berlin (2006)

    Google Scholar 

  • Antkiewicz, M., Czarnecki, K.: Design space of heterogeneous synchronization. In: GTTSE (2008)

  • Antkiewicz, M., Bartolomei, T.T., Czarnecki, K.: Automatic extraction of framework-specific models from framework-based application code. In: ASE ’07: Proceedings of the Twenty-Second IEEE/ACM International Conference on Automated Software Engineering, pp. 214–223 (2007)

  • Apache Software Foundation: Roller Weblogger 3.0 (2006). http://rollerweblogger.org/

  • Apache Software Foundation: Struts User’s Guide (2007). http://struts.apache.org/1.3.8/index.html

  • Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Optimising AspectJ. In: PLDI’05, pp. 117–128 (2005)

  • Cohen, T., Gil, J.Y., Maman, I.: JTL: the Java tools language. In: OOPSLA’06, p. 89–108 (2006)

  • Czarnecki, K., Wasowski, A.: Feature diagrams and logics: there and back again. In: SPLC ’07: Proceedings of the 11th International Software Product Line Conference (SPLC 2007), pp. 23–34 (2007)

  • Czarnecki, K., Helsen, S., Eisenecker, U.: Formalizing cardinality-based feature models and their specialization. Softw. Process Improv. Pract. 10(1) (2005). Special issue on Software Variability: Process and Management

  • De Volder, K.: JQuery: A generic code browser with a declarative configuration language. In: PADL’06. LNCS, vol. 3819, pp. 88–102. Springer, Berlin (2006)

    Google Scholar 

  • DeBaud, J.-M., Moopen, B., Rugaber, S.: Domain analysis and reverse engineering. In: ICSM ’94: Proceedings of the International Conference on Software Maintenance, pp. 326–335 (1994)

  • Eclipse Foundation: Java Development Tools (2008). http://www.eclipse.org/jdt/

  • EJB 3.0 Expert Group: JSR 220: Enterprise JavaBeansTM, Version 3.0 (2006). http://java.sun.com/products/ejb

  • Fairbanks, G., Garlan, D., Scherlis, W.: Design fragments make using frameworks easier. In: OOPSLA’06, pp. 75–88 (2006)

  • Gamma, E., Beck, K.: Contributing to Eclipse: Principles, Patterns, and Plugins. Addison-Wesley, Reading (2003)

    Google Scholar 

  • Hajiyev, E., Verbaere, M., de Moor, O.: CodeQuest: scalable source code queries with datalog. In: ECOOP’06. LNCS, vol. 4067, pp. 2–27. Springer, Berlin (2006)

    Google Scholar 

  • Hilsdale, E., Hugunin, J.: Advice weaving in AspectJ. In: AOSD ’04, pp. 26–35 (2004)

  • Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: ECOOP’01, pp. 327–355 (2001)

  • Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: ECOOP’97, pp. 220–242 (1997)

  • Kitchenham, B.A., Pfleeger, S.L., Pickard, L.M., Jones, P.W., Hoaglin, D.C., Emam, K.E., Rosenberg, J.: Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng. 28(8), 721–734 (2002)

    Article  Google Scholar 

  • Masuhara, H., Kawauchi, K.: Dataflow pointcut in aspect-oriented programming. In: APLAS’03. LNCS, vol. 2895, pp. 105–121. Springer, Berlin (2003)

    Google Scholar 

  • OSGi Alliance. OSGi Service Platform, Core Specification, Release 4, Version 4.1 (2007). http://www.osgi.org/Specifications

  • Pandit, C.: Make your Eclipse applications richer with view linking (2005). http://www-128.ibm.com/developerworks/opensource/library/os-ecllink/

  • Rountev, A., Kagan, S., Marlowe, T.J.: Interprocedural dataflow analysis in the presence of large libraries. In: CC’06. LNCS, vol. 3923, pp. 2–16. Springer, Berlin (2006)

    Google Scholar 

  • Rugaber, S.: The use of domain knowledge in program understanding. Ann. Soft. Eng. 9(1–4), 143–192 (2000)

    Article  Google Scholar 

  • Spring Framework Manual (2008). http://www.springframework.org/

  • Struts Applications Project (2007). http://sourceforge.net/projects/struts/

  • Sun Microsystems: Java Server Faces (2008). http://java.sun.com/javaee/javaserverfaces/

  • Sun Microsystems. Java Tutorials, Lesson: Applets (2008). http://java.sun.com/docs/books/tutorial/deployment/applet/index.html

  • Vallée-Rai, R., Gagnon, E., Hendren, L.J., Lam, P., Pominville, P., Sundaresan, V.: Optimizing Java bytecode using the Soot framework: is it feasible? In: CC ’00: Proceedings of the 9th International Conference on Compiler Construction, pp. 18–34. Springer, London (2000)

    Google Scholar 

  • Zhang, W., Ryder, B.G.: Constructing accurate application call graphs for Java to model library callbacks. In: SCAM 2006, pp. 63–74 (2006)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michał Antkiewicz.

Additional information

This paper is an extended version of the paper “Automatic extraction of framework-specific models from framework-based application code”, which was published in the proceedings of the Twenty-Second ACM/IEEE International Conference on Automated Software Engineering, 2007.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Antkiewicz, M., Tonelli Bartolomei, T. & Czarnecki, K. Fast extraction of high-quality framework-specific models from application code. Autom Softw Eng 16, 101 (2009). https://doi.org/10.1007/s10515-008-0040-x

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10515-008-0040-x

Keywords

Navigation