Assessing software systems

1,671 views

Published on

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

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,671
On SlideShare
0
From Embeds
0
Number of Embeds
168
Actions
Shares
0
Downloads
16
Comments
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. Significant 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 Significant Duplication AND Chain SEC > FEW Distance between clones is not more than a few lines of code LB quot; FEW Significant standalone exact clone SEC > AVERAGE(LOC/Operation) Significant OR Duplication 6 scu 200 Significant 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 flaws 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/

×