Evolution of Configuration Management in Software Engineering

 
 
 
1
 
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
 
Update
(check-out)
 
Edit
 
Commit
(check-in)
 
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
Example: EiffelStudio development
 
 
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:
 
 
The CloudStudio 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
      Verification as A Matter Of Course
 
 
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
 
 
 
20
 
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
 
 
 
Slide Note
Embed
Share

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

Uploaded on Sep 11, 2024 | 0 Views


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


  1. 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

  2. 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

  3. Full disclosure Configuration management is one of the principal bestpractices of modern software engineering, which every project, large or small, should apply. 3

  4. Traditional configuration management process Commit (check-in) Edit Update (check-out) Reconcile 4

  5. There is a better way Unobtrusive, optimistic configuration management: Wiki Google Docs 5

  6. Software development today The programmer s view: 6

  7. Software development today: the reality Development 1 Customer Development 2 Requirements 7

  8. Example: EiffelStudio development Santa Barbara: 8 AM Shanghai: 12:00 AM Moscow:19:00 Florida: 11 AM Zurich:17:00 France:17:00 8

  9. 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

  10. Software development today The programmer s view: 10

  11. The CloudStudio view 11

  12. Demo CloudStudio 12

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#