Advertisement

Abstract

Delta-oriented programming allows software developers to define software product lines as variations of a common code base, where variations are expressed as so-called program deltas. Monitor-oriented programming (MOP) provides a mechanism to execute functionality based on the execution history of the program; this is useful, e.g., for the purpose of runtime verification and for enforcing security policies.

In this work we discuss how delta-oriented programming and MOP can benefit from each other in the Abstract Behavior Specification Language (ABS) through a new approach we call Delta-oriented Monitor Specification (DMS). We use deltas over monitor definitions to concisely capture protocol changes induced by feature combinations, and propose a notation to denote these deltas. In addition, we explore the design space for expressing runtime monitors as program deltas in ABS.

A small case study shows that our approach successfully avoids code duplication in monitor specifications and that those specifications can evolve hand in hand with feature definitions.

Keywords

Runtime Verification Monitor-oriented Programming Interface Protocols Software Product Lines 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aldrich, J., Sunshine, J., Saini, D., Sparks, Z.: Typestate-oriented programming. In: Proc. 24th ACM SIGPLAN Conf. Companion on Object Oriented Programming Systems Languages and Applications, OOPSLA 2009, pp. 1015–1022. ACM (2009)Google Scholar
  2. 2.
    Bodden, E., Stolz, V.: Tracechecks: Defining Semantic Interfaces with Temporal Logic. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 147–162. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  3. 3.
    Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: OOPSLA 2007, pp. 569–588. ACM (2007)Google Scholar
  4. 4.
    Clarke, D., Diakov, N., Hähnle, R., Johnsen, E.B., Schaefer, I., Schäfer, J., Schlatte, R., Wong, P.Y.H.: Modeling Spatial and Temporal Variability with the HATS Abstract Behavioral Modeling Language. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 417–457. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  5. 5.
    Clarke, D., Helvensteijn, M., Schaefer, I.: Abstract delta modeling. In: Visser, E., Järvi, J. (eds.) GPCE, pp. 13–22. ACM (2010)Google Scholar
  6. 6.
    Clarke, D., Muschevici, R., Proença, J., Schaefer, I., Schlatte, R.: Variability Modelling in the ABS Language. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2011. LNCS, vol. 6957, pp. 204–224. Springer, Heidelberg (2011)Google Scholar
  7. 7.
    Fleurey, F., Haugen, Ø., Møller-Pedersen, B., Olsen, G.K., Svendsen, A., Zhang, X.: A generic language and tool for variability modeling. Technical Report A13505, SINTEF, Oslo, Norway (2009)Google Scholar
  8. 8.
    Grabe, I., Kyas, M., Steffen, M., Torjusen, A.B.: Executable Interface Specifications for Testing Asynchronous Creol Components. In: Arbab, F., Sirjani, M. (eds.) FSEN 2009. LNCS, vol. 5961, pp. 324–339. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  9. 9.
    Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science 410(2–3), 202–220 (2009)MathSciNetzbMATHCrossRefGoogle Scholar
  10. 10.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  11. 11.
    Kim, C.H.P., Bodden, E., Batory, D., Khurshid, S.: Reducing Configurations to Monitor in a Software Product Line. In: Barringer, H., Falcone, Y., Finkbeiner, B., Havelund, K., Lee, I., Pace, G., Roşu, G., Sokolsky, O., Tillmann, N. (eds.) RV 2010. LNCS, vol. 6418, pp. 285–299. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  12. 12.
    Liebig, J., Apel, S., Lengauer, C., Kästner, C., Schulze, M.: An analysis of the variability in forty preprocessor-based software product lines. In: ICSE 2010 (1), pp. 105–114. IEEE (2010)Google Scholar
  13. 13.
    Mouheb, D., Alhadidi, D., Nouh, M., Debbabi, M., Wang, L., Pourzandi, M.: Aspect Weaving in UML Activity Diagrams: A Semantic and Algorithmic Framework. In: Barbosa, L.S., Lumpe, M. (eds.) FACS 2010. LNCS, vol. 6921, pp. 182–199. Springer, Heidelberg (2010)Google Scholar
  14. 14.
    Mouheb, D., Talhi, C., Nouh, M., Lima, V., Debbabi, M., Wang, L., Pourzandi, M.: Aspect-Oriented Modeling for Representing and Integrating Security Concerns in UML. In: Lee, R., Ormandjieva, O., Abran, A., Constantinides, C. (eds.) SERA 2010. SCI, vol. 296, pp. 197–213. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  15. 15.
    Rausch, A., Reussner, R., Mirandola, R., Plášil, F. (eds.): The Common Component Modeling Example. LNCS, vol. 5153. Springer, Heidelberg (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Eric Bodden
    • 1
  • Kevin Falzon
    • 1
  • Ka I. Pun
    • 2
  • Volker Stolz
    • 2
    • 3
  1. 1.Secure Software Engineering Group, European Center for Security and Privacy by Design (EC SPRIDE)Technische Universität DarmstadtGermany
  2. 2.Dept. of InformaticsUniversity of OsloNorway
  3. 3.UNU-IIST, Macau S.A.R.China

Personalised recommendations