skip to main content
10.1145/2430475.2430496acmotherconferencesArticle/Chapter ViewAbstractPublication PagesinternetwareConference Proceedingsconference-collections
short-paper

Detecting anti-patterns in Java EE runtime system model

Published: 30 October 2012 Publication History

Abstract

With the increasing complexity of enterprise applications, it becomes very challenging to create software systems which can exhibit a satisfactory performance behavior. In current system development practice, it often inevitably exists some "anti-patterns", which usually impede the performance or maintainability of software systems. Manually investigating anti-patterns in systems is a time-consuming and labor intensive task. To deal with this problem, we propose a general anti-pattern detection approach for Java EE application. Firstly, we propose a Java EE meta-model, based on which, we use QVT language to specify the detection process of anti-patterns. Secondly, we implement our approach on a runtime architecture-based reflective framework. When a Java EE application runs on one of the supported application servers, we can execute QVT script to detect whether or not there exists a specific anti-pattern in current system and get the report of potential problem components. At last, we perform a case study based on 35 well-known anti-patterns to evaluate the effectiveness and applicability of our approach.

References

[1]
S. Becker, L. Grunske, R. Mirandola, and S. Overhage. Performance prediction of component-based systems. Architecting Systems with Trustworthy Components, pages 169--192, 2006.
[2]
W. J. Brown, R. C. Malveau, H. W. McCormick, III, and T. J. Mowbray. AntiPatterns: refactoring software, architectures, and projects in crisis. John Wiley & Sons, Inc., New York, NY, USA, 1998.
[3]
M. Crasso, A. Zunino, L. Moreno, and M. Campo. JEETuningExpert: A software assistant for improving Java Enterprise Edition application performance. Expert Systems with Applications, 36(9):11718--11729, 2009.
[4]
B. Dudney, J. Krozak, K. Wittkopf, S. Asbury, and D. Osborne. J2EE Antipatterns. John Wiley & Sons, Inc., New York, NY, USA, 1 edition, 2002.
[5]
M. Elaasar, L. Briand, and Y. Labiche. Domain-specific model verification with qvt. In Proceedings of the 7th European conference on Modelling foundations and applications, ECMFA'11, pages 282--298, Berlin, Heidelberg, 2011. Springer-Verlag.
[6]
M. Fowler and K. Beck. Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999.
[7]
G. Huang, H. Mei, and F. Yang. Runtime recovery and manipulation of software architecture of component-based systems. Automated Software Engineering, 13(2):257--281, 2006.
[8]
IBM. WebSphere Studio Profiling Tool. http://www-3.ibm.com/software/ad/studioappdev, 2004.
[9]
V. Issarny, M. Caporuscio, and N. Georgantas. A perspective on the future of middleware-based software engineering. In 2007 Future of Software Engineering, pages 244--258. IEEE Computer Society, 2007.
[10]
P. Laplante and C. Neill. Antipatterns: Identification, Refactoring, and Management. CRC Press, 2005.
[11]
D. Llambiri, A. Totok, and V. Karamcheti. Efficiently distributing component-based applications across wide-area environments. In Proceedings of the 23rd International Conference on Distributed Computing Systems, ICDCS '03, pages 412--, Washington, DC, USA, 2003. IEEE Computer Society.
[12]
F. Marinescu. Ejb Design Patterns: Advanced Patterns, Processes, and Idioms with Poster. John Wiley & Sons, Inc., New York, NY, USA, 1st edition, 2002.
[13]
H. Mei and G. Huang. PKUAS: an architecture-based reflective component operating platform. In Distributed Computing Systems, 2004. FTDCS 2004. Proceedings. 10th IEEE International Workshop on Future Trends of, pages 163--169, may 2004.
[14]
N. Moha, Y. Guéhéneuc, L. Duchien, and A. Le Meur. DECOR: A method for the specification and detection of code and design smells. Software Engineering, IEEE Transactions on, 36(1):20--36, 2010.
[15]
N. Moha, Y. Guéhéneuc, A. Meur, L. Duchien, and A. Tiberghien. From a domain analysis to the specification and detection of code and design smells. Formal Aspects of Computing, 22(3-4):345--361, May 2010.
[16]
A. Mos and J. Murphy. COMPAS: adaptive performance monitoring of component-based systems. In Proceedings of 2 nd ICSE Workshop on Remote Analysis and Measurement of Software Systems, 2004.
[17]
C. Neill, P. Laplante, and J. DeFranco. Antipatterns: Managing Software Organizations and People. Auerbach Publications, 2011.
[18]
Object Management Group. MOF Core specification, V2.0. http://www.omg.org/spec/MOF/2.0/, 2006.
[19]
Object Management Group. Query/View/Transformation, V1.0. http://www.omg.org/spec/QVT/1.0/, 2008.
[20]
Quest Software. JProbe Performance Profiler. http://www.quest.com/jprobe, 2003.
[21]
C. Smith and L. Williams. Software performance antipatterns. In Proceedings of the 2nd international workshop on Software and performance, pages 127--136. ACM, 2000.
[22]
H. Song, G. Huang, F. Chauvel, and H. Mei. SM@RT: Supporting Models at Run-Time. http://code.google.com/p/smatrt/, 2012.
[23]
H. Song, G. Huang, F. Chauvel, Y. Sun, and H. Mei. SM@RT: representing run-time system data as MOF-compliant models. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 2, pages 303--304. ACM, 2010.
[24]
H. Song, Y. Xiong, F. Chauvel, G. Huang, Z. Hu, and H. Mei. Generating synchronization engines between running systems and their model-based views. Models in Software Engineering, pages 140--154, 2010.
[25]
Sun Developer Network (SDN). ECperf#8482;Kit Version 1.1 - Final Release. http://java.sun.com/developer/earlyAccess/j2ee/ecperf/download.html.
[26]
B. Tate, M. Clark, and P. Linskey. Bitter EJB. Manning Publications Co., Greenwich, CT, USA, 2003.
[27]
W. Wang and G. Huang. Pattern-driven performance optimization at runtime: experiment on jee systems. In Proceedings of the 9th International Workshop on Adaptive and Reflective Middleware, ARM '10, pages 39--45, New York, NY, USA, 2010. ACM.

Cited By

View all

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
Internetware '12: Proceedings of the Fourth Asia-Pacific Symposium on Internetware
October 2012
204 pages
ISBN:9781450318884
DOI:10.1145/2430475
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • NJU: Nanjing University
  • Tsinghua University: Tsinghua University
  • CCF: China Computer Federation

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 October 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java EE
  2. anti pattern
  3. antipatterns
  4. runtime model

Qualifiers

  • Short-paper

Funding Sources

Conference

Internetware '12
Sponsor:
  • NJU
  • Tsinghua University
  • CCF

Acceptance Rates

Overall Acceptance Rate 55 of 111 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media