Volatile Functionality in Action: Methods, Techniques and Assessment

  • Darian Frajberg
  • Matías Urbieta
  • Gustavo Rossi
  • Wieland Schwinger
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9671)

Abstract

One of the main features of most Web applications today is their great dynamism. They are undoubtedly characterized by a continuous evolution. After implementing and performing the first deployment of a Web application, some new requirements are bound to arise, which involve the need to incorporate new functionalities, generally unknown during the design stage. This type of functionalities, which arise as a response to unexpected requirements of the business layer, have the peculiarity that they eventually need to be removed due to the expiration of their commercial value. The continuous incorporation and removal of these functionalities, which we will call “volatile functionalities”, usually has a negative impact on some important aspects of the Web application. Volatile Functionality meta-framework is a conceptual framework that permits to support the lifespan of volatile functionalities in Web applications. We have developed diverse techniques enabling full support of volatile functionalities for enterprise application. Moreover, we have performed an evaluation for assessing developers’ experience and solutions’ performance.

Keywords

Volatile functionality Evolutionary architecture Web application Approach VF framework Event scheduling 

References

  1. 1.
    Bebjak, M., et al.: Evolution of web applications with aspect-oriented design patterns. In: Proceedings of ICWE, pp. 80–86 (2007)Google Scholar
  2. 2.
    Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)CrossRefGoogle Scholar
  3. 3.
    Curtis, B., et al.: Estimating the size, cost, and types of technical debt. In: Proceedings of the 2012 3rd International Workshop on Managing Technical Debt, MTD 2012, pp. 49–53 (2012)Google Scholar
  4. 4.
    Filman, R.E.: Aspect-Oriented Software Development. Addison-Wesley, Boston (2005)Google Scholar
  5. 5.
    Gamma, E., et al.: Design patterns: elements of reusable object-oriented software (1995)Google Scholar
  6. 6.
    Gethers, M., et al.: An adaptive approach to impact analysis from change requests to source code. In: 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), pp. 540–543 (2011)Google Scholar
  7. 7.
    Ihme, T., et al.: Challenges and industry practices for managing software variability in small and medium sized enterprises. Empir. Softw. Eng. 1–25 (2013)Google Scholar
  8. 8.
    Ko, A., et al.: An Exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans. Softw. Eng. 32(12), 971–987 (2006)CrossRefGoogle Scholar
  9. 9.
    Martínez, Y., et al.: Empirical study on the maintainability of Web applications: Model-driven Engineering vs Code-centric (2013)Google Scholar
  10. 10.
    Morgenthaler, J.D., et al.: Searching for build debt: experiences managing technical debt at Google. In: Proceedings of the 2012 3rd International Workshop on Managing Technical Debt, MTD 2012, pp. 1–6 (2012)Google Scholar
  11. 11.
    Niederhausen, M., van der Sluijs, K., Hidders, J., Leonardi, E., Houben, G.-J., Meißner, K.: Harnessing the power of semantics-based, aspect-oriented adaptation for AMACONT. In: Gaedke, M., Grossniklaus, M., Díaz, O. (eds.) ICWE 2009. LNCS, vol. 5648, pp. 106–120. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  12. 12.
    Nord, R.L., et al.: In search of a metric for managing architectural technical debt. In: Proceedings of the 2012 Joint Working Conference on Software Architecture and 6th European Conference on Software Architecture, WICSA/ECSA 2012, pp. 91–100 (2012)Google Scholar
  13. 13.
    Rossi, G.: Web Engineering: Modelling and Implementing Web Applications. Springer, London (2008)CrossRefGoogle Scholar
  14. 14.
    Seaman, C., Guo, Y.: A portfolio approach to technical debt management. In: Proceedings - International Conference on Software Engineering, pp. 31–34 (2011)Google Scholar
  15. 15.
    Svahnberg, M., et al.: A taxonomy of variability realization techniques. Softw. Pract. Exp. 35, 705–754 (2005)CrossRefGoogle Scholar
  16. 16.
    Urbieta, M., et al.: Designing the interface of rich internet applications. In: 2007 Latin American Web Conference (LA-WEB 2007), pp. 144–153. IEEE (2007)Google Scholar
  17. 17.
    Urbieta, M., et al.: Modeling, deploying, and controlling volatile functionalities in web applications. Int. J. Softw. Eng. Knowl. Eng. 22, 129–155 (2012)CrossRefGoogle Scholar
  18. 18.
    Weber, J.H., et al.: Managing technical debt in database schemas of critical software. In: 2014 Sixth International Workshop on Managing Technical Debt, pp. 43–46. IEEE (2014)Google Scholar
  19. 19.
    Whitney, R.: Glorp Tutorial (2005)Google Scholar
  20. 20.
    Zazworka, N., et al.: Comparing four approaches for technical debt identification (2013)Google Scholar
  21. 21.
    Application quality benchmarking repository - Appmarq – CAST. http://www.castsoftware.com/products/appmarq
  22. 22.
    Aspectxml - An Aspect-Oriented XML Weaving Engine (AXLE) - Google Project Hosting. https://code.google.com/p/aspectxml/
  23. 23.
    Drools - JBoss Community. http://drools.jboss.org/
  24. 24.
    FindBugsTM - Find Bugs in Java Programs. http://findbugs.sourceforge.net/
  25. 25.
    HP Static Analysis, Static Application Security Testing, SAST. http://goo.gl/qtRf0X
  26. 26.
    Maven – Welcome to Apache Maven. https://maven.apache.org/
  27. 27.
    phantom @ pleiad.clGoogle Scholar
  28. 28.
    Quartz Scheduler | Documentation | Quartz 1.x Tutorials: crontrigger. http://goo.gl/D0tNbO
  29. 29.
  30. 30.
    XSL Transformations (XSLT). http://www.w3.org/TR/xslt

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Darian Frajberg
    • 1
    • 2
  • Matías Urbieta
    • 2
    • 3
  • Gustavo Rossi
    • 2
    • 3
  • Wieland Schwinger
    • 4
  1. 1.Dipartimento di Elettronica, Informazione e BioingegneriaPolitecnico di MilanoMilanItaly
  2. 2.LIFIAFacultad de Informática, UNLPLa PlataArgentina
  3. 3.ConicetBuenos AiresArgentina
  4. 4.Department of Cooperative Information SystemsJohannes Kepler University LinzLinzAustria

Personalised recommendations