Week 11 - Software Configuration Management Flashcards

1
Q

What is the “moving target” problem?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why is software change inevitable?

A

Due to business environment changes, errors needing repair, new requirements from usage, and the need for continuous improvement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is uncontrolled change?

A

Modifications made to the software without coordination, planning, or proper oversight, leading to potential issues in software quality, consistency, and maintainability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is Software Configuration Management?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the key components of SCM?

A

Version control, change control, build management, release management, configuration auditing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is version control?

A

A system that records changes to files, allowing tracking of version history, rollbacks, branching, merging, and concurrent development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is build management?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is change control?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is release management?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a configuration item?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How do we identify configuration items?

A

Through unique identification within the system, using naming conventions, unique IDs, version numbers, metadata, physical labels, or hierarchical structures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the two types of release in Release Management?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What does “integration hell” refer to?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is continuous integration?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What can large infrequent commits lead to?

A

A high degree of divergence from the main line of development, leading to integration difficulties.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the four steps to Continuous Integration?

A

Repository Setup: You correctly highlighted the importance of a centralized version control system and the practice of frequent commits. This foundation is crucial for maintaining code consistency and facilitating easier integration.

Setup Automated Build: Your point about transforming committed code into an executable through automated builds is spot on. This step ensures that the codebase is always in a state that can be deployed or tested at any moment.

Setup Automated Tests: Running automated tests on each build is a critical step for early identification of issues. It maintains the reliability and quality of the software.

CI Server Setup: This step is indeed the culmination of the previous steps, where a CI server automates the process of monitoring for changes, building, testing, and reporting. This automation is key to the efficiency and effectiveness of the CI process.

17
Q

What are the factors of change analysis?

A

(1) Consequences of not making the change
(2) The benefits of making the change
(3) costs of making the change
(4) number of users affected by the change
(5) the product release cycle

18
Q

What happens when a change is required?

A

Identifies item for change -> Submit change request -> is the CR complete? -> yes -> perform change analysis -> is CR feasible? -> yes -> assign a developer -> implement the change -> verified CR? -> yes -> baseline

If CR not complete or not feasible, we have to inform the requester
If CR not verified, we have to assign a developer.

(Refer to flowchart on lecture slide)