Date post: | 21-Dec-2015 |
Category: |
Documents |
View: | 217 times |
Download: | 2 times |
1
The last commit and the end of configuration management
Bertrand MeyerChair of Software Engineering, ETH Zurich
Eiffel Software, Santa Barbara
Work done with:
Martin Nordio, ETHLe Minh Duc, Hanoi University of Technology
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
3
Full disclosure
Configuration management is one of the principal “best practices” of modern software engineering, which every project, large or small, should apply.
4
Traditional configuration management process
Update(check-out)
Edit Commit(check-in)
Reconcile
5
There is a better way
Unobtrusive, optimistic configuration management:
Wiki
Google Docs
6
Software development today
The programmer’s view:
7
Software development today: the reality
Customer
Requirements
Development 2
Development 1
8
Example: EiffelStudio development
Santa Barbara:
8 AM
Zurich:17:00
France:17:00
Moscow:19:00
Shanghai: 12:00 AM
Florida:11 AM
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
10
Software development today
The programmer’s view:
11
The CloudStudio view
12
Demo
CloudStudio
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
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
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 recordCan go back to any earlier version Can define explicit, named versionsCan revert to traditional update-edit-commit mode
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)
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
18
The context: VAMOC, CAMOC Verification as A Matter Of Course
ArbiterProgrammer
Suggestions
Boogie
prover
Sep. logic
prover
AutoFix
AutoTest
Test case generation
EiffelStudio
Suggestions
Test executio
n
Test results
Interactiveprover
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
20
The last commit and the end of Configuration Management
Bertrand MeyerChair of Software Engineering, ETH Zurich
Eiffel Software, Santa Barbara
Work done with:Martin Nordio, ETH
Le Minh Duc, Hanoi University of Technology