Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Configuration Management and Software Environments André van der Hoek Institute for Software Research University of California, Irvine"— Presentation transcript:

1 Configuration Management and Software Environments André van der Hoek Institute for Software Research University of California, Irvine andre@ics.uci.edu

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

3 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., …

4 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

5 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

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

7 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

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

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

10 1.0 1.1 2.1 1.21.2.1.0 Version Tree 2.01.2.1.1 1.2.1.0.1.0 External storage of individual changes with checkout/checkin

11 Change Packages 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 1.0 2.0 2.2 2.1 2.3 1.0 1.1 1.3 1.2 2.0 2.0.1.0 Feature #12 Bug fix #21 Bug fix #2 External storage of coordinated changes with checkout/checkin

12 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

13 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”

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

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

16 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 (!)

17 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

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

19 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

20 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

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

22 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

23 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

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

25 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)

26 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

27 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

28 But Where Do We Go from Here? ?

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

30 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!

31 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., …

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

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

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

35 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

36 xADL 2.0 You know all about it!

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

38 Ménage

39

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

41 Software Deployment: the Problem ProducerConsumer

42 Software Deployment: the Problem ProducerConsumer

43 Software Deployment: the Problem ProducerConsumer

44 Software Deployment: the Problem ProducerConsumer

45 Software Deployment Life Cycle Release Retire ReconfigAdaptRemoveUpdate Install Producer Consumer

46 SRM

47

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

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

50 Software Dock

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

52 Architectural Differencing / Merging Design TimeRun Time deploy/instantiate

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

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

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

56 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

57 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

58 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


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

Similar presentations


Ads by Google