Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Footprint and feature management using aspect-oriented programming techniques

Published: 19 June 2002 Publication History

Abstract

Applications accrue features in response to the needs of all users, yet the associated code bloating and performance loss often render an application unsuitable for some users, particularly those interested in using the application in an embedded system. As a result, developers are often faced with either reinventing pieces of an application, custom tailored to their needs, or they are faced with the daunting task of refactoring an existing application to obtain an appropriate subset of that application's functionality. In either case, subsequent development, maintenance and testing of the application becomes more complex, due to the effects of future revisions on all of the derived subsets.In this paper, we report on our experience in obtaining subsets of an application's functionality, using a relatively new programming-language paradigm and tool to achieve the subsets compositionally. Instead of refactoring a large, feature-rich application, a feature can be added by including that feature's aspect in the set provided to an aspect compiler. In particular, a minimal, base implementation was developed in Java and features were added by supplying the appropriate advice to an AspectJ compiler. We describe our approach and present footprint and performance results for automatically derived subsets of an event channel.

References

[1]
Apache Software Foundation. log4j. http://jakarta.apache.org/log4j/]]
[2]
K. Arnold, J. Gosling, and D. Holmes. The Java Programming Language. Addison-Wesley, Boston, 2000]]
[3]
F. P. Brooks. No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer, 20(4):10--19, Apr. 1987]]
[4]
G. Brose, N. Noffke, and S. Müller. JacORB 1.4 Programming Guide. http://jacorb.inf.fu-berlin.de/ftp/doc/ProgrammingGuide_1.4.pdf, 2001]]
[5]
Center for Distributed Object Computing. The ACE ORB (TAO). www.cs.wustl.edu/~schmidt/TAO.html, Washington University.]]
[6]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, Massachusetts, 1995]]
[7]
P. Gore, R. K. Cytron, D. C. Schmidt, and C. O'Ryan. Designing and Optimizing a Scalable CORBA Notification Service. In Proceedings of the Workshop on Optimization of Middleware and Distributed Systems, pages 196--204, Snowbird, Utah, June 2001. ACM SIGPLAN]]
[8]
T. H. Harrison, D. L. Levine, and D. C. Schmidt. The Design and Performance of a Real-time CORBA Event Service. In Proceedings of OOPSLA '97, pages 184--199, Atlanta, GA, October 1997. ACM]]
[9]
F. Hunleth, R. Cytron, and C. Gill. Building Customizable Middleware using Aspect Oriented Programming. In The OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Tampa Bay, FL, Oct. 2001. ACM. http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/ASoC.html]]
[10]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of the 11th European Conference on Object-Oriented Programming, June 1997]]
[11]
D. Lea. Concurrent Java: Design Principles and Patterns, Second Edition. Addison-Wesley, Reading, Massachusetts, 1999]]
[12]
J. P. Morgenthal. Microsoft COM+ Will Challenge Application Server Market. www.microsoft.com/com/wpaper/complus-appserv.asp, 1999]]
[13]
Object Management Group. Notification Service Specification, OMG Document telecom/99-07-01 edition, July 1999]]
[14]
Object Management Group. The Common Object Request Broker: Architecture and Specification, 2.4 edition, Oct. 2000]]
[15]
Olaf Spinczyk and Andreas Gal and Wolfgang Schröder-Preikschat. AspectC++: An Aspect-Oriented Extension to C++. In Proceedings of the 40th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), Feb. 2002]]
[16]
OMG. CORBAServices: Common Object Services Specification, Revised Edition. Object Management Group, 97-12-02 edition, Nov. 1997]]
[17]
C. O'Ryan, D. C. Schmidt, and J. R. Noseworthy. Patterns and Performance of a CORBA Event Service for Large-scale Distributed Interactive Simulations. International Journal of Computer Systems Science and Engineering, 17(2), Mar. 2002]]
[18]
D. C. Schmidt. The ADAPTIVE Communication Environment (ACE). www.cs.wustl.edu/~schmidt/ACE.html, 1997]]
[19]
D. C. Schmidt, M. Stal, H. Rohnert, and F. Buschmann. Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, Volume 2. Wiley & Sons, New York, 2000]]
[20]
The AspectJ Organization. Aspect-Oriented Programming for Java. www.aspectj.org, 2001]]
[21]
The GCC Team. GCJ: The GNU Compiler for Java. http://gcc.gnu.org/java/]]
[22]
A. Wollrath, R. Riggs, and J. Waldo. A Distributed Object Model for the Java System. USENIX Computing Systems, 9(4), November/December 1996]]

