7. read to understand
system of 1 million lines of source code
* 2 lines/second = 2 million seconds
/ 3600 seconds/hours = 560 hours
8. read to understand
system of 1 million lines of source code
* 2 lines/second = 2 million seconds
/ 3600 seconds/hours = 560 hours
/ 8 working hours/day = 70 days
9. read to understand
system of 1 million lines of source code
* 2 lines/second = 2 million seconds
/ 3600 seconds/hours = 560 hours
/ 8 working hours/day = 70 days
/ 20 working days/month = 3+ months
10. read != understand
system of 1 million lines of source code
* 2 lines/second = 2 million seconds
/ 3600 seconds/hours = 560 hours
/ 8 working hours/day = 70 days
/ 20 working days/month = 3+ months
11. read != understand
MLOC
system of 1 million lines of source code
* 2 lines/second = 2 million seconds
/ 3600 seconds/hours = 560 hours
/ 8 working hours/day = 70 days
/ 20 working days/month = 3+ months
1 million
12. read != understand
MLOC
17 million
system of 1 million lines of source code
* 2 lines/second = 2 million seconds
/ 3600 seconds/hours = 560 hours
/ 8 working hours/day = 70 days
/ 20 working days/month = 3+ months
2.5 million
1 million
24. the city metaphor
number of methods (NOM) height
number of attributes (NOA) base size
number of lines of code (LOC) color
class building
package district
25. the city metaphor
number of methods (NOM) height
number of attributes (NOA) base size
number of lines of code (LOC) color
class building
package district
nesting level color
50. consistent locality
city blueprint, based on the maximal
expansion of each artifact (building, district). Bar
Foo
A
version 1 version 2
Bar Bar
Foo Foo
A
51. consistent locality
city blueprint, based on the maximal
expansion of each artifact (building, district). Bar
Foo
A
version 1 version 2 version 3
Bar Bar
Foo Foo Foo
A A
52. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
53. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
54. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
55. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
56. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
57. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
58. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
59. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
60. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
61. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
62. time traveling example ArgoUML
10 releases, 7 years
0.10.1 0.12 0.14 0.16 0.18.1 0.20 0.22 0.24 0.26 0.28
2002 2003 2004 2005 2006 2007 2008 2009
71. age map patterns
age: 1 2 3 4 5 6 7 8
stable
highly unstable
rarely updated
very old old young
72. updated often,
age map patterns rather unstable
age: 1 2 3 4 5 6 7 8
stable
highly unstable
rarely updated
very old old young very old
73. time travel + age maps JHotDraw
8 samples, 3 years
October 2000
March 2001
September 2001
March 2002
August 2002
January 2003
July 2003
January 2004
74. time travel + age maps JHotDraw
8 samples, 3 years
October 2000
March 2001
September 2001
March 2002
August 2002
January 2003
July 2003
January 2004
75. time travel + age maps JHotDraw
8 samples, 3 years
October 2000
March 2001
September 2001
March 2002
August 2002
January 2003
July 2003
January 2004
76. time travel + age maps JHotDraw
8 samples, 3 years
October 2000
March 2001
September 2001
March 2002
August 2002
January 2003
July 2003
January 2004
77. time travel + age maps JHotDraw
8 samples, 3 years
October 2000
March 2001
September 2001
March 2002
August 2002
January 2003
July 2003
January 2004
78. time travel + age maps JHotDraw
8 samples, 3 years
October 2000
March 2001
September 2001
March 2002
August 2002
January 2003
July 2003
January 2004
79. time travel + age maps JHotDraw
8 samples, 3 years
October 2000
March 2001
September 2001
March 2002
August 2002
January 2003
July 2003
January 2004
80. time travel + age maps JHotDraw
8 samples, 3 years
October 2000
March 2001
September 2001
March 2002
August 2002
January 2003
July 2003
January 2004
85. code city timelines
m7
m6
m5
m3 ti me
m2
m1
isto ry
ve r s. 1 sh
c lass c las
86. code city timelines
m7
m6
m5 s. 2
m3 c lass
ver
ti me
m2
m1
isto ry
ve r s. 1 sh
c lass c las
87. code city timelines
m12
m11
m10
m9
m7
m6
m5 s. 2
m3 c lass
ver
ti me
m2
m1
isto ry
ve r s. 1 sh
c lass c las
88. code city timelines
m12
m11
m10
m9
m7
m6
m5 s. 2
m3 c lass
ver
ti me
m2
m1
isto ry
ve r s. 1 sh
c lass c las
89. code city timelines
m12
m11
m10
m9
m7 ve r s. 3
c lass
m6
m5 s. 2
m3 c lass
ver
ti me
m2
m1
isto ry
ve r s. 1 sh
c lass c las
90. code city timelines m17
m18
m15 m14
m13
m12
m11
m10
m9
m7 ve r s. 3
c lass
m6
m5 s. 2
m3 c lass
ver
ti me
m2
m1
isto ry
ve r s. 1 sh
c lass c las
91. code city timelines m17
m18
m15 m14
m13
m12
m11
m10
m9
m7 ve r s. 3
m2 c lass
m6
m5 s. 2
m3 c lass
ver
ti me
m2
m1
isto ry
ve r s. 1 sh
c lass c las
113. able to visualize Java, C/C++, C#, Smalltalk systems
portable
3’500 downloads (March 2008 - January 2010)
114. able to visualize Java, C/C++, C#, Smalltalk systems
portable
3’500 downloads (March 2008 - January 2010)
freely available at: codecity.inf.usi.ch
http://
I sistemi software diventano sempre grandi e piu complessi, perche sono sottoposti al processo d’evoluzione. In piu se dovessemo imparare come e arrivato un sistema al suo stato attuale, dobbiamo aggiungere anche la dimensione temporale, e questo rende ancora piu difficile la comprensione del sistema.
I sistemi software diventano sempre grandi e piu complessi, perche sono sottoposti al processo d’evoluzione. In piu se dovessemo imparare come e arrivato un sistema al suo stato attuale, dobbiamo aggiungere anche la dimensione temporale, e questo rende ancora piu difficile la comprensione del sistema.
I sistemi software diventano sempre grandi e piu complessi, perche sono sottoposti al processo d’evoluzione. In piu se dovessemo imparare come e arrivato un sistema al suo stato attuale, dobbiamo aggiungere anche la dimensione temporale, e questo rende ancora piu difficile la comprensione del sistema.
Uno dei problemi maggiori per noi e il fatto che il software non ha una forma o una dimensione fisica, e questo e un problema perche...
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
La mia visione e dunque di visualizzare i sistemi software rapresentandoli tramitte una metafora della cita: la citta del codice
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
Questa metafora le classi sono rappresentati dai edifici della città, mentre i mo`duli del sistema sono i quartieri della cita. Le proprietà visibile dei artefatti della città dimostrano le proprietà delle entità software, le cosiddette metriche software: la altezza di un edificio esprima il numero di metodi della classe in cause, mentre la larghezza della sua base esprima il numero di attributi della classe. I colori dei edifici ci mostrano il numero di righe di codice sorgente (grigio - poche, blue intenso - tante), mentre i colori dei quartieri variano secondo la profondità nella gerarchia di mo`duli.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
... noi, come esseri umani, ci basiamo tanto sulla visione per capire il mondo intorno a loro, sin dall’inizio della vita. Per questa raggione, io credo che una rappresentazione toccabile dei sistemi software ci offre una modalita di raggionare su di loro e un punto in comune condiviso dai sviluppatori.
Ottenere una vista generale del sistema e un grande vantaggio. E noi abbiamo iniziato con la visualisazione di una singola versione di un sistema: la versione corrente.
Ecco una prima cita del codice, quella del sistema ArgoUML. E gia possiamo identificare un paio di tipologie degli edifici, formate dalle diverse combinazioni dei valori delle metriche. Ci sono edifici d’impresa, grattacieli, posteggi, o delle case picole.
Ecco una prima cita del codice, quella del sistema ArgoUML. E gia possiamo identificare un paio di tipologie degli edifici, formate dalle diverse combinazioni dei valori delle metriche. Ci sono edifici d’impresa, grattacieli, posteggi, o delle case picole.
Ecco una prima cita del codice, quella del sistema ArgoUML. E gia possiamo identificare un paio di tipologie degli edifici, formate dalle diverse combinazioni dei valori delle metriche. Ci sono edifici d’impresa, grattacieli, posteggi, o delle case picole.
Ecco una prima cita del codice, quella del sistema ArgoUML. E gia possiamo identificare un paio di tipologie degli edifici, formate dalle diverse combinazioni dei valori delle metriche. Ci sono edifici d’impresa, grattacieli, posteggi, o delle case picole.
Ecco una prima cita del codice, quella del sistema ArgoUML. E gia possiamo identificare un paio di tipologie degli edifici, formate dalle diverse combinazioni dei valori delle metriche. Ci sono edifici d’impresa, grattacieli, posteggi, o delle case picole.
Ecco una prima cita del codice, quella del sistema ArgoUML. E gia possiamo identificare un paio di tipologie degli edifici, formate dalle diverse combinazioni dei valori delle metriche. Ci sono edifici d’impresa, grattacieli, posteggi, o delle case picole.
Ecco una prima cita del codice, quella del sistema ArgoUML. E gia possiamo identificare un paio di tipologie degli edifici, formate dalle diverse combinazioni dei valori delle metriche. Ci sono edifici d’impresa, grattacieli, posteggi, o delle case picole.
Ecco una prima cita del codice, quella del sistema ArgoUML. E gia possiamo identificare un paio di tipologie degli edifici, formate dalle diverse combinazioni dei valori delle metriche. Ci sono edifici d’impresa, grattacieli, posteggi, o delle case picole.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Ed ecco solo un piccolo “sample” sistemi che abbiamo visualizzato, sistemi scritti in diversi linguaggi di programmazione. Vi invito a osservare come e unica la struttura di ogni cita del codice, perche rifletta la struttura e le caratteristiche del sistema rappresentato. Ecco anche un sistema C++, abbastanza massicio. E da qui comminciano i sistemi Java, di quale probabilmente riconoscerete un paio.
Se dovessemo prendere in calcolo le proporzioni reali tra le dimensioni di questi sistemi, la vista generale e un po diversa...
Anche se la versione corrente e la piu importante, analizando il passato del sistema, la sua evoluzione, ci fa capire meglio come e arrivato alla forma in quale si trova oggi.
Per capire meglio cosa vedremo durante il viaggio nel tempo, ecco i principi.
Per capire meglio cosa vedremo durante il viaggio nel tempo, ecco i principi.
Per capire meglio cosa vedremo durante il viaggio nel tempo, ecco i principi.
Per capire meglio cosa vedremo durante il viaggio nel tempo, ecco i principi.
Per capire meglio cosa vedremo durante il viaggio nel tempo, ecco i principi.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
CodeCity ha anche una machina del tempo, che ci permette di viaggiare nella evoluzione del sistema e vedere come si cambia la citta del codice.
Dipendendo al nostro interesso, possiamo aumentare il livello di detaglio (la granularità) in CodeCity, per poter vedere anche i metodi delle classi.
Dipendendo al nostro interesso, possiamo aumentare il livello di detaglio (la granularità) in CodeCity, per poter vedere anche i metodi delle classi.
Dipendendo al nostro interesso, possiamo aumentare il livello di detaglio (la granularità) in CodeCity, per poter vedere anche i metodi delle classi.
Le mappe della eta mostrano l’eta degli elementi del sistema, tramite il colore. La scala cromatica varia tra giallo chiaro (per elementi appena creati) e blu scurro (per elementi vecchi come il sistema stesso).
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Combinando le due tecniche presentate prima, otteniamo una interessante visualizzazione che ci mostra come il sistema diventa vecchio
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.
Utilizando sempre la granularità fine, si puo anche vedere in una vista tutta la evoluzione di una parte del sistema, come una classe o un intero pacheto.