Configuration and Version Management · • Configuration management (CM), then, is the discipline...
Transcript of Configuration and Version Management · • Configuration management (CM), then, is the discipline...
![Page 1: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/1.jpg)
Configuration and Version
Management
09.02.2015
09.02.2015 1 TIE-21100/21106; K.Systä
![Page 2: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/2.jpg)
About our schedule
02.02.2014 TIE-22100/22106 2
Lecture Weekly e. Project
Scrum (part 1) Processing
Requirements
management
Agilefant Sprint 1 starts
Version and configuration
management
Git
Scrum (part 2) Patterns
Project planning
(part 2) –
Effort esitimation
Effort
estimation
Sprint 2 starts
![Page 3: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/3.jpg)
News & practicalities
• You have now access to Git at https://gitlab.rd.tut.fi/
• We just decided that proven usage of Git gives one extra point (it is individual)
• How to use Git is explained in weekly exercises
• Some instructions will also come to course web page.
09.02.2015 TIE-21100/21106; K.Systä 3
![Page 4: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/4.jpg)
Some announcements
These will be cancelled, unless you get active
• Thu 3-5 (one person)
• Tue 6-8 (nobody)
Project groups
• Contact problems? Use discussion board!
• Non-responding member? We have a potential replacement.
09.02.2015 TIE-21100/21106; K.Systä 4
![Page 5: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/5.jpg)
Learning goals of today
• What are Configuration and Version
Management?
• Why they are important?
• How to organize version and configuration
management?
• Tools and techniques
• Example tools SVN and GIT
– Basic principles behind the mysterious
instructions
09.02.2015 5 TIE-21100/21106; K.Systä
![Page 6: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/6.jpg)
Material
• Haikala & Mikkonen: Chapter 13 ”tuotteenhallinta” (Product management)
– A bit short chapter – reading of additional material recommended
• Sommerville: Chapter 25
• Alexis Leon: Software Configuration Management
– I have used this book as background material
• Pro Git Book (Chapters 1&2)
– http://git-scm.com/book/en/v2
09.02.2015 TIE-21100/21106; K.Systä 6
![Page 7: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/7.jpg)
Case 1: Collaborative development of one system
09.02.2015 TIE-21100/21106; K.Systä 7
A B
D E
C
Leenu
Liinu
Leenu wants to compile the
complete system but how to
ensure that components D and
E are in adequate state?
Liinu has the same problem
with components A and B.
They need a certain version of
different components.
Collection of interoperable
versions of modules is called
configuration.
A B D E C
![Page 8: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/8.jpg)
09.02.2015 TIE-21100/21106; K.Systä 8
A B
D E
C
Leenu Liinu Now they need synchronize
evolution of C.
Both may need different
modifications to C.
A B C C D E
Case 2: two systems but with a common component
![Page 9: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/9.jpg)
09.02.2015 TIE-21100/21106; K.Systä 9
Leenu
Liinu
Case 3: two new features are developed concurrently
A B D E C
Liinu
A2 B2 D2 E2 C2
Leenu
A1 B1 D1 E1 C1
A3
3
B3 D3 E3 C3
![Page 10: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/10.jpg)
Become difficult very fast – e.g in case 2.
09.02.2015 TIE-21100/21106; K.Systä 10
A B
D E
C
Leenu Liinu
Ann
Susan
A’ B’
D’ E’
C’
F G C
H I C’
![Page 11: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/11.jpg)
Some definitions
• Wikipedia
– In software engineering, software configuration
management (SCM) is the task of tracking and
controlling changes in the software, part of the
larger cross-discipline field of configuration
management
– SCM practices include revision control and the
establishment of baselines.
– If something goes wrong, SCM can determine
what was changed and who changed it.
– If a configuration is working well, SCM can
determine how to replicate it across many hosts.
09.02.2015 TIE-21100/21106; K.Systä 11
![Page 12: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/12.jpg)
http://www.computer.org/portal/web/swebok/swebokv3
• The configuration of a system is the functional and physical
characteristic of hardware or software as set forth in technical
documentation or achieved in a product;
it can also be thought of as a collection of specific versions
of hardware, firmware or software items combined
according to specific build process or serve a particular
purpose.
• Configuration management (CM), then, is the discipline of
identifying the configuration of a system at distinct points in time
for the purpose of systematically controlling changes to the
configuration and maintaining the integrity and traceability of the
configuration throughout the system life cycle.
09.02.2015 TIE-21100/21106; K.Systä 12
![Page 13: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/13.jpg)
Typical solutions
09.02.2015 TIE-21100/21106; K.Systä 13
A B
D E
C
Leenu Liinu
B D C C
Leenu Liinu
Version (revision)
management
system
Version (revision)
management
system
![Page 14: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/14.jpg)
So, what is configuration management?
• Change management: managed way to decide
which change ideas to implement and when.
• Version management: keep track of multiple
versions of components and ensure that changes by
different developers do not disturb each other.
• System building: collect and assemble correct
versions of required components and then compile.
• Release management: prepare for external releases
and keep track of external releases.
09.02.2015 TIE-21100/21106; K.Systä 14
![Page 15: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/15.jpg)
CM terminology
Term Explanation
Configuration
item or software
configuration
item (SCI)
Anything associated with a software project (design,
code, test data, document, etc.) that has been
placed under configuration control. There are often
different versions of a configuration item.
Configuration items have a unique name.
Configuration
control
The process of ensuring that versions of systems
and components are recorded and maintained so
that changes are managed and all versions of
components are identified and stored for the lifetime
of the system.
Version An instance of a configuration item that differs, in
some way, from other instances of that item.
Versions always have a unique identifier, which is
often composed of the configuration item name plus
a version number. 15 TIE-21100/21106; K.Systä 09.02.2015
![Page 16: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/16.jpg)
CM terminology
Term Explanation
Baseline A baseline is a collection of component versions that
make up a system. Baselines are controlled, which
means that the versions of the components making
up the system cannot be changed. This means that
it should always be possible to recreate a baseline
from its constituent components.
Codeline A codeline is a set of versions of a software
component and other configuration items on which
that component depends.
Mainline A sequence of baselines representing different
versions of a system.
Release A version of a system that has been released to
customers (or other users in an organization) for
use.
16 TIE-21100/21106; K.Systä 09.02.2015
![Page 17: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/17.jpg)
09.02.2015
TIE-21100/21106; K.Systä 17
Leenu
A B D E C
Liinu
A2 B2 D2 E2 C2
Leenu
A1 B1 D1 E1 C1
A3 B3 D3 E3 C3
Baselines
Configuration items: A, B, C, D, E
Versions
(of C)
![Page 18: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/18.jpg)
CM terminology
Term Explanation
Workspace A private work area where software can be modified
without affecting other developers who may be using
or modifying that software.
Branching The creation of a new codeline from a version in an
existing codeline. The new codeline and the existing
codeline may then develop independently.
Merging The creation of a new version of a software
component by merging separate versions in different
codelines. These codelines may have been created
by a previous branch of one of the codelines
involved.
System
building
The creation of an executable system version by
compiling and linking the appropriate versions of the
components and libraries making up the system.
18 TIE-21100/21106; K.Systä 09.02.2015
![Page 19: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/19.jpg)
Braching and merging
09.02.2015 TIE-21100/21106; K.Systä 19
A B D E C
A2 B2 D2 E2 C2
A1 B1 D1 E1 C1 A3 B3 D3 E3 C3
A B D E C New
branch Merge
![Page 20: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/20.jpg)
Figure 25.1 in Sommerville
09.02.2015 TIE-21100/21106; K.Systä 20
Component
versions
System
versions
System
releases
System
building
Change
management
Version
management
Release
management
Change
proposals
![Page 21: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/21.jpg)
Figure 25.1 in Sommerville
09.02.2015 TIE-21100/21106; K.Systä 21
Component
versions
System
versions
System
releases
System
building
Change
management
Version
management
Release
management
Change
proposals
A B D E C A2 B2 D2 E2 C2
A1 B1 D1 E1 C1
![Page 22: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/22.jpg)
Change management
09.02.2015 TIE-21100/21106; K.Systä 22
![Page 23: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/23.jpg)
Development vs. maintenance
• Most of the development is actually about applying changes
– Products often have several versions that are implemented
in separate projects
– Project plans or requirements change during the project
– Software might be in a maintenance mode
• Different types of changes:
– Bug fixes
– Performance improvements
– React to environmental changes
(HW, legal, …)
– New features of other requirement changes
• Contrast to maintenance of machines, e.g. cars, where
maintenance is due to physical and chemical wearing
09.02.2015 TIE-21100/21106; K.Systä 23
![Page 24: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/24.jpg)
Steering Project
Project
preparation Project-
proposal
project
decision Project
description
Project
planning
Project plan Steering group Approval of
project plan
Follow-up and
steering
Ending of
the project
Acceptance of
the results
Progress
reports
Steering
Change-
proposals
Results
End-report
Ex
ec
utio
n o
f the
pro
jec
t
Updated
project
plan
09.02.2015 TIE-21100/21106; K.Systä 24
From lecture 2
(project
management)
![Page 25: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/25.jpg)
Development
Customer support
Figure 25.1 in Sommerville
09.02.2015 TIE-21100/21106; K.Systä 25
Submit
CR
Change
requests
Check
Close Register
Product management
Analysis
(cost/impact) Assess
Select
Close
Modify SW
Test SW
Close
![Page 26: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/26.jpg)
Question
(discussion during lecture)
• How should change management be done in Scrum
09.02.2015 TIE-21100/21106; K.Systä 26
![Page 27: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/27.jpg)
Version Management
09.02.2015 TIE-21100/21106; K.Systä 27
![Page 28: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/28.jpg)
Simple view of version management
09.02.2015 TIE-21100/21106; K.Systä 28
Version
Management
System
Modifications
Test Validate
Approve
Document
Check-out
Check-in
![Page 29: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/29.jpg)
Versions; version trees
09.02.2015 TIE-21100/21106; K.Systä 29
1.0 1.1 1.2 1.3
1.1b 1.2b 1.3b
1.3c
1.4
1.4c
Functions of version management
• Version and release identification
• Storage management to optimize storage usage
• Change history recording
• Independent development
• Project support
![Page 30: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/30.jpg)
Are these versions of components or
baselines?
09.02.2015 TIE-21100/21106; K.Systä 30
1.0 1.1 1.2 1.3
1.1b 1.2b 1.3b
1.3c
1.4
1.4c
Can be both.
Often, in practice, programmers mark baselines to version management.
![Page 31: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/31.jpg)
A short history of version control systems
• SCCS – the first widely used
– Origin from 1972
– Was a standard part of many Unix systems
– Sccsid string:
static char sccsid[] = "@(#)ls.c 8.1 (Berkeley) 6/11/93";
• RCS was built as an alternative to SCCS
– Stores latest version and backward ”deltas”
– Supported binary files
• CVS introduced client-server architecture
– Based on RCS
• SVN & GIT the most common open source tools today
• Many commercial alternatives
09.02.2015 TIE-21100/21106; K.Systä 31
![Page 32: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/32.jpg)
From: http://git-scm.com/book/en/v2
09.02.2015 TIE-21100/21106; K.Systä 32
![Page 33: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/33.jpg)
From http://git-scm.com/book/en/v2
09.02.2015 TIE-21100/21106; K.Systä 33
![Page 34: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/34.jpg)
From
same
book
09.02.2015 TIE-21100/21106; K.Systä 34
![Page 35: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/35.jpg)
09.02.2015 TIE-21100/21106; K.Systä 35 Where are the baselines?
![Page 36: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/36.jpg)
SVN vs GIT
• Different models
– With SVN users work on common repository and commit
changes to the latest version
– In GIT users get their own copy of repository and commits to
that. The changes are made visible to others after merging
• Concept of version
– SVN has version numbering
– GIT has names
but you can simulate numbering by % git tag 1.6.1 -m 'Release 1.6.1'
09.02.2015 TIE-21100/21106; K.Systä 36
![Page 37: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/37.jpg)
Start work with
git clone url
Make branch to you
git checkout -b branch
origin/branch
Get latest from server
git pull
Add/remove files
git add file
git rm file
Commit changes
git commit –a
(git pull)
git merge
git push
svn checkout url
svn switch url
svn update
svn add file
svn rm file
svn commit
09.02.2015 TIE-21100/21106; K.Systä 37
![Page 38: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/38.jpg)
Installing and setting up a tool
is not enough for your project
• You need to agree and document your
practices
• When to commit
• When to branch
• How to tag
09.02.2015 TIE-21100/21106; K.Systä 38
![Page 39: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/39.jpg)
Don’t
do as
your
teach
er
does,
do as
he
says.
09.02.2015 TIE-21100/21106; K.Systä 39
![Page 40: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/40.jpg)
Configuration management
09.02.2015 TIE-21100/21106; K.Systä 40
![Page 41: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/41.jpg)
Configuration: collection of certain versions of
components
09.02.2015 TIE-21100/21106; K.Systä 41
1.0 1.1 1.2 1.3
1.1b 1.2b 1.3b
1.3b
1.4
1.4b
1.0 1.1 1.2 1.3
1.1b 1.2b
1.0 1.1 1.2 1.3 Current project-based version
control tools like SVN and GIT
can (sometimes) also be used
for configuration management.
A
B
A1.1 B1.2b
![Page 42: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/42.jpg)
Build management
09.02.2015 TIE-21100/21106; K.Systä 42
![Page 43: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/43.jpg)
The early days: Makefile CC = gcc
CFLAGS = -O
DEST = ${HOME}/bin
EXTHDRS = /usr/include/ctype.h /usr/include/stdio.h
HDRS = tree.h
LDFLAGS =
LIBS =
LINKER = gcc
OBJS = tree.o treealloc.o treemain.o treeprint.o treeword.o
PROGRAM= a.out
SRCS = tree.c treealloc.c treemain.c treeprint.c treeword.c
all: $(PROGRAM)
$(PROGRAM): $(OBJS) $(LIBS)
$(LINKER) $(LDFLAGS) $(OBJS) $(LIBS) -lm -o $(PROGRAM)
clean:; rm -f $(OBJS)
install: $(PROGRAM)
install -s $(PROGRAM) $(DEST)
tree.o: tree.h /usr/include/stdio.h
treealloc.o: tree.h /usr/include/stdio.h
treemain.o: tree.h /usr/include/stdio.h
treeprint.o: tree.h /usr/include/stdio.h
treeword.o: tree.h /usr/include/stdio.h /usr/include/ctype.h
09.02.2015 TIE-21100/21106; K.Systä 43
![Page 44: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/44.jpg)
Functions of build management
• Build script generation
– Makefile (make) runs the commands
• Integration to version management
– Already in the early days ”make” has SCCS integration
• Minimal recompilation
– ”Make” check time stamps of files
• Executable system generation
• Test automation
• Reporting
• Document generation
09.02.2015 TIE-21100/21106; K.Systä 44
![Page 45: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/45.jpg)
Figure 25.11 in Sommerville
09.02.2015 TIE-21100/21106; K.Systä 45
Source
code files
Configuration
files
Executable
tests
Data
files
Build
management
Executable
Target System
Libraries Compilers
and Tools
Test
results
![Page 46: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/46.jpg)
Another tool Ant (http://ant.apache.org/)
• Apache Ant is a Java library and command-line tool whose
mission is to drive processes described in build files as targets
and extension points dependent upon each other.
• The main known usage of Ant is the build of Java applications.
Ant supplies a number of built-in tasks allowing to compile,
assemble, test and run Java applications.
• Ant can also be used effectively to build non Java applications,
for instance C or C++ applications.
• More generally, Ant can be used to pilot any type of process
which can be described in terms of targets and tasks.
09.02.2015 TIE-21100/21106; K.Systä 46
![Page 47: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/47.jpg)
Ant vs make
Ant says:
• Ant is different. Instead of a model where it is extended with
shell-based commands, Ant is extended using Java classes.
• Instead of writing shell commands, the configuration files are
XML-based, calling out a target tree where various tasks get
executed.
• Each task is run by an object that implements a particular Task
interface.
But on reason is that Ant knows Java and can optimize use of Java
compiler
You can find several debates from the Internet
And there are other alternatives, too. E.g. maven or rake.
09.02.2015 TIE-21100/21106; K.Systä 47
![Page 48: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/48.jpg)
Third example: Maven http://tutorials.jenkov.com/maven/maven-tutorial.html
• Ant uses an imperative approach, meaning you specify in the
Ant build file what actions Ant should take. You can specify low
level actions like copying files, compiling code etc. You specify
the actions, and you also specify the sequence in which they are
carried out. Ant has no default directory layout.
• Maven uses a more declarative approach, meaning that you
specify in the Maven POM file what to build, but now howto build
it. The POM file describes your project resources - not how to
build it. Contrarily, an Ant file describes how to build your
project. In Maven, how to build your project is predefined in the
“Maven Build Life Cycles, Phases and Goals”
09.02.2015 TIE-21100/21106; K.Systä 48
![Page 49: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/49.jpg)
Release management
09.02.2015 TIE-21100/21106; K.Systä 49
![Page 50: Configuration and Version Management · • Configuration management (CM), then, is the discipline of identifying the configuration of a system at distinct points in time for the](https://reader035.fdocuments.in/reader035/viewer/2022081614/5fc9c05c780b5758d17ac10d/html5/thumbnails/50.jpg)
About release management
• Releases go to external customers/users the vendor should be
able to answer questions on that particular release.
• Often include major and minor releases
– Powerpoint 14.0.7116.5000 (32-bit)
– Thunderbird 17.0.11
• Customer-specific and mass-market SW impose different
challenges
• When problem occurs the HW configuration should available
• Full traceability is expected
• Releases should be well tested, well documented, …
• Installation/deployment need to be planned
• Updates need to be planned
– Technical, commercial
09.02.2015 TIE-21100/21106; K.Systä 50