Informatics 211: Configuration Management & Coordination André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences.

Slides:



Advertisements
Similar presentations
© 2007 IBM Corporation Demo Shimon Nir, Rational Technical & Service Manager, IBM Southwest Europe.
Advertisements

Configuration Management
Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
Enhancing Configuration Management Systems with Information of Parallel Activities Topic Proposal Anita Sarma October 2005.
Palantír: Coordinating Distributed CMWorkspaces Anita Sarma, André van der Hoek Institute for Software Research University of California, Irvine {asarma,
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Enhancing Configuration Management Workspaces with Information of Parallel Activities Topic Proposal Anita Sarma October 2005.
Software Configuration Management: Selecting the Right Tool Chetan Desai Software Project Management SWEN 5230 Dr. Boetticher.
1 Software Configuration Management METU Computer Engineering CEng 492 Spring'2004.
June 17, 2015 – 14:03:501 (c) 2007 University of California, Irvine – André van der Hoek Informatics 211: Configuration Management & Coordination André.
Community, Artifacts, and Versions André van der Hoek Institute for Software Research University of California, Irvine
Configuration Management and Software Environments André van der Hoek Institute for Software Research University of California, Irvine
1 / 16 CS 425/625 Software Engineering Software Configuration Management Guest Speaker Jim Hunt November 17, 2008.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Institute for Software Research©2001, University of California, Irvine Software Configuration Management André van der Hoek Institute for Software Research.
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Software Configuration Management (SCM)
Paper: “Impact of Software Engineering Research on the Practice of Software Configuration Management Authors: Estublier, Leblang, Hoek, Conradi, Clemm,
Merlin ITEA Symposium Merlin Overview2 Problem domain Companies hardly develop embedded products completely on their own Embedded systems need.
Michael Solomon Tugboat Software Managing the Software Development Process.
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 2 Analyzing Software Repositories Steve Chenoweth Office Phone: (812) Cell: (937)
Software Configuration Management (SCM)
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
Configuration Management T3 Webinar Feb 21, 2008 Chuck Larsen ITS Program Coordinator Oregon Department of Transportation.
Software Engineering Modern Approaches
Software Configuration Management
A Need-Based Collaboration Classification Framework Anita Sarma, André van der Hoek Institute for Software Research University of California, Irvine {asarma,
Introduction to Version Control
Rational Unified Process Fundamentals Module 4: Disciplines II.
Software Configuration Management (SCM)
1 ©equinox limited 2005 What the hell is Configuration Management anyway? Martin White Equinox Software Architects August 2005.
Name Class.  Review of Implementation Process  Identify Critical Success Factors  Define Change Management (big picture)  Define Role of Corporate.
1 Lecture 19 Configuration Management Software Engineering.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
1 Introduction to Software Configuration Management CprE 556 Electrical and Computer Engineering Department Iowa State University.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
© 2008 IBM Corporation ® IBM Cognos Business Viewpoint Miguel Garcia - Solutions Architect.
October 16, 2015 – 16:09:421 © 2006 University of California, Irvine – André van der Hoek Examining Software Design From A General Design Perspective Alex.
Software Quality Assurance
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
The Roadmap to Software Factories Tools, Patterns and Frameworks.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Software Project Management
Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
Management of Software Project CSM Software Configuration Management (SCM)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Configuration Management (SCM) Source: Pressman, R., Software Engineering: A Practitioner ’ s Approach. Boston: McGraw Hill, Inc., 2005; Ghezzi,
Process Modeling Across the Web Information Infrastructure Chris Jensen and Walt Scacchi Institute for Software Research School of Information and Computer.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
Software Configuration Management SEII-Lecture 21
University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI.
Palantír: Increasing Awareness in Distributed Software Development Anita Sarma and André van der Hoek {asarma, Institute for Software.
Configuration Control (Aliases: change control, change management )
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Configuration Management Workspace Awareness for Distributed Software Development Anita Sarma Department of Informatics & Institute for Software Research.
Jeff Kern NRAO/ALMA.  Scaling and Complexity ◦ SKA is not just a bigger version of existing systems  Higher Expectations  End to End Systems  Archive.
Version Control How and why to control changes in a software artifact.
Process 4 Hours.
Software Configuration Management (SCM)
Configuration Management
Configuration Management
Software Project Configuration Management
Software Configuration Management
Presentation transcript:

Informatics 211: Configuration Management & Coordination André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine

A Typical Development Scenario CM repository Pete’s workspace CBA Ellen’s workspace ECD

Direct Conflicts CM repository Pete’s workspace BA Ellen’s workspace ED Conflicting changes to the same artifact CC

Traditional CM Techniques Coordination mechanism Direct conflicts Pessimistic (classical versioning) Locking before changes are made Avoided, at the expense of project delays Optimistic (advanced versioning) Automated merging after changes have been made Resolved, except for overlapping changes

Traditional CM Techniques Coordination mechanism Direct conflicts Pessimistic (classical versioning) Locking before changes are made Avoided, at the expense of project delays Optimistic (advanced versioning) Automated merging after changes have been made Resolved, except for overlapping changes Both with the side effect of keeping a history of changes.

Configuration Management “Configuration management (CM) is a discipline whose goal is to control changes to large software through the functions of: component identification, change tracking, version selection and baselining, software manufacture, and managing simultaneous updates (team work).” Walter Tichy, SCM-1, 1988

Construction Building Snapshots Regeneration Optimization Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Components Versions Configurations Baselines Project contexts CM Spectrum of Functionality Susan Dart, SCM-3, 1991 Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection

CCC/Harvest Three Generations of CM Systems Functionality Proteus Jasmine EPOS VOODOO ShapeTools Asgard NUCM DaSC Vesta Adele ICE Odin Time Source Integrity Continuus CVS PVCS DSEE SCCS NSE ClearCase TRUEchange Serena Endevor Perforce RCS Sablime Research Development

First Generation Focused on: –archiving individual elements –strictly avoiding conflicts Characterized by: –simple, separate tools –development orientation Canonical examples –SCCS –RCS –Make

First Generation: Version Graphs Author = “André v/d Hoek” Date = 01/12/2001 Time = 7:52am Comment = “Trying new stuff” Lock = lock

Construction Building Snapshots Regeneration Optimization Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Components Versions Configurations Baselines Project contexts First Generation Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection

Second Generation Focused on: –archiving compound elements –different version models Characterized by: –integrated versioning & build tools –development orientation Canonical examples: –CVS –Subversion –PVCS –SourceSafe

Four Canonical Version Models State-based extensional –version tree State-based intensional –conditional compilation Change-based extensional –change packages Change-based intensional –change sets

Conditional Compilation … #ifdef UNIX #include #endif #ifdef GRAPHICS #include #ifdef SMARTGRAPHICS #include #endif #endif …

Change Packages

Change Sets Baseline Bug fix #16 Feature addition #103 Bug fix #17 Feature addition #104 Bug fix #8 Bug fix #16 Bug fix #6 Bug fix #21 AVAILABLE CHANGE SETS SYSTEM SELECTION

Construction Building Snapshots Regeneration Optimization Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Components Versions Configurations Baselines Project contexts Second Generation Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection

Third Generation Focused on: –providing process support –being all-encompassing Characterized by: –large, complex tools –management orientation Canonical examples: –ClearCase together with ClearGuide –Cm/Synergy

Construction Building Snapshots Regeneration Optimization Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Components Versions Configurations Baselines Project contexts Third Generation Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection

A Fourth Generation ?

No… CM core functionality is stable with well-understood choices CM tool enhancement seems to be limited to feature creep, not fundamental new approaches SCM workshop series has ended Only a few pure CM papers are being published to date

Maybe… CM functionality is now appearing in domains other than source code management –web content management –product data management –web services and components –software deployment –product line architectures –… Mining software repositories –no better repository than the CM repository Still some problems left –indirect conflicts –concern management Coordination

Software Deployment: the Problem ProducerConsumer

Software Deployment: the Problem ProducerConsumer

Software Deployment: the Problem ProducerConsumer

Software Deployment: the Problem ProducerConsumer

Software Deployment Life Cycle Release Retire ReconfigAdaptRemoveUpdate Install Producer Consumer

SourceForge

RPM

Product Line Architectures: The Problem “A software product line (SPL) is a strategic software- based asset that explicitly recognizes, optimizes, and manages variability towards current and future feature changes.” [van der Hoek] But how to manage this asset?

Classic Versioning for Product Lines

Advanced Versioning for Product Lines

Mining Software Repositories Configuration management repositories are traditionally a “depot” –occasional roll-back –occasional search for relevant information But what if we used the information captured by configuration management repositories to our advantage –understanding software developers –helping software developers

Activity Viewer

Highlighting

Distance is Age

Rotation Allows Different Viewpoints

Larger Projects: Time Ordered

Larger Projects: Most Activity Ordered

Larger Projects: Developer View

Same Project Ordered by Time

Committed versus Not Committed

(Animated)

Applied to GAIM, jEdit, and Argo/UML Simulated the archives –demonstrated scalability –demonstrated usefulness –filters are a must Interesting patterns –core developers –core developer “overtaken” by others –lots of people on a project, but most are working on pictures, not code –highly active artifacts –… Much more analysis to be done Planned: viewing on HIPerWall

Indirect Conflicts Coordination mechanism Direct conflicts Indirect conflicts Pessimistic (classical versioning) Locking before changes are made Avoided, at the expense of project delays Not addressed Optimistic (advanced versioning) Automated merging after changes have been made Resolved, except for overlapping changes Not addressed

Direct Conflicts CM repository Pete’s workspace BA Ellen’s workspace ED Conflicting changes to the same artifact CC

Indirect Conflicts CM repository Pete’s workspace CBA Ellen’s workspace ECD Conflicting changes to different artifacts

Palantír

Lighthouse

World View

World Wall?

Coordination Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts

Layers: Coordination Paradigms Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts

Strands: Technical Dimensions of Coordination Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts

A New Paradigm: Provoked Behavior Continuous coordination, collaborative architecture, seamless development environments, Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Provoked Behavior Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts

Configuration Management Continuous coordination, collaborative architecture, seamless development environments, Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts Provoked Behavior

Conclusion CM is a long-standing field which has seen numerous contributions –some highly influential (sometimes delayed by as much as 20 years) –others indirectly shaping –others utterly useless While the core ideas of CM have been well developer, there is still much room for improvement –particularly if one considers CM to be a coordination problem –particularly if one brings together CM with other disciplines Software engineering can be cool