  We define a method to modularize crosscutting concerns in Component-Based
Systems (CBSs) expressed using the Behavior Interaction Priority (BIP)
framework. Our method is inspired from the Aspect Oriented Programming (AOP)
paradigm which was initially conceived to support the separation of concerns
during the development of monolithic systems. BIP has a formal operational
semantics and makes a clear separation between architecture and behavior to
allow for compositional and incremental design and analysis of systems. We
distinguish local from global aspects. Local aspects model concerns at the
component level and are used to refine the behavior of components. Global
aspects model concerns at the architecture level, and hence refine
communications (synchronization and data transfer) between components. We
formalize local and global aspects as well as their composition and integration
into a BIP system through rigorous transformation primitives. We present
AOP-BIP, a tool for Aspect-Oriented Programming of BIP systems, demonstrate its
use to modularize logging, security, and fault tolerance in a network protocol,
and discuss its possible use in runtime verification of CBSs.
