Dies ist ein Archiv des alten Softwaretechnik Lehrstuhls der Universität des Saarlandes. Es ist nicht länger aktuell.

  

LAMARCK
Mining evolution usage patterns from object usage

Lehrstuhl für Softwaretechnik (Prof. Zeller)
Universität des Saarlandes – Informatik
Informatik Campus des Saarlandes
Campus E9 1 (CISPA)
66123 Saarbrücken
E-mail: zeller @ cs.uni-saarland.de
Telefon: +49 681 302-70970

Deutschsprachige Startseite Page d'acceuil en français English home page
  

Introduction

As software evolves, so does the interaction between its components. But how can we check if components are updated consistently? By abstracting object usage into temporal properties, we can learn evolution patterns that express how object usage evolves over time. Software can then be checked against these patterns, revealing code that is in need of update.

Publications

  • Yana Momchilova Mileva, Andrzej Wasylkowski, Andreas Zeller: Mining Evolution of Object Usage. Submitted to the 33rd International Conference on Software Engineering (ICSE) 2011. Hawaii, USA.

Evaluation

Test Subjects

We used Lamark to detect the evolution patterns from the evolution between those projects versions:
  • Experiment 1: Eclipse 1.0 to Eclipse 2.0
  • Experiment 2: Eclipse 2.0 to Eclipse 2.1
  • Experiment 3: AspectJ 1.6.0 to AspectJ 1.6.3
  • Experiment 4: Azureus 4.1.0.0 to Azureus 4.4.0.0
Those versions can be found on the following projects' websites: Eclipse archive, AspectJ archive and Azureus repository.

Evaluation scenario

In order to perform a unbiased evaluation of Lamarck's performance we performed the following evaluation (illustrated on the Figure):
  • Detect all the common methods between the first and the second versions of our test subject.
  • Extract temporal properties from each of the two versions.
  • Generate a random 1/10 vs. 9/10 split of all the common methods.
  • Substitute the 1/10 methods' temporal properties in the second version with their corresponding old counterparts in the first version (i.e. reversing the changes between the two versions in these 1/10 methods).
  • Create change properties from the difference in the temporal properties sets between the old version and the modified new version of the project.
  • Using concept analysis, mine for frequently occuring evolution patterns (where any pattern that appears at more than 10 locations we consider a frequent one).
  • Report all the patterns violations found by Lamarck in those 1/10 methods.
We created the above evaluation scenarion in oder to see if Lamarck would detect violations of the evolution patterns if not all code parts were updated, i.e. if there were omitted code locations where the change had to be applied but it wasn't.
Lamarck's average precision ranges from 98% to 100%.

Evaluation Results

Here one can download the source code and the patterns for one random 1/10 vs. 9/10 split of the common methods between the two versions of our evaluation subjects for each of our four experiments.
Experiment1.zip, Experiment2.zip, Experiment3.zip and Experiment4.zip.

Here one can download the .csv files with our results from all 50 random splits and runs for each one of the 4 experiments.

Contact us

Below you can find links to people working on mining evolution patterns. Please contact us for questions, rants, and raves.

Impressum Datenschutzerklärung

<webmaster@st.cs.uni-saarland.de> · http://www.st.cs.uni-saarland.de//models/lamarck/ · Stand: 2018-04-05 13:41