software configuration managementtddc88/theory/08scm.pdfdesign documents build systems scm 4 what is...

Post on 07-Nov-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Software Engineering Theory

Software configuration management

Lena Buffoni/ Kristian SandahlDepartment of Computer and Information Science

2019-09-18

2

Requirements

System Design(Architecture,

High-level Design)

Module Design(Program Design,Detailed Design)

Implementationof Units (classes, procedures,

functions)Unit testing

Module Testing(Integration testing of units)

System Testing(Integration testing of modules)

Acceptance Test(Release testing)

Validate Requirements, Verify Specification

Verify System Design

Verify Module Design

Verify Implementation

Project Management, Software Quality Assurance (SQA), Supporting Tools, Education

Maintenance

What is configuration management?3

Configuration ItemIdentification Source code

modules Test scripts Design documents Build systems

SCM

4

What is configuration management?

Baseline - a "snap-shot" of configuration items. Known to work together. Normally reviewed in some way. For example a release.

Change

How do we control changes?

File Av.03

File Cv.3.3

File Bv0.1 File A

v.03

File Av.03

File Bv0.1

File Bv0.11

File Cv.3.4

File Cv.3.3

Change

5

What is configuration management?Configuration ItemIdentification

Source code modules Test scripts Design documents Build systems

Configuration control

Only authorized people may make changes

Larger changes -change requests

CHANGE REQUESTProject:__________Classification:_____Priority:__________Date: __________

Change Description:

Change Control Board (CCB) Make change decisions. Only large changes (e.g. new

major requirements)

SCM

6

What is configuration management?Configuration ItemIdentification

Source code modules Test scripts Design documents Build systems

Configuration control

Larger changes -change requests

Status accounting

Document and report changes to those involved.

Auditing

Ensure that the items are complete and consistent.

Make sure that the configuration is tested and meets requirements.

SCM

7

SCM toolsWorkflow systems Define processes for

change requests

Change report system Bug-tracking New features Change request(e.g free alternatives: Bugzilla,

Trac)

Tool examples: SVN, Git GitHub, GitLab Beanstalk

Change management

Revision control systems

8

Revision control: Some terminology

create branch

trunkpull

push

make changes release

tag

History tree

Defining a common workflow

9

• A structured way of collaborating

• Different people/teams working on different parts of the system

10

trunk

Anna’s repository

Viktor’s repository

clone

clone

push

push

pull

Pros/cons of centralized workflow

11

+ little setup

+ will work for small projects

- limited flexibility

- hard to maintain a continuously working product

12

branch for feature 1

trunk

branch for feature 2

pull changes

merge

merge

Pros/cons of feature branches

13

+ easier conflict resolution

+ better control of what features to include when

+ possibility of using pull requests

- additional steps

- long living branches might be hard to merge

Push vs pull request

14

• Pull request: Submitting your code for consideration for inclusion in the main repository

+ an opportunity to review code and make changes

+ less risk of needing a rollback

- puts extra work on the repository owner

- can increase time before changes are integrated

15

Gitflowhotfix branch

bug fixed

feature branches

trunk

release candidate

development branch

stable version 1.2

stable version 1.3

16

Things can get complicated

Non-linear vs linear history

Pros/cons of git workflow

17

+ always stable code in the master

+ can work on release and future features simultaneously

+ fix issues without disrupting workflow

- not good for supporting multiple product versions

- history can get complicated

- many merging conflicts to resolve

18

main repository

public copy

local copy

fork

pull request

pull & rebasepush

Pros/cons decentralized workflow

19

+ no need to provide write access to main repository

+ good for large open-source projects

- more complicated to set up and maintain

20

Make your own work-flow

tags

pullrequests

git hooks

versioning conventions

personal productivity

ease of management

ease of collaboration

cost of mistakes

branches, forks

companygoals/guidelines

www.liu.se

www.liu.se

The end. Thank you! Questions?

top related