Mixing of join point interfaces and feature-oriented programming for modular software product line

Cristian Vidal, David Benavides, Paul Leger, José Angel Galindo, Hiroaki Fukuda

Research output: Contribution to journalConference articlepeer-review

3 Citations (Scopus)


Feature-oriented programming (FOP) and aspect-oriented programming (AOP) focus on to modularize incremental classes behavior and crosscutting concerns, respectively, for software evolution. So, these software development approaches represent advanced paradigms for a modular software product lines production. Thereby, a FOP and AOP symbiosis would permit reaching pros and cons of both approaches. FOP permits a modular refinement of classes collaboration for software product lines (SPL), an adequate approach to represent named heterogeneous crosscutting concerns. FOP works on changes of different functionality pieces for which to define join points is not a simple task. Similarly, AOP structurally modularizes in a refined manner homogeneous crosscutting concerns. Since traditional AOP like Aspect J presents implicit dependencies and strong coupling between classes and aspects, and the Join Point Interface JPI approach solves these classic AOP issues, this article presents JPI Feature Modules for the FOP + JPI SPL components modularization, i.e., collaboration of classes, aspects, and join point interfaces along with their evolution, for a SPL transparent implementation in a FOP + JPI context. In addition, this article shows JPI Feature Modules of a case study to highlight mutual benefits of FOP and JPI approaches for a modular SPL software conception.


  • Classic AOP
  • FOP
  • JPI
  • JPI-FM
  • Modular software
  • SPL

ASJC Scopus subject areas

  • Artificial Intelligence
  • Computer Networks and Communications
  • Hardware and Architecture
  • Software
  • Neuroscience (miscellaneous)


Dive into the research topics of 'Mixing of join point interfaces and feature-oriented programming for modular software product line'. Together they form a unique fingerprint.

Cite this