Advertisement

Applying a Generative Technique for Enhanced Genericity and Maintainability on the J2EE Platform

  • Yang Jun
  • Stan Jarzabek
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3676)

Abstract

One of the themes in building reusable and maintainable software is identifying similarities and designing generic solutions to unify similarity patterns. In this paper, we analyze capabilities of J2EE to effectively unify similarity patterns found in Web Portals (WP). Our experimentation involved a family of WPs to support information sharing and team collaboration, built by our industry partner. While J2EE provides useful mechanisms for reuse of common services across components, we found its limitations in systematic across-the-board reuse in application domain-specific areas. To solve these problems, we applied a generative programming (GP) technique of XVCL on top of J2EE. By unifying similarity patterns, we increased the clarity of portal’s conceptual structure as perceived by developers, reducing also the size of the original J2EE WP by 61%. Our solution enhanced traceability of information that mattered during changes. Based on that we hypothesized that XVCL-enhanced J2EE WP would be easier to maintain than the original J2EE WP. In the paper, we describe our solution and evaluate its engineering merits in both quantitative and qualitative ways.

Keywords

Software Product Line Action Package Functional Package Method Service Util Package 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Active Server Pages – ASP, http://msdn.microsoft.com/asp.net
  2. 2.
    Basit, H.A., Rajapakse, D.C., Jarzabek, S.: Beyond Templates: a Study of Clones in the STL and Some General Implications. In: Int. Conf. Software Engineering, ICSE 2005, St. Louis, USA, May 2005, pp. 451–459 (2005)Google Scholar
  3. 3.
    Basit, A.H., Jarzabek, S.: Detecting Higher-level Similarity Patterns in Programs. To appear in ESEC-FSE 2005, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, Lisbon. ACM Press, New York (2005)Google Scholar
  4. 4.
    Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. In: Proc. Int. Conf. on Software Engineering, ICSE 2003, Portland, Oregon, May 2003, pp. 187–197 (2003)Google Scholar
  5. 5.
    Batory, D., Singhai, V., Sirkin, M., Thomas, J.: Scalable software libraries. In: ACM SIGSOFT 1993: Symp. on the Foundations of Software Engineering, Los Angeles, California, December 1993, pp. 191–199 (1993)Google Scholar
  6. 6.
    Bosch, J.: Design and Use of Software Architectures – Adopting and evolving a product-line approach. Addison Welsey, London (2000)Google Scholar
  7. 7.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley, Reading (2002)Google Scholar
  8. 8.
    Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  9. 9.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns – Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  10. 10.
    Garcia, R., et al.: A Comparative Study of Language Support for Generic Programming. In: Proc. 18th ACM SIGPLAN Conf. on Object-oriented Programming, Systems, Languages, and Applications, pp. 115–134 (2003)Google Scholar
  11. 11.
    Jarzabek, S., Li, S.: Eliminating Redundancies with a “Composition with Adaptation” Meta-programming Technique. In: Proceedings of ESEC-FSE 2003, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, Helsinki, September 2003, pp. 237–246 (2003)Google Scholar
  12. 12.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  13. 13.
    Len, B., Paul, C., Rick, K.: Software architecture in practice. Addison-Wesley, Reading (1998)Google Scholar
  14. 14.
    Parnas, D.: On the Criteria To Be Used in Decomposing Software into Modules. Communications of the ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  15. 15.
    Pettersson, U., Jarzabek, S.: Industrial Experience with Building a Web Portal Product Line using a  Lightweight, Reactive Approach. To appear in ESEC-FSE 2005, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, Lisbon. ACM Press, New York (2005)Google Scholar
  16. 16.
    Prieto-Diaz, R.: Domain analysis for reusability. In: Proc. COMPSAC 1987, Tokyo, Japan, October 1987, pp. 23–29 (1987)Google Scholar
  17. 17.
    Rajapakse, D.C., Jarzabek, S.: An Investigation of Cloning in Web Portals. In: Lowe, D.G., Gaedke, M. (eds.) ICWE 2005. LNCS, vol. 3579, pp. 252–262. Springer, Heidelberg (2005) (also poster at WWW 2005)CrossRefGoogle Scholar
  18. 18.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  19. 19.
    Soe, M.S., Zhang, H., Jarzabek, S.: XVCL: A Tutorial. In: Proceedings of 14th International Conference on Software Engineering and Knowledge Engineering (SEKE 2002), Ischia, Italy, pp. 341–349 (2002)Google Scholar
  20. 20.
    Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: Proc. International Conference on Software Engineering, ICSE 1999, Los Angeles, pp. 107–119 (1999)Google Scholar
  21. 21.
    Thompson, S.: Higher Order + Polymorphic = Reusable, unpublished manuscript available from the Computing Laboratory, University of Kent, http://www.cs.ukc.ac.uk/pubs/1997
  22. 22.
    XVCL (XML-based Variant Configuration Language) method and tool for managing software changes during evolution and reuse, http://fxvcl.sourceforge.net
  23. 23.
    Zhang, W., Jarzabek, S.: Reuse without Compromising Performance: Experience from RPG Software Product Line for Mobile Devices. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 57–69. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Yang Jun
    • 1
  • Stan Jarzabek
    • 1
  1. 1.Department of Computer Science, School of ComputingNational University of SingaporeSingapore

Personalised recommendations