Limes: An Aspect-Oriented Constraint Checking Language

  • Benjamin Mesing
  • Constantinos Constantinides
  • Wolfgang Lohmann
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4066)


In object-oriented software development, UML artefacts are used to illustrate and define the structure and the behaviour of the software system, while the semantics is usually described in a formal or informal specification language. The specification often consists of sets of constraints defined over the software components. When implementing the model, the specification is taken into consideration by the implementor. Since a significant proportion of the implementation consists of human-generated code, errors may be introduced in the implementation model. To detect these errors, the specified constraints need to be checked in the implementation. In this paper, we present Limes, an imperative constraint implementation language, which adopts aspect-oriented programming to describe constraint checking in a non-invasive way. Limes can be used at the design level, and can add constraint checking to the implementation.


Object Constraint Language Abstract Syntax Tree Constraint Check Implementation Language Object Constraint Language Expression 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  2. 2.
    Elrad, T., Filman, R.E., Bader, A.: Aspect-oriented programming: Introduction. Communications of the ACM 44(10), 29–32 (2001)CrossRefGoogle Scholar
  3. 3.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–355. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  4. 4.
    Meyer, B.: Applying “Design by Contract”. Computer 25(10), 40–51 (1992)CrossRefGoogle Scholar
  5. 5.
    Spinczyk, O., Gal, A., Schröder-Preikschat, W.: AspectC++: An aspect-oriented extension to the C++ programming language. In: CRPITS 2002: Proceedings of the Fortieth International Conference on Tools Pacific, pp. 53–60. Australian Computer Society, Inc. (2002)Google Scholar
  6. 6.
    Rajan, H., Sullivan, K.: Eos: instance-level aspects for integrated system design. SIGSOFT Softw. Eng. Notes 28(5), 297–306 (2003)CrossRefGoogle Scholar
  7. 7.
    Stroustrup, B.: The C++ Programming Language, 3rd edn. Addison-Wesley Longman Publishing Co., Inc, Amsterdam (1997)Google Scholar
  8. 8.
    JavaCC: JavaCC home page (2006),
  9. 9.
    Beck, K., Gamma, E.: Test infected: Programmers love writing tests. Java Report 3(7) (1998)Google Scholar
  10. 10.
    Cheon, Y., Leavens, G.T.: A simple and practical approach to unit testing: The JML and JUnit way. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 231–255. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  11. 11.
    Finger, F.: Design and implementation of a modular OCL compiler. Diploma thesis, TU-Dresden (2000)Google Scholar
  12. 12.
    TU-Dresden: Dresden OCL toolkit (2006),
  13. 13.
    Wiebicke, R.: Utility support for checking OCL business rules in Java programs. Diploma thesis, TU-Dresden (2000)Google Scholar
  14. 14.
    Richters, M., Gogolla, M.: Aspect-oriented monitoring of UML and OCL constraints. In: Proceedings of the 4th AOSD Modeling With UML Workshop (2003)Google Scholar
  15. 15.
    Richters, M.: The USE tool: A UML-based specification environment (2006),
  16. 16.
    Briand, L.C., Dzidek, W.J., Labiche, Y.: Using aspect-oriented programming to instrument OCL contracts in Java. Technical Report SCE-04-03, Software Quality Laboratory, Carleton University (2004)Google Scholar
  17. 17.
    Briand, L.C., Dzidek, W.J., Labiche, Y.: Instrumenting contracts with aspect-oriented programming to increase observability and support debugging. In: Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM 2005), pp. 687–690. IEEE Computer Society, Los Alamitos (2005)CrossRefGoogle Scholar
  18. 18.
    van der Straeten, R., Casanova, M.: Stirred but not shaken: Applying constraints in object-oriented systems. In: Proceedings of the NetObjectDays 2001 (2001)Google Scholar
  19. 19.
    Constantinides, C., Skotiniotis, T.: The provision of contracts to enforce system semantics throughout software development. In: Proceedings of the Eighth IASTED International Conference on Software Engineering and Applications (2004)Google Scholar
  20. 20.
    International Organization for Standardization: ISO/ IEC 14977:1996: Information technology — Syntactic metalanguage — Extended BNF. International Organization for Standardization (1996)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Benjamin Mesing
    • 1
  • Constantinos Constantinides
    • 2
  • Wolfgang Lohmann
    • 1
  1. 1.University of RostockGermany
  2. 2.Concordia UniversityMontréalCanada

Personalised recommendations