AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba...

18
AOP-Driven AOP-Driven Variability in Variability in Software Product Software Product Lines Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br

Transcript of AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba...

Page 1: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

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

Page 2: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics 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

Page 3: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

Key idea

Product line approach using AOP to implement feature variability

Page 4: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

Management

Core AssetDevelopment

ProductDevelopment

Product Line DevelopmentProduct Line Development

Page 5: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

Product line

Source: SEI

Page 6: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

Product line

Source: SEI

Page 7: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

Product line variability

Dynamicscreens

Translation

Internationalizedscreens

Dynamiccustomization

Dictionary

Colorized screens

MemoryServer

Searchmechanism

Screens

Page 8: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

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

Page 9: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

AOP

AOP modularizes crosscutting concerns

Join point model Aspect = {pointcut, advice,

introduction} Localized implementation Composability Examples: AspectJ, HyperJ

Page 10: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

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

Page 11: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

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

Page 12: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

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

Page 13: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

Case study: J2ME dictionary

Design flexible architecture Focus on mandatory features Use architectural/design patterns

2. 2. Architecture ViewArchitecture View

Page 14: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

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

Page 15: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

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

Page 16: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

Case study: J2ME dictionary

5. 5. Product Generation ViewProduct Generation View

Process code Package the application Install and test

Page 17: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

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

Page 18: AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil {vra,add,phmb}@cin.ufpe.br.

Questions?