[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1739230.1739234acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Reusable enterprise metadata with pattern-based structural expressions

Published: 15 March 2010 Publication History

Abstract

An essential part of modern enterprise software development is metadata. Mainstream metadata formats, including XML deployment descriptors and Java 5 annotations, suffer from a number of limitations that complicate the development and maintenance of enterprise applications. Their key problem is that they make it impossible to reuse metadata specifications not only across different applications but even across smaller program constructs such as classes or methods.
To provide better enterprise metadata, we present pattern-based structural expressions (PBSE), a novel metadata representation that offers conciseness and maintainability advantages and is reusable. To apply PBSE to enterprise applications, we translate PBSE specifications to Java annotations, with annotating classes automatically as an intermediate build step. We demonstrate the advantages of the new metadata format by assessing its conciseness and reusability, as compared to XML and annotations, in the task of expressing metadata of J2EE reference applications and a mid-size, commercial, enterprise application.

References

[1]
A. Abdelmeged, T. Skotiniotis, and K. J. Lieberherr. Controlled evolution of adaptive programs. In IWPSE-Evol '09: Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops, pages 89--98, New York, NY, USA, 2009. ACM.
[2]
C. Bauer, G. King, and I. NetLibrary. Hibernate in Action. Manning, 2005.
[3]
D. Berry. Academic Legitimacy of the Software Engineering Discipline. Carnegie-Mellon University, Software Engineering Institute, 1992.
[4]
C. Beust and H. Suleiman. Next Generation Java Testing: TestNG and Advanced Concepts. Addison-Wesley Professional, 2007.
[5]
W. Brown, R. Malveau, H. McCormick III, and T. Mowbray. AntiPatterns: refactoring software, architectures, and projects in crisis. John Wiley & Sons, Inc. New York, NY, USA, 1998.
[6]
V. Cepa and M. Mezini. Declaring and enforcing dependencies between .NET custom attributes. In Generative Programming and Component Engineering, pages 319--331. 2004.
[7]
Eclipse Foundation. Eclipse Java development tools, March 2008. http://www.eclipse.org/jdt.
[8]
M. Eichberg, T. Schäfer, and M. Mezini. Using annotations to check structural properties of classes. In 8th International Conference on Fundamental Approaches to Software Engineering (FASE 2005), volume 3442, pages 237--252. Springer, 2005.
[9]
M. Fähndrich, M. Carbin, and J. R. Larus. Reflective program generation with patterns. In GPCE '06: Proceedings of the 5th international conference on Generative programming and component engineering, pages 275--284, 2006.
[10]
L. Gremillion. Determinants of program repair maintenance requirements. Communications of the ACM, 27(8):826--832, 1984.
[11]
S. S. Huang and Y. Smaragdakis. Class morphing: Expressive and safe static reflection. In Conf. on Programming Language Design and Implementation (PLDI), pages 79--89. ACM, June 2008.
[12]
S. S. Huang, D. Zook, and Y. Smaragdakis. Morphing: Safely shaping a class in the image of others. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 399--424. Springer-Verlag, Aug. 2007.
[13]
JBoss. JBoss AOP. http://www.jboss.org/jbossaop/.
[14]
R. Khatchadourian, P. Greenwood, A. Rashid, and G. Xu. Pointcut rejuvenation: Recovering pointcut expressions in evolving aspect-oriented software. In IEEE/ACM International Conference on Automated Software Engineering (ASE 09), 2009.
[15]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In ECOOP. Springer-Verlag, 2001.
[16]
C. Koppen and M. Stoerzer. PCDiff: Attacking the fragile pointcut problem. In European Interactive Workshop on Aspects in Software (EIWAS), 2004.
[17]
O. Liechti, M. Sifer, and T. Ichikawa. Structured graph format: XML metadata for describing Web site structure. Computer Networks and ISDN Systems, 30(1--7):11--21, 1998.
[18]
V. Massol and T. Husted. JUnit in Action. Manning, 2004.
[19]
C. Mastroianni, D. Talia, and P. Trunfio. Managing heterogeneous resources in data mining applications on grids using XML-based metadata. In Parallel and Distributed Processing Symposium, 2003. Proceedings. International, page 11, 2003.
[20]
Maven. Security Annotation Framework. http://safr.sourceforge.net/.
[21]
E. Miller. An introduction to the resource description framework. Journal of Library Administration, 34(3):245--255, 2001.
[22]
C. Noguera and L. Duchien. Annotation framework validation using domain models. Lecture Notes in Computer Science, 5095:48--62, 2008.
[23]
A. Orso, M. Harrold, and D. Rosenblum. Component metadata for software engineering tasks. In 2nd Int. Workshop on Engineering Distributed Objects (EDO 2000). Springer.
[24]
J. H. Perkins. Automatically generating refactorings to support API evolution. In PASTE '05: Proceedings of the 6th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 111--114, New York, NY, USA, 2005. ACM.
[25]
C. Richardson. Untangling enterprise Java. ACM Queue, 4(5):36--44, 2006.
[26]
S. Roock and A. Havenstein. Refactoring tags for automatic refactoring of framework dependent applications. In Proc. Int'l Conf. eXtreme Programming and Flexible Processes in Software Engineering (XP), 2002.
[27]
Spring. Java web service. http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/pdf/spring-framework-reference.pdf.
[28]
M. Stoerzer and J. Graf. Using pointcut delta analysis to support evolution of aspect-oriented software. In Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05), pages 653--656. Citeseer, 2005.
[29]
R. Stuckert. JUnit reloaded, December 2006. http://today.java.net/pub/a/today/2006/12/07/junit-reloaded.html.
[30]
Sun Developer Network. Java Adventure Builder Reference application. http://java.sun.com/developer/releases/adventure/.
[31]
Sun Developer Network. Java Persistence API. http://java.sun.com/javaee/technologies/persistence.jsp.
[32]
Sun Developer Network. Java Pet Store 2.0 reference application. http://java.sun.com/developer/releases/petstore/petstore1_3_1_02.html.
[33]
Sun Microsystems Inc. Java 2 Platform, Enterprise Edition (J2EE), 2003.
[34]
the AspectJ Team. The AspectJ 5 development kit developer's notebook. http://eclipse.org/aspectj/doc/released/adk15notebook/index.html.
[35]
T. Tourwé and T. Mens. Automated support for framework-based software evolution. In ICSM '03: Proceedings of the International Conference on Software Maintenance, page 148, Washington, DC, USA, 2003. IEEE Computer Society.
[36]
C. Walls, N. Richards, and R. Oberg. XDoclet in action. Manning, 2004.

