CSSE 375 Software Construction and Evolution: Configuration Management

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration Management
Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
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?
Chapter 13 Configuration Management
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Software Configuration Management (SCM)
Chapter 13: Configuration Management
Configuration Management
Configuration & Build Management
Configuration Management
Software Configuration Management
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 14, 2001 Software.
Software Configuration Management
Software Configuration Management (SCM)
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
Software Project Configuration Management
1 Configuration Management 101 ITS Professional Capacity Building Program T3 Webinar February 21, 2008.
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)
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
The Key Process Areas for Level 2: Repeatable Ralph Covington David Wang.
Seattle Area Software Quality Assurance Group Release and Configuration Management, The Acceleration of Change and Its Contribution To Software Quality.
Cybersecurity: Engineering a Secure Information Technology Organization, 1st Edition Chapter 7 Software Supporting Processes and Software Reuse.
Software Configuration Management
Software Configuration Management (SCM)
1 Configuration Management “The Cookbook Approach”
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Chapter 4: Software Configuration Management (SCM)
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
Software Configuration Management
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.
CEN 5011 Ninth Lecture (2 nd part) Nov. 24, 2004 Advance Software Engineering (CEN-5011) Fall 2004 Instructor: Masoud Sadjadi
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
Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required.
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,
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.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Configuration Management (II) Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Software Engineering Lecture 9: Configuration Management.
Configuration Control (Aliases: change control, change management )
SG Software Configuration Management And CVS scmGalaxy Author: Rajesh Kumar
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 CSC-532
Software Configuration Management
Software Project Configuration Management
Chapter 10, Software Configuration Management
Chapter 11: Software Configuration Management
Software Engineering (CSI 321)
Configuration Management
Software Configuration Management
Configuration Management (managing change)
Software Configuration Management
Chapter 11: Software Configuration Management
Software Configuration Management
Presentation transcript:

CSSE 375 Software Construction and Evolution: Configuration Management “You don’t know what version the customer is running?” -- Your instructors react. CSSE 375 Software Construction and Evolution: Configuration Management Shawn and Steve

Kant these philosophy puns be automated? No, they are Immanuel Kants. 

Small programs don’t require much formal configuration management Small programs don’t require much formal configuration management. Why do you suppose that software is so much harder to build as it gets older and bigger? Think for 10 seconds… Turn to a neighbor and discuss it for 30 seconds Can we tawlk? Q1: Why do you suppose that software is so much harder to build as it gets older and bigger? Q1

Problem: Three Dimensions of Change Multiple people must work on software that is changing More than one version of the software must be supported: Released systems Custom configured systems (different functionality) System(s) under development Software must run on different machines, operating systems… Q2: What are the three key dimensions of change addressed in Software Configuration Management? Most of you have been exposed to Source [code] Configuration Management… Software configuration management goes further to deal with the larger problems of software change… Q2 

Turn to a neighbor and discuss it for a minute Think about managing changes in your Junior Projects. Now think about how that would be different if your project was integrated with 25 other projects. What would you need to manage industrial strength projects? Think for 25 seconds… Turn to a neighbor and discuss it for a minute Please identify 2 things you would need for large projects Most of you have been exposed to Source [code] Configuration Management… Software configuration management goes further to deal with the larger problems of software change… 

What is Software Configuration Management? Definition: Set of management disciplines within the software engineering process to develop and maintain the integrity of a baseline. Description: SCM encompasses the disciplines and techniques of initiating, evaluating and controlling change to software products during and after the software engineering process. Standards (approved by ANSI) IEEE 828: Software Configuration Management Plans IEEE 1042: Guide to Software Configuration Management Q3:What is a basic definition of Software Configuration Management ?   Q3 

SCM Basics Identification – identifying software configuration items in a baseline Control – controlling the release of a product and changes to it throughout its lifecycle Status Accounting – recording and reporting of the status of components and changes Auditing and Reviewing – Validating the completeness of a product and that SCM procedures are being followed Q4: What are the four Basic functions of Software Configuration Management? Q4 

SCM Definitions (1 of 2) Software Configuration Item (SCI) – A collection of software elements treated as a unit for the purposes of SCM Baseline – 1 or more SCIs that have been formally reviewed and agreed upon and serve as a basis for further development Configuration – A collection of all the elements of a baseline and a description of how they fit together

SCM Definitions (2 of 2) Configuration Control Board – Group with the responsibility for reviewing and approving changes to baselines Software [artifacts] – All of the code, specifications, plans, descriptions, processes, and documents associated with a software development effort Version – A specific instance of a baseline or configuration item Image from http://vikasthange.blogspot.com/2012/10/software-configuration-management.html. Above - How a typical CCB operates. 

Example Configuration Items Product concept specification Software project plans Software requirements specifications Software design descriptions Source code Database descriptions SCM procedures (controlling SCM change) Software release processes Software test documents User documentation Maintenance documentation

