Abstract
The Object Constraint Language (OCL) is a OMG standard that plays an important role in the elaboration of precise models. However, it is not hard to find models and metamodels containing overly complex OCL expressions. Refactoring is a technique that can be used in this context since its goal is to reduce complexity by incrementally improving the internal software quality. Indeed several refactorings have already been proposed to improve the quality of OCL expressions. This paper presents the results of an empirical study that investigates the impact of poor OCL constructs, also known as OCL Smells, and OCL refactoringson the understandability of OCL expressions. Current results show that most refactorings significantly improve the understandability of OCL specifications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
OMG: Model Driven Architecture (MDA) Guide, document number omg/2003-06-01 (June 2003)
Warmer, J., Kleppe, A.: The Object Constraint Language – Getting Your Models Ready for MDA. Addison-Wesley, Reading (2003)
OMG: MOF QVT Final Adopted Specification. Document ptc/05-11-01 (November 2005)
Woodcock, J., Davis, J.: Using Z. Specification, Refinement and Proof. Prentice-Hall, Englewood Cliffs (1996)
Jones, C.B.: Systematic Software Development Using VDM. Prentice-Hall, Englewood Cliffs (1989)
Correa, A., Werner, C.: Applying Refactoring Techniques to UML/OCL Models. In: Baar, T., Moreira, A., Strohmeier, A., Mellor, S. (eds.) UML 2004. LNCS, vol. 3273, pp. 173–187. Springer, Heidelberg (2004)
Correa, A., Werner, C.: Refactoring Object Constraint Language Specifications. In: Journal of Software and Systems Modeling (SoSyM), Springer, Heidelberg (2006)
OMG: Unified Modeling Language (UML) Infrastructure Specification, version 2.0, Object Management Group, ptc/03-09-15 (2003)
OMG: Unified Modeling Language (UML) Superstructure Specification, version 2.0, Object Management Group, ptc/03-08-02 (2003)
Roberts, D.B.: Practical Analysis for Refactoring. PhD thesis, University of Illnois at Urbana-Champaign (1999)
Mens, T., Tourwe, T.: A Survey of Software Refactoring. IEEE Transactions on Software Engineering 30(2), 126–139 (2004)
Jeanneret, C., Eyer, L., Markovic, S., Baar, T.: RocIET – Refactoring OCL Expressions by Transformations. In: 19th International Conference on Software & Systems Engineering and their Applications (2006)
Kataoka, Y., Imai, T., Andou, H., Fukaya, T.: A Quantitative Evaluation of Maintainability Enhancement by Refactoring. In: ICSM. Proceedings of the International Conference on Software Maintainance, Montreal, Canada (2002)
Wohlin, C., Runeson, P., Host, M., Ohlsson, M.C., Regnell, B., Wesslen, A.: Experimentation in Software Engineering – An Introduction. Kluwer, Dordrecht (2000)
Finney, K., Fenton, N., Fedorec, A.: Effects of structure on the comprehensibility of formal specifications. IEE Proceedings – Software 146(4), 193–202 (1999)
Briand, L., Labiche, Y., Penta, M., et al.: An Experimental Investigation of Formality in UML-Based Development. IEEE Transactions on Software Engineering 31(10), 833–849 (2005)
Snook, C., Harrison, R.: Experimental Comparison of the Comprehensibility of a Z Specification and its Implementation. In: EASE 01. Proceedings of the Conference on Empirical Assessment in Software Engineering, England (April 2001)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Correa, A., Werner, C., Barros, M. (2007). An Empirical Study of the Impact of OCL Smells and Refactorings on the Understandability of OCL Specifications. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds) Model Driven Engineering Languages and Systems. MODELS 2007. Lecture Notes in Computer Science, vol 4735. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75209-7_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-75209-7_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-75208-0
Online ISBN: 978-3-540-75209-7
eBook Packages: Computer ScienceComputer Science (R0)