Download Chapter 11: Software Configuration Management

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

International Council of Management Consulting Institutes wikipedia , lookup

Project management wikipedia , lookup

Operations management wikipedia , lookup

Opportunity management wikipedia , lookup

Transcript
Chapter 11:
Software Configuration
Management
Asst. Prof. Dr. Duygu Çelik Ertuğrul
1
Configuration Management
• New versions of software systems are created as they change
• Configuration management is concerned with managing evolving
systems
• Involves the development of procedures and standards to manage
product evolution
• May be viewed as part of a more general quality management
process.
2
Software Configuration Management (SCM)
• A Software Configuration Management (SCM) Plan defines the
strategy to be used for change management.
3
Software Configuration Management
How to manage ‘change’ in software ?
SE Process produces three main categories of outputs:
1. Computer programs
• both source and executable
2. Documentation
• both technical and user
3. Data
• within a program or external to it
These items are called a ‘software configuration’.
4
Fundamental sources of change (in software configuration)
a) New business or market conditions may dictate changes in
requirements or business rules.
b) Customers may ask for modification of:
₋ Data produced
₋ Functionality delivered
₋ Services delivered by a computer program
c) Reorganization or change of business size (↗ or ↘) may cause
changes in project priorities.
d) Budgeting or scheduling constraints may cause a redefinition of the
system to be built
e) Errors detected in the software need to be corrected
5
Software Configuration Management?
• A set of activities that have been developed to manage change
throughout the life cycle of computer software.
• Change is a ‘fact of life’ in SE.
• Customers want to modify requirements,
• Developers want to modify technical approach,
• Managers want to modify project approach,
as they get more experienced, and collect additional info.
6
Configuration Management Standards
• CM should always be based on a set of standards which are applied
within an organization
• Should define how
• items are identified
• changes are controlled
• versions are managed
• Should be based on an evolutionary process model rather than
something like the waterfall model!!!
7
Baselines
• A work product becomes a
baseline only after it is
reviewed and approved.
• A baseline is a software
configuration
management
concept that helps us to
control
change
without
seriously
approaching
justifiable change.
• Once a baseline is established
each change request must be
evaluated and verified by a
formal procedure before it is
processed.
8
Fig 9.2. Baselined SCIs and Project Database (Software Repository or Project
Library)
9
SUMMARY: A Baseline: (IEEE Std. 610. 12_1990)
• A specification or product that has been formally reviewed and agreed upon, that
thereafter serves as the basis for further development, and that can be changed only
through formal change control procedures.
• Before a software configuration item becomes a baseline, changes may be made quickly
and informally.
• Once a baseline is established, changes can only be made by applying formal procedures
• Milestones usually define baselines.
• The progress of events that lead to a baseline is illustrated in the previous slide
Purpose of creating Baseline?
• Creation of a baseline is usually a milestone in the schedule.
• The baseline is centrally controlled.
• Everyone uses the same current baselines.
• To change the baseline, a formal process is required.
10
Software Configuration Item (SCI)
• Definition: Information that is created as part of the software
engineering process.
• Examples:
• Software Project Plan
• Software Requirements Specification
• Models, Prototypes, Requirements
•
•
•
•
Design document
Source code
Test suite
Software tools (e.g., compilers)
11
The following SCI-Software Configuraion Items become the target for configuration
management techniques, and hence form a set of baselines:
1. System Specification
2. Software Project Plan
3. Software Requirement Specification
a) Graphical analysis model
b) Process specifications
c) Prototype(s)
d) Mathematical specification
4. Preliminary User Manual
5. Design specification
a) Data design description
b) Architectural design description
c) Module design descriptions
d) Interface design descriptions
e) Object descriptions
6. Source code listing
7. Test specification
a) Test plan and procedure
b) Test cases and recorded results
8. Operation and installation manuals
9. Executable program
a) Module executable codes
b) Linked modules executable codes
10. Database description
a) Scheme and file structure
b) Inıtıal content
12. User manual
13. Maintenance documents
a) Software problem reports
b) Maintenance requests
c) Engineering change orders
14. Standards and procedures for SE
A Software Configuration
Item ?
Information that is created as
a part of the SE process (a
document, an entire plan of
test cases, or a program
12
module)
• Many companies also place specific versions of editors, compilers,
and other CASE tools under configuration control.
• A configuration object has a name, attributes and connections to
other configuration objects.
13
14
Elements of SCM
There are four elements of SCM:
1.
2.
3.
4.
Software Configuration Identification
Software Configuration Control
Software Configuration Auditing
Software Configuration Status Accounting
15
Configuration Management Cycle
Customer
Customer generates
a change request
Project Manager
Dev Team
Configuration
Manager*
Customer
approves
changes
Manager
assigns change
request to
software
engineer
Software
engineer checks
out necessary
configuration
objects
SE
completes
necessary
changes
SE checks in
modified
configuration
objects and
notifies CM
CM creates
new system
baseline
CM prepares
new system
release for
operation if
necessary
*In charge of administering project database and providing access control to engineers
16
Software Configuration Management Tasks





Identification (tracking multiple versions to enable efficient changes)
Version control (control changes before and after release to customer)
Change control (authority to approve and prioritize changes)
Configuration auditing (ensure changes made properly)
Reporting (tell others about changes made)
17
Requirements for SCM
• Repository: shared DB for artifacts (eserler) with controlled access to
prevent overwrites.
• Version management: Preserve history of changes made to each artifact;
provide ability to see how version was created.
• Workspace control: Private work space with ability to check out from
repository and check in with new version number.
• Product modeling and building: Procedure to build the product from
artifacts in repository.
18
Version Terminology
• Version
• instance of system that is functionally different
from other system instances
Version Numbering Derivation Structure
from Sommerville
• Variant
• instance of system that is functionally identical
but non-functionally different from other system
instances.
• Release
• system instance distributed to users outside the
development team.
V1.0
V1.1b
V1.1.1
V1.1
V1.2
V2.0
V2.1
V2.2
V1.1a
19
Change Tracking Tools
• Major problem in change management is tracking the change status
• Change tracking tools help track the status of each change request
• Ensures that change requests are sent to the right people at the right
time
• Can be integrated with e-mail systems to allow electronic
distributions of change requests
20
CM Plan - Format
According to
IEEE Standard 828 - standard for
Software Configuration Management Plans
1. Introduction
a) purpose b) scope c) definitions and acronyms d) references
2. Management
a) organization
b) SCM responsibilities
c) interface control
d) SCMP implementation
e) policies, directives, procedures (naming conventions, version designations,
problem report process)
3. SCM Activities
a) configuration identification
b) configuration control (change history, review authority, read/write control,
member identification)
c) configuration status accounting (status of requests, status of approved changes, …)
d) audits and reviews
4. Tools, Techniques, and Methodologies
5. Supplier Control
6. Records Collection and Retention
21
IEEE 1042
Guide to Software Configuration Management
• Defines terms, such as baseline and version
• Discusses configuration management as a management discipline and
its role in the engineering process
• Includes checklists of issues for sections of the SCMP (IEEE Std 828)
• Includes four complete examples of SCMPs
22
CM Tools - Necessary Features
 Dependency Tracking!!!
 Audit Trails!!!
 Reporting of Changes
 Supports the Change Rules
 Versioning
 Requirements Tracing
 Repository arranged as "basic objects" and "aggregate objects"
 Supports both Linear evolution and Trees
23