1 / 23

Uniform Support for Modeling Crosscutting Structure

Uniform Support for Modeling Crosscutting Structure. Maria Tkatchenko Gregor Kiczales. Work supported by IBM and NSERC. Crosscutting in a ‘UML’ Model. Advice: advise method(Subject.change(…)): “moving concern”. Crosscutting in a ‘UML’ Model. Crosscutting in a ‘UML’ Model. Role Binding:

Download Presentation

Uniform Support for Modeling Crosscutting Structure

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. Uniform Support for Modeling Crosscutting Structure Maria Tkatchenko Gregor Kiczales Work supported by IBM and NSERC.

  2. Crosscutting in a ‘UML’ Model Advice: advise method(Subject.change(…)): “moving concern” AOSD 2005

  3. Crosscutting in a ‘UML’ Model AOSD 2005

  4. Crosscutting in a ‘UML’ Model Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change AOSD 2005

  5. Crosscutting in a ‘UML’ Model Advice: advise method(Subject.change(…)): “moving concern” Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change AOSD 2005

  6. Related Work • [Katara, Mikkonen, ‘02] • hierarchy of related refinements • merge sequences for composed behaviour • [Lions et.al.,’02] • AOP in UML through use of meta-modeling in OpenTool/UML • [Baniassad, Clarke, ‘04] • modeler identifies and binds aspects (themes) • throughout lifecycle of project • [Kande et.al.,’02] • first-class aspects in UML AOSD 2005

  7. Terminology • Model • as in modeling, UML, MDD, meta-model… • JPM • as in join point model • supports the above crosscutting models AOSD 2005

  8. Goals • Foundation for modeling crosscutting structure • Compositional • different model elements • different crosscutting perspectives • Simple • uniform • linear in number of crosscutting views (not exponential) • relatively easy to add new kind of crosscutting • Simplifies implementation of modeling tool • directly benefits for modeling tool implementer, meta-modeler • i.e. would it be easier to add pattern support with this approach? • indirectly benefits modeler AOSD 2005

  9. What JPM (Join Point Model) Supports That • JPMs are fundamental mechanism for support of crosscutting • A simple JPM for UML • (for now, taking freedom to change the UML meta-model) • JPMs have three parts [Masuhara, ‘03] • Join points • Identifying join points • Semantic effect AOSD 2005

  10. JPM • Join points • model elements • Class, Method, Field, Advice in Class Diagram • Method Call, Sequence (focus of control) in Sequence Diagram • uniform, but 2 JPs per crosscutting interaction • Identifying join points • signatures, type patterns, pointcuts… • Semantic effect • each has particular declaration semantics • declare a class, method, sequence, advice… • Weaver • based on Eclipse EMF framework • collects crosscutting among the elements • what elements crosscut each other? AOSD 2005

  11. JoinPoint crosscutByList: List<JoinPoint> ClassDiagramMemberDecl SequenceDiagramMemberDecl ClassDecl ClassMemberDecl SequenceDecl MethodCallDecl Meta-Model Declaration FieldDecl MethodDecl AdviceDecl AOSD 2005

  12. Crosscutting in the weaver (<jp>, <jp>, <jp>, <jp>, <jp>, <jp>, …) AOSD 2005

  13. Crosscutting in the weaver (<jp>, <jp>, <jp>, <jp>, <jp>, <jp>, …) AOSD 2005

  14. Crosscutting in the weaver • every element has crosscutByList • two join points per crosscutting interaction (… <jp>, …) (…<jp>, …) AOSD 2005

  15. Crosscutting in the weaver • same thing happens for all kinds of cc Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change (<jp>, <jp>, <jp>, <jp>, <jp>, <jp>, …) AOSD 2005

  16. Crosscutting in the weaver (<jp>, <jp>, <jp>,…) Advice: advise method(Subject.change(…)): “moving concern” Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change • how is advice affected by role binding? (<jp>, <jp>, <jp>, <jp>, <jp>, <jp>, …) AOSD 2005

  17. Crosscutting in the weaver (<jp>, <jp>, <jp>,…) Advice: advise method(Subject.change(…)): “moving concern” Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change ( <jp>, <jp>,…) • how is advice affected by role binding? (<jp>, <jp>, <jp>, <jp>, <jp>, <jp>, …) AOSD 2005

  18. Implementation • Simple staged approach to weaving • role binding • inter-type declarations • sequence diagrams • advice • Simplifies semantic interactions • advice depends on roles, but not vice versa • Each pass records • relevant semantic information • type and method inheritance tables • additions to crosscutByList of each JP AOSD 2005

  19. Use of woven information • Question: how to find out whether an element has advice applied to it? boolean hasAdvice(Decl decl) { for(Decl otherDecl: decl.getCrosscutByList()) if (otherDecl instanceof AdviceDecl) return true; return false; AOSD 2005

  20. Use of woven information • Question: how to build the complete (possible) cflow of a call C for C and any calls in its sequence diagram, repeat containedCalls(call) List containedCalls(Call c1) { List result; for (Decl c2: c1.getCrosscutByList()) if (c2 instanceof Call && c1.getSignature().matches(c2.getSignature()) { result.add(c2); result.addAll(containedCalls(c2)); } } AOSD 2005

  21. Status of work • Done so far • JPM design • UML meta-model • UML language • Implementation: weaver • Prototype • Modular • Simplified: reasonable subset of UML • no methodReceipt, methodReturn join points in Sequence Diagrams • no other diagrams AOSD 2005

  22. Summary • Simple approach to modeling crosscutting • for existing and new kinds of crosscutting • Simple and modular implementation • Approach consists of • JPM • extension to the UML meta-model • weaver AOSD 2005

  23. Uniform Support for Modeling Crosscutting Structure QUESTIONS?

More Related