Cited By

View all
  • (2024)Edge Cache on WiFi Access Points: Millisecond-Level App Latency Almost for Free2024 IEEE 44th International Conference on Distributed Computing Systems (ICDCS)10.1109/ICDCS60910.2024.00062(601-612)Online publication date: 23-Jul-2024
  • (2023)On the Applicability of Annotation-Based Source Code Modification in Kotlin (Work in Progress)Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622983(2-11)Online publication date: 19-Oct-2023
  • (2012)Metadata invariants: checking and inferring metadata coding conventionsProceedings of the 34th International Conference on Software Engineering10.5555/2337223.2337305(694-704)Online publication date: 2-Jun-2012
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '10: Proceedings of the 9th International Conference on Aspect-Oriented Software Development
March 2010
242 pages
ISBN:9781605589589
DOI:10.1145/1739230
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

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 March 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Eclipse
  2. annotations
  3. configuration
  4. frameworks
  5. metadata

Qualifiers

  • Research-article

Conference

AOSD '10
Sponsor:
  • AOSA

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Edge Cache on WiFi Access Points: Millisecond-Level App Latency Almost for Free2024 IEEE 44th International Conference on Distributed Computing Systems (ICDCS)10.1109/ICDCS60910.2024.00062(601-612)Online publication date: 23-Jul-2024
  • (2023)On the Applicability of Annotation-Based Source Code Modification in Kotlin (Work in Progress)Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622983(2-11)Online publication date: 19-Oct-2023
  • (2012)Metadata invariants: checking and inferring metadata coding conventionsProceedings of the 34th International Conference on Software Engineering10.5555/2337223.2337305(694-704)Online publication date: 2-Jun-2012
  • (2012)Reusing non-functional concerns across languagesProceedings of the 11th annual international conference on Aspect-oriented Software Development10.1145/2162049.2162076(227-238)Online publication date: 25-Mar-2012
  • (2012)Linking Documentation and Source Code in a Software ChrestomathyProceedings of the 2012 19th Working Conference on Reverse Engineering10.1109/WCRE.2012.43(335-344)Online publication date: 15-Oct-2012
  • (2012)Refactoring in the presence of annotationsProceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)10.1109/ICSM.2012.6405291(337-346)Online publication date: 23-Sep-2012
  • (2012)Metadata invariants: Checking and inferring metadata coding conventions2012 34th International Conference on Software Engineering (ICSE)10.1109/ICSE.2012.6227148(694-704)Online publication date: Jun-2012
  • (2010)Tackling pointcut fragility with dynamic annotationsProceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution10.1145/1890683.1890684(1-6)Online publication date: 22-Jun-2010

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