Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing...
-
Upload
demetrio-palma -
Category
Documents
-
view
214 -
download
0
Transcript of Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing...
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
AICA 2004 229 Sett 2004 – Benevento
Outline
Motivazione Definizioni e Attributi Selezione dei progetti Open Source Identificazione e Analisi di Pattern Conclusioni
AICA 2004 329 Sett 2004 – Benevento
Motivazioni
AICA 2004 429 Sett 2004 – Benevento
Empirical
Evidence
Theories, Models
Good Practice
Motivation
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}
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
AICA 2004 729 Sett 2004 – Benevento
Definizioni e Attributi
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
AICA 2004 929 Sett 2004 – Benevento
Esempio di Folder Tree
Profondita’ (depth) = massima distanza
Ampiezza (width): massimo numero di folder in un livello
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]
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
AICA 2004 1229 Sett 2004 – Benevento
Selezione dei progetti
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
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)
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)
AICA 2004 1629 Sett 2004 – Benevento
Identificazione e Analisi dei Pattern
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
AICA 2004 1829 Sett 2004 – Benevento
Espansione orizzontale
Crescita costante dei source file Picchi di activity rate intorno alle release maggiori
AICA 2004 1929 Sett 2004 – Benevento
Riduzione verticale
Size stabile durante l’evoluzione Le modifiche sono diffuse e costanti nel 70% del sistema
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
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
AICA 2004 2229 Sett 2004 – Benevento
Empirical
Evidence
Theories, Models
Good Practice
Conclusioni
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
AICA 2004 2429 Sett 2004 – Benevento
……domande?domande?