200 likes | 297 Views
The last commit and the end of c onfiguration management. Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work done with: Martin Nordio, ETH Le Minh Duc , Hanoi University of Technology. What this is about. Cloud-based IDE
E N D
The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work done with: Martin Nordio, ETH Le Minh Duc, Hanoi University of Technology
What this is about Cloud-based IDE Shared repository of software project (code and other artifacts) Direct manipulation by project members Unobtrusive configuration management
Full disclosure Configuration management is one of the principal “best practices” of modern software engineering, which every project, large or small, should apply.
Traditional configuration management process Commit(check-in) Edit Update(check-out) Reconcile
There is a better way Unobtrusive, optimistic configuration management: • Wiki • Google Docs
Software development today The programmer’s view:
Software development today: the reality Development 1 Customer Development 2 Requirements
Example: EiffelStudio development Shanghai: 12:00 AM Santa Barbara: 8 AM Moscow:19:00 Florida: 11 AM Zurich:17:00 France:17:00
Issues Programmer: • Use latest version of others’ modules • Do not step over one another’s toes • Know what others are doing Manager: • Get true picture of development state • Allow different developers to work concurrently on the same software elements • Ensure all use same version of base modules • Avoid regression errors • Re-create previous version of system Both: • Avoid configuration errors (A uses wrong version of B) • Do not waste time on configuration mistakes • Avoid conflicts in new modules (or find them fast!) • Produce reliable software
Software development today The programmer’s view:
Demo CloudStudio
CloudStudio principles Shared repository of software project (code and other artifacts) Direct manipulation by project members Instantaneous, accurate picture of state of development Unobtrusive configuration management
An excursion into methodology “Commit Then Review” (CTR) over “Review Then Commit” (Apache) At Eiffel Software we are moving to CTR+: • Commit Then Review • Require (or strongly recommend) at least one review for every commit • Key to success is tools CloudStudio is the ideal context for such tools
Configuration management in CloudStudio No need for explicit update and commit (but, internally, based on traditional conf. management) By default, changes are immediately reflected on the shared repository • Default granularity: a successful compile • Parameterizable Optimistic conflict detection • Encourages early conflict resolution (“fail fast”) Automatically managed history record Can go back to any earlier version Can define explicit, named versions Can revert to traditional update-edit-commit mode
Challenges • Achieve performance • Provide same level of user interface quality as traditional version • Support branching • Find right level of granularity • Enforce discipline • Add appropriate management tools • Integrate communication tools (do not reinvent wheel) • Apply to teaching (Distributed and Outsourced Software Engineering course (DOSE), http://se.ethz.ch/dose)
The context: seamless development Seamlessness is the central concept of the Eiffel method Refuse the distinctions imposed on us by prehistoric software methods: integrate • Analysis • Design • Implementation • Maintenance • Verification (proofs, tests) • Project management • Communication
The context: VAMOC, CAMOC Boogieprover Sep. logicprover Interactiveprover AutoFix Verification as A Matter Of Course Arbiter Programmer Suggestions EiffelStudio Test execution Test case generation Suggestions AutoTest Test results
Summary “Software Development is the ultimate Cloud application” (Ed Lazowska) CloudStudio leverages the cloud to provide a modern cloud-based IDE Commit and Update are not for humans
The last commit and the end of Configuration Management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work done with: Martin Nordio, ETH Le Minh Duc, Hanoi University of Technology