Authors:
Alberto-Manuel Fernández-Álvarez
;
Daniel Fernández-Lanvin
and
Manuel Quintela-Pumares
Affiliation:
Universidad de Oviedo, Spain
Keyword(s):
Constraint, invariant, incremental checking, domain model, object orientation, OCL, AspectJ.
Related
Ontology
Subjects/Areas/Topics:
Advice/Pointcut Specification
;
Aspects
;
Domain Engineering
;
Modularity with Aspects
;
Paradigm Trends
;
Software Engineering
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.