Successfully reported this slideshow.
Upcoming SlideShare
×

# SATT: Tailoring Code Metric Thresholds for Different Software Architectures (SCAM 2016)

449 views

Published on

Presentation at SCAM 2016 in Raleigh, USA

Published in: Technology
• Full Name
Comment goes here.

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

• Be the first to like this

### SATT: Tailoring Code Metric Thresholds for Different Software Architectures (SCAM 2016)

1. 1. SATT: Tailoring Code Metric Thresholds for Different Software Architectures 1 Maurício Aniche, Christoph Treude, Andy Zaidman, Arie van Deursen, Marco Gerosa @mauricioaniche, @ctreude, @azaidman, @avandeursen, @gerosa_marco
2. 2. Medical Exams SCAM 2016 2
3. 3. SCAM 2016 3 Sugar level 150 [70,120]
4. 4. SCAM 2016 4 Coupling 10 < 15 How to find this number?
5. 5. SCAM 2016 5 Benchmarking
6. 6. 1. order by metric value SCAM 2016 6
7. 7. 1. order by metric value 2. weight SCAM 2016 7
8. 8. 1. order by metric value 2. weight SCAM 2016 8 LOC=100
9. 9. 1. order by metric value 2. weight SCAM 2016 9 LOC=100 LOC=200
10. 10. 1. order by metric value 2. weight SCAM 2016 10 100,000 LOC LOC=100 LOC=200
11. 11. 1. order by metric value 2. weight SCAM 2016 11 100,000 LOC LOC=100 0.001% LOC=200 3. weight aggregation
12. 12. 1. order by metric value 2. weight SCAM 2016 12 100,000 LOC LOC=100 0.001% LOC=200 0.002% 3. weight aggregation
13. 13. 1. order by metric value 2. weight SCAM 2016 13 100,000 LOC LOC=100 0.001% LOC=200 0.002%+0.001% 3. weight aggregation
14. 14. 1. order by metric value 2. weight SCAM 2016 14 100,000 LOC LOC=100 0.001% LOC=200 0.003% 3. weight aggregation
15. 15. 1. order by metric value 2. weight SCAM 2016 15 100,000 LOC 3. weight aggregation 0% 100%
16. 16. 0% 10% 30% 70% 80% 90% 100% SCAM 2016 16 1. order by metric value 2. weight 3. weight aggregation
17. 17. 4. extract thresholds from metric values where aggregated weight is 70%, 80% and 90% 0% 10% 30% 70% 80% 90% 100% SCAM 2016 17 1. order by metric value 2. weight 3. weight aggregation
18. 18. SCAM 2016 18
19. 19. Benchmark in Controllers 19
20. 20. Benchmark in Controllers SCAM 2016 20
21. 21. That’s not what we want SCAM 2016 21
22. 22. SCAM 2016 22 Quantiles Coupling (CBO)
23. 23. SATT for the rescue SCAM 2016 23
24. 24. SCAM 2016 24
25. 25. Controllers Other classes SCAM 2016 25
26. 26. 1. order by metric value SCAM 2016 26
27. 27. 1. order by metric value only controllers SCAM 2016 27
28. 28. 1. order by metric value 2. aggregate the weight 0% 10% 30% 70% 80% 90% 100% SCAM 2016 28
29. 29. 1. order by metric value 2. aggregate the weight 3. extract thresholds from metric values where aggregated weight is 70%, 80% and 90% 0% 10% 30% 70% 80% 90% 100% SCAM 2016 29
30. 30. Our studySCAM 2016 30
31. 31. projects’ sample SCAM 2016 31
32. 32. CK metrics SCAM 2016 32
33. 33. RQ1. What differences in metric values distributions does SATT find for common architectural styles such as MVC? SCAM 2016 33
34. 34. RQ2. Can the differences in distributions thus found be explained from the architectural constraints imposed on classes fulfilling dedicated architectural roles? SCAM 2016 34
35. 35. RQ3. What impact do these differences have on the use of thresholds for quality assessments? SCAM 2016 35
36. 36. Differences! SCAM 2016 36
37. 37. RQ1. The approach indeed finds architectural roles that present significantly higher (or lower) values for certain metrics when compared to other classes. SCAM 2016 37
38. 38. We talked to experts SCAM 2016 38
39. 39. SCAM 2016 39 “Controllers are coupled to the framework while Services are coupled to domain objects.” “Entities contain getters and setters”
40. 40. RQ2. Experts considered most of the differences in metric values for architectural roles to be coherent. Their key explanation is that architectural roles have specific responsibilities. SCAM 2016 40
41. 41. SCAM 2016 41
42. 42. SCAM 2016 42
43. 43. SCAM 2016 43
44. 44. SCAM 2016 44
45. 45. RQ3. The state-of-art approach tends to return doubtful results for architectural roles that have metric values distribution significantly different from other classes. Our approach improves it by using the architectural role’s metric values distribution to define thresholds. SCAM 2016 45
46. 46. Same for Android! SCAM 2016 46
47. 47. SCAM 2016 + ICSME 2016 = SCAM 2016 47
48. 48. • Benchmark-based assessment techniques do not take the architectural role of a class into consideration. • SATT provides a specific threshold for an architectural role when its metric values are significantly different from other classes. • The approach seems to provide better results in these cases. SCAM 2016 48
49. 49. SATT: Tailoring Code Metric Thresholds for Different Software Architectures 49 Maurício Aniche, Christoph Treude, Andy Zaidman, Arie van Deursen, Marco Gerosa @mauricioaniche, @ctreude, @azaidman, @avandeursen, @gerosa_marco