Configuration Management and Software Environments André van der Hoek Institute for Software Research University of California, Irvine

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

HP Quality Center Overview.
Configuration Management Main issues:  manage items during software life cycle  usually supported by powerful tools.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
Software Configuration Management: Selecting the Right Tool Chetan Desai Software Project Management SWEN 5230 Dr. Boetticher.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Software Engineering COMP 201
Rational Unified Process
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
CVS II: Parallelizing Software Development Author: Brian Berliner John Tully.
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.
© Copyright Eliyahu Brutman Programming Techniques Course.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Informatics 211: Configuration Management & Coordination André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
1 CMPT 275 Software Engineering Revision Control.
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Software Configuration Management
Software Configuration Management (SCM)
CSSE 375 Software Construction and Evolution: Configuration Management
Paper: “Impact of Software Engineering Research on the Practice of Software Configuration Management Authors: Estublier, Leblang, Hoek, Conradi, Clemm,
CSCI ClearQuest 1 Rational ClearQuest Michel Izygon - Jim Helm.
Configuration Management Process and Environment MACS Review 1 February 5th, 2010 Roland Moser PR a-RMO, February 5 th, 2010 R. Moser 1 R. Gutleber.
Software Configuration Management (SCM)
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
Software Architecture and Software Configuration Management Bernhard Westfechtel and Reidar Conradi RWTH Aachen, Germany/ NTNU Trondheim, Norway SCM 10.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Software Engineering Modern Approaches
Software Configuration Management
Rational Unified Process Fundamentals Module 4: Disciplines II.
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.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
Configuration Management (CM)
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.
© 2009 IBM Corporation Select View/Master/Slide Master to add Session Number Here The Enterprise Architecture Workspace: Your Architecture Blueprint Martin.
Software Quality Assurance
Distributed Version Management Distributed Version of Management for Computer Software (DVMS)
1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)
Today’s Agenda  Quick Review  Final Exam  Version Control Software Testing and Maintenance 1.
Software Project Management
CPSC 871 John D. McGregor Change management Module 2 Session 3.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
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.
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.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with IBM Rational Software Architect V7.5 Module 17: Team Modeling.
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.
1 Week 9 Software Engineering Fall Term 2015 Marymount University School of Business Administration Professor Suydam.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Software Configuration Management (SCM)
Configuration Management
Software Configuration Management CSC-532
Chapter 11: Software Configuration Management
Configuration Management
Software Configuration Management
Chapter 11: Software Configuration Management
Software Configuration Management
Presentation transcript:

Configuration Management and Software Environments André van der Hoek Institute for Software Research University of California, Irvine

Concerns for Software Environments Large software –Many components –Many artifacts –Many kinds of artifacts Large teams –Many developers Long term evolution –Many changes

Critical Questions How do I keep track of changes? How do I put a product together? How do I avoid conflicts? How do I account for what happened? How do I go “back in time”? Etc., etc., …

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).” Tichy, SCM-1, 1988

Dart, SCM-3, 1991 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 Spectrum of Functionality Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle Task mgmt. Communication Documentation Process Lifecycle Task mgmt. Communication Documentation Controlling Access control Change request Bug tracking Partitioning Controlling Access control Change request Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection

Many CM Systems ClearCase Telelogic Dimensions AllChange ChangeMan Razor BitKeeper Perforce PVCS AccuRev … CVS RCS Aegis Subversion Keep-It ODE SourceCast … CM Yellow Pages,

A History of CM Research Asgard ClearCaseCoMaPOEM PCTE Damokles RCS SCCS VOODOOAdele II ICE P-Edit PCL COV Aide de Camp DSEE ShapeToolsInscapeSIO PIE Conditional compilation CedarAdele I Gandalf Conradi & Westfechtel, ACM Surveys, 2000

Versioning Paradigms Representation State-basedChange-based Conditional compilation Change sets Version tree Change packages Intensional Extensional Selection

Conditional Compilation #ifdef UNIX #include #endif #ifdef GRAPHICS #include #ifdef SMARTGRAPHICS #include #endif #endif Inline storage of individual changes with pre-processing

Version Tree External storage of individual changes with checkout/checkin

Change Packages Feature #12 Bug fix #21 Bug fix #2 External storage of coordinated changes with checkout/checkin

Change Sets Baseline Bug fix #16 Feature addition #103 Bug fix #17 AVAILABLE CHANGE SETS ACTUAL SYSTEM SELECTION Feature #104 Bug fix #8 Bug fix #16 Bug fix #6 Bug fix #21... External storage of coordinated changes with merging

Back to CM & Environments Integrated in the editor –“Editor is the environment” A separate tool –“File system is the environment” An integrated data model –“Data model is the environment” The environment –“CM tool is the environment”

Critical CM Considerations What is the CM focus? What versioning paradigms are used? How usable is the resulting environment?

CM – Integrated in the Editor Big, Feature-Rich Editor

