Software Configuration Management

Similar documents
Configuration management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 29 Slide 1

Configuration Management. Software Configuration Management. Example of System Families. Configuration Management

Software Configuration Management. Addendum zu Kapitel 13

Configuration & Build Management

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Software Configuration Management, Software Product lines and Summary

SOE. managing change in system development projects: configuration management

Chapter 13 Configuration Management

Chapter 13 Configuration Management

CHAPTER 7 Software Configuration Management

Software Configuration Management.

Software Configuration Management

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Version Control Tools

Software Configuration Management Plan

CENG492 SENIOR DESIGN PROJECT AND SEMINAR II SOFTWARE CONFIGURATION MANAGEMENT PLAN

Source Control Systems

Software configuration management

Software Configuration Management and Continuous Integration

STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2

Surround SCM Best Practices

Software Configuration Management and Change Management

U. S. Department of Energy. Document Online Coordination System (DOCS) Systems Configuration Management Plan (SCMP)

Software Configuration Management (SCM)

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

A guide through the concepts of Serena Dimensions. René Steg Steg IT-Engineering, Zurich (Switzerland)

Integrity 10. Curriculum Guide

Certified Professional in Configuration Management Glossary of Terms

What Is Software Configuration Management?

CHAPTER 7 SOFTWARE CONFIGURATION MANAGEMENT

Configuration Management Models in Commercial Environments

Automated Transportation Management System

How To Manage A Computer System

Using Git for Project Management with µvision

TEMPLATE. U.S. Department of Energy. Project Name. Configuration Management Plan. September 2002 U. S. DEPARTMENT OF ENERGY

Theme 1 Software Processes. Software Configuration Management

Version Control. Luka Milovanov

Service Asset & Configuration Management PinkVERIFY

unless the manufacturer upgrades the firmware, whereas the effort is repeated.

TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version

Continuous Integration. CSC 440: Software Engineering Slide #1

Meister Going Beyond Maven

Software Configuration Management Plan

Configuration Management. Security related. Software Engineering Processes

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

What Are Software Developers Facing?

Version Control with Subversion

Application Lifecycle Management White Paper. Source Code Management Best Practice: Applying Economic Logic to Migration ALM

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Software Delivery Integration and Source Code Management. for Suppliers

Chapter 5. Choose the answer that mostly suits each of the sentences given:

Content. Development Tools 2(63)

Introduction to Software Configuration Management. CprE 556 Electrical and Computer Engineering Department Iowa State University

One solution for all your Source Configuration Management Needs

LECTURES NOTES Organisational Aspects of Software Development

Access Control and Audit Trail Software

Part I. OpenCIT Server

Efficient Automated Build and Deployment Framework with Parallel Process

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

PM Planning Configuration Management

Configuration Management for Open Source Software

Introduction to Version Control

Upon completion of this chapter, you will able to answer the following questions:

December 21, The services being procured through the proposed amendment are Hosting Services, and Application Development and Support for CITSS.

Continuous Integration

Configuration Management in Software Development Life Cycle

The Real Challenges of Configuration Management

Using Oracle9i SCM for Software Configuration Management. An Oracle Technical White Paper July 2002

APPLICATION MANAGEMENT SUITE FOR ORACLE E-BUSINESS SUITE APPLICATIONS

Software Configuration Management. Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman

1. Introduction Purpose Scope Reference Materials Applicable Documents Reference Documents

SOFTWARE DEVELOPMENT BASICS SED

Version Control Systems

Version control with GIT

Directory-enabled Lights-Out Management

<Project Name> Configuration Management Plan

CatDV Pro Workgroup Serve r

Software Configuration Management

EMC Documentum Composer

Software design (Cont.)

Software Configuration Management. Visiting Lecture Tero Kojo

Source Code Management/Version Control

In depth study - Dev teams tooling

Subversion. Nadir SOUALEM. Linux Users subversion client svn or higher. Windows users subversion client Tortoise 1.6.

