Theme: An Approach for Aspect-Oriented Analysis and Design

Theme:
An Approach for Aspect-Oriented Analysis and Design
Peter van de Werken
Seminar Aspect-Oriented Programming
October 1, 2007
Peter van de Werken ()
AOP - Session 7
October 1, 2007
1 / 14
Theme: Aspect-Oriented Analysis and Design
Outline
Action view
Clipped Action view
Theme view
Theme/UML
Augmented Theme view
Remaining questions
Peter van de Werken ()
AOP - Session 7
October 1, 2007
2 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 1
Action view
R3: When a student registers then it must be logged in their record.
Peter van de Werken ()
AOP - Session 7
October 1, 2007
3 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 1
Question from Christiaan
They talk about lexical analysis being done by Theme/Doc a couple of
times, but isn’t that terribly inaccurate and error prone? They actually
mention in 4.1 that they had problems with synonyms and I imagine there
will be other problems like that. So wouldn’t it be easier to model it by
hand instead of letting a tool try to guess it and then fix the mistakes of
the tool?
Peter van de Werken ()
AOP - Session 7
October 1, 2007
4 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 2
Clipped Action view
Finding crosscutting themes.
Peter van de Werken ()
AOP - Session 7
October 1, 2007
5 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 3
Theme view - register
R1: Students can register for courses.
Peter van de Werken ()
AOP - Session 7
October 1, 2007
6 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 5
Theme view - logged
R6: When a professor unregisters a student it must be logged.
Peter van de Werken ()
AOP - Session 7
October 1, 2007
7 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 4
Theme/UML - register
R1: Students can register for courses.
Peter van de Werken ()
AOP - Session 7
October 1, 2007
8 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 6
Theme/UML - logged
bind[<{Person, Student, Professor},{Student.register(),
Person.unregister(), Professor.giveMark()}>]
Peter van de Werken ()
AOP - Session 7
October 1, 2007
9 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 6
Question from Alesya
From the diagrams in the paper it seems that Theme/UML makes use of
both class diagram notation and also sequence diagram notation. I wonder
what additional information does those diagrams have to capture that
allows to depict how cross-cutting concerns relate to each other?
Peter van de Werken ()
AOP - Session 7
October 1, 2007
10 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 6
Question from Martijn
And can you tell us what the consequences of the determination of the
crosscutting themes are? How do they affect the implementation of the
system? For example, if the system is implemented in AspectJ, does every
Theme aspect correspond to an AspectJ aspect?
Peter van de Werken ()
AOP - Session 7
October 1, 2007
11 / 14
Theme: Aspect-Oriented Analysis and Design
Figure 8
Augmented Theme view - register
Peter van de Werken ()
AOP - Session 7
October 1, 2007
12 / 14
Theme: Aspect-Oriented Analysis and Design
Remaining questions
Remaing questions
Question from Mark
Are there other approaches to using aspects at design level? How do they
work?
Question from Mark
Is this Theme-approach commonly used in practice?
Question from Robbin
Are there any tools that can be used for this approach?
Peter van de Werken ()
AOP - Session 7
October 1, 2007
13 / 14
Theme: Aspect-Oriented Analysis and Design
Remaining questions
Discussion question from Alesya
There may be situations when requirements frequently change in the
software development process. Do you think that decomposing
requirements into aspects helps dealing with any changes when
requirements evolve?
Peter van de Werken ()
AOP - Session 7
October 1, 2007
14 / 14