1 / 18

AOP-Driven Variability in Software Product Lines

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 applications Different devices and features

Jims
Download Presentation

AOP-Driven Variability in Software Product Lines

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  2. Motivation • Demand for pervasive computing applications • Different devices and features • Comply with ever-increasing quality and productivity requirements

  3. Key idea • Product line approach using AOP to implement feature variability

  4. Product Line Development Product Development Core Asset Development Management

  5. Product line Source: SEI

  6. Product line Source: SEI

  7. Product line variability

  8. 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

  9. AOP • AOP modularizes crosscutting concerns • Join point model • Aspect = {pointcut, advice, introduction} • Localized implementation • Composability • Examples: AspectJ, HyperJ

  10. Feature= Aspect+ auxiliary classes Feature Modeling Design product line architecture Compose aspects of a product and business classes using AOP Weavers Design variations using aspects Generate version of a product Our approach

  11. Our approach

  12. Case study: J2ME dictionary 1. Feature View • Define product line features • Identify common features for all products • Identify variable features

  13. Case study: J2ME dictionary 2. Architecture View • Design flexible architecture • Focus on mandatory features • Use architectural/design patterns

  14. Case study: J2ME dictionary 3. Variation View • Identify application points to be crossed • Design aspects correspondent to variable features (feature -> aspect) • Design auxiliary classes • Use design patterns

  15. Weaver Case study: J2ME dictionary 4. Composition View • Collect the aspects relative to the desired features • Select auxiliary classes • Use an AOP Weaver • Generate weaved code

  16. Case study: J2ME dictionary 5. Product Generation View • Process code • Package the application • Install and test

  17. 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

  18. Questions?

More Related