• No results found

Software Configuration Management

N/A
N/A
Protected

Academic year: 2021

Share "Software Configuration Management"

Copied!
70
0
0

Loading.... (view fulltext now)

Full text

(1)

SWEED

Software Configuration Management

Reto Bonderer

(2)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 2

SWEED

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

(3)

SWEED

Content

ΠVersion and release management

ΠChange management

ΠBuild management

ΠConfiguration management planning

ΠConfiguration identification

ΠSubcontractor control and inclusion of COTS parts

(4)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 4

SWEED

References

z Ian Sommerville: Software Engineering, 6th edition, Pearson Education 2001

z K. Frühauf, J. Ludewig, H. Sandmayr: Software – Projekt- management und – Qualitätssicherung, 4. durchgesehene Auflage, vdf Zürich 2002 (in German)

z IEEE Software Engineering Standards Collection, 1999 edition, IEEE Press, www.ieee.org

z www.cvshome.org

z www.sei.cmu.edu

(5)

SWEED

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

(6)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 6

SWEED

Most Important Software Processes

Software Project Management

Software Quality Assurance

Software Configuration Management Requirements

Management

Software Project

(7)

SWEED

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

(8)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 8

SWEED

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

(9)

SWEED

But: There’s No Free Lunch

ΠThere are risks with:

‹Business

z Cost (license fees, training, administration)

z Culture change

‹People

z Some prefer a different tool

z Resistance to introduce CM (different reasons)

z Cheating (people work around a tool)

(10)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 10

SWEED

Potential Product Version Tree

Core NT version

Mac version Linux version

French version

German version English version

(11)

SWEED

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.

(12)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 12

SWEED

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

(13)

SWEED

Example: Configurations

1.3 1.4 1.5 1.6 1.7

file 1

Cfg 1 Cfg 2 Cfg 3 Cfg 4

1.0 1.1 1.2 1.3 1.4

file 2

1.6 1.7 1.8 1.9

file 3

(14)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 14

SWEED

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

(15)

SWEED

Example: Driver configuration of a PC

(16)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 16

SWEED

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?

(17)

SWEED

CM Activities

ΠVersion and release management

ΠChange management

ΠSystem building

ΠCM planning

(18)

Software Configuration Management

V 1.01 SWEED 2002, R. Bonderer 18

SWEED

Version and Release Management

1.0 1.1 1.3

gui.c_v 1.2

1.0 1.1 1.2 1.3 1.4

main.c_v 1.5

1.0 1.1

io.c_v 1.2

(19)

SWEED

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

(20)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 20

SWEED

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

(21)

SWEED

Release

The formal notification and distribution of an approved version.

IEEE Standard for Software Configuration Management Plans

(22)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 22

SWEED

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"

(23)

SWEED

Release Identification

ΠReleases are usually identified with a label

consisting of two numbers, separated by a dot.

ΠThe following conventions usually apply:

z X represents the level of functionality, it starts with 1

X.Y

(24)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 24

SWEED

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

(25)

SWEED

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

(26)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 26

SWEED

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

(27)

SWEED

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?

(28)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 28

SWEED

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 so- called unreserved check out model (CVS).

(29)

SWEED

Working Environment

Server

Repository

Check out Check in

(30)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 30

SWEED

Content of an Archive

Version 1.2

Version 1.0

Version 1.1 of MAIN.C Author: B. Kernighan Last modified: 2001-07-26

Description of changes: Database integrated 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.0 of MAIN.C Author: D. Knuth

Last modified: 1993-10-21

Description of changes: File created

Version 1.1

MAIN.C_V Archive

MAIN.C

Workfile (in Sandbox)

Check in

(31)

SWEED

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

(32)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 32

SWEED

CVS Commands for Users

ΠCheck out files

z cvs checkout filename

ΠCheck in files

z cvs commit filename

ΠClean up the working directory

z cvs release directoryname

ΠAdd files to repository

z cvs add filename

ΠRemove files from repository

z cvs remove filename

(33)

SWEED

