Evolution of Configuration Management in Software Engineering
Explore the evolution of configuration management in software engineering, highlighting key practices like cloud-based IDE, shared repositories, and unobtrusive configuration management. Understand the importance of modern best practices in software development, traditional vs. optimistic approaches, and challenges faced by programmers and managers. Delve into examples and solutions for efficient software development in today's dynamic environment.
- Software Engineering
- Configuration Management
- Development Practices
- Modern Software
- Optimistic Approach
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
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 1
What this is about Cloud-based IDE Shared repository of software project (code and other artifacts) Direct manipulation by project members Unobtrusive configuration management 2
Full disclosure Configuration management is one of the principal bestpractices of modern software engineering, which every project, large or small, should apply. 3
Traditional configuration management process Commit (check-in) Edit Update (check-out) Reconcile 4
There is a better way Unobtrusive, optimistic configuration management: Wiki Google Docs 5
Software development today The programmer s view: 6
Software development today: the reality Development 1 Customer Development 2 Requirements 7
Example: EiffelStudio development Santa Barbara: 8 AM Shanghai: 12:00 AM Moscow:19:00 Florida: 11 AM Zurich:17:00 France:17:00 8
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 9
Software development today The programmer s view: 10
Demo CloudStudio 12
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 13
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 14
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 15
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) 16
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 17
The context: VAMOC, CAMOC Verification as A Matter Of Course Sep. logic prover Boogie prover Interactive prover AutoFix Arbiter Programmer Suggestions Test execution EiffelStudio Test case generation Suggestions AutoTest Test results 18
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 19
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 20