1 / 11

Toward the Integration of Theme/UML & JPDDs

Toward the Integration of Theme/UML & JPDDs. Distributed Systems Group, Dept. of Computer Science, Trinity College Dublin, Ireland, {Andrew.Jackson, Siobhan.Clarke} @cs.tcd.ie. Andrew Jackson , Siobhán Clarke. Presentation Overview. Theme/UML Well defined AOD language

Télécharger la présentation

Toward the Integration of Theme/UML & JPDDs

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. Toward the Integration of Theme/UML & JPDDs Distributed Systems Group, Dept. of Computer Science, Trinity College Dublin, Ireland, {Andrew.Jackson, Siobhan.Clarke} @cs.tcd.ie Andrew Jackson, Siobhán Clarke

  2. Presentation Overview • Theme/UML • Well defined AOD language • Supports an symmetric decomposition model • Problems (Auction System Case Study) • What we may like to do but cant… • JPDD • Contextual join point selection • Limitations & benefits

  3. Theme/UML Aspectual Themes Auction.New(..) AND visibility = true Join point selection Bind[{<Auction.New()>, <Auction.New(Time)>}] <<theme>> Close Auction ThemeName(OfferSlice) match[name] Auction.New(..) Merge sd close() <<theme>> Offer sd offer() Auction _do_New() new() AuctionsView <<create>> AuctionMonitor start() offer_Offer() offer() hasExpired() Loop until true new() Auction new(Time) close() Auction Base Themes

  4. Problems • What if I want to specify join point selection that is based on the dynamic state of the system? • What if I want to constrain selection based on some property that is not directly related to the join point? • Assume: • Textual representation is less intuitive for the designer and they would prefer a means for visually model join point selection

  5. Join point designation diagrams Structural selection context Behavioural selection context AuctionConstructorJPPD <?obj>*:AuctionView <?obj>*: AuctionView <?jp>new(..) verified: Boolean [True] *:Auction *: Auction +<?jp>new(..) <?jp> <?obj> Static context: public visibility Pattern Signature Identifier selected elements Dynamic Context: attribute value Instance Identifier Instance Identifier

  6. Theme/UML & JPDD Integration Bind: AuctionConstructorJPPD <?obj>*:AuctionView <?obj>*: AuctionView <?jp>new(..) verified: Boolean [True] *:Auction *: Auction +<?jp>new(..) <?jp> <?obj> <<theme>> Close Auction Auction.New(..) ThemeName(OfferSlice) match[name] <<theme>> Offer sd close() sd offer() Auction AuctionsView _do_New() new() <<create>> offer_Offer() AuctionMonitor offer() start() hasExpired() Loop until true new() Auction new(Time) Auction close()

  7. Limitations - Comprehensibility <<theme>> Registration <<theme>> Join Bind[{<RegisteredUser.set *(..)>, <Auction.makeBid(Bid)>, <Auction.join(User)>, <Auction.set*(..)>}] <<theme>> Bid <<theme>> Offer <<theme>> Persistence

  8. AuctionUpdatesJPDD RegisteredUserCCDUpdatesJPDD *:* *:Auction *: Register *: RegisteredUser set*(..):*<?jp> setCreditCardDetails(CreditCardDetails)<?jp> ?jp ?jp JoinedAuctionJPDD p{?jp=?jp} p{?jp=?jp} *:AuctionsView *:Auction joinAuction(User):*<?jp> ?jp RegisteredUserUpdatesJPDD p{?jp=?jp} POUpdatesJPDD *: Register *: RegisteredUser p{?jp=?jp} set*(..):*<?jp> p{?jp=?jp} ?ac ?jp ?jp P{?ac=?ac} NewHighestBidJPDD AuctionOpVisibilityJPDD <?ac>*:Auction *:AuctionView <?ac>*:Auction +makeBid(Bid) makeBid(Bid)<?jp> ?ac ?jp ?ac

  9. Other Limitations • Limitations • Tooling - Automated UML weaving • Themes would need to be well specified to ensure dynamic models available for OCL meta-operations • Work has begun to implement this composition in Kermeta (kermeta.org) • Not clear how this can be extended for specific domains? • Open for discussion?

  10. Summary & Conclusions • In this paper we have: • Identified a limitations of Theme/UML • Shown how JPDDs can over come these • Illustrated how these approaches can be represented • JPDD - Theme integration cont’d • Join point selection based on dynamic • Control flow (see paper – aids reuse) • State based (see paper – state based selection) • Data flow (future work)

  11. End • Discussion 5 mins… • Implementation – Does anyone have a perspective or experiences they want to share with me? • Do designers need this level of expressiveness for join point selection in UML models, do they real need visual models for join point selection? • Reuse: Does improved compensability improve reuse? • Can I design by contract in AOM? Composition Contracts?

More Related