1 http://www.uax.es http://herraiz.org The dynamics of software evolution The dynamics of software evolution EVOLUMONS 2011 EVOLUMONS 2011 Research Seminar on Software Evolution Research Seminar on Software Evolution Université de Mons, Belgium Université de Mons, Belgium January 26th 2011 January 26th 2011 Israel Herraiz Israel Herraiz Universidad Alfonso X el Sabio Universidad Alfonso X el Sabio < < [email protected][email protected]> > < < [email protected][email protected]> >
57
Embed
The dynamics of software evolution - EVOLUMONS 2011
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
http://www.uax.es http://herraiz.org
The dynamics of software evolutionThe dynamics of software evolution
EVOLUMONS 2011EVOLUMONS 2011Research Seminar on Software EvolutionResearch Seminar on Software Evolution
Université de Mons, BelgiumUniversité de Mons, BelgiumJanuary 26th 2011January 26th 2011
Israel HerraizIsrael HerraizUniversidad Alfonso X el SabioUniversidad Alfonso X el Sabio
● Godfrey and Tu [GT00] [GT01] studied the evolution of the Linux kernel
● They said that the laws of software evolution were not valid for Linux
– Laws of software evolution. What is that?
● My supervisors and I wrote a paper on the topic [RAGBH05]
● At the time, I thought it was just one more paper
● It turned out to be our most cited paper● Completely puzzled
me
7
http://www.uax.es http://herraiz.org
The topic background:The topic background:Software evolutionSoftware evolution
● How and why does software evolve?
● Meir M. Lehman Laws of software evolution
● “Program evolution. Processes of software change” published in 1985
8
http://www.uax.es http://herraiz.org
The laws in the seventiesThe laws in the seventies
● Laws of Program Evolution Dynamics (1974)
[Leh74] [Leh85b]
9
http://www.uax.es http://herraiz.org
The evolution of the laws of The evolution of the laws of software evolutionsoftware evolution
[Leh74][Leh85b]
[Leh78][Leh85c]
[Leh80][LB85]
[Leh96] [LRW+97][MFRP06]
10
http://www.uax.es http://herraiz.org
The laws in the present day The laws in the present day (I – IV)(I – IV)
11
http://www.uax.es http://herraiz.org
The laws in the present day The laws in the present day (V – VIII)(V – VIII)
12
http://www.uax.es http://herraiz.org
Empirical studies of software Empirical studies of software evolutionevolution
See “Empirical Studies of Open Source Evolution” by Juan Fernandez-Ramil, Angela Lozano, Michel Wermelinger, Andrea Capiluppi in Tom Mens, Serge Demeyer (eds.) Software Evolution
13
http://www.uax.es http://herraiz.org
Why the controversy about the laws Why the controversy about the laws of software evolution?of software evolution?
● Fernandez-Ramil et al. found in the literature empirical validation for the I, VI, VII (partially) and VIII (partially)
● The most interesting part (for me)– Statistical analysis of software projects and their
evolution, using time series analysis among other techniques (suggested in ¡1974!) [Leh74] [Leh85b]
– “For maximum cost-effectiveness, management consideration and judgement should include the entire history of the project with the current state having the strongest, but not exclusive, influence” [Leh78] [Leh85c]
●
14
http://www.uax.es http://herraiz.org
The nature of (libre) software The nature of (libre) software evolutionevolution
15
http://www.uax.es http://herraiz.org
The nature of (libre) software The nature of (libre) software evolutionevolution
● The goal is to develop a theoretical model for software evolution
● Long pursued goal● Lehman and Belady in 1971 [BL71] [LB85]● Woodside progressive and anti-regressive work
[Woo80] (included in [LB85])● Turski models [Tur96] [Tur02]
– Growth is inversely proportional to complexity– Complexity is proportional to the square of size
16
http://www.uax.es http://herraiz.org
More recent modelsMore recent models
● Self-Organized criticality [Wu06] [WHH07]● Power laws for the size of the system● Long range correlations in the time series of
changes
● Maintenance Guidance Model [CFR07]● Those functions that have suffered more changes in
the past are more likely to be changed in the future● Assumptions:
– Distribution of accumulated changes is asymmetrical– Developers prioritize changes using past number of
changes and complexity
17
http://www.uax.es http://herraiz.org
Determinism and evolutionDeterminism and evolution
● Self Organized Criticality● This means that current events are influenced by
very old events● Against Lehman suggestions [Leh78] [Leh85c]
● In my opinion, counter intuitive
http://www.uax.es http://herraiz.org
Long range correlated processesLong range correlated processes
http://www.uax.es http://herraiz.org
Long range correlated processesLong range correlated processes
http://www.uax.es http://herraiz.org
Long range correlated processesLong range correlated processes
Unreachable
http://www.uax.es http://herraiz.org
Short range correlatedShort range correlated
http://www.uax.es http://herraiz.org
Short range correlatedShort range correlated
http://www.uax.es http://herraiz.org
Short range correlatedShort range correlated
http://www.uax.es http://herraiz.org
Short range correlatedShort range correlated
http://www.uax.es http://herraiz.org
How is software evolution?How is software evolution?
● 3,821 software projects– More than 3 developers– More than 1 year of active history– 9,234,104 commits / 2,357,438 modification requests– Projects registered between Nov. 1999 and Dec. 2004– Datasets publicly available
● See Determinism and evolution– 5th International Working Conference on
Mining Software Repositories (MSR 2008)FLOSSMole
+CVSAnalY-SF
http://www.uax.es http://herraiz.org
MethodologyMethodology
● Liner correlation to calculate linearity● Distribution of the Pearson coefficients● Smoothing applied to the series before
● Isn't it too accurate?● Why do you think this works?
52
http://www.uax.es http://herraiz.org
What's next?What's next?
53
http://www.uax.es http://herraiz.org
Further workFurther work
● Write a paper about the controversy around the validation of the laws of software evolution● In progress
● Write a paper about the short memory nature of evolution● Using Time Series Analysis to show it● And ARIMA as a forecasting tool● Extracting principles and guidelines for software
projects management
54
http://www.uax.es http://herraiz.org
And what I did learn during all these And what I did learn during all these years?years?
55
http://www.uax.es http://herraiz.org
Things I appreciate my advisors didThings I appreciate my advisors did
● Freedom of movements● Pressure to get my own funding● Unconditional support● Demanding and challenging environment● Opportunity to coordinate projects● And to participate in many meetings alone
56
http://www.uax.es http://herraiz.org
Things that I did not know and I do Things that I did not know and I do nownow
● Know-how about conferences and journals● English skills● Writing skills (papers and proposals)● Presentation skills● Self-motivation
– Brick walls are there for the rest of people– Experience is what you get when you don't get what