Title: AOP-Driven Variability in Software Product Lines
1AOP-Driven Variability in Software Product Lines
Vander Alves, Ayla Dantas, and Paulo
Borba Informatics Center UFPE Brazil
vra,add,phmb_at_cin.ufpe.br
2Motivation
- Demand for pervasive computing applications
- Different devices and features
- Comply with ever-increasing quality and
productivity requirements
3Key idea
- Product line approach using AOP to implement
feature variability
4Product Line Development
Product Development
Core Asset Development
Management
5Product line
Source SEI
6Product line
Source SEI
7Product line variability
8Aspect-oriented programming (AOP)
- Distribution, persistence, synchronization,
logging, protocols. - Crosscuting concerns
- Spread and tangled code
- Hard to maintain and reuse
- OO techniques cannot completely address
9AOP
- AOP modularizes crosscutting concerns
- Join point model
- Aspect pointcut, advice, introduction
- Localized implementation
- Composability
- Examples AspectJ, HyperJ
10Our approach
11Our approach
12Case study J2ME dictionary
1. Feature View
- Define product line features
- Identify common features for all products
- Identify variable features
13Case study J2ME dictionary
2. Architecture View
- Design flexible architecture
- Focus on mandatory features
- Use architectural/design
- patterns
14Case study J2ME dictionary
3. Variation View
- Identify application points to be crossed
- Design aspects correspondent to variable
- features (feature -gt aspect)
- Design auxiliary classes
- Use design patterns
15Case study J2ME dictionary
4. Composition View
- Collect the aspects relative
- to the desired features
- Select auxiliary classes
- Use an AOP Weaver
- Generate weaved code
16Case study J2ME dictionary
5. Product Generation View
- Process code
- Package the application
- Install and test
17References
- http//www.sei.cmu.edu/plp/framework.html
- Sérgio Soares, Eduardo Laureano, Paulo Borba.
Implementing distribution and persistence aspects
with AspectJ. In 17th Annual ACM Conference on
Object-Oriented Programming, Systems, Languages
and Applications, OOPSLA'2002, pages 174-190,
Seattle, USA, 4th-8th November 2002. - www.cin.ufpe.br/gpqs
- Krzystof Czarnecki and Ulrich Eisenecker.
Generative Programming Methods, Tools, and
Applications. Addison-Wesley.2000 - http//gpce.org
18Questions?