Software Engineering - Understanding Software Configuration Management
Basic terms and Definitions
Q1: What is configuration management?
Answer: Configuration management (CM) is the discipline of controlling the evolution of complex systems.
Q2: Define Software Configuration Management (SCM).
Answer: Software configuration management (SCM) is the discipline of controlling the evolution of complex software systems. is a software-engineering discipline comprising the tools and techniques (processes or methodology) that a company uses to manage change to its software assets.
Q3: What is the fundamental difference between CM and SCM?
1. Software is easier to change than Hardware, and it therefore changes faster.
2. SCM is potentially more automated since all components of a software system are easily stored on-line. CM for physical systems is hampered by having to handle objects that are not within reach of programmable controls.
Q4: Define Revision management.
Answer: Revision management is the core function of SCM and the foundation upon which other functions have been built. Revision management is the storage of multiple images of the development files in an application, which can be shared by multiple developers. With revision management, one can get an image, a snapshot in time of the development process and can re-create any file to the way it was at any point in time.
Q5: What is version management?
Answer: A version is a particular instance of an entire development i.e. view checkpoints and approvals before content is posted. A good SCM solution must manage the progress of the project. A version is usually thought of as all the functions, features and complete builds you can use right now. Files managed, version-labeled and promoted by the revision management system are used to build the version.
Q6: What is Build management?
Answer: When the code files, compilers, development tools and other components needed to create
an application are ready, developers make an application build. Build management imposes automated, repeatable procedures that speed the build process, improve build accuracy and make it easier to create and maintain multiple versions of an application. An SCM toolset can become a vital integrative resource for building an application across multiple platforms. A strong cross-platform build management capability also eliminates the need to redefine the build process (the script) for each platform one is targeting.
Q7: What are Change requests?
Answer: The days of creating software, shrink-wrapping it, selling it and walking away are long gone. Today the software undergoes a constant process of revision. Development teams can be overwhelmed with the many software change requests (SCR) they receive, everything from users’ wish lists, to new business requirements that must be accommodated. SCM enables teams to streamline the SCR process by automatically tracking updates, change requests, problems and issues; assigning ownership and hand-offs within the development team; and communicating the process through to resolution.
Q8: What is code or project auditing?
Answer: Cross-platform development introduces special problems because the data to be audited
may reside on multiple platforms. The best SCM systems provide a single point of access for auditing all development information. They also work across all kinds of development platforms, operating systems, network protocols and hardware platforms, and provide tailored clients within the developer’s preferred development interface.