Today’s software production is increasingly distributed. Gone are the days of one-company, one-site projects; most industry developments involve teams split over locations, countries, and cultures. Software tools have not kept up; they provide little if any support for this new reality of software development, relying on paradigms and practices such as traditional configuration management that were developed for earlier modes of operation.
Our CloudStudio project develops an Integrated software Development Environment (IDE) enabling distributed projects to produce software “on the cloud”. The environment enables every developer to work on a common project repository, shared “on the cloud”. One of the main differences with traditional IDEs is that configuration management becomes unobtrusive; instead of the explicit update-modify-commit cycle, CloudStudio keeps track of successive versions and maintains the history automatically. Direct modification of a shared repository avoids raising spurious conflict notifications even when two developers are working on the same module; actual conflicts are detected early, and resolved through prevention rather painful post-hoc reconciliation of changes.
You can test CloudStudio online or see its main features in the following screencast:
PreviewThe main tools in CloudStudio are a web IDE, and two verification tools: a testing tool and a proof tool.
Web-IDEThe IDE is web-based. Besides the code explorer, compilation tools, and the list of on-line and off-line developers, the IDE lets the developers to display and compile the changes introduced by other developers. The figure below shows the screenshot of the IDE. The code committed to the repository is marked in green; the current changes of the developer is highlighted with yellow; and the changes introduced by other developers are marked with red. Thus, the developer can see the changes introduced by other developers. The tool lets the user to display or hide the changes introduced by other developers. On the top of the IDE, the option “View Code” allows us to select the changes to display. If a line is committed and then changed by a developer, one can display both versions: the committed one or the one changed by the developer. The tool also let us to compile the code using or ignoring the changes of other developers. The option “Compile Code” allows selecting the users changes we want to compile.
Testing on the CloudCloudStudio supports testing on the cloud. CloudStudio integrates AutoTest on the cloud. AutoTest is an automatic contract-based testing tool developed by the Chair of SE - ETH. Below, you can find the result of running the tool for about 10 minutes. The list display the tested routines indicating the ones that fail (in red) and the ones that succeeded. The list also shows the number of tests that were generated for each routine.
Proofs on the CloudCloudStudio also supports formal verification on the cloud. CloudStudio integrates a tool called Eve Proofs. This tool translates Eiffel to Boogie and uses the Boogie verifier. The figure below shows the result of running the tool using a small example.
H.-Christian Estler, Martin Nordio, Carlo A. Furia, Bertrand Meyer, and Johannes Schneider: Agile vs. Structured Distributed Software Development: A Case Study To appear: in Springer's Empirical Software Engineering journal. (See the conference version)
H.-Christian Estler, Martin Nordio, Carlo A. Furia, and Bertrand Meyer: Collaborative Debugging To appear: In Proceedings of the 8th International Conference on Global Software Engineering (ICGSE), 2013.
H.-Christian Estler, Martin Nordio, Carlo A. Furia, and Bertrand Meyer: Unifying Configuration Management with Awareness Systems and Merge Conflict Detection In Proceedings of the 22nd Australasian Software Engineering Conference (ASWEC), pages 201--210, 2013.
H.-Christian Estler, Martin Nordio, Carlo A. Furia, Bertrand Meyer, Johannes Schneider: Agile vs. Structured Distributed Software Development: A Case Study In Proceedings of the 7th International Conference on Global Software Engineering (ICGSE) IEEE, pages 11--20, 2012. [PDF] [BIB]
Martin Nordio, H.-Christian Estler, Carlo A. Furia, and Bertrand Meyer: Collaborative Sofware Development on the Web. arXiv.org > cs >1105.0768, 2011.
Martin Nordio, H.-Christian Estler, Bertrand Meyer, Julian Tschannen, Carlo Ghezzi, and Elisabetta Di Nitto: How do Distribution and Time Zones affect Software Development? A Case Study on Communication In proceedings of the 6th International Conference on Global Software Engineering (ICGSE), IEEE, pages 176--184, 2011. [PDF] [BIB]
Martin Nordio, Carlo Ghezzi, Bertrand Meyer, Elisabetta Di Nitto, Giordano Tamburrelli, Julian Tschannen, Nazareno Aguirre, Vidya Kulkarni: Teaching Software Engineering using Globally Distributed Projects: the DOSE course, In Collaborative Teaching of Globally Distributed Software Development - Community Building Workshop (CTGDSD), ACM, 2011. [PDF] [BIB]
Martin Nordio, Mathai Joseph, Bertrand Meyer, and Andrey Terekhov: Software Engineering Approaches For Outsourced and Offshore Development (SEAFOOD), 4th International Conference, St. Petersburg, Russia, Lecture Notes in Business Information Processing 54, Springer-Verlag, 2010. Springer-Online
Martin Nordio, Roman Mitin and Bertrand Meyer: Advanced Hands-on Training for Distributed and Outsourced Software Engineering, In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, ACM. 2010. [PDF] [BIB]
Kay Berkling, Mathai Joseph, Bertrand Meyer and Martin Nordio: Software Engineering Approaches For Outsourced and Offshore Development (SEAFOOD), revised papers, Lecture Notes in Business Information Processing 16, Springer-Verlag, 2009. Springer-Online
Martin Nordio, Roman Mitin, Bertrand Meyer, Carlo Ghezzi, Elisabetta Di Nitto and Giordano Tamburelli: The Role of Contracts in Distributed Development, In Proceedings of Software Engineering Advances For Offshore and Outsourced Development, Lecture Notes in Business Information Processing 35, Springer-Verlag, 2009. [PDF] [BIB] Springer-Online
Bertrand Meyer, Marco Piccioni: The Allure and Risks of a Deployable Software Engineering Project: Experiences with Both Local and Distributed Development, In Proceedings of IEEE Conference on Software Engineering & Training (CSEE&T), Charleston (South Carolina), ed. H. Saiedian, pages 3-16, 2008. [PDF]
Bertrand Meyer: Offshore Development: The Unspoken Revolution in Software Engineering, In Computer (IEEE), pages 124, 122-123, 2006. [PDF]
Project MembersMartin Nordio — ETH Zurich
Bertrand Meyer — ETH Zurich
Christian Estler — ETH Zurich
- Sandra Weber, ETH Zurich. Master thesis
- Brian Bullins, Duke University, Semester Project at ETH Zurich.
- Christopher Dental, ETH Zurich. Open Source EiffelStudio Lab
- Denis Cutic, Politecnico di Milano. Semester project
- Rand Nezha, Politecnico di Milano, Master thesis
- Mert Tufekci, Politecnico di Milano, Master thesis
- Marcel Bertsch, ETH Zurich. Open Source EiffelStudio Lab
- Roland Meyer, ETH Zurich. Open Source EiffelStudio Lab
- Johannes Schneider, ETH Zurich. Master thesis
- Alexandru Dima, ETH Zurich. Master thesis
- Le Minh Duc, Hanoi University of Science and Technology - Vietnam. Diploma thesis
- Do Le Minh, Hanoi University of Science and Technology - Vietnam. Diploma thesis
- Alejandro Garcia and Alexandru Dima - ETH Zurich. Java course project