Effective Team Development Using Microsoft Visual Studio Team System

Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

Version Control with. Ben Morgan

Transcription:

Reto Bonderer reto.bonderer@fh-htwchur.ch University of Applied Sciences Chur V 1.01 2002, R. Bonderer 1

Learning Goals The participant knows why configuration management is important knows what version, release and change management is about knows how to plan configuration management understands how tools support the configuration management processes and can decide whether a tool is feasible for a particular project V 1.01 2002, R. Bonderer 2

Content Version and release management Change management Build management Configuration management planning Configuration identification Subcontractor control and inclusion of COTS parts Tool support V 1.01 2002, R. Bonderer 3

References Ian Sommerville: Software Engineering, 6 th edition, Pearson Education 2001 K. Frühauf, J. Ludewig, H. Sandmayr: Software Projektmanagement und Qualitätssicherung, 4. durchgesehene Auflage, vdf Zürich 2002 (in German) IEEE Software Engineering Standards Collection, 1999 edition, IEEE Press, www.ieee.org www.cvshome.org www.sei.cmu.edu V 1.01 2002, R. Bonderer 4

Acronyms CCB Configuration Control Board CM Configuration Management CMM Capability Maturity Model COTS Commercial Off The Shelf IEEE Institute of Electrical and Electronics Engineers SCM Software CM SCMP SCM Plan SCR Software Change Request V 1.01 2002, R. Bonderer 5

Most Important Software Processes Software Project Management Requirements Management Software Quality Assurance Software Project V 1.01 2002, R. Bonderer 6

Symptoms of poor CM Bugs that have been corrected reappear Previous releases of software cannot be rebuilt Previous releases of software cannot be found Files get lost Files are mysteriously changed The same or similar code exists multiple times in different projects Two developers accidentally change the same file concurrently V 1.01 2002, R. Bonderer 7

Benefits of an appropriate CM Systems are built automatically and faster Reintroducing already corrected bugs is avoided better reputation of company Concurrent development is simplified Appropriate CM is a prerequisite for distributed development V 1.01 2002, R. Bonderer 8

But: There s No Free Lunch There are risks with: Business Cost (license fees, training, administration) Culture change People Some prefer a different tool Resistance to introduce CM (different reasons) Cheating (people work around a tool) Technology Access and security Scalability V 1.01 2002, R. Bonderer 9

Potential Product Version Tree Linux version French version Core NT version English version Mac version German version V 1.01 2002, R. Bonderer 10

What is SCM? Software configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycle. This includes identifying configuration items, controlling changes and recording and reporting the change implementation status. V 1.01 2002, R. Bonderer 11

What is a Configuration? A configuration is the functional and physical characteristics of hardware or software as set forth in technical documentation or achieved in a product. IEEE Standard Glossary of Software Engineering Terminology V 1.01 2002, R. Bonderer 12

Example: Configurations Cfg 1 Cfg 2 Cfg 3 Cfg 4 file 1 1.3 1.4 1.5 1.6 1.7 file 2 1.0 1.1 1.2 1.3 1.4 file 3 1.6 1.7 1.8 1.9 file 4 1.4 1.5 1.6 1.7 1.8 1.9 V 1.01 2002, R. Bonderer 13

What is a Configuration item? A configuration item is an aggregation of hardware, software, or both, that is designated for configuration management and treated as a single entity in the configuration management process. IEEE Standard Glossary of Software Engineering Terminology V 1.01 2002, R. Bonderer 14

Example: Driver configuration of a PC V 1.01 2002, R. Bonderer 15

Exercise: Car manufacturer Consider a car manufacturer What are the configurations a car manufacturer has to deal with? How does he know how a customer-specific car is built? If an important part (i.e. the brakes) has a bug in a whole production lot: in which cars must the part be replaced? V 1.01 2002, R. Bonderer 16

CM Activities Version and release management Change management System building CM planning V 1.01 2002, R. Bonderer 17

