lahela
Uploaded by
20 SLIDES
332 VUES
200LIKES

Enhancing Large Systems with AspectJ: Tool Support and AOP Strategies

DESCRIPTION

This overview discusses the role of tool support in managing large software systems using AspectJ and AOP (Aspect-Oriented Programming). It highlights the importance of integrated development environments (IDEs) for navigating code structures, aiding declaration lookups, and performing structured searches. The document contrasts offline and online interception strategies and examines popular AOP frameworks like AspectWerkz and Spring. Additionally, it discusses practical considerations for adopting AOP and tools that help expose crosscutting structures, ultimately aiming to reduce system complexity and improve maintainability.

1 / 20

Télécharger la présentation

Enhancing Large Systems with AspectJ: Tool Support and AOP Strategies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. CasCon 2004 1..20

    2. 1. aspectj tools overview 3. tool support for large systems

    3. CasCon 2004 3..20 The role of tool support IDE tools make code easy to navigate Reference structure embedded In the code Declaration lookup Structured search But inheritance structure can be hard to extract by reading code alone Especially in large systems E.g. who overrides this method?

    4. CasCon 2004 4..20 AOP is all about crosscutting structure Key idea is dynamic join points method & constructor execution method & constructor call field get & set exception handler execution static & dynamic initialization … Demo…

    5. 1. aspectj tools overview 3. tool support for large systems

    6. CasCon 2004 6..20 Getting started with AOP Things to consider AOP language Tool support Platform integration Hardened Java2 approaches to choose from AspectJ AspectWerkz JBoss AOP Spring Let’s contrast what an aspect looks like in each…

    7. CasCon 2004 7..20 AspectJ

    8. CasCon 2004 8..20 AspectWerkz (annotation style) Offline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile. http://aspectwerkz.codehaus.org/introduction.htmlOffline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile. http://aspectwerkz.codehaus.org/introduction.html

    9. CasCon 2004 9..20 AspectWerkz (XML style) Offline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile. http://aspectwerkz.codehaus.org/introduction.htmlOffline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile. http://aspectwerkz.codehaus.org/introduction.html

    10. CasCon 2004 10..20 Spring Offline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile. http://aspectwerkz.codehaus.org/introduction.htmlOffline interception allows an entire set of classes to be changed once, making runtime execution more efficient, at the cost of making the development cycle less efficient (you've have to manipulate a class file every time you recompiled the Java source). Online interception makes application execution less efficient (because the class must be modified while the program is running), but eliminates the extra step of changing the class file on every compile. http://aspectwerkz.codehaus.org/introduction.html

    11. CasCon 2004 11..20 Language semantics

    12. CasCon 2004 12..20 Language syntax

    13. CasCon 2004 13..20 Platform integration

    14. CasCon 2004 14..20 Tool support

    15. 1. aspectj tools overview 3. tool support for large systems

    16. CasCon 2004 16..20 Making do without AOP support You’re already working with crosscutting structure J2EE’s XML descriptors, generative programming Structured search and refactoring tools can help But it’s not explicit

    17. CasCon 2004 17..20 Exposing crosscutting structure AOP languages express crosscutting directly Direct semantics enable good tool support Crosscutting structure is explicit Editor, views, documentation, … Demo: build configurations, views…

    18. CasCon 2004 18..20 AOP reduces system complexity Aspects are a new language mechanism, so there is a learning curve But with good tool support AOP programs are easier to understand than their OO counterparts

    19. CasCon 2004 19..20 What’s next? Java 5 support Refactoring Java refactorings will update aspects AspectJ refactorings Aspect-oriented refactorings will help with migration and evolution Structure views Everywhere you see OO structure you see the corresponding AO structure

    20. CasCon 2004 20..20 AspectJ credits Versions 0.1-1.1 developed at PARC Eclipse.org Technology project AspectJ committers Adrian Colyer, Andy Clement, Erik Hilsdale, Wes Isberg and Mik Kersten AJDT committers Adrian Colyer, Matt Chapman, Andy Clement, Mik Kersten and Julie Waterhouse http://eclipse.org/aspectj http://eclipse.org/ajdt

More Related