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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 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
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)
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)
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)
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)
Czarnecki, K., Eisenecker, U.W., Steyaert, P.: Beyond objects: generative programming. In: The 23rd International Conference on Software Engineering, pp. 5–14 (1997)
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)
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
Djoko, S.D., Douence, R., Fradet, P.: Aspects preserving properties. Sci. Comput. Program. 77(3), 393–422 (2012)
Duclos, F., Estublier, J., Morat, P.: Describing and using non functional aspects in component based applications. In: AOSD, pp. 65–75 (2002)
El-Hokayem, A., Falcone, Y., Jaber, M.: http://ujf-aub.bitbucket.org/aop-bip/
Falcone, Y., Havelund, K., Reger, G.: A tutorial on runtime verification. In: Engineering Dependable Software Systems, vol. 34, pp. 141–175. IOS Press (2013)
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)
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
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)
Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: ATL: a model transformation tool. Sci. Comput. Program. 72(1–2), 31–39 (2008)
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)
Katz, S., Faitelson, D.: The common aspect proof environment. STTT 14(1), 41–52 (2012)
Lieberherr, K.J., Holland, I.M.: Formulations and benefits of the law of demeter. SIGPLAN Not. 24(3), 67–78 (1989)
Lieberherr, K.J., Lorenz, D.H., Ovlinger, J.: Aspectual collaborations: combining modules and aspects. Comput. J. 46(5), 542–565 (2003)
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)
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)
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)
Verimag: BIP Tools. http://www-verimag.imag.fr/BIP-Tools,93.html
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
Corresponding author
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
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)