Diffusione e frammentazione degli MDD Tools a dicembre 2011

  • Stampa
  • E-mail
Mercoledì 04 Gennaio 2012

La suite MDD Tools per lo sviluppo in modalità Model Driven è in una fase di diffusione costantemente crescente e di continua evoluzione.

Come tutti gli strumenti in evoluzione è opportuno fare il punto della situazione per quanto riguarda la diffusione degli strumenti, con particolare attenzione agli inevitabili fenomeni di frammentazione (utilizzo di differenti versioni dello strumento in uno stesso periodo, nei vari progetti).

Segue un'analisi di questi aspetti. L'analisi prende in considerazione i progetti con attività nella finestra temporale luglio 2011 - dicembre 2011



Diffusione

I dati di diffusione degli MDD Tools sono interessanti.

Alcuni numeri:
  • numero di componenti MDD attivi:
    • totali:oltre 200
    • di tipo guigen: circa 70-80
    • di tipo servicegen: circa 70-80
    • di tipo datagen: circa 50-60

Nel grafico seguente si può notare l'andamento del numero di utilizzatori nel tempo (finestra temporale maggiore - dall'inizio del rilevamento tramite tracking):

grafico utilizzatori mdd



Frammentazione

Con il termine "frammentazione" si mira a valutare la distribuzione delle varie versioni di prodotto tra gli utilizzatori, in un determinato lasso temporale. Un elevato valore di frammentazione rappresenta un problema di gestione nell'evoluzione del prodotto, sia dal punto di vista della manutenzione/evoluzione, sia dal punto di vista del supporto all'utilizzo.
Nell'analisi seguente si analizza anche la presenza "in circolo" di versioni non "stable": una elevata presenza di tali versioni rappresenta un ulteriore aggravamento delle complicazioni di cui sopra.

Nei grafici seguenti è possibile verificare la distribuzione percentuale (in termini di utilizzi sui progetti) delle varie versioni dei singoli plugin. Poichè continuare ad utilizzare una versione "latest" in presenza della corrispondente versione "stable" è considerata una anomalia, nel conteggio le versioni latest sono assimilate alla corrispondente versione stabile.


GuiGen
frammentazione GuiGenDall'analisi dei dati si evince una buona penetrazione delle versioni minor più recenti: l'utilizzo delle versioni 1.6.x rappresenta circa l'89% dei casi mentre i restanti 9 progetti utilizzano la versione precedente (1.5.0). Le versioni precedenti alla 1.5.0 non sono tracciate in quanto non era ancora attivo il rilevamento dell utilizzo.

Focalizzandosi sulle versioni di fix rilasciate per il ramo 1.6.x, si evince un dato abbastanza positivo, poichè l'adozione delle fix più recenti è abbastanza buona, anche per release relativamente giovani (fine 2011).

Per quanto riguarda invece la presenza di versioni "latest" in presenza di versioni "stable" corrispondenti invece il dato è meno positivo: la tendenza a mantenere allineata la versione con quella più stabile è scarsa. Ad esempio per la v. 1.6.3 il rapporto tra utilizzi di versione 1.6.3 stable e 1.6.3 latest è di 1 a 3, mentre per la 1.6.1 (ormai stabile da tempo) il rapporto è di 1 a 2. Anche il numero delle versioni latest è elevato, confermando ulteriormente il problema. Si ricorda che il supporto all'utilizzo viene erogato solo sulle versioni stable.

In sintesi il possibile punto di miglioramento sul fronte guigen sta in due azioni che si raccomanda ai progetti di valutare:
  1. aggiornamento delle versioni latest alla versione stable corrispondente
  2. adozione dell'ultima fix disponibile, fissata la minor release


ServiceGen
frammentazione servicegenDall'analisi dei dati si evince una buona penetrazione delle versioni minor più recenti (cosiderato che la 1.2.0 è stata rilasciata a dicembre 2011): l'utilizzo della versione 1.2.o rappresenta già circa il'20% dei casi mentre il restante 80% è attestato sulla versione 1.1.x.

Focalizzandosi sulle versioni di fix rilasciate per il ramo 1.1.x, si evince un dato abbastanza positivo, poichè l'adozione delle fix più recenti è abbastanza buona.

Per quanto riguarda invece la presenza di versioni "latest" in presenza di versioni "stable" corrispondenti invece il dato è meno positivo: la tendenza a mantenere allineata la versione con quella più stabile è scarsa. Ad esempio per la v. 1.2.0 il rapporto tra utilizzi di versione 1.2.0 stable e 1.2.0 latest è di 1 a 1, mentre per la 1.1.1 (ormai stabile da tempo) il rapporto è di 1 a 2. Anche il numero delle versioni latest è elevato, confermando ulteriormente il problema. Si ricorda che il supporto all'utilizzo viene erogato solo sulle versioni stable.

In sintesi il possibile punto di miglioramento sul fronte guigen sta in due azioni che si raccomanda ai progetti di valutare:
  1. aggiornamento delle versioni latest alla versione stable corrispondente
  2. adozione dell'ultima fix disponibile, fissata la minor release


DataGen
frammentazione datagenDall'analisi dei dati si evince una buona penetrazione delle versioni minor più recenti (cosiderato che la 1.2.0 è stata rilasciata a dicembre 2011): l'utilizzo della versione 1.2.0 rappresenta già circa il'33% dei casi mentre il 57% è attestato sulla versione 1.1.x (e il restante 10% su versioni precedenti).

Focalizzandosi sulle versioni di fix rilasciate per il ramo 1.1.x, si evince un dato abbastanza positivo, poichè l'adozione delle fix più recenti è abbastanza buona (pur essendoci stata in realtà una sola release correttiva).

Per quanto riguarda invece la presenza di versioni "latest" in presenza di versioni "stable" corrispondenti invece il dato è meno positivo: la tendenza a mantenere allineata la versione con quella più stabile è scarsa. Il fenomeno è particolarmente evidente sulla versione 1.1.0, con un rapporto tra utilizzi di versione 1.1.0 stable e 1.1.0 latest è di 1 a 4. Anche il numero delle versioni latest è, in quel caso, elevato, confermando ulteriormente il problema. Si ricorda che il supporto all'utilizzo viene erogato solo sulle versioni stable.

In sintesi il possibile punto di miglioramento sul fronte guigen sta in due azioni che si raccomanda ai progetti di valutare:
  1. aggiornamento delle versioni latest alla versione stable corrispondente
  2. adozione dell'ultima fix disponibile, fissata la minor release



Conclusioni

Dall'analisi dei dati relativi ai tre tool emerge che il punto comune di miglioramento sta nella opportunità per i progetti di effettuare l'upgrade dalle versioni latest alle corrispondenti versioni stable. Tale aggiornamento è di interesse dei progetti in quanto è condizione necessaria per ottenere supporto e poter segnalare bug.

Al netto di questa "stabilizzazione", il fatto che le ultime versioni abbiano una diffusione abbastanza buona unita all'alto grado di retrocompatibilità che i tool conservano nella loro evoluzione permette di ipotizzare politiche di deprecation / end of life delle versioni precedenti non eccessivamente conservative.