Software Project Configuration Management

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Software Quality Assurance Plan
Chapter 7: Key Process Areas for Level 2: Repeatable - Arvind Kabir Yateesh.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Software Configuration Management Speaker: Jerry Gao Ph.D. San Jose State University URL:
Software Configuration Management
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Software Configuration Management (SCM)
Configuration Management
Chapter 27 Change Management
Software Configuration Management
CSSE 375 Software Construction and Evolution: Configuration Management
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
This chapter is extracted from Sommerville’s slides. Text book chapter
SE-02 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): - What? - Why? - How?
Software Configuration Management (SCM)
The Key Process Areas for Level 2: Repeatable Ralph Covington David Wang.
Introduction to Software Quality Assurance (SQA)
SOFTWARE CONFIGURATION MANAGEMENT (SCM)
Information Systems Security Computer System Life Cycle Security.
Software Engineering Modern Approaches
Component-level testing – Equivalence partitioning, boundary value analysis, path testing Navigation testing – Testing navigation syntax and semantics.
Software Configuration Management
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
Software Quality Assurance
Software Engineering 2003 Jyrki Nummenmaa 1 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): -
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
CSSE 375 Software Construction and Evolution: More SCM, and a loop back to Feathers! Shawn and Steve Left – On big systems, SCM is a well-defined process.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa Configuration management.
Software Project Management
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 29 Slide 1 Configuration management.
Software Configuration Management (SCM) Source: Pressman, R., Software Engineering: A Practitioner ’ s Approach. Boston: McGraw Hill, Inc., 2005; Ghezzi,
Software Configuration Management n Art of coordinating SW development to minimize confusion n Software quality assurance (umbrella) activity n Set of.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Configuration Management
1 Chapter 9 Software Configuration Management. 2 The “First Law” No matter where you are in the system life cycle, the system will change, and the desire.
Software Configuration Management SEII-Lecture 21
State of Georgia Release Management Training
Software Engineering Lecture 9: Configuration Management.
Software Engineering Process - II 7.1 Unit 7: Quality Management Software Engineering Process - II.
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
Software Configuration Management (SCM)
 Software Configuration Management is the process of controlling and monitoring change to work products.  Or  “It is the art of identifying, organizing.
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 Configuration Management
Chapter 10, Software Configuration Management
Software Configuration Management (SCM)
Chapter 11: Software Configuration Management
Software Configuration Management
Software Engineering (CSI 321)
Configuration Management
Software Configuration Management
Change Control Process—I
Chapter 27 Change Management
Lecture 3 Change Management
Configuration Management (managing change)
Software Configuration Management
Chapter 27 Change Management
Chapter 27 Change Management
Chapter 11: Software Configuration Management
HART Technologies Process Overview
Chapter 27 Change Management
Chapter 27 Change Management
Software Configuration Management
Presentation transcript:

Software Project Configuration Management

What is SPCM? Software Configuration Management is how you control the evolution of a software project. Configuration management (CM) is a systems engineering process for establishing and maintaining consistency of a product's performance, functional and physical attributes with its requirements, design and operational information throughout its life. The introduction to the IEEE “Standard for Software Configuration Management Plans” [IEEE 828-1998] says this about SCM: SCM constitutes 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 for identifying and controlling documentation, code, interfaces, and databases to support all life-cycle 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

What is SPCM? (Continued) SCM is initiated when the project begins and terminates when the software is taken out of operation View of SCM from various roles Project manager -> an auditing mechanism SCM manager -> a controlling, tracking, and policy making mechanism Software engineer -> a changing, building, and access control mechanism Customer -> a quality assurance and product identification mechanism

Origins of Software Change Errors detected in the software need to be corrected New business or market conditions dictate changes in product requirements or business rules New customer needs demand modifications of data produced by information systems, functionality delivered by products, or services delivered by a computer-based system Reorganization or business growth/downsizing causes changes in project priorities or software engineering team structure Budgetary or scheduling constraints cause a redefinition of the system or product

Configuration Management Tasks