Example SW Configuration Item Tree “The project” SCI Models Subsystems Documents Object Model Dynamic Model SRS SADS . . . . Database User Interface . . . . . . . . Code Data Unit Test . . . . 

For SCM, bring back an oldy, but goodie…

SCM Activities Configuration item identification Promotion management Modeling of the system as a set of evolving components Promotion management Creation of versions for other developers Release management Creation of versions for the clients and users Change management Handling, approval and tracking of change requests Branch management Management of concurrent development Variant management Management of versions intended to coexist 

Key Tasks for Configuration Managers Define Configuration Items Define Promote /Release Policies Define Activities And Responsibilities SCMP following the IEEE 828-1990 standard Set Up Configuration Management System

Turn to a neighbor and discuss it for 30 seconds Can we tawlk? Let’s say a change is made to the code to incorporate use of a packaged application that replaces the scheduler. How can you account for all the dependencies between the cognizant software artifacts? Think for 15 seconds… Turn to a neighbor and discuss it for 30 seconds Can we tawlk? Q5: What is needed to account for all the dependencies between cognizant software artifacts when there are changes made to industry scale systems ?   Traceability between code, apps, design, and data. Q5

More on Baselines As systems are developed, a series of baselines is developed, usually after a review (reqts, design, or code reviews, system testing, client acceptance, ...) Developmental baseline (SRS, SADS, Integration Test, ...) Goal: Coordinate engineering activities. Functional baseline (first prototype, alpha, beta releases) Goal: Get first customer experiences with functional system. Product baseline (product) Goal: Coordinate sales and customer support. Many naming schemes for baselines exist (1.0, 6.01a, ...) A 3 digit scheme is quite common: 7.5.5 Release (Customer) Version (Developer) Revision (Developer) 

How do we manage changes in the baselines? Baselines in SCM Baseline A (developmental) Baseline B (functional, first prototype) Baseline C (functional, beta test) Official Release Q6: How do we manage changes in the baselines ? Time How do we manage changes in the baselines? Q6 

Change Management Change management handles change requests General Change Process Change is requested (this can be done by anyone including users and developers) Change request is assessed against project goals Change is accepted or rejected If it is accepted, the change is assigned to a developer and implemented (otherwise, it’s returned to originators with rationale) 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 more managers. 

Controlling Changes User Two types of controlling change: Promotion: Internal development state of a software is changed. Release: A changed software system is made visible outside the development organization. Approaches for controlling change (Change Policy) Informal (good for research type environments and promotions) Formal (good for externally developed CIs and for releases) Software Engineer Software Repository Master Directory Promotion Promote Policy Release Policy User Q7: What is the difference between promotion policy and release policy when controlling change in software ? Q7 

Standard SCM Directories Programmer’s Directory (IEEE Std: “Dynamic Library”) Completely under control of one programmer Master Directory (IEEE Std: “Controlled Library”) Central directory of all promotions Software Repository (IEEE Std: “Static Library”) Externally released baselines Central source code archive Promotion Foo’12 Foo’13 Release 

Change Policies Change Policies When a promotion or a release is performed, one or more policies apply Purpose of policies is to guarantee that each version, revision, or release conforms to commonly accepted criteria Example change policies: “No developer is allowed to promote source code which cannot be compiled without errors and warnings.” “No baseline can be released without having been beta-tested by at least 500 external users.”

Version vs. Revision vs. Release An initial release or re-release of a configuration item associated with a complete compilation or recompilation of the item. Different versions have different functionality. Revision: Change to a version that corrects only errors in the design/code, but does not affect the documented functionality. Release: The formal distribution of an approved version. Question: Is Windows 8 a new version or a new revision compared to Windows 7? Q8: What is the difference between a version of software and a revision ?   Q8 

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

Software Configuration Management Plan 1. Introduction (WHY?) Describes purpose, scope of application, key terms and references 2. Management (WHO?) Identifies the responsibilities and authorities for accomplishing the planned configuration management activities 3. Activities (WHAT?) Identifies the activities to be performed in applying to the project. 4. Schedule (WHEN?) Establishes the sequence and coordination of the SCM activities with project mile stones 5. Resources (HOW?) Identifies tools and techniques required for the implementation of the SCMP 6. Maintenance Identifies activities and responsibilities on how the SCMP will be kept current during the life-cycle of the project. (SCMP, IEEE 828-1990)

Types of Audits In-process Audits Functional Audits Physical Audits Verify consistency of the design as it evolves through development process Functional Audits Verify that functionality and performance are consistent with requirements defined in the SRS Physical Audits Verify that the as-built version of software and documentation are internally consistent and ready for delivery Quality System Audits Independent assessment of the compliance to the software QA plan