07 Lecture Flashcards

1
Q

Why Configuration Management?

A
  • Multiple people work on artifacts that are changing
  • More than one version of the artifact has to be supported
  • Software Configuration Management (SCM)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definition of Software Configuration Management

A
  • A set of management disciplines within a software engineering process to develop a baseline*
  • Software Configuration Management encompasses the disciplines and techniques of initiating, evaluating and controlling change to work products during and after a
    software project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

IEEE Standard for Configuration Management in Systems

and Software Engineering

A

IEEE 828-2012

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

Configuration Management Roles

A
  • Configuration Manager
  • Change Control Board Member
  • Developer
  • Auditor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Responsibilities of the Configuration Manager

A
  • Responsible for identifying configuration items

* Also often responsible for defining the procedures (workflows) for creating promotions and releases

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

Responsibilities of the Change Control Board Member

A

Responsible for approving or rejecting change requests

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

Responsibilities of the Developer

A

Creates promotions triggered by change requests or the normal activities of development. The developer checks in changes and resolves conflicts

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

Responsibilities of the Auditor

A

Responsible for the selection and evaluation of promotions for release and for ensuring the consistency and completeness of this release

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

What is a Configuration Item

A

An aggregation of software, hardware, or both, designated for configuration management and treated as a single entity in the configuration management process

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

Which SCM Directory are there

A
  • Programmer’s Directory
  • Master Directory
  • Software Repository
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the Programmer’s Directory?

A

(IEEE 1042: Dynamic Library)
• Also called working copy
• Library for holding newly created or modified software entities
• The programmer’s workspace is controlled by the programmer only

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

What is the Master Directory?

A

(IEEE 1042: Controlled Library)
• Manages the current baseline(s) and is for controlling changes made to them
• Changes must be authorized

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

What is the Software Repository

A

(IEEE 1042: Static Library)
• Archive for the various baselines released for general use
• Copies of these baselines may be made available to requesting organizations

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

Define Version

A

An initial release or re-release of a configuration item associated with a complete compilation or recompilation of the item. Different versions have different functionality

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

Define Release

A

The formal (external) distribution of an approved version, e.g. a potentially shippable product increment in Scrum

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

Define Promotion

A

A version that is made available (internally) to other developers, e.g. a new commit in the version control system

17
Q

Define Revision

A

Change to a version that corrects only errors in the design/code, but does not affect the documented functionality

18
Q

Define Baseline

A

A specification or product that has been formally reviewed and agreed to by responsible management
Thereafter it serves as the basis for further development and can be changed only through change control procedures

19
Q

Which types of Baselines are there

A
  • Developmental baseline
  • Functional baseline
  • Product baseline
20
Q

What is the oldest Software Version Control

A

RCS [Tichy 1975]

21
Q

What is Monolithic Architecture for Version Control

A

e.g RCS

Developers has a simple local database that keeps all the changes to files under revision control

22
Q

What is Repository Architecture for Version Control

A

e.g. Subversion
• A single (central) server contains all the versioned files
• Developers check out files from the server to their computer (programmer’s directory), change them and check them back into the central server (master directory)
• Administrators have fine-grained control over who can do what
• Problem: Single point of failure in the central VCS server: possibility of loosing all the versions and their history if the server crashes

23
Q

What is Peer-to-Peer Architecture for Version Control

A

• Addresses the single point of failure problem
• Each programmer’s directory (Computer A, Computer B,…) fully mirrors the master directory (Server Computer)
• Programmers can work offline and create versions
(commits and branches)
• Not all versions are promoted to the master directory
(they need to be pushed)
• If the server dies and a programmer has a full copy of
the master directory, it can be copied back to the server computer
• Example: Git

24
Q

Advantages of DVCS (Distributed Version Control System)

A

+ Ability to work offline (local commits)
+ Ability to work incrementally (small commits)
+ Ability to context switch efficiently (lightweight branching)
+ Ability to do exploratory coding efficiently (lightweight branching)

25
Q

Disadvantages of DVCS (Distributed Version Control System)

A
  • High learning curve
  • Scaling issues
  • Less administrative control
26
Q

What does git add

A

Add changed files to the staging area

27
Q

What does git commit

A

Commit selected changed files of the staging area to your local repository

28
Q

What does git push

A

Upload local commits to a remote repository

29
Q

What does git pull

A

Download and merge remote commits into your working copy

30
Q

What does git clone

A

Clone a complete repository into a new working directory

31
Q

Define Change Management

A

Change management is the handling of change requests

32
Q

Explain the general change management process

A
  1. The change is requested
  2. The change request is evaluated against requirements and project constraints and reviewed by the configuration control board
  3. Following these assessments, the change request is approved or rejected
  4. If it is approved, the change is assigned to a developer and designed, implemented and tested
  5. The implemented change is audited to create another baseline
33
Q

What is the purpose of change policies

A

The purpose of a change policy is to guarantee that each promotion or release conforms to commonly accepted criteria

34
Q

What does Change Request specify

A

Specifies the procedures for requesting a change to a baselined configuration item and the information to be documented: