Does object coupling really affect the understanding and modifying of OCL expressions?

Author(s): Luis Reynoso, Marcela Genero, Mario Piattini, and Esperanza Manso
Venue: Proceedings of the 2006 ACM symposium on Applied computing
Date: 2006


This paper sought to examine how the comprehension and modifiability of UML with
OCL expressions changes as program complexity increases. OCL expressions are an
extension to UML meant to improve its expressiveness. The authors consider object
coupling to be a major source of program complexity so they use that as their
measure of program complexity.

The experiment was done at a 10 hour seminar on OCL. 4th year CSC students in a software
engineering course at the Technical University of Valencia were encouraged to attend and
participate in the experiment (via such bribes as extra credit). 46 of them participated
in the experiment.

The students were given six UML/OCL combined models. Three of the models had one level of
coupling (be it high, medium, or low) and the other three had a different level of coupling.
For each model, they were to do a series of tasks. The first task was an understandability
task. The students filled out a questionnaire about the model in order to determine how
well they understood it. The second task was a modifiability task, measuring the students
ability to modify the OCL expressions. They had to make two changes to the OCL expressions.
The final task was a rating task. The students had to rate the difficulty of the understandability
and modifiability tasks on a scale of five linguistic labels from "Quite easy to understand"
up to "Quite difficult to understand."

The results of the experiment showed that the students efficiency at each of the tasks increased
as time passed (they obviously didn't avoid the learning effect). Interestingly enough,
the students were generally more efficient at the modifiability tasks than the understandability
tasks. Naturally, students did better with diagrams with low coupling (and thus low complexity)
than those with high coupling. However, bizarrely enough, the students did better with
high coupling than medium coupling. The authors think that this is due to the reasons for
the coupling. In the highly coupled models, the coupling was due to the intertwining of collection
operations while in the models with medium coupling it was mainly due to combined navigations.
As such, the students had difficulty identifying and tracing which relationships they should
use (its role name, attribute name, etc.) in modifiability tasks.

All in all, it looks like complexity has a large role in the ability to understand and modify
UML. That's not exactly surprising. The interesting portion of the study was that a medium
level of coupling caused more difficulty than a high level of coupling. I would think that
that would merit additional study.