access icon free I2SD: reverse engineering Sequence Diagrams from Enterprise Java Beans with interceptors

An Enterprise JavaBeans (EJB) interceptor is a software mechanism that provides for introducing behaviour implemented as separate code into the execution of a Java application. In this way, EJB interceptors provide a clear separation of the core functionality of the bean and other concerns, such as logging or performance analysis. Despite the beauty of the idea behind the i nterceptors, developing, testing and managing dependencies introduced by the interceptors are considered to be daunting tasks. For example, the developers can specify interceptors at multiple locations and by multiple means. However, different locations and specification means influence the order of the interceptor invocation, which is governed by more than 15 different intertwined rules defined in the EJB standard. To facilitate development of EJB applications, we have designed I2SD, Interceptors to Sequence Diagrams, a tool for reverse engineering EJB applications with interceptors to unified modeling language (UML) sequence diagrams. I2SD provides the developer with a visual feedback and can be used by quality managers to obtain insights in the ways interceptors are used in their project.

Inspec keywords: software tools; Unified Modeling Language; reverse engineering; program testing; Java; software quality; formal specification; software performance evaluation

Other keywords: bean core functionality; Interceptors to Sequence Diagrams; performance analysis; logging; UML; interceptor invocation; interceptor specification; visual feedback; Enterprise Java Beans; reverse engineering; I2SD; dependency testing; software mechanism; quality management; dependency management; EJB interceptor; Java application execution

Subjects: Software engineering techniques; Programming support; Object-oriented programming; Diagnostic, testing, debugging and evaluating systems; Software performance evaluation; Formal methods

