Title: Toward the Integration of Theme/UML
1Toward the Integration of Theme/UML JPDDs
- Andrew Jackson, Siobhán Clarke
Distributed Systems Group, Dept. of Computer
Science, Trinity College Dublin,
Ireland, Andrew.Jackson, Siobhan.Clarke
_at_cs.tcd.ie
2Presentation 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
3Theme/UML
Aspectual Themes
Auction.New(..) AND visibility true
Join point selection
BindltAuction.New()gt, ltAuction.New(Time)gt
ltltthemegtgt Close Auction
ThemeName(OfferSlice) matchname
Auction.New(..)
Merge
sd close()
ltltthemegtgt Offer
sd offer()
Auction
_do_New()
new()
AuctionsView
ltltcreategtgt
AuctionMonitor
start()
offer_Offer()
offer()
hasExpired()
Loop until true
new()
Auction
new(Time)
close()
Auction
Base Themes
4Problems
- 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
5Join point designation diagrams
Structural selection context
Behavioural selection context
AuctionConstructorJPPD
lt?objgtAuctionView
lt?objgt AuctionView
lt?jpgtnew(..)
verified Boolean True
Auction
Auction
lt?jpgtnew(..)
lt?jpgt lt?objgt
Static context public visibility
Pattern Signature
Identifier
selected elements
Dynamic Context attribute value
Instance Identifier
Instance Identifier
6Theme/UML JPDD Integration
Bind AuctionConstructorJPPD
lt?objgtAuctionView
lt?objgt AuctionView
lt?jpgtnew(..)
verified Boolean True
Auction
Auction
lt?jpgtnew(..)
lt?jpgt lt?objgt
ltltthemegtgt Close Auction
Auction.New(..)
ThemeName(OfferSlice) matchname
ltltthemegtgt Offer
sd close()
sd offer()
Auction
AuctionsView
_do_New()
new()
ltltcreategtgt
offer_Offer()
AuctionMonitor
offer()
start()
hasExpired()
Loop until true
new()
Auction
new(Time)
Auction
close()
7Limitations - Comprehensibility
ltltthemegtgt Registration
ltltthemegtgt Join
BindltRegisteredUser.set (..)gt, ltAuction.makeBid
(Bid)gt, ltAuction.join(User)gt, ltAuction.set(..)gt
ltltthemegtgt Bid
ltltthemegtgt Offer
ltltthemegtgt Persistence
8AuctionUpdatesJPDD
RegisteredUserCCDUpdatesJPDD
Auction
Register
RegisteredUser
set(..)lt?jpgt
setCreditCardDetails(CreditCardDetails)lt?jpgt
?jp
?jp
JoinedAuctionJPDD
p?jp?jp
p?jp?jp
AuctionsView
Auction
joinAuction(User)lt?jpgt
?jp
RegisteredUserUpdatesJPDD
p?jp?jp
POUpdatesJPDD
Register
RegisteredUser
p?jp?jp
set(..)lt?jpgt
p?jp?jp
?ac ?jp
?jp
P?ac?ac
NewHighestBidJPDD
AuctionOpVisibilityJPDD
lt?acgtAuction
AuctionView
lt?acgtAuction
makeBid(Bid)
makeBid(Bid)lt?jpgt
?ac ?jp
?ac
9Other 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?
10Summary 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 contd
- Join point selection based on dynamic
- Control flow (see paper aids reuse)
- State based (see paper state based selection)
- Data flow (future work)
11End
- 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?