Assessing software systems
-
Upload
tudor-girba -
Category
Education
-
view
1.473 -
download
1
description
Transcript of Assessing software systems
![Page 1: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/1.jpg)
Tudor Gîrbawww.tudorgirba.com
Assessing software systems
![Page 2: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/2.jpg)
2002
![Page 3: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/3.jpg)
PhD
2002 2005
![Page 4: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/4.jpg)
PhD
2002 2005 2009
PostDoc
![Page 5: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/5.jpg)
PhD
2002 2005 2009
PostDoc
Consultant
www.sw-eng.ch
![Page 6: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/6.jpg)
forward engineering
}
{
}
{
}
{
}
{
![Page 7: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/7.jpg)
forward engineering
actual development}
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
![Page 8: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/8.jpg)
forward engineering
actual development}
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
reve
rse e
ngin
eerin
g
![Page 9: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/9.jpg)
= complex }
{
}
{
}
{}
{
}
{
![Page 10: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/10.jpg)
= complex, large}
{
}
{
}
{}
{
}
{
![Page 11: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/11.jpg)
![Page 12: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/12.jpg)
= 250’000 lines of code
![Page 13: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/13.jpg)
= 250’000 lines of code
* 2 = 500’000 seconds
![Page 14: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/14.jpg)
= 250’000 lines of code
* 2 = 500’000 seconds
/ 3600 ~ 140 hours
![Page 15: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/15.jpg)
= 250’000 lines of code
* 2 = 500’000 seconds
/ 3600 ~ 140 hours
/ 8 ~ 18 days
![Page 16: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/16.jpg)
= 250’000 lines of code
* 2 = 500’000 seconds
/ 3600 ~ 140 hours
/ 8 ~ 18 days
/ 20 ~ 1 month
![Page 17: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/17.jpg)
}
{
}
{
}
{}
{
}
{
...McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
![Page 18: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/18.jpg)
}
{
}
{
}
{}
{
}
{
...McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
![Page 19: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/19.jpg)
Metric ValueLOC 148‘760
NOM 14‘915
NOC 2’089
CYCLO 30‘073
CALLS 151287
FANOUT 85909
AHH 0.12
... ...
![Page 20: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/20.jpg)
}
{
}
{
}
{}
{
}
{
...McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
![Page 22: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/22.jpg)
Lanza, Marinescu 2006
A God Class centralizes too much intelligence
ATFD > FEW
Class uses directly more than a
few attributes of other classes
WMC ! VERY HIGH
Functional complexity of the
class is very high
TCC < ONE THIRD
Class cohesion is low
AND GodClass
![Page 23: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/23.jpg)
Lanza, Marinescu 2006
Significant duplication goes beyond just one line
Significant Duplication
Chain
SDC ! 2x(FEW+1)+1
Duplication chain has at least a
size of two relevant exact clones
SEC > FEW
Exact clones are longer than a
few lines of code
LB " FEW
Distance between clones is not
more than a few lines of code
AND
Significant
Duplication
SEC > AVERAGE(LOC/Operation)
Significant standalone
exact clone
Significant Duplication Chain
OR
![Page 24: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/24.jpg)
}
{
}
{
}
{}
{
}
{
...McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
![Page 25: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/25.jpg)
}
{
}
{
}
{}
{
}
{
...McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
![Page 26: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/26.jpg)
![Page 27: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/27.jpg)
![Page 28: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/28.jpg)
How do programs look like today?
![Page 29: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/29.jpg)
A picture tells
a thousand words
![Page 30: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/30.jpg)
proximity
![Page 31: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/31.jpg)
enclosure
![Page 32: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/32.jpg)
connectivity
![Page 33: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/33.jpg)
similarity
![Page 34: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/34.jpg)
closure
![Page 35: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/35.jpg)
continuity
![Page 36: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/36.jpg)
A picture tells
a thousand words
![Page 37: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/37.jpg)
![Page 38: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/38.jpg)
Not all pictures tell a
thousand words
![Page 39: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/39.jpg)
System Complexity shows class hierarchies
Lanza, Ducasse 2003
![Page 40: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/40.jpg)
Ducasse etal 2006
Distribution Mapshows propertiesover structure
![Page 41: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/41.jpg)
Greevy etal 2007
Feature Map relates features to packages
![Page 42: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/42.jpg)
Wettel, Lanza 2007
CodeCity shows where your code lives
![Page 43: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/43.jpg)
Wettel 2008
and where your flaws live
![Page 44: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/44.jpg)
Duplications shown side by side
![Page 45: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/45.jpg)
forward engineering
actual development}
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
reve
rse e
ngin
eerin
g
![Page 46: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/46.jpg)
forward engineering
actual development}
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
reve
rse e
ngin
eerin
g
reve
rse
engi
neer
ing
![Page 47: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/47.jpg)
Girba etal 2005
Hierarchy Evolution reveals evolution patterns
![Page 48: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/48.jpg)
Girba etal 2005
Ownership Map reveals patterns in CVS
![Page 49: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/49.jpg)
Balint etal 2006
Clone Evolution shows who copied from whom
![Page 50: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/50.jpg)
}
{
}
{
}
{}
{
}
{
...McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
![Page 51: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/51.jpg)
}
{
}
{
}
{}
{
}
{
...McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
![Page 52: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/52.jpg)
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
...
![Page 53: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/53.jpg)
moose.unibe.ch
![Page 54: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/54.jpg)
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
...
![Page 55: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/55.jpg)
Software assessment is
more than fancy tools
![Page 56: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/56.jpg)
}
{
}
{
}
{}
{
}
{
...McCabe = 21
LOC = 75
3,000
NOM = 102classes select: #isGod
![Page 57: Assessing software systems](https://reader035.fdocuments.in/reader035/viewer/2022081401/557d542cd8b42ae71a8b541a/html5/thumbnails/57.jpg)
Tudor Gîrbawww.tudorgirba.com
creativecommons.org/licenses/by/3.0/