Download presentation
Presentation is loading. Please wait.
Published byEdith McLaughlin Modified over 9 years ago
1
Towards an Aspect-oriented Language Module: Aspects for Petri Nets Tim Molderez, Bart Meyers, Dirk Janssens and Hans Vangheluwe Ansymo Antwerp Systems and Software Modelling
2
Introduction Building a language from scratch is a large effort: Construct languages by composing modules Aspect-oriented versions of many different languages →What about an “aspect-oriented language module”? Using the module will add aspect-oriented features to your language 2
3
Introduction Initial step towards an AO language module: Start with something completely different than commonly used base languages (e.g. Java) … Petri nets! Non-deterministic, minimal and a different purpose How do typical AOP features work for Petri nets? Design the AOP extension in a modular fashion 3
4
Running example 4 P5-P8: represent rooms of a building «enter», «exit» stereotypes: entrances and exits Invariant: There may never be more than 30 people inside at the same time.
5
Running example 5 VisitorCounter aspect: Keeps track of how many people are in the building WaitingLine aspect: Prevents access if the building is full and directs these people to a waiting line
6
AOPN extension overview 6 Base language (PN)Join point model Pointcut languageAdvice language Weaver Composition mechanism
7
Join point model Whenever a transition is about to fire. Not affected by non-determinism: Petri net execution has already chosen/determined among all enabled transitions which one will be fired. 7
8
Weaver 1.When a join point is reached, pause Petri net execution. 2.Find all matching pointcuts, given the current state. 3.Use the composition mechanism to arrange the matched pointcuts in the right order. 4.Insert all corresponding advice into the Petri net, in the composition order. 5.Resume Petri net execution. 8
9
9
10
10 VisitorCounter aspect Keeps track of the number of people in the building
11
11 increaseOnEnter pointcut-advice pair Tracks all people entering
12
12 transition pointcut construct Captures all instances of transitions by name or stereotype
13
13 Introductions: Allow places to be shared across advice instances and aspects Introduced places can be a singleton, or per transition
14
14 Input-output place binding
15
15 Advice insertion in 3 steps: What happens if increaseOnEnter matches on T1
16
16 Simple AspectJ-like precedence mechanism
17
17 pertransition introduction: One waiting line per entrance
18
18 tokens pointcut construct: If the building is full
19
19 Proceed transition: If multiple pointcuts match, insert the next advice at the proceed transition No proceed transition: To prevent a transition from firing
20
20 Demo
21
Conclusion Initial step towards an AO language module: Aspect-oriented Petri nets Future work Study other base languages to refine concept of language module Define the interactions between the module’s components How does adding aspect affect Petri nets’ use for analysis Petri nets suitable language to study interactions among aspects Download this presentation at: http://tinyurl.com/dsal12aopnhttp://tinyurl.com/dsal12aopn 21 Contact: tim.molderez@ua.ac.be, bart.meyers@ua.ac.be | http://ansymo.ua.ac.be
22
Mapping to Petri nets 22 No advice Never applies increaseOnEnter If building not full decreaseOnEnter Always applies moveToWaitingLine + increaseOnEnter / preventEntrance If building full
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.