References

    1. 1)
      • 30. Arthur, J., Azadegan, S.: ‘Spring framework for rapid open source J2EE Web application development: a case study’. Sixth Int. Conf. Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, 2005 and First ACIS Int. Workshop on Self-Assembling Wireless Networks, SNPD/SAWN 2005, pp. 9095.
    2. 2)
      • 19. Sun Microsystems: Sun Java System Application Server 9.1 Reference Manual, 2007.
    3. 3)
      • 41. Bennett, C., Myers, D., Storey, M.A.D., et al: ‘A survey and evaluation of tool features for understanding reverse-engineered sequence diagrams’, Journal of Softw. Maint., 2008, 20, (4), pp. 291315 (doi: 10.1002/smr.372).
    4. 4)
      • 42. Crawford, W., Kaplan, J.: ‘J2EE design patterns’ (O'Reilly & Associates, Inc., Sebastopol, CA, USA, 2003).
    5. 5)
      • 36. Briand, L.C., Labiche, Y., Miao, Y.: ‘Towards the reverse engineering of UML sequence diagrams’, WCRE, 2003, pp. 5766.
    6. 6)
      • 47. Deubler, M., Meisinger, M., Rittmann, S., Krüger, I.: ‘Modeling crosscutting services with UML sequence diagrams’, MoDELS, 2005 (LNCS, 3713), pp. 522536.
    7. 7)
      • 44. Stephan, M.: ‘Detection of Java EE EJB antipattern instances using framework-specific models’. Master's thesis, University of Waterloo, Waterloo, 04/2009 2009.
    8. 8)
      • 5. Vanbrabant, R.: ‘Google Guice: agile lightweight dependency injection framework’ (APress, Berkeley, CA, USA, 2008).
    9. 9)
      • 27. Roubtsov, S.A., Serebrenik, A., Mazoyer, A., van den Brand, M.G.J.: ‘I2SD: reverse engineering sequence diagrams from Enterprise Java Beans with interceptors’. SCAM, 2011, pp. 155164.
    10. 10)
      • 31. Rountev, A., Connell, B.H.: ‘Object naming analysis for reverse-engineered sequence diagrams’, Int. Conf. Software Engineering, 2005, pp. 254263.
    11. 11)
      • 38. Guéhéneuc, Y.G., Ziadi, T.: ‘Automated reverse-engineering of UML v2.0 dynamic models’, Proc. Sixth ECOOP Workshop on Object-Oriented Reengineering, 2005, Glasgow, UK.
    12. 12)
      • 32. Rountev, A., Volgin, O., Reddoch, M.: ‘Static control-flow analysis for reverse engineering of UML sequence diagrams’, PASTE, 2005, pp. 96102.
    13. 13)
      • 6. Red Hat: Red Hat. Seam – Contextual Components. A Framework for Java EE 5, 2007.
    14. 14)
      • 17. van den Brand, M.G.J., Roubtsov, S.A., Serebrenik, A.: ‘SQuAVisiT: a flexible tool for visual software analytics’, CSMR, 2009, pp. 331332.
    15. 15)
      • 20. Jackson, D.: ‘Scalable vector graphics (SVG): the world wide web consortium's recommendation for high quality web graphics’. ACM SIGGRAPH 2002 Conf. Abstracts and Applications, SIGGRAPH'02, New York, NY, USA, pp. 319319.
    16. 16)
      • 21. Savard, M.: ‘Development of OASIS v2’. Tech. Rep. CR 2008–332, Defence Research and Development Canada, October2008. URL http://pubs.drdc.gc.ca/PDFS/unc79/p530476.pdf.
    17. 17)
      • 22. Oracle: Java RMI over IIOP. Technology Documentation Home Page, 2010. URL http://docs.oracle.com/javase/1.4.2/docs/guide/rmi-iiop/index.html.
    18. 18)
      • 11. Murphy, G.C., Kersten, M., Findlater, L.: ‘How are Java software developers using the Elipse IDE?’, IEEE Softw., 2006, 23, (4), pp. 7683 (doi: 10.1109/MS.2006.105).
    19. 19)
      • 55. Serebrenik, A., van den Brand, M.G.J.: ‘Theil index for aggregation of software metrics values’. Int. Conf. Softw. Maint, 2010, pp. 19.
    20. 20)
      • 10. Serebrenik, A., Roubtsov, S.A., Roubtsova, E.E., van den Brand, M.G.J.: ‘Reverse engineering sequence diagrams for Enterprise JavaBeans with business method interceptors’, WCRE, 2009, pp. 269273.
    21. 21)
      • 15. Allen, R.B., Garlan, D.: ‘A formal approach to software architectures’. Proc. of the IFIP 12th World Computer Congress on Algorithms, Software, Architecture – Information Processing 1992, Amsterdam, The Netherlands, pp. 134141.
    22. 22)
      • 43. Dudney, B., Krozak, J., Wittkopf, K., Asbury, S., Osborne, D.: ‘J2EE antipatterns’ (John Wiley & Sons, New York, NY, USA, 2002, 1st edn.).
    23. 23)
      • 49. Sereni, D., de Moor, O.: ‘Static analysis of aspects’. Proc. of the Second Int. Conf. Aspect-Oriented Software Development, 2003, New York, NY, USA, pp. 3039.
    24. 24)
      • 40. Richner, T., Ducasse, S.: ‘Using dynamic information for the iterative recovery of collaborations and roles’. ICSM, 2002, pp. 3443.
    25. 25)
      • 46. Stein, D., Hanenberg, S., Unland, R.: ‘Join point designation diagrams: a graphical representation of join point selections’, Int. J. Softw. Eng. Knowl. Eng., 2006, 16, (3), pp. 317346 (doi: 10.1142/S0218194006002811).
    26. 26)
      • 8. Kehe, W., Zhuo, W., Xing, Z., Gang, M.: ‘Design and implementation of the monitoring system for ejb applications based on interceptors’. Thirdrd Int. Conf. Advanced Computer Theory and Engineering (ICACTE), 2010, vol. 4, pp. V4-5V4-9.
    27. 27)
      • 7. Bellur, U.: ‘A methodology & tool for determining inter-component dependencies dynamically in J2EE environments’. Proc. Third Int. Conf. Autonomic and Autonomous Systems, Washington, 2007, DC, USA, pp. 14:114:8.
    28. 28)
      • 35. Briand, L.C., Labiche, Y., Leduc, J.: ‘Toward the reverse engineering of UML sequence diagrams for distributed Java software’, IEEE Trans. Softw. Eng., 2006, 32, (9), pp. 642663 (doi: 10.1109/TSE.2006.96).
    29. 29)
      • 50. Bernardi, M.L., Di Lucca, G.A.: ‘An interprocedural aspect control flow graph to support the maintenance of aspect oriented systems’. Int. Conf. Software Maintenance, 2007, pp. 435444.
    30. 30)
      • 34. Korshunova, E., Petković, M., van den Brand, M.G.J., Mousavi, M.R.: ‘CPP2XMI: reverse engineering of UML class, sequence, and activity diagrams from C++ source code’. WCRE, 2004, pp. 297298.
    31. 31)
      • 1. Narasimhan, P., Moser, L.E., Melliar-Smith, P.M.: ‘Using interceptors to enhance CORBA’, IEEE Comput., 1999, 32, (7), pp. 6268 (doi: 10.1109/2.774920).
    32. 32)
      • 2. Sun Microsystems: Sun Microsystems. JSR-220 Enterprise JavaBeans 3.0 (Final Release), 2006.
    33. 33)
      • 52. Taïani, F., Killijian, M.O., Fabre, J.C.: ‘COSMOPEN: dynamic reverse engineering on a budget. How cheap observation techniques can be used to reconstruct complex multi-level behaviour’, Softw. Pract. Exp., 2009, 39, (18), pp. 14671514 (doi: 10.1002/spe.943).
    34. 34)
      • 24. Yawn, M.: ‘J2EE and Jax: developing web applications and web services’ (Prentice-Hall Professional, Upper Saddle River, NJ, USA, 2003).
    35. 35)
      • 16. Copeland, T.: ‘Generating parsers with JavaCC’ (Centennial Books, Alexandria, VA, USA, 2009, 2nd edn.).
    36. 36)
      • 3. EJB 3.1 Expert Group: EJB 3.1 Expert Group. JSR-318 Enterprise JavaBeans, Version 3.1 (Final Release), 2009.
    37. 37)
      • 56. Vasilescu, B., Serebrenik, A., van den Brand, M.G.J.: ‘You can't control the unfamiliar: a study on the relations between aggregation techniques for software metrics’. Int. Conf. Software Maintenance, 2011, pp. 313322.
    38. 38)
      • 37. Delamare, R., Baudry, B., Le Traon, Y.: ‘Reverse-engineering of UML 2.0 sequence diagrams from execution traces’. Workshop on Object-Oriented Reengineering at ECOOP 06, Nantes, France.
    39. 39)
      • 54. JSR-299 Expert Group: JSR-299: Contexts and Dependency Injection for the Java EE platform, 2009.
    40. 40)
      • 18. Harold, E.R.: ‘Processing XML with Java’ (Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002), URL http://www.cafeconleche.org/books/xmljava/.
    41. 41)
      • 28. Perry, D.E., Porter, A.A., Votta, L.G.: ‘Empirical studies of software engineering: a roadmap’. Proc. of the Conf. The Future of Software Engineering, ICSE'00, New York, NY, USA, 2000, pp. 345355.
    42. 42)
      • 29. Klaczewski, P., Wytrebowicz, J.: ‘j2eeprof—a tool for testing multitier applications’, Software Engineering Techniques: Design for Quality, SET 2006, 17–20 October, 2006, Warsaw, Poland, IFIP, vol. 227, pp. 199210.
    43. 43)
      • 12. Muskens, J., Chaudron, M.R., Westgeest, R.: ‘Software architecture analysis tool: software architecture metrics collection’. Proc. Third PROGRESS Workshop on Embedded Systems, 2002, pp. 128139.
    44. 44)
      • 57. IBM: EJB 3.x interceptors, 2012. http://www14.software.ibm.com/webapp/wsbroker/redirect?version=matt&product=was-nd-dist&topic=rejb_3interceptors.
    45. 45)
      • 53. Garlan, D., Shaw, M.: ‘An introduction to software architecture’, in Ambriola, V., Tortora, G., (Eds.): ‘Advances in software engineering and knowledge engineering’ (World Scientific Publishing Company), 1994, pp. 139.
    46. 46)
      • 14. Goncalves, A.: ‘Beginning Java EE p Platform with GlassFish 3: from novice to professional’ (Apress, Berkely, CA, USA, 2009, 1st edn.).
    47. 47)
      • 33. Tonella, P., Potrich, A.: ‘Reverse engineering of the interaction diagrams from C++ code’. Int. Conf. Software Maintenance, 2003, pp. 159168.
    48. 48)
      • 48. Xu, W., Xu, D.: ‘A model-based approach to test generation for aspect-oriented programs’. First Workshop on Testing Aspect-Oriented Programs, 2005, Chicago, IL, USA, pp. 16.
    49. 49)
      • 45. Antkiewicz, M., Czarnecki, K., Stephan, M.: ‘Engineering of framework-specific modeling languages’, Softw. Eng. IEEE Trans., 2009, 35, (6), pp. 795824 (doi: 10.1109/TSE.2009.30).
    50. 50)
      • 23. Object Management Group: Java to IDL Language Mapping, 2008. Version 1.4.
    51. 51)
      • 39. Oechsle, R., Schmitt, T.: ‘JAVAVIS: automatic program visualization with object and sequence diagrams using the Java debug interface (JDI)’, Software visualization, 2002 (LNCS, 2269), pp. 176190.
    52. 52)
      • 9. Tilley, S.R., Huang, S.: ‘A qualitative assessment of the efficacy of UML diagrams as a form of graphical documentation in aiding program understanding’, SIGDOC, 2003, pp. 184191.
    53. 53)
      • 26. Roubtsov, S.A., Serebrenik, A., van den Brand, M.G.J.: ‘Detecting modularity ‘Smells’ in dependencies injected with Java annotations’. Software Maintenance and Reengineering, European Conf., 2010, Los Alamitos, CA, USA, pp. 244247.
    54. 54)
      • 25. Baldoni, R., Marchetti, C., Verde, L.: ‘CORBA request portable interceptors: analysis and applications’, Concurrency Comput., Pract. Exp., 2003, 15, (6), pp. 551579 (doi: 10.1002/cpe.716).
    55. 55)
      • 51. Schmerl, B., Aldrich, J., Garlan, D., Kazman, R., Yan, H.: ‘Discovering architectures from running systems’. IEEE Trans. Softw. Eng., 2006, 32, (7), pp. 454466 (doi: 10.1109/TSE.2006.66).
    56. 56)
      • 13. Panda, D., Rahman, R., Lane, D.: ‘EJB 3 in action’ (Manning Publications Co., Greenwich, CT, USA, 2007).
    57. 57)
      • 4. EJB 3.1 Expert Group: EJB 3.1 Expert Group. Interceptors 1.1, 2009.
http://iet.metastore.ingenta.com/content/journals/10.1049/iet-sen.2012.0056
Loading

Related content

content/journals/10.1049/iet-sen.2012.0056
pub_keyword,iet_inspecKeyword,pub_concept
6
6
Loading