Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

22
Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon

Transcript of Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

Page 1: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

Chaos Theory for

Software Evolution

Rui Gustavo CrespoTechnical University of Lisbon

Page 2: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical 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

Page 3: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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.

Page 4: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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.

Page 5: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 6: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 7: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 8: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 9: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 10: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 11: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 12: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 13: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 14: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 15: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 16: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 17: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 18: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 19: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 20: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 21: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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

Page 22: Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

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