Skip to main content

Modularizing Crosscutting Concerns in Component-Based Systems

  • Conference paper
  • First Online:
Software Engineering and Formal Methods (SEFM 2016)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9763))

Included in the following conference series:

Abstract

We define a method to modularize crosscutting concerns in the Behavior Interaction Priority (BIP) component-based 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 thus 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 global aspects as well as their integration into a BIP system through rigorous transformation primitives and overview local aspects. We present \({\texttt {AOP-BIP}}\), a tool for Aspect-Oriented Programming of BIP systems, and demonstrate its use to modularize logging, security, and fault-tolerance in a network protocol.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    In this paper, we only consider interaction execution because of the complexity of matching interaction enablement which requires to include the BIP engine as part of the BIP model. To consider interaction enablement, it is better to interface with the BIP engine, meaning re-implement the BIP runtime.

References

  1. Altisen, K., Maraninchi, F., Stauch, D.: Aspect-oriented programming for reactive systems: larissa, a proposal in the synchronous framework. Sci. Comput. Program. 63(3), 297–320 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  2. Basu, A., Bensalem, S., Bozga, M., Combaz, J., Jaber, M., Nguyen, T.H., Sifakis, J.: Rigorous component-based system design using the BIP framework. IEEE Softw. 28(3), 41–48 (2011)

    Article  Google Scholar 

  3. Bliudze, S., Sifakis, J.: A notion of glue expressiveness for component-based systems. In: Proceedings of the 19th International Conference on Concurrency Theory, pp. 508–522 (2008)

    Google Scholar 

  4. Bozga, M., Jaber, M., Sifakis, J.: Source-to-source architecture transformation for performance optimization in BIP. IEEE Trans. Ind. Inform. 6(4), 708–718 (2010)

    Article  Google Scholar 

  5. Czarnecki, K., Eisenecker, U.W., Steyaert, P.: Beyond objects: generative programming. In: The 23rd International Conference on Software Engineering, pp. 5–14 (1997)

    Google Scholar 

  6. David, P.-C., Ledoux, T.: An aspect-oriented approach for developing self-adaptive fractal components. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 82–97. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  7. Dihego, J., Sampaio, A.: Aspect-oriented development of trustworthy component-based systems. In: Leucker, M., et al. (eds.) ICTAC 2015. LNCS, vol. 9399, pp. 425–444. Springer, Heidelberg (2015). doi:10.1007/978-3-319-25150-9_25

    Chapter  Google Scholar 

  8. Djoko, S.D., Douence, R., Fradet, P.: Aspects preserving properties. Sci. Comput. Program. 77(3), 393–422 (2012)

    Article  MATH  Google Scholar 

  9. Duclos, F., Estublier, J., Morat, P.: Describing and using non functional aspects in component based applications. In: AOSD, pp. 65–75 (2002)

    Google Scholar 

  10. El-Hokayem, A., Falcone, Y., Jaber, M.: http://ujf-aub.bitbucket.org/aop-bip/

  11. Falcone, Y., Havelund, K., Reger, G.: A tutorial on runtime verification. In: Engineering Dependable Software Systems, vol. 34, pp. 141–175. IOS Press (2013)

    Google Scholar 

  12. Falcone, Y., Jaber, M., Nguyen, T., Bozga, M., Bensalem, S.: Runtime verification of component-based systems in the BIP framework with formally-proved sound and complete instrumentation. Softw. Syst. Model. 14(1), 173–199 (2015)

    Article  Google Scholar 

  13. Falcone, Y., Jaber, M.: Fully automated runtime enforcement of component-based systems with formal and sound recovery. Int. J. Softw. Tools. Technol. Transf. 1–25, (2016). doi:10.1007/s10009-016-0413-6. ISSN:1433-2787

    Google Scholar 

  14. Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)

    MATH  Google Scholar 

  15. Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: ATL: a model transformation tool. Sci. Comput. Program. 72(1–2), 31–39 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  16. Katz, S.: Aspect categories and classes of temporal properties. In: Rashid, A., Akşit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 106–134. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  17. Katz, S., Faitelson, D.: The common aspect proof environment. STTT 14(1), 41–52 (2012)

    Article  Google Scholar 

  18. Lieberherr, K.J., Holland, I.M.: Formulations and benefits of the law of demeter. SIGPLAN Not. 24(3), 67–78 (1989)

    Article  Google Scholar 

  19. Lieberherr, K.J., Lorenz, D.H., Ovlinger, J.: Aspectual collaborations: combining modules and aspects. Comput. J. 46(5), 542–565 (2003)

    Article  MATH  Google Scholar 

  20. Noureddine, M., Jaber, M., Bliudze, S., Zaraket, F.A.: Reduction and abstraction techniques for BIP. In: Lanese, I., Madelaine, E. (eds.) FACS 2014. LNCS, vol. 8997, pp. 288–305. Springer, Heidelberg (2015)

    Google Scholar 

  21. Pessemier, N., Seinturier, L., Duchien, L., Coupaye, T.: A component-based and aspect-oriented model for software evolution. IJCAT 31(1/2), 94–105 (2008)

    Article  Google Scholar 

  22. Tarr, P., Ossher, H.: Hyper/J: multi-dimensional separation of concerns for Java. In: Proceedings of the 23rd International Conference on Software Engineering, pp. 729–730 (2001)

    Google Scholar 

  23. Verimag: BIP Tools. http://www-verimag.imag.fr/BIP-Tools,93.html

