When developers collaborate, they often run into conflicts. Crystal runs in the background and informs developers whenever developers' changes conflict. Crystal can detect textual, build, and testing conflicts. (See the Crystal user manual.)
- Speculative analysis within collaborative development allows software engineers to learn about and prevent conflicts. In this paper, we evaluate speculative conflict detection on nine large, open-source projects and present Crystal.
Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin (2011), "Proactive Detection of Collaboration Conflicts", In proceedings of ESEC/FSE 2011. ACM SIGSOFT Distinguished Paper Award.
- In this tool paper, we discuss Crystal's precision and unobtrusiveness.
Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin (2011), "Crystal: Precise and Unobtrusive Conflict Warnings", In proceedings of ESEC/FSE 2011 tool demonstration track.
- In this paper, we introduce speculative analysis, which gives developers feedback on the outcomes of actions they have not yet performed and allows the developers to make well-informed decisions.
Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin (2010), "Speculative Analysis: Exploring Future States of Software", In proceedings of FoSER 2010, pp. 59-63. doi: 10.1145/1882362.1882375
Crystal is designed and developed by Yuriy Brun, Haochen Wei, Reid Holmes, Michael D. Ernst, and David Notkin.
Email us with any questions.
Click here to watch the presentation describing Crystal and its underlying technique (presented at ESEC/FSE 2011).
This work is supported by Microsoft Research through the Software Engineering Innovation Foundation grant, by the National Science Foundation under Grant# 0963757 and Grant #0937060 to the Computing Research Association for the CIFellows Project, by the National Science and Engineering Research Council Postdoctoral Fellowship, and by IBM through a John Backus Award.
##Acknowledgements by Karan Singh Dagar##
##FSE-2011-Crystal
This repository contains information related to the tool Crystal presented at Foundations of Software Engineering, 2011. The tool was originally presented in [this paper] (http://dl.acm.org/citation.cfm?id=2025113.2025187&coll=DL&dl=GUIDE&CFID=723118469&CFTOKEN=55593935).
This repository is not the original repository for this tool. Here are some links to the original project:
- [The Official Project Page, including source code] (https://github.com/brunyuriy/crystalvc)
- [The original download link] (https://github.com/brunyuriy/crystalvc/wiki/CrystalUserManual)
- [A video of the tool] (http://people.cs.umass.edu/~brun/video/Brun11esecfse/)
In this repository, for Crystal you will find:
-
✅ Source code (available)
-
✅ The original tool (available)
-
✅ Binaries of the project (available)
-
✅ [Vagrant script to create the Virtual Machine containing the tool] (https://github.com/SoftwareEngineeringToolDemos/FSE-2011-Crystal/blob/master/build-vm/Vagrantfile) (available)
-
✅ Virtual machine containing tool (available)
This repository was constructed by Karan Singh Dagar under the supervision of Emerson Murphy-Hill. Thanks to Yuriy Brun, Reid Holmes, and Michael D. Ernst for their help in establishing this repository.