Version Control 101 – The SimCorp Way

Download Report

Transcript Version Control 101 – The SimCorp Way

Version Control 101 – The SimCorp Way
Dyalog User Conference 2007
Lars Stampe Villadsen, SimCorp A/S (Denmark)
Agenda
• Company presentation (short )
• Low level parts
• Implementation
• Show some code
2
Business Idea
SimCorp offers integrated software solutions to financial
service providers supporting their activities worldwide on the
financial markets. Our solutions are firmly based on our high
quality standards and our insight into financial theory,
methods and practices.
3
SimCorp Dimension era
SimCorp History
2007
2003
2000
1999
1998
1997
SimCorp sells IT2
SimCorp Dimension
TMS2000 full STP product
IT2 acquired to substitute TRACTS
TMS2000 most important product
Sale of Actuarial department
1996
1995
Official launch of TMS2000
First TMS2000 implementations
TMS2000 development intensified
10 Years Revenue Development
EURm
160
140
Customised software
120
100
80
1991
1990
1985
Getting Focused
Risk management modules
Financial analytics and library
Building society systems
Money market systems
Pricing models for derivatives
Treasury systems
60
40
20
0
1996
4
1998
2000
2002
2004
2006
The low level parts
SimCorp Dimension consists of (Version 4.2):
37.000+
APL functions
150.000+
APL structures Defining tables, forms, menus ect.
2.200+
files (exe’s / dll’s / reports / manuals / 2 WS…)
Is developed by (Version 4.2):
170+ Developers
5
The low level parts cont.
Contents:
– We need to know what an application
version consists off – i.e. identify the
functions (easiest), the database tables,
the forms, the menu’s the WS, the exe’s,
the dll’s and alike.
6
The low level parts cont.
We need version control:
7
The low level parts cont.
Each of the 180.000+ elements
(or objects as we call them) is
version controlled separately
i.e. they are assigned a version
number.
Total deltas
y = 18864x - 2E+07
1900000
1800000
1700000
1600000
1500000
The SimCorp Dimension
repository holds more than
1.800.000 deltas.
1400000
1300000
1200000
1100000
8
sep-07
jul-07
maj-07
mar-07
jan-07
nov-06
sep-06
jul-06
maj-06
mar-06
jan-06
nov-05
sep-05
jul-05
maj-05
mar-05
jan-05
1000000
The low level parts cont.
Each version of an element (delta) must
be assigned to an application version.
A version of an element can be assigned
to more than one application version.
(Each version must be assigned to a
change request registered in our Change
Management System)
9
The low level parts cont.
Object ID/Name
0
convChk_Appl
Object type
10
Consultant
70.1.2
Object version
PH
Incident no.
20041214.439132
timestamp
227654
Deduced
program version
0
3.6 SP1
Delete mark
status
Incident
header
2
Check before
4886
Patch no
Object name
How it is implemented (infrastructure)
4.2
4.1
4.0
Release Test
11
Shipped version
How it is implemented (infrastructure) cont.
Release test and Shipped version periods
progFilesDir
v237
v238
v238.1.1
12
How it is implemented (infrastructure) cont.
All develop and CR tasks
completed (and no dependencies)
All test tasks completed (and no
dependencies)
All quality control jobs have run
without findings (both test and
technical)
13
Registered (-9)
Ready for test (-1) Every 10 min
Approved (1)
Once a Day
Released (2)
Mornings
when
succesfull
How it is implemented (infrastructure) cont.
Released to
customers
Start of
changes
Approved Versions
Test and Public
Versions
Registered
14
Ready for test
Approved
Released
Repository/Patch
Version
Show some code…
Enough Said…
Lets look at some CODE.
15