Folder Structure Evolution in
Open Source Software
Andrea Capiluppi
Dipartimento di Automatica
e Informatica
Politecnico di Torino, Italy
&
Computing Dept.
The Open University, UK
Maurizio Morisio
Juan F. Ramil
Computing Dept.
Dipartimento di Automatica e
Informatica
The Open University, UK
Politecnico di Torino, Italy
AICA 2004, Benevento, 29 Sett 2004
Outline
Motivazione
 Definizioni e Attributi
 Selezione dei progetti Open Source
 Identificazione e Analisi di Pattern
 Conclusioni

29 Sett 2004 – Benevento
AICA 2004
2
Motivazioni
29 Sett 2004 – Benevento
AICA 2004
3
Motivation
Empirical
Evidence
Theories,
Models
29 Sett 2004 – Benevento
Good
Practice
AICA 2004
4
Motivazione
Studi empirci sull’evoluzione dei sistemi OSS
 Obiettivo: comprenderne il comportamento evolutivo,
generare euristiche e guidelines
 Approccio: simile a quello usato da Lehman per i
sistemi commerciali:

Generare ipotesi empiriche
Osservare differenze e analogie
Modificare le ipotesi esistenti, generarne di nuove
Obiettivo di lungo termine: teorie e modelli
dell’evoluzione del software con studi longitudinali

Metodologia: combinare osservazioni a differenti livelli
di granularita’ {system, subsystem, module, function}

29 Sett 2004 – Benevento
AICA 2004
5
Motivazione
Obiettivo specifico: osservare evoluzione
attraverso un {altro} livello, disposizione del
codice nei folders (folder tree)
 Research questions:

Lo studio della struttura delle directory da’
informazioni sull’evoluzione di un sistema?
Esistono relazioni tra questa struttura e altre
caratteristiche evolutive (tasso di crescita)?
Utilizzo di dati empirici per valutare queste
domande
29 Sett 2004 – Benevento
AICA 2004
6
Definizioni e Attributi
29 Sett 2004 – Benevento
AICA 2004
7
Definizioni e Attributi
Source File: ogni file che contiene codice
 Source Folder:ogni directory contenente
almeno un source file

Folder Tree:
rappresentazione
grafica della struttura
 Level: sottoinsieme di
nodi aventi la stessa
distanza dal nodo root

29 Sett 2004 – Benevento
root
Level
AICA 2004
Parent Folder
F2
F1
8
Esempio di Folder Tree
Ampiezza (width): massimo numero
di folder in un livello
Profondita’ (depth) = massima distanza
29 Sett 2004 – Benevento
AICA 2004
9
Evoluzioni possibili di un folder tree
Parent
Folder
F1
Parent
Folder
F1
F2
F3
Parent
Folder
F2
F1
29 Sett 2004 – Benevento
[Espansione
verticale]
F2
AICA 2004
[Espansione
orizzontale]
F3
10
Attributi
Size: indicatore di functional power (LOCs, KBs,
numero di files, numero di folders)
 Folder tree: struttura (visualizzazione tramite
Graphviz, tool Open Source)
 Activity rate: tasso di evoluzione, modi di attivita’

-
-
Trovare gli elementi aggiunti o tolti e’ relativamente
semplice
Trovare gli elementi modificati: focus su elementi
modificati durante un periodo, piuttosto che singoli
change:
number of files touched per release
29 Sett 2004 – Benevento
AICA 2004
11
Selezione dei progetti
29 Sett 2004 – Benevento
AICA 2004
12
Selection of Projects
Ampia base di sistemi usata in uno studio
precedente di caratterizzazione del OSS
 Da questo sample -> si estraggono I progetti
piu’ grandi
 Risultato dell’estrazione 26 sistemi

In totale 992 data points
Sistemi vengono caratterizzati tramite
l’evoluzione dei folder tree

29 Sett 2004 – Benevento
AICA 2004
13
Initial Characterization (example 1)
Alta correlazione fra differenti metriche (locs, files,
Kbytes)
 Maggioranza sta sotto un limite di size (misurato
all’ultimo stato stabile, o release)

29 Sett 2004 – Benevento
AICA 2004
14
Initial Characterization (example 2)
Size medio dei source file dentro i source
folder sta generalmente sotto un limite (20 Kb)

29 Sett 2004 – Benevento
AICA 2004
15
Identificazione e Analisi dei
Pattern
29 Sett 2004 – Benevento
AICA 2004
16
Identification of patterns
Espansione orizzontale (10 su 25)
 Riduzione vericale (4 su 25)
 Espansione vericale (11 su 25)

Associata di solito con espansione orizzontale
Studio della relazione tra pattern di
evoluzione, crescita funzionale e activity
rate

29 Sett 2004 – Benevento
AICA 2004
17
Espansione orizzontale
Crescita costante dei source file
 Picchi di activity rate intorno alle release
maggiori

29 Sett 2004 – Benevento
AICA 2004
18
Riduzione verticale
Size stabile durante l’evoluzione
 Le modifiche sono diffuse e costanti nel 70% del
sistema

29 Sett 2004 – Benevento
AICA 2004
19
Espansione verticale
Periodi di crescita lineare e super-lineare
 Picchi di activity rate consistono di aggiunte piuttosto
che modifiche

29 Sett 2004 – Benevento
AICA 2004
20
Conclusioni
Quasi tutti I sistemi mostrano un’espansione almeno in
uno dei parametri strutturali – segno di evoluzione sana
 Folder tree sono utili per esaminare evoluzione di
sistemi software
 Trend di crescita e activity rate utili per riconoscere gli
stage di evoluzione
 Lavori attuali e futuri:

Relazione tra tipo evoluzione della struttura e tipo di
application domain
Osservazioni su diversi livelli di granularita’ per
identificare stage di evoluzione
Relazione tra quantita’ di modifiche e complessita’
Astrazione qualitativa e simulazione
29 Sett 2004 – Benevento
AICA 2004
21
Conclusioni
Empirical
Evidence
Theories,
Models
29 Sett 2004 – Benevento
Good
Practice
AICA 2004
22
Final Remarks
Dati e tool usati nel lavori presente e passati
sono in inea: http://mcs.open.ac.uk/ac5468
 Fondamentale la collaborazione fra divesri
gruppi per condividere dati, tool e interpretazioni

29 Sett 2004 – Benevento
AICA 2004
23
…domande?
29 Sett 2004 – Benevento
AICA 2004
24
Scarica

Andrea Capiluppi Dipartimento di Automatica e