23. Cross-cutting changes
SELECT token_name, COUNT(DISTINCT element_id)
FROM cvs_tokens_method NATURAL JOIN cvs_revisions
WHERE token_type='M' AND change_type='CHG'
GROUP BY transaction_id, token_name
ORDER BY COUNT(DISTINCT element_id) DESC;
24. Cross-cutting changes
SELECT token_name, COUNT(DISTINCT element_id)
FROM cvs_tokens_method NATURAL JOIN cvs_revisions
WHERE token_type='M' AND change_type='CHG'
GROUP BY transaction_id, token_name
ORDER BY COUNT(DISTINCT element_id) DESC;
token_name count
getString 1462
lock 1284
unlock 1284
error 996
isValidWidget 988
25. Cross-cutting changes
SELECT token_name, COUNT(DISTINCT element_id)
FROM cvs_tokens_method NATURAL JOIN cvs_revisions
WHERE token_type='M' AND change_type='CHG'
GROUP BY transaction_id, token_name
ORDER BY COUNT(DISTINCT element_id) DESC;
token_name count
getString 1462
ASPECTS?
lock 1284
unlock 1284
error 996
isValidWidget 988
26. Cross-cutting changes
SELECT token_name, COUNT(DISTINCT element_id)
FROM cvs_tokens_method NATURAL JOIN cvs_revisions
WHERE token_type='M' AND change_type='CHG'
GROUP BY transaction_id, token_name
ORDER BY COUNT(DISTINCT element_id) DESC;
token_name count
getString 1462
SOON!
lock 1284
unlock 1284 HAM: Cross-Cutting
error 996 Concerns in Eclipse
isValidWidget 988
29. One line fixes
301 Expression
150 Method call
120 Literal (boundaries, constants)
Bug report: 119638 - Typo in ToolItem.getControl
73 Keyword (true/false confusion)
252c252
* the item when the items is a codeSEPARATOR/code.
--- 60 Operator
* the item when the item is a codeSEPARATOR/code
39 Identifier
39 Comment (!!)
30. Future work
• Capture the context of a change, e.g.,
within an if/while/switch expression.
• Integrate with dynamic analysis, i.e.,
signature in addition to handles.
• Package and ship APFEL.
31. Conclusion
• APFEL collects CVS and change data.
• APFEL supports software evolution research,
in particular early testing of hypotheses.
• http://www.st.cs.uni-sb.de/softevo/
32. Conclusion
• APFEL collects CVS and change data.
• APFEL supports software evolution research,
in particular early testing of hypotheses.
• http://www.st.cs.uni-sb.de/softevo/
MSR Challenge 2007