Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing...

24
Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento, 29 Sett 2004 Folder Structure Evolution in Open Source Software Maurizio Morisio Dipartimento di Automatica e Informatica Politecnico di Torino, Italy Juan F. Ramil Computing Dept. The Open University, UK

Transcript of Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing...

Page 1: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

Andrea Capiluppi

Dipartimento di Automatica e Informatica

Politecnico di Torino, Italy

&Computing Dept.

The Open University, UK

AICA 2004, Benevento, 29 Sett 2004

Folder Structure Evolution in Open Source Software

Maurizio MorisioDipartimento di

Automatica e InformaticaPolitecnico di Torino, Italy

Juan F. RamilComputing Dept.

The Open University, UK

Page 2: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 229 Sett 2004 – Benevento

Outline

Motivazione Definizioni e Attributi Selezione dei progetti Open Source Identificazione e Analisi di Pattern Conclusioni

Page 3: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 329 Sett 2004 – Benevento

Motivazioni

Page 4: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 429 Sett 2004 – Benevento

Empirical

Evidence

Theories, Models

Good Practice

Motivation

Page 5: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 529 Sett 2004 – Benevento

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}

Page 6: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 629 Sett 2004 – Benevento

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

Page 7: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 729 Sett 2004 – Benevento

Definizioni e Attributi

Page 8: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 829 Sett 2004 – Benevento

Definizioni e Attributi

Source File: ogni file che contiene codice Source Folder:ogni directory contenente almeno un source file

root

Level

Parent Folder

F1 F2

Folder Tree: rappresentazione grafica della struttura Level: sottoinsieme di nodi aventi la stessa distanza dal nodo root

Page 9: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 929 Sett 2004 – Benevento

Esempio di Folder Tree

Profondita’ (depth) = massima distanza

Ampiezza (width): massimo numero di folder in un livello

Page 10: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1029 Sett 2004 – Benevento

Evoluzioni possibili di un folder tree

Parent Folder

F1 F2

F3

Parent Folder

F1 F2[Espansione verticale]

Parent Folder

F1 F2 F3

[Espansione orizzontale]

Page 11: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1129 Sett 2004 – Benevento

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

Page 12: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1229 Sett 2004 – Benevento

Selezione dei progetti

Page 13: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1329 Sett 2004 – Benevento

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

Page 14: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1429 Sett 2004 – Benevento

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)

Page 15: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1529 Sett 2004 – Benevento

Initial Characterization (example 2)

Size medio dei source file dentro i source folder sta generalmente sotto un limite (20 Kb)

Page 16: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1629 Sett 2004 – Benevento

Identificazione e Analisi dei Pattern

Page 17: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1729 Sett 2004 – Benevento

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

Page 18: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1829 Sett 2004 – Benevento

Espansione orizzontale

Crescita costante dei source file Picchi di activity rate intorno alle release maggiori

Page 19: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 1929 Sett 2004 – Benevento

Riduzione verticale

Size stabile durante l’evoluzione Le modifiche sono diffuse e costanti nel 70% del sistema

Page 20: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 2029 Sett 2004 – Benevento

Espansione verticale

Periodi di crescita lineare e super-lineare Picchi di activity rate consistono di aggiunte piuttosto che modifiche

Page 21: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 2129 Sett 2004 – Benevento

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 evoluzioneRelazione tra quantita’ di modifiche e complessita’Astrazione qualitativa e simulazione

Page 22: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 2229 Sett 2004 – Benevento

Empirical

Evidence

Theories, Models

Good Practice

Conclusioni

Page 23: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 2329 Sett 2004 – Benevento

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

Page 24: Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,

AICA 2004 2429 Sett 2004 – Benevento

……domande?domande?