written 6.9 years ago by | modified 2.8 years ago by |
"Subject" Software Engineering" "Topic" Software Configuration Management "Difficulty" Medium
written 6.9 years ago by | modified 2.8 years ago by |
"Subject" Software Engineering" "Topic" Software Configuration Management "Difficulty" Medium
written 6.9 years ago by |
Software configuration management (SCM) is a software engineering discipline consisting of standard processes and techniques often used by organizations to manage the changes introduced to its software products. SCM helps in identifying individual elements and configurations, tracking changes, and version selection.
SCM is also known as software control management. SCM aims to control changes introduced to large complex software systems through reliable version selection and version control.
Version Control:-
Software Version Control is a system or tool that captures the changes to a source code elements: files, folders, images or binaries.
A version control system (also known as a Revision Control System) is a repository of files, often the files for the source code of computer programs, with monitored access. Every change made to the source is tracked, along with who made the change, why they made it, and references to problems fixed, or enhancements introduced, by the change.
Version control systems are essential for any form of distributed, collaborative development. Whether it is the history of a wiki page or large software development project, the ability to track each change as it was made, and to reverse changes when necessary can make all the difference between a well managed and controlled process and an uncontrolled ‘first come, first served’ system. It can also serve as a mechanism for due diligence for software projects.
• Combines procedures and tools to manage the different versions of configuration objects created during the software process.
• Version control systems require the following capabilities.
o Project repository – stores all relevant configuration objects.
o Version management capability – stores all versions of a configuration object (enables any version to be built from past versions)
o Make facility – enables collection of all relevant configuration objects and construct a specific software version.
o Issues (bug) tracking capability – enables team to record and track status of outstanding issues for each configuration object.
• Uses a system modeling approach (template – includes component hierarchy and component build order, construction rules, verification rules).
Change Control:-
Change control is a systematic approach to managing all changes made to a product or system. The purpose is to ensure that no unnecessary changes are made, that all changes are documented, that services are not unnecessarily disrupted and that resources are used efficiently.
Here's an example of a six-step process for a software change request:
When the client requests the change, that request is categorized and recorded, along with informal assessments of the importance of that change and the difficulty of implementing it.
The justification for the change and risks and benefits of making/not making the change are evaluated. If the change request is accepted, a development team will be assigned. If the change request is rejected, that fact is documented and communicated to the client.
The team responsible for the change creates a detailed plan for its design and implementation, as well as a plan for rolling back the change should it be deemed unsuccessful.
The team designs the program for the software change and tests it. If the change is deemed successful, the team requests approval and a date for implementation.
The team implements the program and stakeholders review the change.
If the client is satisfied that the change was implemented satisfactorily, the change request is closed. If the client is not satisfied, the project is reassessed and steps may be repeated.