AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba...
-
Upload
sherman-douglas -
Category
Documents
-
view
215 -
download
0
Transcript of AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba...
AOP-Driven AOP-Driven Variability in Variability in
Software Product Software Product LinesLines
Vander Alves, Ayla Dantas, and Paulo BorbaInformatics Center – UFPE – Brazil
{vra,add,phmb}@cin.ufpe.br
Motivation
Demand for pervasive computing applicationsDifferent devices and featuresComply with ever-increasing quality and productivity requirements
Key idea
Product line approach using AOP to implement feature variability
Management
Core AssetDevelopment
ProductDevelopment
Product Line DevelopmentProduct Line Development
Product line
Source: SEI
Product line
Source: SEI
Product line variability
Dynamicscreens
Translation
Internationalizedscreens
Dynamiccustomization
Dictionary
Colorized screens
MemoryServer
Searchmechanism
Screens
Aspect-oriented programming (AOP)
Distribution, persistence, synchronization, logging, protocols.
Crosscuting concerns Spread and tangled code Hard to maintain and reuse OO techniques cannot
completely address
AOP
AOP modularizes crosscutting concerns
Join point model Aspect = {pointcut, advice,
introduction} Localized implementation Composability Examples: AspectJ, HyperJ
Our approach
Design Design productproduct
line line architecturearchitecture
FeatureFeatureModelingModeling
Design Design variationsvariations
using using aspectsaspects
Compose aspects of a Compose aspects of a product and businessproduct and business
classes usingclasses usingAOP WeaversAOP Weavers
GenerateGenerateversion of a version of a
productproduct
Feature=
Aspect+auxiliary classes
Our approach
FeatureModeling
Design Product Line Architecture
Design variationsusing aspects
Compose aspects of a product andbusiness classes
using AOP Weavers
Generate version of a product
Management
Core AssetDevelopment
ProductDevelopment
Case study: J2ME dictionary
Dynamicscreens
Translation
Internationalizedscreens
Dynamiccustomization
Dictionary
Colorized screens
MemoryServer
Searchmechanism
Screens
Define product line features Identify common features for all products Identify variable features
1. 1. Feature ViewFeature View
Case study: J2ME dictionary
Design flexible architecture Focus on mandatory features Use architectural/design patterns
2. 2. Architecture ViewArchitecture View
Case study: J2ME dictionary
3. 3. Variation ViewVariation View
Identify application points to be crossed Design aspects correspondent to variable features (feature -> aspect)Design auxiliary classes Use design patterns
Case study: J2ME dictionary4. 4. Composition ViewComposition View
Weaver
Collect the aspects relative to the desired features Select auxiliary classes Use an AOP Weaver Generate weaved code
Case study: J2ME dictionary
5. 5. Product Generation ViewProduct Generation View
Process code Package the application Install and test
References
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
Questions?