0% found this document useful (0 votes)
24 views32 pages

Class 3a SCM

The document discusses the inevitability of software maintenance due to changing system requirements and environments, outlining various types of maintenance and their associated costs. It emphasizes the importance of configuration management for tracking changes, managing change requests, and ensuring quality through audits. Additionally, it details the change control process, roles involved, and the complexities of maintaining software systems.

Uploaded by

2022cs0136
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views32 pages

Class 3a SCM

The document discusses the inevitability of software maintenance due to changing system requirements and environments, outlining various types of maintenance and their associated costs. It emphasizes the importance of configuration management for tracking changes, managing change requests, and ensuring quality through audits. Additionally, it details the change control process, roles involved, and the complexities of maintaining software systems.

Uploaded by

2022cs0136
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

Software Configuration

Management

1
Maintenance is Inevitable
• System requirements are likely to change while the
system is being developed because their
environment is changing
• Systems are tightly coupled to their environment
• When a system is installed it changes the
environment and that can change the system
requirements
• The delivered system may not meet its requirements
• Systems must be maintained to remain useful in their
environment
2
Types of Maintenance
• Corrective Maintenance (21%)
– making changes to repair defects
• Adaptive Maintenance (25%)
– making changes to adapt software to external environment
changes (hardware, business rules, OS, etc.)
• Perfective Maintenance (50%)
– extending system beyond its original functional requirements
• Preventative Maintenance (4%)
– modifying work products so that they are more easily
corrected, adapted, or enhanced

3
Spiral Maintenance Model

Specification Implemention

Start

Release 1

Operation Validation

Release 2

Release 3

4
Maintenance Costs
• Usually greater than the development costs
(2 to 10 times as much in some cases)
• Affected by both technical and non-technical
factors
• Increase as software is maintained and
system corruption is introduced
• Aging software can have high support costs
(e.g. old languages, compilers, etc.)

5
Maintenance Developer Tasks
• Understand system.
• Locate information in documentation.
• Keep system documentation up to date.
• Extend existing functions.
• Add new functions.
• Find sources of errors.
• Correct system errors.
• Answer operations questions.
• Restructure design and code.
• Delete obsolete design and code.
• Manage changes.
6
Maintenance can be tough
• Limited understanding of hardware and
software (maintainer).
• Management priorities (maintenance may be
low priority).
• Technical problems.
• Testing difficulties (finding problems).
• Morale problems (maintenance is boring).
• Compromise (decision making problems).
7
Maintenance Cost Factors
• Staff turnover
– no turnover usually means lower maintenance costs
• Contractual responsibility
– developers may have no contractual obligation to maintain
the delivered system and no incentive to design for future
change
• Staff skills
– maintenance staff are often inexperienced and have limited
domain knowledge
• Program age and structure
– as programs age their structure deteriorates, they become
harder to understand and change
8
Maintenance Prediction
• Concerned with determining which parts of the system
may cause problems and have high maintenance
costs
• Change acceptance depends on the maintainability of
the components affected by the change
• Implementing changes degrade system and reduces
its maintainability
• Maintenance costs depends on number of changes
• Costs of change depend on maintainability

9
Maintenance Prediction
What parts of the system
will be the most expensive
What parts of the system are to maintain?
most likely to be affected by
change requests?
Predicting
maintainability

What will be the lifetime


maintenance costs of this
Predicting system Predicting system?
changes maintenance
costs

What will be the costs of


How many change maintaining this system
requests can be over the next year?
expected?

10
Maintenance Complexity Metrics
• Predictions of maintainability can be made by
assessing component complexities
• Most maintenance efforts only affect a small
number of system components
• Maintenance complexity depends on
– complexity of control structures
– complexity of data structures
– module size

11
Maintenance Process Metrics
• Maintainability measurements
– number of requests for corrective maintenance
– average time required for impact analysis
– average time to implement a change request
– number of outstanding change requests
• If any if these increases it may signal a
decline in maintainability

