1 Software Development Configuration management. \ 2 Software Configuration Items that comprise all...
-
Upload
meghan-lyons -
Category
Documents
-
view
221 -
download
3
Transcript of 1 Software Development Configuration management. \ 2 Software Configuration Items that comprise all...
1
Software Development
Configuration management
\2
Software ConfigurationItems that comprise all information
produced as part of the software development process documentssource codedata
are collectively called software configuration
\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)
\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)
\5
SCM deals with …Change Control
Release Management
Source Code and Document Control
Development Environment Configuration
\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?
\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?
\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?
\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?
\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?
\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
\12
BaselineWhen is a “change” a “change”?
Lifespan of SCI
Creation of SCI Baseline
informal change control procedure
formal change control procedure
. . .
\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
\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
\15
Change ControlManage changesChanges can occur when …Changes can occur in
RequirementsDesignImplementationEtc…
Must be able to control changes occurring in all SCI’s
\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
17
18
\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.
\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?
\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
\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
\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
\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
\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
\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
\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
\28
Validation & Verification
How can we be sure that an accepted request for change has been dealt with properly?Formal reviews
Software configuration audit
\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
\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...
\31
More info about SCMConfiguration Management Yellow Pages contains
comprehensive listing of SCM resources on Web
http://www.cmtoday.com/yp/configuration_management.html