1 / 58

Configuration Management and Software Environments

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

johnna
Télécharger la présentation

Configuration Management and Software Environments

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Configuration ManagementandSoftware Environments André van der HoekInstitute for Software ResearchUniversity of California, Irvineandre@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. 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

  6. 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

  7. 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

  8. Versioning Paradigms Intensional Selection Extensional

  9. 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

  10. 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

  11. 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

  12. 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

  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 textsource 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. Designtool Analysistool Testingtool CMtool … CM – A Separate Tool File System

  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. Rich Data Model with Relationships CM – An Integrated Data Model Designtool Analysistool Testingtool … CM CM CM 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 Designtool Analysistool Testingtool … CMtool

  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 changingand 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 Design Implementation System Testing Deployment Run-Time Versioned Components (Architecture) Components Source Files Features Systems Executables Continuous Change Management

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

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

  35. Required Modeling Concepts

  36. xADL 2.0 You know all about it!

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

  38. Ménage

  39. Ménage

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

  41. Producer Consumer Software Deployment: the Problem

  42. Producer Consumer Software Deployment: the Problem

  43. Producer Consumer Software Deployment: the Problem

  44. Producer Consumer Software Deployment: the Problem

  45. Software Deployment Life Cycle Release Producer Retire Consumer Install Update Reconfig Adapt Remove

  46. SRM

  47. SRM

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

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

  50. Software Dock

More Related