CVS Commands for Users (cont'd)

ΠShow the differences between two versions

z cvs diff filename

ΠShow the log of changes to a file

z cvs log filename

ΠShow the history of each line of a file

z cvs annotate filename

(34)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 34

SWEED

CVS Commands for Administrators

ΠCreate a CVS repository

z cvs -d directoryname init

(35)

SWEED

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

(36)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 36

SWEED

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.

(37)

SWEED

Change Management

(38)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 38

SWEED

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

(39)

SWEED

Promotion Model

ΠEach life cycle stage is working with a defined baseline.

ΠChanges must only be made in the Development stage.

Development

Quality Assurance

Beta

Production

(40)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 40

SWEED

Change Management Process

Submit change request

Analyse change

request Valid?

Reject change request Assess

implementation and cost Record request

in database Submit request

to CCB

Accepted?

Implement and test change

Create new release

No

No

Yes

Yes

(41)

SWEED

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,

(42)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 42

SWEED

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

(43)

SWEED

A sample problem statistics

14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60

Priority 4 Priority 3 Priority 2 Priority 1

(44)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 44

SWEED

Configuration Control Board (CCB)

ΠAlso called Change Control Board

ΠChanges should be reviewed by an external group who decide whether or not they are cost- effective 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

(45)

SWEED

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

(46)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 46

SWEED

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

(47)

SWEED

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

(48)

Software Configuration Management

V 1.01 SWEED 2002, R. Bonderer 48

SWEED

Building a System

(49)

SWEED

Π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

System Building

(50)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 50

SWEED

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

(51)

SWEED

Integrated Build Process

1.1 1.3

1.3 1.0

1.1 1.4

gui.c main.c io.c

gui.obj main.obj io.obj

program.exe

Compile Link

1.2

1.5 1.2

Check out

(52)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 52

SWEED

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

(53)

SWEED

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

(54)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 54

SWEED

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

(55)

SWEED

Exercise: System Building

ΠUse a make tool (e.g. GNU make) and define a build script for a small development project.

(56)

Software Configuration Management

V 1.01 SWEED 2002, R. Bonderer 56

SWEED

Configuration Management Planning

(57)

SWEED

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

z IEEE Standard for Software Configuration Management

(58)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 58

SWEED

Products of the Software Process

ΠDocuments

Specifications Manuals

ΠDesigns

ΠSource code

ΠTest data

ΠTools

ÎAll may have to be managed

(59)

SWEED

ΠStarts during the early phases of the project

z 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

Configuration Management Planning

(60)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 60

SWEED

Π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

What the CM Plan Defines...

(61)

SWEED

ΠConfiguration status accounting

‹Configuration auditing

‹Release process

ΠSubcontractor / Supplier management

‹How to interact with subcontractors / suppliers

What the CM Plan May Define...

(62)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 62

SWEED

ΠEach configuration item must unambiguously be identified

ΠA naming scheme shall be defined

Configuration Item Identification

????

(63)

SWEED

Elements of a CI Identification

• Unique identifier

• Version number

• Descriptive name

• (Check sum)

(64)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 64

SWEED

ΠA hierarchical scheme with multi-level names is probably the most flexible approach

Hierarchical Naming Scheme

PPP.SSS.TTT.nnnn

Serial number Document type Subsystem

Project

(65)

SWEED

ΠA linear scheme may be used if the registration is decentralised

Linear Naming Scheme

PPP.nnnnnn

Serial number Project

(66)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 66

SWEED

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

(67)

SWEED

Exercise: Create SCM Plan

You already may have worked on a student project. If not, consider a small experimental software project.

Create a Software Configuration Management Plan (SCMP) for this project.

(68)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 68

SWEED

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

(69)

SWEED

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

(70)

Software Configuration Management

V 1.01 © SWEED 2002, R. Bonderer 70

SWEED

Outlook

ΠWhat's missing in this module

‹Branching of versions

‹Merging of versions

‹Managing configurations that consist of firmware and hardware items, too

References

Related documents

Plant height exhibited the highest genetic gain, whereas tillers number, 1000-grain weight and grain yield showed substantially high response to selection (Table 2).. Three

The first one imputes the market rent as income to the homeowner and landlord, taxes capital gains fully upon accrual, allows the landlord to deduct only actual costs but grants

Cognisant that in terms of Islamic law effective custody and guardianship ultimately remain vested in the ex-husband, whose financial and maintenance obligations to

When Lehman Brothers collapsed in September 2008, Australian policy-makers were primed; they acted swiftly to implement timely and effective monetary and fiscal policy responses

subcontracted but shall be performed by the elevator contractor. All work shall be performed by competent employees during regular working hours of regular working days. This

Razlika postoji među spolovima tako da mladići pokazuju veću tendenciju prema ovisnosti o video igrama nego djevojke i da postoji razlika u aspektima samopoimanja

The evidence that women are now equal to men invites the writer to study men's and women's language features and the politeness strategies used by men and women,

The group includes four American companies (Fluor Corporation in Band A, Hewlett-Packard Company, Northrop Grumman Corporation and United Technolo- gies Corporation), five