SV

12-Software Configuration Mgmt

  • Configuration Management (CM)

    • Policies, processes, and tools for managing software system changes.
    • Essential for tracking changes and versions, especially in team projects.
    • Crucial in Agile development where changes occur frequently.
  • Software Configuration Phases

    • Development: Managed by the development team, new functionalities added.
    • System Testing: Internal release for testing – fixes only, no new features.
    • Release: Software is released to customers; includes updates and bug fixes.
  • Multi-Version System Development

    • Large systems typically have multiple versions at different development stages.
  • CM Terminology

    • Baseline: Collection of controlled component versions.
    • Branching: Creating a new code line from an existing version.
    • Codeline: Set of versions a software component depends on.
    • Configuration Control: Maintaining and tracking versions of components.
    • Release: Version released to end-users.
    • Workspace: Personal area for developers to modify software.
  • Version Management (VM)

    • Process for tracking versions of components and systems.
    • Ensures change management without conflict between developers.
  • Version Control Systems (VCS)

    • Centralized: Single master repository (e.g., Subversion).
    • Distributed: Several repositories exist (e.g., Git).
    • Features include version identification, change history, and project support.
  • Release Management

    • Distribution of system versions to customers.
    • Factors: Competition, marketing, platform changes, and system quality.
    • Components of a release include config files, documentation, and installation programs.
  • Change Management

    • Ensures controlled system evolution, prioritizing essential changes.
    • Involves assessing costs/benefits of proposed changes.