110 likes | 226 Views
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
E N D
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 • 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
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
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
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
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()
Limitations - Comprehensibility <<theme>> Registration <<theme>> Join Bind[{<RegisteredUser.set *(..)>, <Auction.makeBid(Bid)>, <Auction.join(User)>, <Auction.set*(..)>}] <<theme>> Bid <<theme>> Offer <<theme>> Persistence
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
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?
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)
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?