Cited By

View all
  • (2011)Assessing Idioms for Implementing Features with Flexible Binding TimesProceedings of the 2011 15th European Conference on Software Maintenance and Reengineering10.1109/CSMR.2011.29(231-240)Online publication date: 1-Mar-2011
  • (2008)Program refactoring using functional aspectsProceedings of the 7th international conference on Generative programming and component engineering10.1145/1449913.1449938(161-170)Online publication date: 19-Oct-2008
  • (2007)Measuring and Characterizing Crosscutting in Aspect-Based Programs: Basic Metrics and Case StudiesFundamental Approaches to Software Engineering10.1007/978-3-540-71289-3_32(423-437)Online publication date: 2007
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 37, Issue 7
July 2002
232 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/566225
Issue’s Table of Contents
  • cover image ACM Conferences
    LCTES/SCOPES '02: Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
    June 2002
    244 pages
    ISBN:1581135270
    DOI:10.1145/513829
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 June 2002
Published in SIGPLAN Volume 37, Issue 7

Check for updates

Author Tags

  1. AOP
  2. embedded systems
  3. event service
  4. middleware
  5. software composition
  6. subsetting

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)1
Reflects downloads up to 14 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2011)Assessing Idioms for Implementing Features with Flexible Binding TimesProceedings of the 2011 15th European Conference on Software Maintenance and Reengineering10.1109/CSMR.2011.29(231-240)Online publication date: 1-Mar-2011
  • (2008)Program refactoring using functional aspectsProceedings of the 7th international conference on Generative programming and component engineering10.1145/1449913.1449938(161-170)Online publication date: 19-Oct-2008
  • (2007)Measuring and Characterizing Crosscutting in Aspect-Based Programs: Basic Metrics and Case StudiesFundamental Approaches to Software Engineering10.1007/978-3-540-71289-3_32(423-437)Online publication date: 2007
  • (2012)CiAO/IPProceedings of the 10th international conference on Mobile systems, applications, and services10.1145/2307636.2307676(435-448)Online publication date: 25-Jun-2012
  • (2012)Mining Crosscutting Concerns through Random WalksIEEE Transactions on Software Engineering10.1109/TSE.2011.8338:5(1123-1137)Online publication date: 1-Sep-2012
  • (2012)SPL ConquerorSoftware Quality Journal10.1007/s11219-011-9152-920:3-4(487-517)Online publication date: 1-Sep-2012
  • (2011)FORMS: Feature-Oriented Reverse Engineering-based Middleware Specialization for Product-LinesJournal of Software10.4304/jsw.6.4.519-5276:4Online publication date: 12-Apr-2011
  • (2011)Scalable Prediction of Non-functional Properties in Software Product LinesProceedings of the 2011 15th International Software Product Line Conference10.1109/SPLC.2011.20(160-169)Online publication date: 22-Aug-2011
  • (2011)A Generative Middleware Specialization Process for Distributed Real-Time and Embedded SystemsProceedings of the 2011 14th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing10.1109/ISORC.2011.32(197-204)Online publication date: 28-Mar-2011
  • (2010)A Novel Synchronization Technique Based on Kalman Filter for TD-SCDMA2010 International Conference on Computational Intelligence and Software Engineering10.1109/WICOM.2010.5601438(1-4)Online publication date: Sep-2010
  • Show More Cited By

View Options

Get Access

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