580 likes | 713 Views
Configuration Management and Software Environments. André van der Hoek Institute for Software Research University of California, Irvine andre@ics.uci.edu. Concerns for Software Environments. Large software Many components Many artifacts Many kinds of artifacts Large teams Many developers
E N D
Configuration ManagementandSoftware Environments André van der HoekInstitute for Software ResearchUniversity of California, Irvineandre@ics.uci.edu
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
Spectrum of Functionality • Components • Versions • Configurations • Baselines • Project contexts • Structure • System model • Interfaces • Consistency • Selection • Construction • Building • Snapshots • Regeneration • Optimization • Controlling • Access control • Change request • Bug tracking • Partitioning • Accounting • Statistics • Status • Reports • Auditing • History • Traceability • Logging • Process • Lifecycle • Task mgmt. • Communication • Documentation • Team • Workspaces • Merging • Families Dart,SCM-3, 1991
ClearCase Telelogic Dimensions AllChange ChangeMan Razor BitKeeper Perforce PVCS AccuRev … CVS RCS Aegis Subversion Keep-It ODE SourceCast … Many CM Systems CM Yellow Pages,www.cmtoday.com, 2002
A History of CM Research SCCS Conditionalcompilation RCS PIE Gandalf DSEE Cedar Adele I Damokles P-Edit PCTE ShapeTools Aide deCamp COV SIO Inscape POEM CoMa ClearCase PCL VOODOO Adele II Asgard ICE Conradi & Westfechtel,ACM Surveys, 2000
Versioning Paradigms Intensional Selection Extensional
Conditional Compilation #ifdef UNIX #include <stdio.h>#endif#ifdef GRAPHICS #include <graphics.h> #ifdef SMARTGRAPHICS #include <smart.> #endif#endif Inline storage of individual changes with pre-processing
1.2 1.2.1.0 2.0 1.2.1.1 1.2.1.0.1.0 Version Tree 1.0 1.1 2.1 External storage of individual changes with checkout/checkin
Change Packages Feature #12 1.0 1.0 1.0 2.0 1.1 1.1 Bug fix #21 2.1 1.2 1.2.1.0 1.2 2.2 2.0 1.2.1.1 1.3 2.0.1.0 Bug fix #2 2.3 2.1 2.0 External storage of coordinated changes with checkout/checkin
Feature#104 Bug fix #21 Bug fix #8 Bug fix #6 Bug fix #16 ... Change Sets AVAILABLECHANGESETS ACTUALSYSTEMSELECTION Bug fix #17 Feature addition#103 Bug fix #16 Baseline 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 textsource 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
Designtool Analysistool Testingtool CMtool … CM – A Separate Tool File System
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
Rich Data Model with Relationships CM – An Integrated Data Model Designtool Analysistool Testingtool … CM CM CM 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 Designtool Analysistool Testingtool … CMtool
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
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 changingand 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 Design Implementation System Testing Deployment Run-Time Versioned Components (Architecture) Components Source Files Features Systems Executables Continuous Change Management
Research Projects Dock Ménage SRM ArchDiff Design Implementation System Testing Deployment Run-Time xADL Versioned Components (Architecture) Components Source Files Features Systems Executables
Research Projects Dock Ménage SRM ArchDiff Design Implementation System Testing Deployment Run-Time xADL Versioned Components (Architecture) Components Source Files Features Systems Executables
xADL 2.0 You know all about it!
Research Projects Dock Ménage SRM ArchDiff Design Implementation System Testing Deployment Run-Time xADL Versioned Components (Architecture) Components Source Files Features Systems Executables
Research Projects Dock Ménage ArchDiff SRM Design Implementation System Testing Deployment Run-Time xADL Versioned Components (Architecture) Components Source Files Features Systems Executables
Producer Consumer Software Deployment: the Problem
Producer Consumer Software Deployment: the Problem
Producer Consumer Software Deployment: the Problem
Producer Consumer Software Deployment: the Problem
Software Deployment Life Cycle Release Producer Retire Consumer Install Update Reconfig Adapt Remove
Research Projects Dock Ménage ArchDiff SRM Design Implementation System Testing Deployment Run-Time xADL Versioned Components (Architecture) Components Source Files Features Systems Executables
Software Dock Release Dock Agent Agent Agent Wide-Area Event Service Enterprise Dock Agent Agent Field Dock Agent Agent Agent Field Dock Agent