A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Unified Modeling Language user guide
The Unified Modeling Language user guide
Understanding and improving technology transfer in software engineering
Journal of Systems and Software - Special issue on invited articles on top systems and software engineering scholars
Experimentation in software engineering: an introduction
Experimentation in software engineering: an introduction
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process
Designing Concurrent, Distributed, and Real-Time Applications with Uml
Designing Concurrent, Distributed, and Real-Time Applications with Uml
Formal Methods Application: An Empirical Tale of Software Development
IEEE Transactions on Software Engineering
The Amsterdam Manifesto on OCL
Object Modeling with the OCL, The Rationale behind the Object Constraint Language
MDA Explained: The Model Driven Architecture: Practice and Promise
MDA Explained: The Model Driven Architecture: Practice and Promise
Comments on "Formal Methods Application: An Empirical Tale of Software Development"
IEEE Transactions on Software Engineering
Investigating the use of analysis contracts to improve the testability of object-oriented code
Software—Practice & Experience
UML Distilled: A Brief Guide to the Standard Object Modeling Language
UML Distilled: A Brief Guide to the Standard Object Modeling Language
Mathematical reasoning in software engineering education
Communications of the ACM - Why CS students need math
IEEE Transactions on Software Engineering
Automated impact analysis of UML models
Journal of Systems and Software
Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition
Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition
The Impact of UML Documentation on Software Maintenance: An Experimental Evaluation
IEEE Transactions on Software Engineering
The Role of Experience and Ability in Comprehension Tasks Supported by UML Stereotypes
ICSE '07 Proceedings of the 29th international conference on Software Engineering
A Framework for Empirical Evaluation of Model Comprehensibility
MISE '07 Proceedings of the International Workshop on Modeling in Software Engineering
Notation and representation in collaborative object-oriented design: an observational study
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Empirical Analysis of the Relation between Level of Detail in UML Models and Defect Density
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
An Empirical Investigation on Dynamic Modeling in Requirements Engineering
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
Using acceptance tests as a support for clarifying requirements: A series of experiments
Information and Software Technology
Incremental integrity checking of UML/OCL conceptual schemas
Journal of Systems and Software
Level of detail in UML models and its impact on model comprehension: A controlled experiment
Information and Software Technology
Impact of the visitor pattern on program comprehension and maintenance
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
On the effectiveness of dynamic modeling in UML: Results from an external replication
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Evaluating the Impact of UML Modeling on Software Quality: An Industrial Case Study
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
A family of languages for architecture constraint specification
Journal of Systems and Software
An experimental comparison of ER and UML class diagrams for data modelling
Empirical Software Engineering
Empirical Software Engineering
Information Sciences: an International Journal
Towards to the validation of a usability evaluation method for model-driven web development
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
Investigating the use of Support Vector Regression for web effort estimation
Empirical Software Engineering
Model-driven engineering practices in industry
Proceedings of the 33rd International Conference on Software Engineering
Identifying the weaknesses of UML class diagrams during data model comprehension
Proceedings of the 14th international conference on Model driven engineering languages and systems
Controversy Corner: On the relationship between comment update practices and Software Bugs
Journal of Systems and Software
Further analysis on the validation of a usability inspection method for model-driven web development
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Empirical validation of a usability inspection method for model-driven Web development
Journal of Systems and Software
The use of UML class diagrams and its effect on code change-proneness
Proceedings of the Second Edition of the International Workshop on Experiences and Empirical Studies in Software Modelling
Proceedings of the Second Edition of the International Workshop on Experiences and Empirical Studies in Software Modelling
Enhancing design models with composition properties: a software maintenance study
Proceedings of the 12th annual international conference on Aspect-oriented software development
Information and Software Technology
Hi-index | 0.00 |
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.