12
Maintenance Tools
• Text editors (better than punch cards).
• File comparison tools.
• Compilers and linkage editors.
• Debugging tools.
• Cross reference generators.
• Complexity calculators.
• Control Libraries.
• Full life cycle CASE tools.
13
Configuration Management
• Software changes are inevitable
• One goal of software engineering is to improve how
easy it is to change software
• Configuration management is all about change
control.
• Every software engineer has to be concerned with
how changes made to work products are tracked and
propagated throughout a project.
• To ensure quality is maintained the change process
must be audited.
14
Software Configuration Items
• Computer programs
– source
– executable
• Documentation
– technical
– user
• Data
– contained within the program
– external data (e.g. files and databases)

15
Baselines
• A work product becomes a baseline only after
it is reviewed and approved.
• A baseline is a milestone in software
development marked by the delivery of one or
more configuration items.
• Once a baseline is established each change
request must be evaluated and verified
before it is processed.

16
Sources of Change
• New market conditions dictate changes to
product requirements or business rules
• New customer needs demand modification of
data, functionality, or services
• Business reorganization causes changes in
project priorities or SE team structure
• Budgetary or scheduling constraints require
system to be redefined

17
Change Requests
• Requests can come from users, customers, or
management
• Change requests should be carefully analyzed as
part of the maintenance process before they are
implemented
• Some changes requests must be implemented
urgently due to their nature
– fault repair
– system environment changes
– urgently required business changes

18
Change Prediction
• Predicting the number of changes requires
understanding the relationships between a system
and its environment
• Tightly coupled systems require changes whenever
the environment changes
• Factors influencing the system/environment
relationship
– number and complexity of system interfaces
– number and volatility of system requirements
– business processes where the system is uses

19
Configuration Management
Tasks
• Identification
– tracking changes to multiple SCI versions
• Version control
– controlling changes before and after customer release
• Change control
– authority to approve and prioritize changes
• Configuration auditing
– ensure changes are made properly
• Reporting
– tell others about changes made

20
Version Control Terms
• Entity
– composed of objects at the same revision level
• Variant
– a different set of objects at the same revision
level and coexists with other variants
• New version
– defined when major changes have been made to
one or more objects

21
Change Control Process - 1
• Change request is submitted and evaluated
to assess its technical merit and impact on
the other configuration objects and budget
• Change report containing the results of the
evaluation is generated
• Change control authority (CCA) makes the
final decision on the status and priority of the
change based on the change report

22
Change Control Process - 2
• Engineering change order (ECO) is
generated for each change approved
– ECO describes the change, lists the constraints,
and criteria for review and audit
• Object to be changed is checked-out of the
project database subject to access control
parameters for the object
• Modified object is subjected to appropriate
SQA and testing procedures
23
Change Control Process - 3
• Modified object is checked-in to the
project database and version control
mechanisms are used to create the next
version of the software
• Synchronization control is used to
ensure that parallel changes made by
different people don’t overwrite one
another
24
Configuration Management Team

• Analysts.
• Programmers.
• Program Librarian.

25
Change Control Board
• Customer representatives.
• Some members of the Configuration
management team.

26
Programmer’s View - 1
• Problem is discovered.
• Problem is reported to configuration control
board.
• The board discusses the problem
– is the problem a failure?
– is it an enhancement?
– who should pay for it?
• Assign the problem a priority or severity level,
and assign staff to fix it.

27
Programmer’s View - 2
• Programmer or analyst
– locates the source of the problem
– determines what is needed to fix it
• Programmer works with the librarian to
control the installation of the changes in the
operational system and the documentation.
• Programmer files a change report
documenting all changes made.

28
Change Control Issues
• Synchronization (when?)
• Identification (who?)
• Naming (what?)
• Authentication (done correctly?)
• Authorization (who O.K.’d it?)
• Routing (who’s informed?)
• Cancellation (who can stop it?)
• Delegation (responsibility issue)
• Valuation (priority issue)
29
Software Configuration Audit - 1

• Has the change specified by the ECO


been made without modifications?
• Has an FTR been conducted to assess
technical correctness?
• Was the software process followed and
software engineering standards
applied?

30
Software Configuration Audit - 2

• Do the attributes of the configuration


object reflect the change?
• Have the SCM standards for recording
and reporting the change been
followed?
• Were all related SCI's properly
updated?

31
Configuration Status Report
• What happened?
• Who did it?
• When did it happen?
• What else will be affected by the
change?

32

You might also like