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

Post on 02-May-2015

214 views 0 download

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?