Download references

Acknowledgement

The work reported in this article is in the context of the COST Action ARVI IC1402, supported by COST (European Cooperation in Science and Technology). Moreover, the authors acknowledge the support of the University Research Board (URB) at American University of Beirut.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yliès Falcone .

Editor information

Editors and Affiliations

A Proofs

A Proofs

We first prove that the global joinpoints can be selected syntactically (Proposition 1), and then prove the correctness of advice application(Proposition 2).

Proof

(Proof of Proposition 1 ). We consider a global event \(\left\langle q, a, q' \right\rangle \in \mathcal{E}\) and a global pointcut expression \(\left\langle p, v_r, v_w \right\rangle \). The proof follows from the definition of \(\mathrm {match_{g}}(\mathcal {C}, gpc)\) which selects all interactions matching the criteria that should be matched by \((E_i = \left\langle q , a, q ' \right\rangle \vDash gpc )\).

Proof

(Proof of Proposition 2 ). We assume that \(f_b\) and \(f_a\) can be uniquely determined and are not empty. It is possible to add an assignment statement at the start and end of each \(f_b\) and \(f_a\) which has no effect and is not present in the original system and acts as a marker (example: \(x = x + NUM - NUM\), with NUM being a unique number not found in any other assignment). We consider an event \(\left\langle q_s, a, q_e \right\rangle \in \mathcal{E}'\), and \(\mathrm {rem}_\mathrm {g}(\left\langle q_s,a,q_e \right\rangle ) = \left\langle q'_s, a', q'_e \right\rangle \) the constructed event without the advice.

An event interaction’s update function a.func starts with \(f_b\) and ends with \(f_a\), according to the definition of \(\mathrm {m}()\) in Definition 18 iff it is the result of weaving the advice on it from an interaction \(a'\) (\(\exists a' \in \gamma : \mathrm {m}(a') = a \wedge a' \in \mathcal {I}\)). The interaction \(a'\) is in \(\mathcal {I}\) iff it was selected by the local pointcut expression (\(a' \in \mathrm {match_{g}}(\mathcal {C}, gpc )\)). According to Proposition 1, any event with interaction \(a' \in \mathrm {match_{g}}(\mathcal {C}, gpc )\) is a joinpoint, specifically \(\left\langle q'_s, a',q'_e \right\rangle = \mathrm {rem}_\mathrm {g}(\left\langle q_s, a, q_e \right\rangle )\).

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

El-Hokayem, A., Falcone, Y., Jaber, M. (2016). Modularizing Crosscutting Concerns in Component-Based Systems. In: De Nicola, R., Kühn, E. (eds) Software Engineering and Formal Methods. SEFM 2016. Lecture Notes in Computer Science(), vol 9763. Springer, Cham. https://doi.org/10.1007/978-3-319-41591-8_25

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-41591-8_25

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-41590-1

  • Online ISBN: 978-3-319-41591-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics