the last commit and the end of c onfiguration management l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
The last commit and the end of c onfiguration management PowerPoint Presentation
Download Presentation
The last commit and the end of c onfiguration management

Loading in 2 Seconds...

play fullscreen
1 / 20

The last commit and the end of c onfiguration management - PowerPoint PPT Presentation


  • 78 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'The last commit and the end of c onfiguration management' - kina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
the last commit and the end of c onfiguration management

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
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
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
Traditional configuration management process

Commit(check-in)

Edit

Update(check-out)

Reconcile

there is a better way
There is a better way

Unobtrusive, optimistic configuration management:

  • Wiki
  • Google Docs
software development today
Software development today

The programmer’s view:

software development today the reality
Software development today: the reality

Development 1

Customer

Development 2

Requirements

example eiffelstudio development
Example: EiffelStudio development

Shanghai: 12:00 AM

Santa Barbara:

8 AM

Moscow:19:00

Florida:

11 AM

Zurich:17:00

France:17:00

issues
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 today10
Software development today

The programmer’s view:

slide12
Demo

CloudStudio

cloudstudio principles
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
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
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
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
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
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
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

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