Upcoming SlideShare
×

# Assessing software systems

1,671 views

Published on

I used this set of slides in a presentation I gave to an engineering audience.

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
1,671
On SlideShare
0
From Embeds
0
Number of Embeds
168
Actions
Shares
0
16
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Assessing software systems

1. 1. Assessing software systems Tudor Gîrba www.tudorgirba.com
2. 2. 2002
3. 3. PhD 2002 2005
4. 4. PhD PostDoc 2002 2005 2009
5. 5. PhD PostDoc 2002 2005 2009 Consultant .ch eng ww.sw- w
6. 6. } } { { } } { { g in er ne gi en d ar rw fo
7. 7. fo rw ar d en gi ne er in g { { { { { { } { { actual development } } } } } } } } {
8. 8. fo rw g rin ar ee d en in ng gi ne ee er rs in ve g re { { { { { { } { { actual development } } } } } } } } {
9. 9. { { { { complex } = } } } } {
10. 10. complex, large { { { { } = } } } } {
11. 11. = 250’000 lines of code
12. 12. = 250’000 lines of code * 2 = 500’000 seconds
13. 13. = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~
14. 14. = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~ / 8 ~ 18 days
15. 15. = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~ / 8 ~ 18 days / 20 ~ 1 month
16. 16. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
17. 17. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
18. 18. Metric Value LOC 148‘760 NOM 14‘915 NOC 2’089 CYCLO 30‘073 CALLS 151287 FANOUT 85909 AHH 0.12 ... ...
19. 19. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
20. 20. A God Class centralizes too much intelligence Class uses directly more than a few attributes of other classes ATFD > FEW Functional complexity of the class is very high AND GodClass WMC ! VERY HIGH Class cohesion is low TCC < ONE THIRD 6 scu 200 Marine Lanza,
21. 21. Signiﬁcant duplication goes beyond just one line Duplication chain has at least a size of two relevant exact clones SDC ! 2x(FEW+1)+1 Exact clones are longer than a few lines of code Signiﬁcant Duplication AND Chain SEC > FEW Distance between clones is not more than a few lines of code LB quot; FEW Signiﬁcant standalone exact clone SEC > AVERAGE(LOC/Operation) Signiﬁcant OR Duplication 6 scu 200 Signiﬁcant Duplication Chain Marine Lanza,
22. 22. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
23. 23. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
24. 24. How do programs look like today?
25. 25. A picture tells a thousand words
26. 26. proximity
27. 27. enclosure
28. 28. connectivity
29. 29. similarity
30. 30. closure
31. 31. continuity
32. 32. A picture tells a thousand words
33. 33. es tell a ot all ords pictur N usand w tho
34. 34. System Complexity shows class hierarchies 03 asse 20 uc anza, D L
35. 35. Distribution Map shows properties over structure Ducass e etal 200 6
36. 36. Feature Map relates features to packages 7 etal 200 Greevy
37. 37. CodeCity shows where your code lives 7 nza 200 La Wettel,
38. 38. and where your ﬂaws live 8 0 ettel 20 W
39. 39. Duplications shown side by side
40. 40. fo rw g rin ar ee d en in ng gi ne ee er rs in ve g re { { { { { { } { { actual development } } } } } } } } {
41. 41. { { } } } { { { } } re ve rs ee ng in ee rin g reverse engineering fo actual development rw ar d en gi ne er in g { { } } { { } }
42. 42. Hierarchy Evolution reveals evolution patterns 5 etal 200 Girba
43. 43. Ownership Map reveals patterns in CVS 5 etal 200 Girba
44. 44. Clone Evolution shows who copied from whom 6 etal 200 Balint
45. 45. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
46. 46. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
47. 47. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
48. 48. e.ch unib se. o mo
49. 49. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
50. 50. ment is assess oftware S cy tools han fan ore t m
51. 51. McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
52. 52. Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/