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

20
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

Post on 21-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 2: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 3: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

3

Full disclosure

Configuration management is one of the principal “best practices” of modern software engineering, which every project, large or small, should apply.

Page 4: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

4

Traditional configuration management process

Update(check-out)

Edit Commit(check-in)

Reconcile

Page 5: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

5

There is a better way

Unobtrusive, optimistic configuration management:

Wiki

Google Docs

Page 6: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

6

Software development today

The programmer’s view:

Page 7: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

7

Software development today: the reality

Customer

Requirements

Development 2

Development 1

Page 8: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

8

Example: EiffelStudio development

Santa Barbara:

8 AM

Zurich:17:00

France:17:00

Moscow:19:00

Shanghai: 12:00 AM

Florida:11 AM

Page 9: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 10: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

10

Software development today

The programmer’s view:

Page 11: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

11

The CloudStudio view

Page 12: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

12

Demo

CloudStudio

Page 13: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 14: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 15: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 16: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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)

Page 17: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 18: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 19: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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

Page 20: 1 The last commit and the end of configuration management Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work

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