Version and Release Management 1.5 1.4 1.3 1.2 1.1 1.0 gui.c_v 1.3 1.2 1.1 1.0 main.c_v 1.2 1.1 1.0 io.c_v V 1.01 2002, R. Bonderer 18

Baseline A specification or product that has been formally reviewed an agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures. IEEE Standard Glossary of Software Engineering Terminology V 1.01 2002, R. Bonderer 19

Version An initial release or re-release of a computer software configuration item, associated with a complete compilation or recompilation of the computer software configuration item. IEEE Standard Glossary of Software Engineering Terminology V 1.01 2002, R. Bonderer 20

Release The formal notification and distribution of an approved version. IEEE Standard for Plans V 1.01 2002, R. Bonderer 21

Variant A variant is an instance of a system which is functionally identical but non-functionally distinct from other instances of a system. Ian Sommerville Examples: Natural language "versions" (English, French,...) "Versions" for different operating systems Customer specific "versions" V 1.01 2002, R. Bonderer 22

Release Identification Releases are usually identified with a label consisting of two numbers, separated by a dot. X.Y The following conventions usually apply: X represents the level of functionality, it starts with 1 Y represents the update level, it starts with 0 (zero) Y is sometimes called revision V 1.01 2002, R. Bonderer 23

Release Management Releases must incorporate changes forced on the system by errors discovered by users and by hardware changes They must also incorporate new system functionality Release planning is concerned with when to issue a system version as a release V 1.01 2002, R. Bonderer 24

System Releases Not just a set of executable programs May also include Configuration files Data files needed for system operation Installation program or shell script Electronic and paper documentation Packaging and associated publicity Systems are now normally released on DVD, CD-ROM or as downloadable installation files from the web V 1.01 2002, R. Bonderer 25

Release Decision Making Preparing and distributing a system release is an expensive process Factors such as the technical quality of the system, competition, marketing requirements and customer change requests should all influence the decision of when to issue a new system release V 1.01 2002, R. Bonderer 26

Exercise: Version and Release Mgmt Discuss whether Windows 98 is a new version or just a revision of Windows 95. A software company selling an Office suite wants to ship a new release every 18 months. What is the impact of this fact on the development process? V 1.01 2002, R. Bonderer 27

Version Management Tools Automatic version and release identification Efficient storage management. System stores the differences between versions rather than all the version code Change history recording Independent development Parallel working on the same version is handled, either by exclusive locking (most tools) or by a socalled unreserved check out model (CVS). V 1.01 2002, R. Bonderer 28

Working Environment Repository Check out Server Check in Sandbox V 1.01 2002, R. Bonderer 29

Content of an Archive Workfile (in Sandbox) Check in Archive MAIN.C Version 1.2 of MAIN.C Author: N. Wirth Last modified: 2002-08-15 Description of changes: Ported to DB version 2.0 Version 1.2 Version 1.1 Version 1.0 Version 1.1 of MAIN.C Author: B. Kernighan Last modified: 2001-07-26 Description of changes: Database integrated MAIN.C_V Version 1.0 of MAIN.C Author: D. Knuth Last modified: 1993-10-21 Description of changes: File created V 1.01 2002, R. Bonderer 30

Concurrent Versions System (CVS) Open Source www.cvshome.org Local or C/S access Commandline based GUIs are available WinCVS jcvs May be integrated into other tools e.g. Together CASE tool V 1.01 2002, R. Bonderer 31

CVS Commands for Users Check out files cvs checkout filename Check in files cvs commit filename Clean up the working directory cvs release directoryname Add files to repository cvs add filename Remove files from repository cvs remove filename V 1.01 2002, R. Bonderer 32

