Aspect-Oriented Software Engineering (AOSE)
Aspect-Oriented Software Engineering (AOSE)
Aspect-Oriented Software
Engineering (AOSE)
(cont’d)
Chapter 21 Aspect-Oriented Software Engineering Slide 3
Introduction and motivation (cont’d)
(cont’d)
Chapter 21 Aspect-Oriented Software Engineering Slide 4
Introduction and motivation (cont’d)
Thus, implementing a requirements change
may involve understanding and changing
more than one component.
Aspect-Oriented Software Engineering
(AOSE) is an approach to SE intended to
address this problem.
It is based on a relatively new type of
abstraction - an aspect, and is normally used
together with OO software engineering.
(cont’d)
Chapter 21 Aspect-Oriented Software Engineering Slide 5
Introduction and motivation (cont’d)
Aspects encapsulate functionality that cross-
cuts other functionality.
R&D in this area has primarily focused on
aspect-oriented programming.
Languages such as AspectJ have extended OO
languages to include aspects, and have been
used in major companies.
AOSE’s focus on separating concerns is an
important way of thinking about and structuring
software systems, but it is not yet mainstream
SE. AspectJ was developed at Xerox PARC
and made available in 2001.
Security reqmts
Cross-cutting
concerns
Recovery reqmts
tangling
(tangling)
Security reqmts
Cross-cutting
concerns
Recovery reqmts
tangling
(tangling)
Security reqmts
Cross-cutting
concerns
Recovery reqmts
if ( numberOfEntries == bufsize)
wait () ;
notify () ;
} // put
Chapter 21 Aspect-Oriented Software Engineering Slide 14
Scattering of methods implementing
secondary concerns
(cont’d)
Chapter 21 Aspect-Oriented Software Engineering Slide 22
Aspect weaving (cont’d)
(cont’d)
Chapter 21 Aspect-Oriented Software Engineering Slide 28
Key points (cont’d)
Scattering occurs when the implementation
of a concern is scattered across several
components.
Aspects include a pointcut statement that
defines where the aspect will be woven into
the program, and advice – the code to
implement the cross-cutting concern.
Join points are the events specified in a
pointcut.
(cont’d)
Chapter 21 Aspect-Oriented Software Engineering Slide 29
Key points (cont’d)
The problems of inspecting and designing
structural tests for aspect-oriented programs
are significant barriers to the adoption of
AOSE in large software projects.
Aspect-Oriented Software
Engineering (AOSE)