• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
343
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • In software development, change is constant. Change requests come from a variety of sources. If not managed, change can overwhelm a project.
  • A successful SCM effort ensures: Safety — Ability to recover from failure and to prevent unauthorized use. Stability — Ability to create stable, user-controlled workspaces. Control — Ability to enforce appropriate project-specific workflow controls. Auditability — Ability to know what is included in a particular build. Reproducibility — Ability to mark milestones and reconstruct configurations. Traceablity — Ability to identify and reconstruct particular versions of a software product. Scalability — Ability to support small and large projects as well as distributed development.
  • Each time you check in a file or directory that is under source control, SAW creates a new version of it. The versions represent the history of the element's evolution through each stage of its development. You can access any previous version of an element.
  • Parallel development allows multiple users to access the same sources without competing for checkouts. Work can continue simultaneously on various branches and later be integrated. Examples of parallel development efforts, or branches, might include: Current development branches Maintenance branches Port branches Feature branches Experimental branches

Transcript

  • 1.
    • ESSENTIALS OF
    • SOFTWARE CONFIGURATION MANAGEMENT
  • 2. Software Development and Change
    • Software development involves change
      • A defect to be fixed
      • An existing function to be enhanced
      • A new feature to be added
      • A new platform to support
      • A customer-driven special project
  • 3. Change Causes Developers Pain
    • Working in isolation, you can’t “see” code changes made by team members
    • You can’t work in parallel on files that a co-worker is modifying
    • You frequently lose time and have to redo work because of lost defects or overwritten code
    • You have trouble determining which versions of the code you should be working on
    • You have difficulty answering your manager’s questions about project status
    • You don’t know who on the team is working on what
    • You have no idea which versions of files went into a build
  • 4. Software Configuration Management (SCM)
      • SCM is about managing change to software
  • 5.
      • SCM constitutes of good engineering practice for all
      • software projects, whether phased development,
      • rapid prototyping, or ongoing maintenance. It
      • enhances the reliability and quality of software by:
        • Providing structure of identifying and controlling documentation, code, interface, and databases to support all lifecycle phases.
        • Supporting a chosen development/maintenance methodology that fits the requirements, standards, policies, organization, and management philosophy.
        • Producing management and product information concerning the status of baselines, change control, tests, releases, audits, etc.
  • 6. Software Configuration Management (cont.)
    • A successful SCM effort ensures:
      • Safety
      • Stability
      • Control
      • Audit ability
      • Reproducibility
      • Traceability
      • Scalability
  • 7. What Is a Version?
    • An element consists of a set of versions, organized into a version tree
    • Each version represents one revision of a file under source control
    • Versions are displayed in a workspace
  • 8. Version Control
    • Versions directories and all file types
    • Ensures that elements are read-only
    • Easy checkout-edit-checkin
    • Provides reliable version identification
  • 9. Branching Enables Parallel Development
    • Allows different projects to use the same source at the same time
    • Controls public/private work
    • Isolates changes
      • Temporary, such as new features that have not yet been tested
      • Permanent, such as fixing a bug in a retired release
      • Prevents roadblocks — development can proceed during an integration period
  • 10. Checkout/Checkin Model
    • When a file is under source control, you check it out to work on it
    • A file is checked out to a work space and a modifiable copy is available to work on
    • A placeholder is created in the version tree as the potential successor version
    • When you check in the file, a new version is added to the element version tree
  • 11. THANK YOU