Title :
An experimental investigation of formality in UML-based development
Author :
Briand, Lionel C. ; Labiche, Yvan ; Di Penta, Massimiliano ; Yan-Bondoc, Han
Author_Institution :
Dept. of Syst. & Comput. Eng., Carleton Univ., Ottawa, Ont., Canada
Abstract :
The object constraint language (OCL) was introduced as part of the Unified Modeling Language (UML). Its main purpose is to make UML models more precise and unambiguous by providing a constraint language describing constraints that the UML diagrams alone do not convey, including class invariants, operation contracts, and statechart guard conditions. There is an ongoing debate regarding the usefulness of using OCL in UML-based development, questioning whether the additional effort and formality is worth the benefit. It is argued that natural language may be sufficient, and using OCL may not bring any tangible benefits. This debate is in fact similar to the discussion about the effectiveness of formal methods in software engineering, but in a much more specific context. This paper presents the results of two controlled experiments that investigate the impact of using OCL on three software engineering activities using UML analysis models: detection of model defects through inspections, comprehension of the system logic and functionality, and impact analysis of changes. The results show that, once past an initial learning curve, significant benefits can be obtained by using OCL in combination with UML analysis diagrams to form a precise UML analysis model. But, this result is however conditioned on providing substantial, thorough training to the experiment participants.
Keywords :
Unified Modeling Language; constraint handling; formal specification; formal verification; natural languages; object-oriented languages; object-oriented programming; UML analysis model; UML-based development; Unified Modeling Language; object constraint language; statechart guard condition; system functionality; system logic; Computer Society; Context; Contracts; Helium; Inspection; Logic; Natural languages; Programming; Software engineering; Unified modeling language; Index Terms- Comprehension of software models; OCL.; UML; software engineering experimentation;
Journal_Title :
Software Engineering, IEEE Transactions on
DOI :
10.1109/TSE.2005.105