Prevent Collaboration Conflicts with Fine Grained Pessimistic Locking
Martin Eyl, Clemens Reichmann, Klaus D. Müller-Glaser
2017
Abstract
There are two main strategies to support the collaboration of software team members working concurrently on the same source code: pessimistic locking and optimistic locking. Optimistic locking is used far more often because a pessimistic lock on the smallest unit stored in the Software Configuration Management (SCM), which is a usually a file, often causes conflict situations, where a developer wants to change the already locked code. Optimistic locking can cause direct and indirect merge conflicts which are costly to resolve and affect productivity. The novelty of our approach is to define a meta-model for the source code (Abstract Syntax Tree) and use pessimistic locking on model artefacts and therefore allow parallel editing of the same class or even method but still preventing direct and indirect merge conflicts. Thereby the developer keeps an isolated workspace and the developer decides when to commit the finished source code. This paper introduces a concept for this solution and a prototype based on Eclipse.
References
- Perry, D. E., Siy, H. P., & Votta, L. G., 2001. Parallel changes in large-scale software development: an observational case study. ACM Transactions on Software Engineering and Methodology (TOSEM), 10(3), 308-337.
- Estublier, J., & Garcia, S., 2005. Process model and awareness in SCM. In Proceedings of the 12th international workshop on Software configuration management (pp. 59-74). ACM.
- Conradi, R., & Westfechtel, B., 1998. Version models for software configuration management. ACM Computing Surveys (CSUR), 30(2), 232-282.
- Grinter, R. E., 1995. Using a configuration management tool to coordinate software development. In Proceedings of conference on Organizational computing systems (pp. 168-177). ACM.
- Sarma, A., Noroozi, Z., & Van Der Hoek, A., 2003. Palantír: raising awareness among configuration management workspaces. In Software Engineering, 2003. Proceedings. 25th International Conference on (pp. 444-454). IEEE.
- Levin, S., 2013. Synchronized software development (Doctoral dissertation, Tel-Aviv University).
- Sarma, A., Bortis, G., & Van Der Hoek, A., 2007. Towards supporting awareness of indirect conflicts across software configuration management workspaces. In Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering (pp. 94-103). ACM.
- Dewan, P., 2008. Dimensions of tools for detecting software conflicts. In Proceedings of the 2008 international workshop on Recommendation systems for software engineering (pp. 21-25). ACM.
- Levin, S., & Yehudai, A. (2015). Alleviating Merge Conflicts with Fine-grained Visual Awareness. arXiv preprint arXiv:1508.01872.
- Broschy, P., 2009. Improving conflict resolution in model versioning systems. In Software EngineeringCompanion Volume, 2009. ICSE-Companion 2009. 31st International Conference on (pp. 355-358). IEEE.
- Brun, Y., Holmes, R., Ernst, M. D., & Notkin, D., 2011. Proactive detection of collaboration conflicts. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering (pp. 168-178). ACM.
- Eyl, M., Reichmann, C., & Müller-Glaser, K., 2016. Fast Feedback from Automated Tests Executed with the Product Build. In International Conference on Software Quality (pp. 199-210). Springer International Publishing.
- Eclipse, 2016. „Eclipse Neon“. Eclipse.org. Retrieved 2016-07-30 from http://eclipse.org.
- OMG, 2016. „OMG's MetaObject Facility (MOF) Home Page“. Omg.org. Retrieved 2016-07-30 from http://www.omg.org/mof/.
- JetBrains, 2016: „MPS overview“. JetBrains. Retrieved 2016-07-30 from https://www.jetbrains.com/mps
- Hattori, L., & Lanza, M., 2010. Syde: a tool for collaborative software development. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 2 (pp. 235-238). ACM.
- Nordio, M., Estler, H., Furia, C. A., & Meyer, B., 2011. Collaborative software development on the web. arXiv preprint arXiv:1105.0768.
- Goldman, M., Little, G., & Miller, R. C., 2011. Collabode: collaborative coding in the browser. In Proceedings of the 4th international workshop on Cooperative and human aspects of software engineering (pp. 65-68). ACM.
- Chu-Carroll, M., & Sprenkle, S., 2000. Software configuration management as a mechanism for multidimensional separation of concerns.
- Vector, 2016: „PREEvision - Development Tool for model-based E/E Engineering“. Vector.com. Retrieved 2016-07-30 from https://vector.com/vi_preevision_en.html.
- Zhang, R., & Krishnan, A., 2011. Using delta model for collaborative work of industrial large-scaled E/E architecture models. In Model Driven Engineering Languages and Systems (pp. 714-728). Springer Berlin Heidelberg.
- Gómez, V. U., Ducasse, S., & Kellens, A., 2014. Supporting streams of changes during branch integration. In Science of Computer Programming (pp. 84-106), 96.
Paper Citation
in Harvard Style
Eyl M., Reichmann C. and Müller-Glaser K. (2017). Prevent Collaboration Conflicts with Fine Grained Pessimistic Locking . In Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-210-3, pages 312-319. DOI: 10.5220/0006119703120319
in Bibtex Style
@conference{modelsward17,
author={Martin Eyl and Clemens Reichmann and Klaus D. Müller-Glaser},
title={Prevent Collaboration Conflicts with Fine Grained Pessimistic Locking},
booktitle={Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2017},
pages={312-319},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006119703120319},
isbn={978-989-758-210-3},
}
in EndNote Style
TY - CONF
JO - Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - Prevent Collaboration Conflicts with Fine Grained Pessimistic Locking
SN - 978-989-758-210-3
AU - Eyl M.
AU - Reichmann C.
AU - Müller-Glaser K.
PY - 2017
SP - 312
EP - 319
DO - 10.5220/0006119703120319