Configuration Management Tasks (Continued) Concentric layers (from inner to outer) Configuration Identification Configuration Change and Version control Configuration Auditing Status Reporting CIs flow outward through these layers during their life cycle CIs ultimately become part of the configuration of one or more versions of a software application or system

Configuration Identification Configuration identification is the process of identifying the attributes that define every aspect of a configuration item. A configuration item is a product (hardware and/or software) that has an end-user purpose. These attributes are recorded in configuration documentation and baselined. Baselining an attribute forces formal configuration change control processes to be effected in the event that these attributes are changed.

Change Management Change management is the handling of change requests A change request leads to the creation of a new release General change process The change is requested (this can be done by anyone including users and developers) The change request is assessed against project goals Following the assessment, the change is accepted or rejected If it is accepted, the change is assigned to a developer and implemented The implemented change is audited. The complexity of the change management process varies with the project. Small projects can perform change requests informally and fast while complex projects require detailed change request forms and the official approval by one or more managers.

Configuration Change Control Change control is a procedural activity that ensures quality and consistency as changes are made to a configuration items A change request is submitted to a configuration control authority, which is usually a change control board (CCB) The request is evaluated for technical merit, potential side effects, overall impact on other configuration items and system functions, and projected cost in terms of money, time, and resources The baselined CI is obtained from the SCM repository Access control governs which software engineers have the authority to access and modify a particular configuration object Synchronization control helps to ensure that parallel changes performed by two different people don't overwrite one another

Configuration Version Control Version control is a set of procedures and tools for managing the creation and use of multiple occurrences of Cis in the SCM repository Required version control capabilities An SCM repository that stores all relevant configuration objects A version management capability that stores all versions of a configuration object (or enables any version to be constructed using differences from past versions) To make facility that enables the software engineer to collect all relevant configuration objects and construct a specific version of the software Issues tracking (bug tracking) capability that enables the team to record and track the status of all outstanding issues associated with each configuration object

Configuration Auditing Configuration auditing is an SQA activity that helps to ensure that quality is maintained as changes are made It complements the formal technical review and is conducted by the SQA group It addresses the following questions Has the change specified been made? Have any additional modifications been incorporated? Has a formal technical review been conducted to assess technical correctness? Has the software process been followed, and have software engineering standards been properly applied? Has the change been "highlighted" and "documented" in the CI? Have the change data and change author been specified? Do the attributes of the configuration object reflect the change? Have SCM procedures for noting the change, recording it, and reporting it been followed? Have all related CIs been properly updated? A configuration audit ensures that The correct CIs (by version) have been incorporated into a specific build That all documentation is up-to-date and consistent with the version that has been built

Status reporting Configuration status reporting (CSR) is also called status accounting Provides information about each change to those personnel in an organization with a need to know Answers what happened, who did it, when did it happen, and what else will be affected? Sources of entries for configuration status reporting Each time a CI is assigned new or updated information Each time a change is approved by the CCB Each time a configuration audit is conducted The configuration status report Placed in an on-line database or on a website for software developers and maintainers to read Given to management and practitioners to keep them appraised of important changes to the project CIs

Versioning Major.Minor.Release.Build (One among multiple approach)

Facets of SCM Concurrency Management Version Control Synchronization Build Management Auditing Reporting System Defect Tracking

SCM planning Software configuration management planning starts during the early phases of a project. The outcome of the SCM planning 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, or an internal (e.g. company specific) standard.

Software Configuration Management Plan Defines the types of documents to be managed and a document naming scheme. Defines who takes responsibility for the CM procedures and creation of baselines. Defines policies for change control and version management. Describes the tools which should be used to assist the CM process and any limitations on their use. Defines the configuration management database used to record configuration information.

Tasks for the Configuration Managers Define configuration items Define promote /release policies Define responsibilities

Summary Software Configuration Management is an elementary part of the project management plan to manage evolving software systems and coordinate changes to them. SCM is performed by following a SCM plan. This plan can either follow a public standard (e.g. IEEE 828) or an internal standard. SCM is supported by tools. Their functionality varies from simple version storage tools to very sophisticated systems with automated procedures for policy checks and support for the creation of SCM documents.