Title: SCM in IMN BTS SW Development
1SCM in IMN BTS SW Development
2Content
- Elements of the SCM solution
- SCM planning
- PVCS Networking
- Introduction to usage of PVCS
- Parallel development
- Using branches in SW project
- SW Development Framework from the SCM point of
view - Build process
- Tasks Roles
3Elements of the SCM solution
SCM Plan
SCM System
Planning
SCM Adoption
Management
Process
Automation
Culture
Product
People
4SCM planning
SCM process
SCM plan
Project plan
PVCS Definitions
Test plan
SCM manager plans and manages e.g. - resources -
schedules - SW packages - structures - Quality
issues - Multisite issues
Build plan
Release test plan
Integration plan
SCM management
5 PVCS Networking
6PVCS
Windows Terminal Server (Citrix)
PVCS
Windows Terminal Server (Citrix)
Networking NT Node NT Account
Networking NT Node NT Accaunt
SUBCONTRACTORS
NT server
PCMS
WTS
Win NT
HP-UX
NT Server
7PVCS Dimensions
- Process and Configuration Management System
- Version control book keeping of files
- Building by Make ( PVCSMake and Pnmake)
- Freezing by baselines
- Process support by lifecycles for Items
- Change Management
- Workspace Management
- Parallel development
- Integration with third party tools using API or
Microsoft SCC (Source Code Control) interface - Multisite support
8PVCS backbone
- ORACLE Relational Database
- Information related to a product
- File (Item) information, e.g. owner, time stamp,
attributes - Baseline information
- In general all METADATA
- SCCS / VM (Unix) / CMS (VMS) Archive
- Storage of files
- Optional compression (UNIX Compress)
- Delta-libraries (SCCS or PVCS VM on UNIX, PVCS VM
on NT)
9Basedatabases in Oulu
C
OSE_DSP
OSE_DSP
SIMU_ TOOLS
G
RHAPSODY
RHAPSODY
H
OSE_DELTA
OSE_DELTA
A
Basedatabase Tools
Basedatabase XX
A
C
B
D
E
F
Oulu
Basedatabase YY
Basedatabase
Oracle database
Product
10Basedatabases Replication in Oulu
C
OSE_DSP
OSE_DSP
SIMU_ TOOLS
G
RHAPSODY
RHAPSODY
H
OSE_DELTA
OSE_DELTA
A
Basedatabase Tools
Basedatabase XX
C
A
Oulu
Basedatabase YY
Basedatabase
Oracle database
Product
Replication
11Sites replication
G
G
OSE_DSP
OSE_DSP
Basedatbase XX
Basedatbase XX
Kista
Oulu
Basedatabase
Oracle database
Product
Replication
12 Introduction to Worksets
file1.c revision 1
file1.c revision 2
file2.c revision 10
file2.c revision 6
File3.h revision 5
File12.h revision 6
File4.h revision 3
File4.h revision 4
File5.h revision 1
File5.h revision 12
G
File6.c revision 2
OSE_DSP
file11.c revision 3
OSE_DELTA
A
Workset 1
Workset 2
Basedatabase XX
13Introduction to Worksets
- Definition
- A workset is a collection of revisions of items.
Work done in one workset does not affect other
worksets Parallel development - A writable view on a set of file revisions
- A workset is created within product context
- one global Global workset including all
revisions of all files - One current and one default workset per user
- Workset Context
- Most PVCS commands operate on the current workset
- PVCSMake searches a list of worksets for files
- Workset / filesystem directory structure
correspond with local PC directory structure
14Item types
- The type of an Item defines
- Process lifecycles
- - Access rights based on roles
- - Responsibility by pending lists
- Item templates (if used)
- Which items are selected into a baseline
- Browse / Edit linkage of external applications
(Notice that Windows associations are overriding
any definitions made within PVCS) - Storage location (Item library)
- Attributes (if used)
- All SW documents and source codes are stored
under PVCS control
15Lifecycles
- Every created file (Item) (e.g. source code or
document) follows one and only one lifecycle - Product-manager role owner has the rights to omit
the process
PRODUCT_MANAGER
AUTHOR
Draft
Proposal
Accepted
Released
ACCEPTOR
RELEASOR
ACCEPTOR
Rejected
16Roles defined in lifecycles
- BROWSER
- Can browse (only read, not change) everything
- AUTHOR
- The role required in creating / modifying Items
- The role required in creating baselines
- ACCEPTOR
- The role required in promoting Items to
ACCEPTED-State - RELEASOR
- The role required in promoting Items to
RELEASED-State - BUILD-MANAGER
- The role required in promoting baselines to
ACCEPTED-State - The role required in promoting baselines to
RELEASED -State - Roles are assigned to users on a part and workset
basis
17PVCS SCC Interface
Version control against selected PVCS workset -
operations e.g. check-in check-out
merge version history
18Baseline
- Definition
- List of file (item) revisions
- Defined on Workset and Part level
- Once created it cannot be changed (exception is
when you use Change documents) - Release baseline
- - Created from a template
- - Lifecycle and Item-type dependent
- Naming conventions
- ltname of SW configuration/productgtltversiongt_BL
- Example DF30_BL
- Uses of baseline
- Freezing of a SW configuration
- Marking of milestones
19Baseline
hello.c hello.h hello.txt
hello.asm hello.rep hello.o hello.exe
1
2
3
4
5
6
7
1
2
3
4
test baseline
test baseline
1
2
3
First release baseline
test baseline
1
2
3
1
2
3
4
1
3
2
4
1
2
3
4
20Baseline
21Parallel development
22Parallel multisite development
file.c
sitexx
1
2
siteyy
1
3
branch
File is read only in
File is read only in
sitexx
Site yy
2
4
File is owned by site
File is owned by Site
xx
yy
Site yy file version 2 and
Sitexx file version 5 merged
into Siteyy file version 3
3
5
Sitexx file version 5 is
updated with Sitexx file
version 3 into Sitexx file
version 6 after testing
6
23Branching
ouFile.c
xe
Baseline
Merge
OU development
Increment 1 Baseline
inc1_
bugfix
Merge
Increment 2 Baseline
OU WS
Inc2 bugfix
Increment 3 development
Merge
XE WS
24SW Development Framework from the SCM point of
view
SW Development Framework
SW Implementation
SW Environment
SW Build
EE (Engineering Environment versions tool
versions) EE Services (e.g. licenses,
maintenance, tool support)
Version Control (Documents, source codes,
components) Change management
SCM Build processes
Builds
Infra
SCM
25SW Development Framework for BTS based products
The reason for having SW Development framework is
to have common methods for doing things in
product programs. Common methods ensure that we
have - better productivity (time and quality) -
easier communication with common language - short
running in time for new people if methods are
familiar from earlier programs - common and
shared target for all - common understanding how
the world looks like inside and outside of our
system These methods has to be - well-known -
well-communicated to all personnel - easy to
learn and to teach to new personnel - so good and
easy to use, that no one wants to do things "in
my own way" - controlled to be used in every
project
26The content of SW Environment
27The content of SW Build
SW Build
Structure for organizing of MAKE files in
PVCS
Using of common environment for compiling
Supports component SW package level
compiling
Has frozen version for all SW packages
MAKE files
Build core
Usage scripts
View to building
Interface via
Other common
Environment
EE
issues
28SW Building
Integration
Release note
X
Y
Z
Integration
Kernel
Production Packet
Core_Build Baseline
BTS Build
SW_Impl. Baseline
Core_Build
SW_Implementation
Projects
lib files for Target and kernel, source files
Release note
SW_Env Baseline
Release note
lib files for Target and Softkernel, source files
SW_ENVIRONMENT
Component Baseline
Component Build
Component Baseline
Component Build
SW Engineering
EE (Engineering Environment)
SubSystem
Component
Component
Component
Component
Component
29Overview of Build
Step 1. Launch pcmsmake
PVCS
Step 2. Logon to PVCS
Batch file (start-up) pcmsmake --wsltWORKSETgt -f
makefile.mak pcmsmake --wsltBASELINEgt -f
makefile.mak
Reading makefile, generating dependencies and
building executable
Fetch files
vpath .c uc_sw\commonvpath .h include DEFINE
-DI9601 -DNODEBUG INCLUDE -Iinclude
(I960BASE)\include OBJ_LIST obj1.o obj2.o
obj3.o obj4.o \ obj5.o obj6.o
obj7.o ALL runtime.hex
Using PATH, LIB, INCLUDEetc.. environment
variables
PVCS PC Client PVCS Make Compilers Other tools
30Why Dimensions Make makefiles ?
- The idea is to create a process that can be
traced and repeated anytime - Dimensions Make is GNU compatible which makes
more - Understandable
- Flexible
- Portable
- Builds are not performed if all sub-targets or
other dependencies is up-to-date - Dependency tracking is automated by using ADG
31SW Build Environments- Simulation and HW
Integration Tests -
- Windows NT/Windows 2000 based Build Environment
- PVCS PC Client
- PVCS Dimensions Make
- Makefiles batch files
- Compiler(s)
- In-house tools
- Procedure
- Step 1 Create test workset
- Step 2 Build SW by using Dimensions Make
makefiles - Step 3 Create a Baseline
Designer's PC
32SW Build Environments- Pre-Release and Release
Packages -
- Windows NT/Windows 2000 based Build Environment
- PVCS PC Client
- PVCS Dimensions Make
- Makefiles batch files
- Compiler(s)
- In-house tools
- Procedure
- Step 1 Create a release workset
- Step 2 Build SW by using Dimensions Make
makefiles - Step 3 Create a Baseline
Release Packaging PC
33Packages in the SW Project
- Packages for module and unit testing
- Simulation environments
- Test tools
- Packages for HW testing
- Integration testing
- Packages to other systems testing)
- Release packages
- Pre-releases and releases
34SW Build Process- Overview of the SW Build
Process
MAIN_WS
File 1 File 2 File 3 ...
TEST_WS
PERFORM TESTS Using PVCS Make External Make
tool
File 1 File 2 File 3 ...
BASELINE_003
BASELINE_002
BASELINE_001
35SW Build Process- Stages of the SW Build Process
-
Process changes
New worksets needed etc.
Packaging process definition
Implementation
Packaging in practice
Should be proceeded, before packages are needed.
36SW Build Process- Packaging Process Definition -
- Definition of packages (what ?)
- Simulation/HW integration/Release packages
- PVCS structures used in packaging
- What worksets, files exported from other worksets
? - Definition of baseline (what ? when ? how ?)
- SW package delivery (where to put packages for
other's use ?) - Multisite considerations (what packages are built
in which sites?) - Sub-contractor considerations (what packages are
built by which sub-contractors (in their own
premises)?)
37Multiple SW Build Processes
S I M U L A T I O N
Step-by-step Build Process
I N T E G R A T I O N
R E L E A S E S
38SW Build Process Work Products
- Document Build plan
- Definition of the build process
- SW project specific instructions if needed
- Worksets, baselines and corresponding
- Makefiles and corresponding
- SW packages
- Release build environments
- Release build environments document
39Audit Trail
AF package
Baseline 4
SW package
Baseline 3
Baseline 2
Baseline
Work Set
File1 revision 5 File2 revision 10 File3 revision
3 ...
40SW Engineerings tasks
- PVCS Dimensions tools
- SCM support and training
- Build support and training
- teststeps and releases
- Makefiles
- Solutions for new tools
- Templates
- Makefiles
- Batch files
- Improvement based on projects experiences
41SW Projects tasks
- Project specific SCM and Build instructions
- Procedures for
- Building teststeps
- Building releases
- Makefiles
- Based on templates
- NOT a piece of cake
- Building packages, etc
42Roles
- SCM person (SW project)
- Creates project specific instructions
- Build person (SW project)
- Creates makefiles for specific SW area
- Trains and coordinates packaging of his/her area
- Make key/power user (SW project)
- Can help others in make file problems
- SCM and Build supporter (SW Engineering)
- Instructions for version control
- Instructions, templates and examples for
packaging - General training
- Assistance in defining SCM and build process
- Does NOT write makefiles