OCL for Rich Domain Models Implementation - An Incremental Aspect based Solution

Alberto-Manuel Fernández-Álvarez, Daniel Fernández-Lanvin, Manuel Quintela-Pumares

Abstract

Object Constraint Language (OCL) can be used to express domain model constraints. Those related to a single object are easy to implement. However, when a constraint depends on the state of more than one object (domain and class constraints) the problem turns much more complicated. Developers must deal with several difficulties: how to write the invariant check, when to execute the constraint verification, over what objects and what to do in case of a constraint violation. Things are harder if we add feasible performance as requirement. We propose a tool that combines incremental OCL processing, with translation into aspect code and execution inside an atomicity execution context. The output is aspect code, ready to be integrated with business code that checks all the invariants efficiently at the end of the atomic operation.

References

  1. Avila, C., Flores, G. & Cheon, Y., 2008. A library-based approach to translating OCL constraints to JML assertions for runtime checking. In International Conference on Software Engineering Research and Practice, July 14-17, 2008, Las Vegas, Nevada. Citeseer, pp. 403-408.
  2. Barnett, M., Leino, K.R.M. & Schulte, W., 2004. The Spec\# Programming System: An Overview. In International Conference in Construction and Analysis of Safe, Secure and Interoperable Smart Devices (CASSIS 7804). Springer, pp. 49-69.
  3. Bauer, C., King, G. & Gregory, G., 2014. Java Persistence with Hibernate Manning Publications Co., ed., Manning Publications Co.
  4. Cabot, J. & Teniente, E., 2009. Incremental integrity checking of UML/OCL conceptual schemas. Journal of Systems and Software, 82(9), pp.1459-1478.
  5. Cabot, J. & Teniente, E., 2007. Transformation techniques for OCL constraints. Science of Computer Programming, 68(3), pp.179-195.
  6. Cachopo, J.M.P., 2007. Development of Rich Domain Models with Atomic Actions. UNIVERSIDADE TÉCNICA DE LISBOA.
  7. Cheon, Y. et al., 2008. An aspect-based approach to checking design constraints at run-time. In pp. 223- 228.
  8. Cheon, Y. & Avila, C., 2010. Automating Java program testing using OCL and AspectJ. In ITNG2010 - 7th International Conference on Information Technology: New Generations. pp. 1020-1025.
  9. Chimiak-Opoka, J. et al., 2011. OCL Tools Report based on the IDE4OCL Feature Model. Eceasst, 44.
  10. Claas Wilke, Dr.-Ing. Birgit Demuth & Prof. Dr. rer. nat. habil. Uwe Aÿmann, 2009. Java Code Generation for Dresden OCL2 for Eclipse.
  11. Claas wilke & michael thiele, 2010. DRESDEN ocl2 for eclipse Manual for Installation, use and Development.
  12. Dice, D., Shalev, O. & Shavit, N., 2006. Transactional Locking II. Distributed Computing, 4167, pp.194-208.
  13. Dzidek, W.J., Briand, L.C. & Labiche, Y., 2006. Lessons learned from developing a dynamic OCL constraint enforcement tool for java. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 3844 LNCS, pp.10-19.
  14. Evans, E., 2003. Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley Professional.
  15. Fernández Lanvin, D. et al., 2010. Extending objectoriented languages with backward error recovery integrated support. Computer Languages, Systems & Structures, 36(2), pp.123-141.
  16. Fowler, M., 2003. Patterns of Enterprise Application Architecture I. Addison-Wesley Longman Publishing Co., ed., Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc.
  17. Froihofer, L. et al., 2007. Overview and evaluation of constraint validation approaches in Java. In Proceedings - International Conference on Software Engineering. IEEE, pp. 313-322.
  18. Gopinathan, M. & Rajamani, S.K., 2008. Runtime monitoring of object invariants with guarantee. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 5289 LNCS, pp.158-172.
  19. Hamie, A., 2004. Translating the Object Constraint Language into the Java Modelling Language. Proceedings of the 2004 ACM symposium on Applied computing - SAC 7804, p.1531.
  20. Harris, T. et al., 2005. Composable memory transactions. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming - PPoPP 7805. New York, New York, USA: ACM Press, p. 48.
  21. Harris, T. et al., 2008. Composable memory transactions. Communications of the ACM, 51(Section 2), p.91.
  22. Hoare, C.A.R., 1972. Proof of correctness of data representations. Acta Informatica, 1(4), pp.271-281.
  23. Leavens, G.T. et al., 2014. AspectJML?: Modular Specification and Runtime Checking for Crosscutting Contracts. In Proceedings of the 13th International Conference on Modularity. Lugano, Switzerland: ACM, pp. 157-168.
  24. Leavens, G.T. & Cheon, Y., 2005. Design by Contract with JML. Draft, available from jmlspecs. org, 1, p.4.
  25. Meyer, B., 1992. Applying design by contract'. Computer, 25(10), pp.40-51.
  26. Meyer, B., 2015. Framing The Frame. NATO Science for Peace and Security, (Series D: Information and Communication Security), pp.174-185.
  27. Olivé, A., 2005. Conceptual Schema-Centric Development: A Grand Challenge for Information Systems Research. In O. Pastor & J. Falcão e Cunha, eds. Advanced Information Systems Engineering. Lecture Notes in Computer Science. Springer Berlin / Heidelberg, pp. 1-15.
  28. Rebêlo, H. et al., 2008. Implementing Java Modeling Language contracts with AspectJ. SAC 7808: Proceedings of the 2008 ACM symposium on Applied computing, pp.228-233.
  29. Warmer, J. & Kleppe, A., 2003. The Object Constraint Language: Getting Your Models Ready for MDA 2nd ed., Addison-Wesley Professional.
Download


Paper Citation


in Harvard Style

Fernández-Álvarez A., Fernández-Lanvin D. and Quintela-Pumares M. (2015). OCL for Rich Domain Models Implementation - An Incremental Aspect based Solution . In Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015) ISBN 978-989-758-115-1, pages 121-129. DOI: 10.5220/0005517201210129


in Bibtex Style

@conference{icsoft-pt15,
author={Alberto-Manuel Fernández-Álvarez and Daniel Fernández-Lanvin and Manuel Quintela-Pumares},
title={OCL for Rich Domain Models Implementation - An Incremental Aspect based Solution},
booktitle={Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015)},
year={2015},
pages={121-129},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005517201210129},
isbn={978-989-758-115-1},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015)
TI - OCL for Rich Domain Models Implementation - An Incremental Aspect based Solution
SN - 978-989-758-115-1
AU - Fernández-Álvarez A.
AU - Fernández-Lanvin D.
AU - Quintela-Pumares M.
PY - 2015
SP - 121
EP - 129
DO - 10.5220/0005517201210129