Software Configuration Management

Cards (33)

  • SCM stands for Software Configuration Management
  • The Software Configuration Management is an umbrella activity that is being applied throughout the software process.
  • All information produced as part of the software process are collectively called a software configuration.
  • According to the First Law of System Engineering: No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle.
  • Fundamental sources of change:
    • New business or market conditions
    • New customer needs
    • Reorganizations and/or business downsizing
    • Budgetary or Scheduling
  • The IEEE defines a baseline as:
    "a specification or product that has been formally reviewed and agreed upon thereafter serves as a basis for further development, and that can be changed only through formal change control procedures."
    These are commonly known as checkpoints in development, as these must be completed first before moving on to the next phase.
  • Common Baselines
    SYSTEM ENGINEERING --- System Specification
    REQUIREMENT ANALYSIS --- Software Requirement Specification
    SOFTWARE DESIGN --- Design Specification
    CODING --- Source Code
    TESTING --- Test Plans / Procedures / Testing Data
    RELEASE --- Operational Software
  • The Software Configuration Items (SCI) are information created as part of the software engineering process.
  • SCI Modification Process
  • The Software Configuration Item can be named and organized using an object-oriented approach
  • Types of objects:
    • Basic Object
    • Aggregated Objects
  • Basic Object
    A type of object 'unit of text' created during analysis, design, coding, or testing
  • Aggregated Objects
    A type of object that has a collection of basic objects
  • Object Identification in Software Configuration
    Features of objects:
    • Name: a character string
    • Description: a list of data items to identify the SCI type and a project ID, version information, and others.
    • Resources: entity that are provided, processed and/or referenced by the object
    • Realization: a pointer to 'unit of text' for a basic object, or null for an aggregate object
    • Relationship between objects:
    • Part-of: a hierarchical relationship
    • Interrelated: a cross-structural relationship
    • Object Identification Methods:
    • Evolution Graph
    • automated SCM Tools
    • Module Interconnection Language
  • Configuration Objects
  • Software Configuration Management Process
    • Identification
    • Configuration Control
    • Version Control
    • Change Control
    • Configuration Auditing
    • Status Reporting
  • Configuration Control enforces a rigous change control mechanism.
    This requires formal procedures to:
    Request changes
    Carry out impact analysis
    Approve changes
    Carry out changes
  • Merging means that two diverging versions may be merged to create a singlenew version, combining both set to change requests.
    Merge operations are typically done interactively with tool assistance.
  • The use of evolution graph is to represent different versions.
  • The use of an object pool is representing components, variant, versions, and their relationship.
  • Revision Control System is a common tool used for documentation and code development.
  • Technique for storing versions
    Full files, meaning all files (even not modified) is stored.
    Forward Delta files
    Reverse Delta files
  • The change control authority is a group of representatives that includes:
    • User
    • Customer
    • Developer
  • To check whether changes made are fit to the current state of the project, the software engineer “checks in” to the project database through a process called Access and Synchronization Control.
  • Two approaches can be used to ensure proper implementation of change:
    Formal Technical Review (FTR)
    Software Configuration Audit
  • Status Reporting

    Status report is a collection of details of all the things that happened during the SCM Process
  • The outcome of the SCM planning phase is the Software Configuration Management Plan (SCMP), which might be extended or revised during the rest of the project.
  • The SCMP can either follow a public standard like the IEEE 828-2012, or an internal (e.g. company-specific) standard.
  • Common features of popular PC-based tools
    SolarWinds
    Ansible
    Capistrano
    cdist
  • To conform to the rest of the project, the SCMP may be:
    tailored upward: to add information; to use a specific format
    tailored downward: Some SCMP components might not apply to a particular project.
  • Component-Based Software Development
    CBSD is an approach to software development that focuses on the design and development of systems with the use reusable components.
  • Configuration Management is the art of coordinating software development to minimize confusion.
    This is also known as the art of identifying, organizing, and controlling modifications to the software being built.
    The goal is to maximize the productivity by minimizing mistakes.
  • All information produced as part of the software process are collectively called a software configuration.