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

Slides:



Advertisements
Similar presentations
The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.
Advertisements

Configuration Management
Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
Bertrand Meyer ETH Zurich, Eiffel Software & ITMO With Cristiano Calcagno, Carlo Furia, Alexander Kogtenkov*, Martin Nordio, Manuel Oriol +, Yu Pei, Nadia.
Multi-Mode Survey Management An Approach to Addressing its Challenges
Chapter 6 HCI in the software process. Software engineering and the design process for interactive systems Usability engineering Iterative design and.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
The ideal of program correctness Tony Hoare BudapestSeptember 2006.
Alternate Software Development Methodologies
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Dr Gordon Russell, Napier University Unit Data Dictionary 1 Data Dictionary Unit 5.3.
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION VERSION CONTROL UW Autumn 2011.
Chair of Software Engineering 1 Introduction to Programming Bertrand Meyer Exercise Session 1 22 September 2009.
Delivered System Documentation u One of the most important things that can be done to make a system maintainable is to create the best, most complete,
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
Chair of Software Engineering Automatic Verification of Computer Programs.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Software Configuration Management (SCM)
SubVersioN – the new Central Service at DESY by Marian Gawron.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
PROGRAMMING LEARNING: DIFFICULTIES AND SUPPORT TOOLS António José Mendes – University of Coimbra.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Version control Using Git 1Version control, using Git.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Maintaining Information Systems Modern Systems Analysis and Design.
Software engineering Olli Alm Lecture 6: implementation, tools for software development.
RUP Implementation and Testing
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
1 Lecture 19 Configuration Management Software Engineering.
Configuration Management (CM)
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Subversion (SVN) A Revision Control System Successor to CVS Carlos Armas Hervey Allen.
1 Cloud-Based Science? Bertrand Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Cloud Futures panel.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer Progress Sonic.
Object Oriented Modeling David Li CTO, DigitalSesame.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Configuration Management CSCI 5801: Software Engineering.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Presentation OLOMOLA,Afolabi( ). Update Changes in CSV/SVN.
Software Testing Process
Version Control and SVN ECE 297. Why Do We Need Version Control?
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Software Engineering and Mobile Apps COM Presentation.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Version control, using Git
IEEE Std 1074: Standard for Software Lifecycle
HCI in the software process
LECTURE 3: Software Configuration Management
Lecture 09:Software Testing
Automated Testing and Integration with CI Tool
HCI in the software process
HCI in the software process
Human Computer Interaction Lecture 14 HCI in Software Process
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

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 record Can go back to any earlier version Can define explicit, named versions Can 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),

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 Arbiter Programmer Suggestions Boogie prover Sep. logic prover AutoFix AutoTest Test case generation EiffelStudio Suggestions Test execution Test results Interactive prover

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 Meyer Chair of Software Engineering, ETH Zurich Eiffel Software, Santa Barbara Work done with: Martin Nordio, ETH Le Minh Duc, Hanoi University of Technology