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:


The main tools in CloudStudio are a web IDE, and two verification tools: a testing tool and a proof tool.


The 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.
CloudStudio, a Web-IDE

Testing on the Cloud

CloudStudio 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.
Testing with CloudStudio

Proofs on the Cloud

CloudStudio 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.
Proofs with CloudStudio


Project Members

Martin Nordio — ETH Zurich
Bertrand Meyer — ETH Zurich
Christian Estler — ETH Zurich


Currently: Previously:

Valid XHTML 1.0 Strict