An Experimental Investigation of Formality in UML-based Development

Author(s): L. C. Briand, Y. Labiche, M. Di Penta, H. D. Yan-Bondoc
Venue: Software Engineering, IEEE Transactions on Software Engineering
Date: 2005


This paper addresses the usefulness of the Object Constraint Language (OCL) in UML diagrams. The purpose of OCL is to support UML diagrams by reducing ambiguity and making them more precise. The main question the authors are trying to address is if OCL is more useful then natural language in supporting UML.

To investigate this the authors set up two controlled experiments. "The purpose of the experiment is to evaluate the impact of using OCL during object-oriented analysis (i.e., when class diagrams, statecharts, sequence diagrams, etc. are first produced), on the effectiveness of three typical software engineering activities:
1) understanding the analysis document
2) modifying the analysis document
3) detecting defects in the analysis document

The experiment were conducted at Carleton University using fourth year computer science and computer engineering students. The experiments were preformed in the domain of a Cab Distribution system and a Video Store system. The results of the experiment are described below.
1) Comprehension - The first experiment showed that OCL users preformed significantly better then non-OCL users. Experiment 2 confirmed these results. T
2) Modifying - both experiments show that OCL users preformed only slightly better then non-OCL users. The results were insignificant to make a conclusion.
3) Maintenance - The first experiment reported no significant difference between using OCL and non-OCL users. However the second experiment reported that OCL users had better performance. This was explained because the subjects in experiment 2 had more prior use of OCL then the subjects in experiment one.