Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Software Quality Assurance Plan
Software Quality Assurance Plan
Chapter 7: Key Process Areas for Level 2: Repeatable - Arvind Kabir Yateesh.
More CMM Part Two : Details.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Elements of Software Configuration Management – Edward H. Bersoff
Software Configuration Management Speaker: Jerry Gao Ph.D. San Jose State University URL:
Configuration management. Reasons for software configuration management  it facilitates the ability to communicate  status of documents, coding, changes.
Software Configuration Management (SCM)
Configuration Management
Configuration Management
Chapter 27 Change Management
Software Configuration Management
Software Configuration Management (SCM)
CSSE 375 Software Construction and Evolution: Configuration Management
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
Capability Maturity Model
Michael Solomon Tugboat Software Managing the Software Development Process.
1 Configuration Management 101 ITS Professional Capacity Building Program T3 Webinar February 21, 2008.
Effective Methods for Software and Systems Integration
Software Configuration Management (SCM)
The Key Process Areas for Level 2: Repeatable Ralph Covington David Wang.
Software Engineering Modern Approaches
Component-level testing – Equivalence partitioning, boundary value analysis, path testing Navigation testing – Testing navigation syntax and semantics.
N By: Md Rezaul Huda Reza n
Software Configuration Management
Software Configuration Management (SCM)
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
SENG521 (Fall SENG 521 Software Reliability & Testing Software Product & process Improvement using ISO (Part 3d) Department.
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
© Mahindra Satyam 2009 Configuration Management QMS Training.
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
Software Project Management
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Quick Recap Monitoring and Controlling. Lesson 11: Monitoring and Controlling Project Work Topic 11A: Identify the Monitor and Control Project Work Process.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 29 Slide 1 Configuration management.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Management of Software Project CSM Software Configuration Management (SCM)
Software Configuration Management (SCM) Source: Pressman, R., Software Engineering: A Practitioner ’ s Approach. Boston: McGraw Hill, Inc., 2005; Ghezzi,
Configuration Management- Basic Concepts. Agenda  Configuration Management process Overview  Process Stages  Planning & Setup  Control  Audit  Case.
Software Configuration Management n Art of coordinating SW development to minimize confusion n Software quality assurance (umbrella) activity n Set of.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Configuration Management
Software Engineering Lecture 9: Configuration Management.
TMP3413 Software Engineering Lab Lab 01: TSPi Tool Support.
Configuration Control (Aliases: change control, change management )
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
Software Configuration Management (SCM)
Introduction for the Implementation of Software Configuration Management I thought I knew it all !
Software Configuration Management (SCM)
Configuration Management
Software Configuration Management
Software Configuration Management
Software Project Configuration Management
Software Configuration Management (SCM)
Chapter 11: Software Configuration Management
Software Configuration Management
Software Engineering (CSI 321)
Configuration Management
Software Configuration Management
Software Requirements
Software Configuration Management
Engineering Processes
Baseline – IEEE definition
Chapter 11: Software Configuration Management
Capability Maturity Model
Capability Maturity Model
Software Reviews.
Presentation transcript:

Software Configuration Management (SCM)

Product Developer Disciplines One view of the world is that there are three types of activities are required for software development Project Management Development Product Assurance

Product Developer Disciplines One view of the world is that there are three types of activities are required for software development Project Management -Assignment of resources -Allocation of resources -Control of resources Development Product Assurance

Product Developer Disciplines One view of the world is that there are three types of activities are required for software development Project Management Development -Elicitation -Design -Implementation Product Assurance

Product Developer Disciplines One view of the world is that there are three types of activities are required for software development Project Management Development Product Assurance -quality assurance -validation and verification -test and evaluation -configuration management

Questions: Suppose five developers are working on a piece of software. How do you track changes during software development? Suppose we have a thousand customers and thirty developers. How do we ensure that the next release of the software is configured correctly? Our thousand customers are using any of the last four releases, and they report bugs regularly. We fix them. How do we ensure that changes are made to the version of software that needs them?

Vocabulary Configuration item Configuration Configuration management Software Configuration Management Baseline Updates

Vocabulary Configuration item A system component or artifact: design document, source code module, test suite,... In the case of software, they are called Software Configuration Items (SCI). Configuration Configuration management Software Configuration Management Baseline Updates

Vocabulary Configuration item Configuration A set of system configuration items sometimes referred to as a version of a system. Configuration management Software Configuration Management Baseline Updates

Vocabulary Configuration item Configuration Version Configuration management Software Configuration Management Baseline –stable snapshot of the aggregate system components as they exist at a given point in time –a configuration or version that has been verified and released Updates

Vocabulary Configuration item Configuration Version Configuration management Software Configuration Management Baseline Updates –Changes to baseline configuration item

Configuration Management Definition: The discipline of identifying the configuration of a system at discrete points in time for the purpose of systematically controlling changes to the configuration and maintaining the integrity and traceability of the configuration throughout the system’s life cycle.

Software Configuration Management A set of procedures that tracks: 1.Requirements that define what the system should do. 2.Design modules that are generated from requirements. 3.Program code that implements the design. 4.Tests that verify the functionality of the system. 5.Documents that describe the system.

Elements of SCM There are four elements of SCM: 1.Software Configuration Identification. 2.Software Configuration Control. 3.Software Configuration Auditing. 4.Software Configuration Status Accounting.

Software Configuration Identification Provides labels for the baselines and their updates First identify the elements that will make up a configuration software == SRS + design + tests + code + … An early configuration may only have a few configuration items (e.g. requirements)

Software Configuration Identification Identify a labeling scheme for baselines Identify a labeling scheme for updates to baselines Example: HATS GUI 1.4 Baseline: updates to baseline 1.0 Next Baseline: 2.0

Software Configuration Control Provides a mechanism for precipitating, preparing, evaluating, and approving or disapproving all change proposals throughout the life cycle.

Software Configuration Control Three basic ingredients to SCC 1.Documentation for formally precipitating and defining a proposed change to a software system. 2.An organizational body (Configuration Control Board) for formally evaluating and approving or disapproving a proposed change to a software system. 3.Procedures for controlling changes to a software system.

Software Configuration Control Why are these needed? 1.Documentation 2.An organizational body 3.Procedures

Software Configuration Control Why are these needed? 1.Documentation 2.An organizational body 3.Procedures Consider an open source project like Apache …

Software Configuration Control Why needed? Not all possible changes are beneficial. Need a mechanism to control access to different items of the configuration. -Example: We don’t want everyone to be accessing everyone else’s code and be able to make changes. -other example?

Software Configuration Auditing Activity performed to independently evaluate the conformance of software products and processes to applicable regulations, standards, guidelines, plans, and procedures.

Software Configuration Auditing Activity performed to independently evaluate the conformance of software products and processes to applicable regulations, standards, guidelines, plans, and procedures. What does that mean?

Software Configuration Auditing Two goals: 1: Ensure that the development staff is following procedures 2: Ensure the product produced is the right product

Software Configuration Auditing Determines the extent to which an item satisfies the required functional and physical characteristics Can be conducted at key points in the life cycle Two types of formal audits might be required –Functional Configuration Audit (FCA) –Physical Configuration Audit (PCA)

FCA Purpose: ensure that the audited software item is consistent with its governing specifications Output of the software verification and validation activities is a key input to this audit (Make sure the software works correctly)

PCA Purpose: ensure that the design and reference documentation is consistent with the as-built software product (make sure the product is assembled correctly)

Software Configuration Status Accounting What version has a particular bug fixed? What is the status of a configuration item? What is the difference between this version and the previous? What is the cause of this trouble report? How many faults are detected each month and how many are fixed?

Software Configuration Status Accounting Provides a mechanism for maintaining a record of where the system is at any point with respect to what appears in published baseline documentation. -When a change proposal is approved it may take some time before the change is initiated or completed.

Software Configuration Status Accounting Why needed? -We need to ensure that there is progress within the development of the project. -Updates to baselines must take place sometime, otherwise we can’t continue.

Questions to ask about Configuration Management Is your software configuration-management plan designed to help programmers and minimize overhead? Do you group change requests, either through informal means such as a list of pending changes or a more formal approach such as a change-control board? Do you formally estimate the effect of each proposed change? Do you view major changes as a warning that requirements analysis isn't yet complete?

Questions to ask about Configuration Management Do you use version-control software to facilitate configuration management? Do you use version-control software to reduce coordination problems of working in teams? Do you use Make or other dependency-control software to build programs efficiently and reliably? Do you backup all project materials periodically? Are project backups transferred to offsite storage periodically? Are all materials backed up including source code, documents, graphics, and important notes? Have you tested the backup-recovery procedure?

Questions to ask about Configuration Management For your last 10 (this number may differ depending upon your situation) changes, what was your average duration from when the change was requested until it was implemented? Is your average duration increasing or decreasing? What do you want your average duration to be? What are you doing about it?