Skip to main content

The Usage of Constraint Specification Languages: A Controlled Experiment

  • Conference paper
  • First Online:
Enterprise, Business-Process and Information Systems Modeling (BPMDS 2019, EMMSAD 2019)

Abstract

Model-based software engineering places models in the center of the development process. To support this notion, multiple modeling languages are available, and the visual ones are widely used. Nevertheless, visual modeling languages are limited in their expressiveness and sometime might introduce ambiguity into the models. To overcome these limitations, model-based constraint languages have emerged, yet, their usage is limited, probably due to a misconception that they are difficult to work with. In this paper, we challenge this misconception by comparing the use of three constraint languages: OCL, Java, and natural language in understanding and developing model-based constraints. The comparison was made through a controlled experiment with 68 information systems engineering undergraduate students. We found out that using natural language results in shorter times to perform the tasks. Yet, using OCL results in increased accuracy for specifying new constraints, in particular, in complex settings.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Bao-Lin, L., Zhi-shu, L., Qing, L., Hong, C.Y.: Test case automate generation from uml sequence diagram and ocl expression. In: International Conference on Computational Intelligence and Security, pp. 1048–1052 (2007)

    Google Scholar 

  2. Briand, L.C., Labiche, Y., Yan, H.D., Penta, M.Di: A controlled experiment on the impact of the object constraint language in UML-based maintenance. In: The 20th IEEE International Conference on Software Maintenance, pp. 380–389 (2004)

    Google Scholar 

  3. Chiorean, D., Bortes,M., Corutiu, D., Botiza, C., Cârcu, A.: Object Constraint Language Environment (OCLE). http://lci.cs.ubbcluj.ro/ocle/. Accessed Apr 2019

  4. Correa, A., Werner, C., Barros, M.: An empirical study of the impact of OCL smells and refactorings on the understandability of OCL specifications. In: Model Driven Engineering Languages and Systems, pp. 76–90 (2007)

    Google Scholar 

  5. Eclipse, Eclipse OCL. https://projects.eclipse.org/projects/modeling.mdt.ocl, last accessed April 2019

  6. Green, T.R.G.: Cognitive dimensions of notations. In: Sutcliffe, A., Macaulay, L. (eds.) People and Computers V, pp. 443–460. Cambridge University Press, Cambridge (1989)

    Google Scholar 

  7. Kitchenham, B.A., Pfleeger, S.L., Pickard, L.M., Jones, P.W., Hoaglin, D.C., El Emam, K., Rosenberg, J.: Preliminary guidelines for empirical research in software engineering. IEEE Trans. Software Eng. 28(8), 721–734 (2002)

    Article  Google Scholar 

  8. Mussbacher, G., et al.: The relevance of model-driven engineering thirty years from now. In: Dingel, J., Schulte, W., Ramos, I., Abrahão, S., Insfran, E. (eds.) MODELS 2014. LNCS, vol. 8767, pp. 183–200. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11653-2_12

    Chapter  Google Scholar 

  9. OCL Portal, OCL Tools. http://st.inf.tu-dresden.de/oclportal/index.php?option=com_content&view=category&id=8&Itemid=26. Accessed Apr 2019

  10. OMG, Object-Constraint Language, version 2.4. https://www.omg.org/spec/OCL/2.4. Accessed Apr 2019

  11. Pichler, P., Weber, B., Zugal, S., Pinggera, J., Mendling, J., Reijers, H.A.: Imperative versus declarative process modeling languages: an empirical investigation. In: Daniel, F., Barkaoui, K., Dustdar, S. (eds.) BPM 2011. LNBIP, vol. 99, pp. 383–394. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-28108-2_37

    Chapter  Google Scholar 

  12. Sendall, S., Kozaczynski, W.: Model transformation: the heart and soul of model-driven software development. IEEE Softw. 20(5), 42–45 (2003)

    Article  Google Scholar 

  13. Störrle, H.: Improving the usability of OCL as an ad-hoc model querying language. In: The 13th International Workshop on OCL, Model Constraint and Query Languages, pp. 83–92 (2013)

    Google Scholar 

  14. UMLdiagrams.org, Hospital Management – UML Class diagram example. https://www.uml-diagrams.org/examples/hospital-domain-diagram.html. Accessed Apr 2019

  15. Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA. Addison-Wesley, Reading (2003)

    Google Scholar 

  16. Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer (2012)

    Google Scholar 

  17. Yue, T., Ali, S.: Empirically evaluating OCL and Java for specifying constraints on UML models. Software Syst. Model. 15(3), 757–781 (2016)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Arnon Sturm .

Editor information

Editors and Affiliations

Appendices

Appendix A – The Hospital Management System – Class Diagram

figure c

Appendix B – Constraints’ Complexity

The constraint

Task

Complexity

Context Patient

self.prescription->forAll(p1, p2| not(p1=p2) and p1.date=p2.date implies p1.medicine->intersection(p2.medicine)->isEmpty ())

Comp

Complex

Context Team

self.doctor->select(oclIsTypeOf(JuniorDoctor))->collect(oclAsType(JuniorDoctor))->exists(rank=1)

Dev

Complex

Context Examination

self.diagnosis.treatment->size()=1 implies self.doctor.oclIsTypeOf(ConsultantDoctor)

Comp

Complex

Context Ward

self.patient->size()>=3 implies self.patient.team.doctor->asSet()->size()>3

Dev

Complex

Context Patient

self.team.doctor->includesAll(self.doctor)

Comp

Simple

Context Ward

self.patient->forAll(gender=self.treatedGender)

Dev

Simple

Context Examination

self.diagnosis.prescription->size()>0 implies self.diagnosis.prescription.patient=self.patient

Comp

Simple

Context Examination

self.diagnosis.prescription->size()>0 implies self.diagnosis.prescription.doctor=doctor

Dev

Simple

Context Ward

self.capacity>=self.patient->size()

Comp

Simple

Context Prescription

self.numberOfMedicine=self.medicine->size()

Dev

Simple

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Maraee, A., Sturm, A. (2019). The Usage of Constraint Specification Languages: A Controlled Experiment. In: Reinhartz-Berger, I., Zdravkovic, J., Gulden, J., Schmidt, R. (eds) Enterprise, Business-Process and Information Systems Modeling. BPMDS EMMSAD 2019 2019. Lecture Notes in Business Information Processing, vol 352. Springer, Cham. https://doi.org/10.1007/978-3-030-20618-5_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-20618-5_22

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-20617-8

  • Online ISBN: 978-3-030-20618-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics