Week 11 - Software Configuration Management Flashcards
What is the “moving target” problem?
A challenge in software development and project management due to frequently changing requirements influenced by various factors like market trends, organizational changes, and evolving client needs.
Why is software change inevitable?
Due to business environment changes, errors needing repair, new requirements from usage, and the need for continuous improvement.
What is uncontrolled change?
Modifications made to the software without coordination, planning, or proper oversight, leading to potential issues in software quality, consistency, and maintainability.
What is Software Configuration Management?
A discipline focusing on controlling and tracking changes in software, involving identifying elements and configurations in software, controlling changes, recording and reporting changes, and ensuring integrity and traceability throughout the SDLC.
What are the key components of SCM?
Version control, change control, build management, release management, configuration auditing.
What is version control?
A system that records changes to files, allowing tracking of version history, rollbacks, branching, merging, and concurrent development.
What is build management?
Managing the complex activities of building software, involving not just compiling but linking, packaging, executing automated tests, creating documentation, versioning, dependency management, and continuous integration.
What is change control?
A process in software development and project management used to ensure that changes to a product or system are introduced in a controlled and coordinated manner. It involves evaluating, approving and implementing changes in a project.
What is release management?
Release management is the process of managing, planning, scheduling, and controlling a software build through different stages and environments, including the eventual deployment of releases. It encompasses planning, scheduling, testing and quality assurance, deployment, communication and training, and post-release support.
What is a configuration item?
Any component that needs to be managed in order to deliver a software product, including software code, documentation, hardware, test scripts, test plans, and other items related to the software system.
How do we identify configuration items?
Through unique identification within the system, using naming conventions, unique IDs, version numbers, metadata, physical labels, or hierarchical structures.
What are the two types of release in Release Management?
Major Release for the release of a new feature, functionality (Bigger more impt)
and Minor Release, more for release of bug fixing etc. (smaller scale shit)
What does “integration hell” refer to?
A situation where a developer spends more time trying to reintegrate altered source code into the software system than they did creating the new feature.
What is continuous integration?
A software development practice where members of a development team integrate their work frequently, usually at least daily, with each integration verified by automated build to test for integration errors as quickly as possible.
What can large infrequent commits lead to?
A high degree of divergence from the main line of development, leading to integration difficulties.