1 Software Development Configuration management. \ 2 Software Configuration Items that comprise all...

31
1 Software Development Configuration management

Transcript of 1 Software Development Configuration management. \ 2 Software Configuration Items that comprise all...

Page 1: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

1

Software Development

Configuration management

Page 2: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\2

Software ConfigurationItems that comprise all information

produced as part of the software development process documentssource codedata

are collectively called software configuration

Page 3: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\3

Software Configuration ItemsSCI’sItems created as part of the software

development process documentssource code test casesdata

internal to software systemexternal to software system (e.g. customization)

Page 4: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\4

Some definitions

Version: instance of a software system that differs from other instances

Release: a version distributed to a customerRevision: a revised software

configuration item (SCI)

Page 5: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\5

SCM deals with …Change Control

Release Management

Source Code and Document Control

Development Environment Configuration

Page 6: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\6

Imagine … Scene 1

You are working on a large project, there are several programmers working on the same build of the software. Each of the developers are using the same previous build as a basis for their development. Each developer is implementing a different set of methods.

How to document/record and communicate to the rest of the team your changes?

How do you make sure you have your teammates additions to the build?

How do you assure that an up to integrated version of the developers efforts is maintained?

Page 7: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\7

Imagine …Scene 2

Once you have released your first software system, your client let’s you know that s/he would like an additional feature to be added to it.

How to record this request for change and how do you track its implementation?

Page 8: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\8

Imagine …Scene 3

Once you have released your first software system, your client reports a previously undiscovered fault (bug) and requests that it be fixed.

How to record this request for a fix and how do you track the process of fixing the bug?

Page 9: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\9

Imagine …Scene 4

You need to make changes to your Software Requirements Specification document after it has been “signed-off”

How to document/record and communicate to the rest of the team your changes?

Page 10: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\10

Imagine …Scene 5

During design, your client let’s you know that s/he would like to change a requirement

How to deal with this request?How to integrate this modified requirement in

your current software development effort?

Page 11: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\11

SCM DefinitionSoftware configuration management deals

with the processes and tools (s/w) put in place to control changes that occur during the development and the maintenance of software systems

Role: Software Configuration Manager

Page 12: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\12

BaselineWhen is a “change” a “change”?

Lifespan of SCI

Creation of SCI Baseline

informal change control procedure

formal change control procedure

. . .

Page 13: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\13

BaselineBaseline may be different depending on the SCI

and the type of management considered:e.g. baseline for document management of SRS can

be when client signs the document off during formal walk-through session

e.g. baseline for source code control can be when it is ready for integration testing

When SCI has reached its baseline, it can be checked into project DB or library from which it can be checked out when it needs to be modified

Page 14: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\14

Baseline On a large project you will generally have a group or unit DB or

library e.g. baseline for development of unit code when programming team begins

integration of methods into the unit before unit testing (use a group DB or library to build the unit, the group DB may be a child of the project DB or library)

The completed unit DB will be unit tested The completed unit DB will be integrated with the project DB and

integration testing will be completed

At this point in development you may have source code and document control, but perhaps not change control

The baseline for source code and document control may be different (usually earlier in development) than the baseline for change control

Page 15: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\15

Change ControlManage changesChanges can occur when …Changes can occur in

RequirementsDesignImplementationEtc…

Must be able to control changes occurring in all SCI’s

Page 16: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\16

The following Figure 9.5 Change Control Process is from Software Engineering: A practitioner’s approach by Roger S. Pressman, page 235

ECO: Engineer Change OrderConfiguration objects = SCI

Page 17: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

17

Page 18: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

18

Page 19: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\19

Testing IssueRegression testing is the process of retesting elements

of the system that were tested in a previous version or release

This is to test that a change (bug fix or added feature) has not interacted with other components of the system to create further problems.

Since the whole system needs to be tested after every change to verify that the change has not introduced unexpected faults it is common to automate the regression testing for the system.

Page 20: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\20

Release ManagementDeals with questions such as

How many releases are to be produced?What version/release numbering scheme is to

be used?Which functionality is in a particular

version?Which version will be released?What is the difference between releases?

Page 21: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\21

Release Management

Possible situations produced by poor release management:Customer (with release X) reported a bug but you

cannot reproduce it (hence fix it) because you do not have a copy of the source code

A bug fixed in one release reappears in a later release

Customers lose all their preferences (customization data) after upgrading to a new release

Page 22: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\22

Release Management

You plan and document your versions and releases, i.e., what functionality is to be developed within which version and which version is to be released

Page 23: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\23

Release PageContains:

Release number of software configurationRevision (version) number for every document

Software requirement specificationDesign documentUser ManualSource code filesetc.

Date of the release

Part of your release documentation

Page 24: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\24

Source Code ControlHow to control our source code?Tools: Software version control such as

RCSCVSSourceSafeSubVersionDo you know any others?

These tools allow: (Us to build project DB (or library))Either file lock or concurrent editing (synchronization control)File versioning Inclusion of comments for a version

Page 25: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\25

Source Code ControlWhy do we need to control our source code?You may:

Work with other software developers Work on projects containing thousand of files

You will:Delete your code when you should not haveDelete somebody else’s code when you should not

haveMake change that breaks something and not know

how you did it

Page 26: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\26

Development Environment ConfigurationConfiguration manager provides and

maintains tools for the project team:Editor macros – for code formatting and header

comment blocks (abiding to code standards)Makefiles – to make compiles fast and easyDebuggers Profilers – identifies location where memory leaks,

where computationally intensive calculations occur

Page 27: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\27

Configuration manager configures the documentation needed for the projectLayout of SCI’s

SRS, Design, test casesSo software developers do not have to worry

these configuration aspects

Code Standards

Development Environment Configuration

Page 28: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\28

Validation & Verification

How can we be sure that an accepted request for change has been dealt with properly?Formal reviews

Software configuration audit

Page 29: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\29

Configuration Status Reporting

To keep all (management and software developers) in the loop about changes made to the software systemabout versions and releases of the software systemetc…

Hence improving communication in the team

Page 30: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\30

Configuration Status Reporting

All changes can be logged into some DB system (tool) which can be queried to obtain info about …Which changes have been made?Who made them?When?Configuration audit result for a particular change

request?Which change requests have been rejected? etc...

Page 31: 1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

\31

More info about SCMConfiguration Management Yellow Pages contains

comprehensive listing of SCM resources on Web

http://www.cmtoday.com/yp/configuration_management.html