Upload
victoria-willis
View
214
Download
0
Embed Size (px)
Citation preview
Chaos Theory for
Software Evolution
Rui Gustavo CrespoTechnical University of Lisbon
2/22Software Evolution Behaviours
Laws of Software Evolution (1)
MM Lehman informal laws of software evolution1
Continuing change: a program used in a real-world environment must change.
Increasing entropy: the program structure becomes more complex, unless efforts are made to avoid the complexity.
Statistically smooth growth: the global system metrics appear locally stochastic in time and space but are self-regulating and statistically smooth.
1Lehman, M.M.: Programs, Life Cycles and Laws of Software Evolution. IEEE Special Issue on Software Engineering, 68(9), 1060-1076
3/22Software Evolution Behaviours
Laws of Software Evolution (2)
Valid laws must be:-1. Unambiguous: the underlying system model must be
clear (better formally).2. Falsifiable: model predictions are checked against
collected data and the law remains valid until tests fail.
Thesis: Program organization plays a role in maintenance,
and may be measured with LRC (“Long-range correlation”) metrics.
Program evolution follows Verhulst population model.
4/22Software Evolution Behaviours
F2(l) = [BW(l,l0)]2 - [BW(l,l0)]2
BW(l,l0) = BW(l0+l)-BW(l0)
LRC metrics (1)
1. Encode symbols (data types int, struct,... and instruction keywords if, while,...) with a balanced numeric code.
2. Identify the Brownian walk graph BW
BW(0) = 0
BW(n) = BW(n-1) + Code(Sn)
3. Evaluate the root of mean square flutuation about the average of displacement.
5/22Software Evolution Behaviours
LRC metrics (2)
10 0
10 1
10 2
10 3
10 4
10 0
10 1
10 2
10 3
F(l) l
= 0.5, random programs
0.5<<1, meaningful programs
6/22Software Evolution Behaviours
0
0.2
0.4
0.6
0.8
1
0 5 10 15 20 25 30 35 40
Number
Alp
ha
LRC metrics (3)
[A] values for 36 compilers, coded in C
Average: 0,82
7/22Software Evolution Behaviours
LRC metrics (4)
for 36 random programs, same keyword distribution (similar results for same number of lines)
0
0.2
0.4
0.6
0 5 10 15 20 25 30 35 40
Number
Alp
ha
Average: 0,48
8/22Software Evolution Behaviours
0
0.2
0.4
0.6
0.8
1
0 5 10 15 20 25 30 35 40
Number
Alp
ha
LRC metrics (5)
values for 36 random C programs, same number of lines, same keyword distribution
Average: 0,62
9/22Software Evolution Behaviours
LRC metrics (6)
values for source and object files are strongly correlated
y = 0.1802x + 0.5713
R2 = 0.8212
0.6800
0.6900
0.7000
0.7100
0.7200
0.7300
0.7400
0.0000 0.2000 0.4000 0.6000 0.8000 1.0000
Source program Alpha
Ob
ject
pro
gra
m A
lph
a
10/22Software Evolution Behaviours
Process dynamics (1)
Pierre Verhulst, Belgian mathematician, studied models of human population growth in the 19th century Growth with unlimited resources
du/dt=u, >0
Solution is an exponential function u(t)=u(t0)e(t-t0)
Growth with limited resourcesdu/dt=(-u)u, is the upper limit
Xt+1 = Xt(1-Xt) Xt \in [0,1], \in [0,4]
Verhulst model, or logistic map
11/22Software Evolution Behaviours
Process dynamics (2)
=1.1
0
0.2
0.4
0.6
0.8
1
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58
12/22Software Evolution Behaviours
Process dynamics (3)
=2.9
0
0.2
0.4
0.6
0.8
1
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58
13/22Software Evolution Behaviours
Process dynamics (4)
=3.4
0
0.2
0.4
0.6
0.8
1
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58
Oscilation period is 2n
14/22Software Evolution Behaviours
Process dynamics (5)
BTW, predator and prey populations (e.g., wolves and rabbits), are ruled by the same kind of equations dr/dt=(- w)r
dw/dt=(r - )w
Solution of the differential equations are sinusoidal functions, with different phases
-1.5
-1
-0.5
0
0.5
1
1.5
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
Rabbit
Wolf
15/22Software Evolution Behaviours
Process dynamics (6)
=3.8
0
0.2
0.4
0.6
0.8
1
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58
The behaviour is cahotic
16/22Software Evolution Behaviours
Process dynamics (7)
Software processes also “compete” for resources (time, man-power, …)
Interaction between components is non-linear: small changes in a module may stop other modules to work properly
Proposal: link Verhulst values toProgram organization, and Ideas formation
17/22Software Evolution Behaviours
Process dynamics (8)
norm = 2|-0.5|; = t+1/t(1-t)
Ideas formation Ideas covergence Single Idea Implementation
Time
Pro
duct
Att
ribu
tes
InformationCriativity
Pro
cess
For
m
Chaos Bifurcation Normal
3,4 03,0
18/22Software Evolution Behaviours
Process dynamics (9)
BeanMetaData.java versions in JBOSS (Jul 2000-Oct 2002)
Chaotic Normal
0
1
2
3
4
5
6
1.1
1.4
1.7
1.10
1.13
1.15
.2.1
1.18
1.21
1.23
.2.1
1.23
.2.4
1.26
1.29
1.32
1.35
1.38
1.39
.2.2
1.40
Version
Bifurcation
19/22Software Evolution Behaviours
Process dynamics (10)
0100200300400500600700800
1.1
1.4
1.7
1.10
1.13
1.15
.2.1
1.18
1.21
1.23
.2.1
1.23
.2.4
1.26
1.29
1.32
1.35
1.38
1.39
.2.2
1.40
Version
LO
C
20/22Software Evolution Behaviours
Process dynamics (11)
EJBVerifier20.java versions in JBOSS (May 2000-Sep 2002)
Chaotic
Normal
00.5
11.5
22.5
33.5
4
1.1
1.3
1.5
1.7
1.9
1.11
1.13
1.15
1.17
1.17
.2.2
1.18
1.20
1.22
1.24
1.25
1.27
Version
Bifurcation
21/22Software Evolution Behaviours
Process dynamics (12)
0
500
1000
1500
2000
2500
3000
1.1
1.3
1.5
1.7
1.9
1.11
1.13
1.15
1.17
1.17
.2.2
1.18
1.20
1.22
1.24
1.25
1.27
Version
LO
C
22/22Software Evolution Behaviours
It is possible to measure program organization and automatically highlight version behaviours
Next steps:Check LRC validity and Verhulst model in other
applications / languages / process phases Improve Verhulst model (sometimes, >4) Identify faster algorithms
Cardoso,AI; Kokol,P.; Lenic,M.; Crespo,R.G.; Complexity-based Evaluation of Systems Evolution; in Advances in UML/XML Based Software Evolution;IRM Press; 2004 (in print)
Conclusions