CM – Integrated in the Editor PIE –Integrated SmallTalk environment –Change sets as dependent layers P-Edit/MVPE –Text editor –Simultaneous editing of multiple versions of a single text source file –Source file is partitioned into fragments –Control constructs are hidden Word (!) Emacs (!)

CM – Integrated in the Editor What is the CM focus? –Change tracking What versioning paradigms are used? –Any How usable is the resulting environment? –Easy –Only sufficient for a single user

CM – A Separate Tool File System Design tool CM tool Testing tool Analysis tool …

CM – A Separate Tool SCCS / RCS / … –Revision control system –Locks prevent conflicts –Access to artifacts via individual workspaces DSEE –Configuration management system –Access to repository via a virtual file system Almost all regular CM systems

CM – A Separate Tool What is the CM focus? –Change tracking –Conflict avoidance What versioning paradigms are used? –Any, provided that text files are versioned How usable is the resulting environment? –Relatively easy to moderately complex –Able to support moderate groups of users

CM – An Integrated Data Model Design tool Testing tool Analysis tool … Rich Data Model with Relationships CM

CM – An Integrated Data Model Gandalf / Inscape / Cedar / DAMOKLES / … –System models –Interfaces, pre- and post-conditions, typing, … PCTE –Software engineering repository –Standardized interface (including CM) CoMa –Simple versioned hyperweb system –Attribute-based graphs with cross-graph links Nowadays virtually extinct, except in the field of hypermedia

CM – An Integrated Data Model What is the CM focus? –Traceability –Consistency management What versioning paradigms are used? –State-based extensional –Change-based extensional How usable is the resulting environment? –Difficult to use –Able to support large groups of users

CM – The Environment Design tool Testing tool Analysis tool … CM tool

CM – The Environment Asgard –CM-oriented process engine –Mapping of activity-based processes to change packages Adele –Configuration management database with process engine –Object-orientation Popular in high-end CM systems –ClearCase (Rational Rose) –Continuus (Telelogic IDE)

CM – The Environment What is the CM focus? –Process management –Change tracking What versioning paradigms are used? –Any, provided that text files are versioned How usable is the resulting environment? –Moderately complex to use –Able to support large groups of users

Current State of the Art CM is present in different incarnations virtually everywhere One billion dollar industry –Over a hundred commercial CM systems –Many additional freeware, public domain, and open source CM systems Recognized as essential to any successful project –CMM, ISO 9000 Active community –CM Yellow Pages, CM Today

But Where Do We Go from Here? ?

Some Possible Directions Extend to other domains –Web –Product data management –… Improve CM functionality –Better integrations –More features –… Useful, but not earth shattering

Today’s Rapidly Changing Landscape Construction by component assembly Integrators and suppliers Multiple organizations and locations Decentralized control Management of changes after development –Right artifacts to right places at right times Run-time change management The very nature of software environments is changing and the nature of CM is changing accordingly!

Critical Questions Revisited How do I keep track of changes… –…if I am not the only one making them? How do I put a product together… –…if the pieces come from many different places? How do I avoid conflicts… –…if I am not in control? How do I account for what happened… –…if users change running applications? How do I go “back in time”… –…if the original source is somewhere else? Etc., etc., …

A New Kind of Environment Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) Continuous Change Management

Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) SRM xADL MénageArchDiff Dock

Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) SRM xADL MénageArchDiff Dock

Required Modeling Concepts Components, connectors, interfacesTypes & instances Linear evolutionRevisions Diverging paths of evolutionBranches Alternatives (variation points)Guarded variants Non-mandatory architectural elementsGuarded options Hierarchical compositionSub-architectures ImplementationsMappings

xADL 2.0 You know all about it!

Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) SRM xADL MénageArchDiff Dock

Ménage

Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) xADL MénageArchDiff SRM Dock

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

SRM

Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) xADL MénageArchDiff SRM Dock

Software Dock Agent Release Dock Agent Enterprise Dock Agent Field Dock Agent Field Dock Wide-Area Event Service

Software Dock

Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) xADL MénageArchDiff SRM Dock

Architectural Differencing / Merging Design TimeRun Time deploy/instantiate

Architectural Differencing / Merging Design TimeRun Time deploy/instantiate evolve

Architectural Differencing / Merging Design TimeRun Time deploy/instantiate evolve? ?

Architectural Differencing / Merging Design TimeRun Time deploy/instantiate evolvedynamism architectural patch mergediff

Current Status Diff representation –Defined as xADL 2.0 extension Differencing and merging algorithms –Implemented for static operation To be examined –Dynamic case –Multiplicity –Distribution –Run-time CM system

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).” Tichy, SCM-1, 1988

Conclusions CM as a discipline is changing –Broader scope –Intermingling with other disciplines CM tools will be vastly different –What is the right role in a software environment? –Inherently support design, development, deployment, and run-time Continuous change management Versioned components are the key