CVS Commands for Users (cont'd) Show the differences between two versions cvs diff filename Show the log of changes to a file cvs log filename Show the history of each line of a file cvs annotate filename V 1.01 2002, R. Bonderer 33

CVS Commands for Administrators Create a CVS repository cvs -d directoryname init V 1.01 2002, R. Bonderer 34

Exercise: CVS Copy the provided CVS repository to where you like to have it. Create your sandbox. Now check the whole repository out to your sandbox. Try some CVS commands See the log of the files, change the files, check them back in, see the log of the files now, create a new file, add it to the repository,... V 1.01 2002, R. Bonderer 35

Exercise: CASE Tool using CVS Take a class diagram you created with Together Control Center and put it under version control. Do some changes and check them in again. Try to get the former version back out of the repository. V 1.01 2002, R. Bonderer 36

Change Management V 1.01 2002, R. Bonderer 37

Change Management Software systems are subject to continual change requests From users From developers From market forces Change management is concerned with managing of these changes and ensuring that they are implemented in the most cost-effective way V 1.01 2002, R. Bonderer 38

Promotion Model Production Beta Quality Assurance Development Each life cycle stage is working with a defined baseline. Changes must only be made in the Development stage. No Change management in the Development stage. Baselines are promoted to the next level after (formal) approval by an authorized body. V 1.01 2002, R. Bonderer 39

Change Management Process Submit change request Analyse change request Valid? No Yes Submit request to CCB Record request in database Assess implementation and cost Accepted? No Reject change request Yes Implement and test change Create new release V 1.01 2002, R. Bonderer 40

Change Request Form Definition of a change request form is part of the CM planning process (may be paper or electronic) Records change required, requestor of change, reason why change was requested and urgency of change Records change evaluation, impact analysis, change cost and recommendations (system maintenance staff) V 1.01 2002, R. Bonderer 41

Change Tracking Tool A major problem in change management is tracking change status Change tracking tools keep track the status of each change request and automatically ensure that change requests are sent to the right people at the right time. Integrated with e-mail systems allowing electronic change request distribution V 1.01 2002, R. Bonderer 42

A sample problem statistics 60 58 56 54 52 50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0 Okt 99 Nov 99 Dez 99 Jan 00 Feb 00 Priority 4 Priority 3 Priority 2 Priority 1 V 1.01 2002, R. Bonderer 43

Configuration Control Board (CCB) Also called Change Control Board Changes should be reviewed by an external group who decide whether or not they are costeffective from a strategic and organisational viewpoint rather than a technical viewpoint Should be independent of project responsible for system. May include representatives from client and contractor staff V 1.01 2002, R. Bonderer 44

Revision History Record of changes applied to a document or code component Should record, in outline, the change made, the rationale for the change, who made the change and when it was implemented May be included as a comment in code. If a standard prologue style is used for the derivation history, tools can process this automatically V 1.01 2002, R. Bonderer 45

Change Management Tools Change management is a procedural process so it can be modelled and integrated with a version management system Change management tools Form editor to support processing the change request forms Workflow system to define who does what and to automate information transfer Change database that manages change proposals and is linked to a VM system V 1.01 2002, R. Bonderer 46

Exercise: Change Management Design a entity-relational model of a configuration database which records information about system components versions, releases and changes Define attributes and queries that might be helpful for a CM database user V 1.01 2002, R. Bonderer 47

Building a System V 1.01 2002, R. Bonderer 48

System Building The process of compiling and linking software components into an executable system Different systems are built from different combinations of components Different releases are built from different versions of components Invariably supported by automated tools that are driven by build scripts V 1.01 2002, R. Bonderer 49

System Building Building a large system is computationally expensive and may take several hours Hundreds of files may be involved System building tools may provide A dependency specification language and interpreter Distributed compilation Derived object management Integration with version management tools V 1.01 2002, R. Bonderer 50

Integrated Build Process program.exe Link gui.obj main.obj io.obj Compile gui.c main.c io.c Check out 1.3 1.5 1.2 1.2 1.4 1.1 1.1 1.3 1.0 1.0 gui.c_v 1.2 1.1 1.0 main.c_v io.c_v V 1.01 2002, R. Bonderer 51

Daily System Building It is easier to find problems that stem from component interactions early in the process This encourages thorough unit testing - developers are under pressure not to break the build A stringent change management process is required to keep track of problems that have been discovered and repaired V 1.01 2002, R. Bonderer 52

System Building Problems Do the build instructions include all required components? Is the appropriate component version specified? Are all data files available? Is the system being built for the right platform? Is the right version of the compiler and other software tools specified? V 1.01 2002, R. Bonderer 53

Tool Support Make Comes with many development environments or from GNU www.gnu.org Ant Open source tool from the apache project Based on XML Independent of operating systems jakarta.apache.org/ant V 1.01 2002, R. Bonderer 54

Exercise: System Building Use a make tool (e.g. GNU make) and define a build script for a small development project. V 1.01 2002, R. Bonderer 55

Configuration Management Planning V 1.01 2002, R. Bonderer 56

CM Standards CM should always be based on a set of standards which are applied within an organisation Standards should define how items are identified, how changes are controlled and how new versions are managed Standards may be based on external CM standards IEEE standards are recommended IEEE Standard for Plans, IEEE Std 828-1998 IEEE Guide to, IEEE Std 1042-1987 V 1.01 2002, R. Bonderer 57

Products of the Software Process Documents Specifications Manuals Designs Source code Test data Tools All may have to be managed V 1.01 2002, R. Bonderer 58

Configuration Management Planning Starts during the early phases of the project Recommendation: Plan before you start working Must define the documents or document classes which are to be managed (formal documents) The plan shall be applied to the type and size of the project V 1.01 2002, R. Bonderer 59

What the CM Plan Defines... Items to be managed (Configuration items) Identification of items (naming scheme) Responsibilities for the CM procedures and creation of baselines Policies for change control and version mgmt CM records which must be retained Tools to be used and how to use them CM database to record configuration information V 1.01 2002, R. Bonderer 60

What the CM Plan May Define... Configuration status accounting Configuration auditing Release process Subcontractor / Supplier management How to interact with subcontractors / suppliers V 1.01 2002, R. Bonderer 61

Configuration Item Identification Each configuration item must unambiguously be identified A naming scheme shall be defined???? V 1.01 2002, R. Bonderer 62

Elements of a CI Identification Unique identifier Version number Descriptive name (Check sum) V 1.01 2002, R. Bonderer 63

Hierarchical Naming Scheme A hierarchical scheme with multi-level names is probably the most flexible approach PPP.SSS.TTT.nnnn Serial number Document type Subsystem Project V 1.01 2002, R. Bonderer 64

Linear Naming Scheme A linear scheme may be used if the registration is decentralised PPP.nnnnnn Serial number Project V 1.01 2002, R. Bonderer 65

Content according to IEEE Std 828 Introduction Describes the Plan's purpose, scope of application, key terms, and references SCM Management (Who?) Identifies the responsibilities and authorities for accomplishing the planned activities SCM Activities (What?) Identifies all activities to be performed in applying to the project SCM Schedules (When?) Identifies the required coordination of SCM activities with the other activities in the project SCM Resources (How?) Identifies tools and physical and human resources required for execution of the Plan SCM Plan Maintenance Identifies how the Plan will be kept current while in effect V 1.01 2002, R. Bonderer 66

Exercise: Create SCM Plan You already may have worked on a student project. If not, consider a small experimental software project. Create a Plan (SCMP) for this project. V 1.01 2002, R. Bonderer 67

Key Points Configuration management is the management of system change to software products A formal document naming scheme should be established and documents should be managed in a database The configuration data base should record information about changes and change requests A consistent scheme of version identification should be established using version numbers, attributes or change sets V 1.01 2002, R. Bonderer 68

Key Points (cont'd) System releases include executable code, data, configuration files and documentation System building involves assembling components into a system CASE tools are available to support all CM activities CASE tools may be stand-alone tools or may be integrated systems which integrate support for version management, system building and change management V 1.01 2002, R. Bonderer 69

Outlook What's missing in this module Branching of versions Merging of versions Managing configurations that consist of firmware and hardware items, too V 1.01 2002, R. Bonderer 70