Configuration Management and Version Control
Configuration Management and Version Control
Now when we develop a code for a college, we do not bother much about the changes that we
make to the code or where we place the artefacts and the corresponding code.
We are the sole owner and we know every detail of it. This is not the case in an IT industry.
Because we work on big projects each project will have multiple modules and there will be
multiple team members working simultaneously on one module.
So, any change or enhancement or updation made by one person has to be made available to
the other person without any conflict.
This process can be effectively managed with the help of configuration management and version
control.
“Software Configuration management” helps in understanding how to track and control changes
to the software. Software development has lots of artefacts SRS, design documents,source
code,testing reports etc. . These artefacts need to be accessed and modified by multiple team
members. So how do we manage this change?? Yes software configuration management is the
best choice for it.
Configuration
-specifies the arrangement of functional units according to their characteristics. Configuration
affects the function and performance of the entire system.
Configuration management involves
1) Configuration identification: identifies the configuration items and labels each item with
unique identifiers.
2) Change management: involves in tracking and controlling the changes during development
3) Configuration status accounting: records the status and various information about the
configuration item.
4) Configuration audit: responsible for reviewing the items against various specifications for
assessing its quality and correctness.
To control and manage the configuration items we name and manage each object using the
object oriented approach. There are two types of Objects Base Object and Aggregate Object.
Relationship b/w configuration objects:
-A curved arrow indicates a compositional relation
-A double headed straight arrow indicates an interrelationship
EX: Design Specification is an aggregate object which comprises of Data Design, Architectural
Design, Module Design, and Interface Design. Data model and component N have compositional
relation with the design Specification and are thus indicated by curved arrow.
Double headed arrow between source code component test specification and design
specification specifies the interrelation ships. I.e. if a change were made to the source code
object, the arrow indicates the software engineer to determine what other objects (and SCIs)
might be affected.
change control process comprises of three phases : Evaluation phase, resolution phase and
finally the verification phase.
-When a change is to be made it is identified and submitted by the client to the Change control
board. It is then evaluated by the CCB. They analyse the impact of the change and the cost
also. If it’s feasible, then they approve the change, mark the change request as opened and
handover it to the development team. They plan for the change and implement it and test for its
correctness. The tester verifies if the changes are implemented correctly. If yes, the verification
process is approved and the change request is closed, if not they reopen the change request and
give it back to the development team.
Version Management:
As we all know software development will be done by team of persons. So frequent changes will
happen. In that case whenever changes are made we have to maintain the various versions of
the file. This is possible by using version management.
Benefits of version management
-Automatic backup is a main advantage of version management. If a file is changed and we want
to roll back to the previous version, its possible using this.
-If more than one person works on a same file, the changes can be recorded without any
conflict.
-To highlight the differences, comparison of the two versions of a file is possible.
-Also it is possible to lock a file so that when it is modified by a user it cannot be accessed by
other user, thus forcing serialized change to any given file.
-When a person in the team wants his code to work in isolation, it’s also possible by creating
branches.
-Maintain an instant audit trail on each and every file: versions, modified date, modifier, and any
additional amount of meta-data system provides for and whichever we choose to implement.
Note: Configuration audit is responsible for reviewing the items against various specifications for
assessing its quality and correctness
-The entry door of the Server room inside the company can be considered as equivalent
baseline
to concept in configuration management.
-Process that ensures that changes made are recorded and controlled → Change Management,
Who authenticates that the change proposed is valid → Change Control Board,
The standard document where the requester fills the change in the change management process
→ Change Request Form,
Process that ensures different versions of the project is managed → Configuration Management
-Version Management, Synchronization Control and Concurrency Control are the features that
are part of the software configuration management