1 the last commit and the end of configuration management bertrand meyer chair of software...

Post on 21-Dec-2015

217 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related