Lightning talk: Software Archaeology conference report
-
Upload
rachel-davies -
Category
Technology
-
view
253 -
download
1
description
Transcript of Lightning talk: Software Archaeology conference report
![Page 1: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/1.jpg)
TICOSA!The International Conference Of
Software Archaeology ticosa.org #ticosa
![Page 2: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/2.jpg)
Turbulence
https://github.com/michaelfeathers/delta-‐flora https://github.com/chad/turbulence @mfeathers
![Page 3: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/3.jpg)
Changes per time of day
![Page 4: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/4.jpg)
![Page 5: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/5.jpg)
Visualising Code History
https://github.com/dkandalov/code-‐history-‐mining @dmitrykandalov
![Page 6: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/6.jpg)
Files Changed in Same Commit
https://github.com/dkandalov/code-‐history-‐mining @dmitrykandalov
![Page 7: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/7.jpg)
Shotgun Surgery
set of classes that get modified at same time
![Page 8: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/8.jpg)
Closure & Active Working Set
• Open-‐Closed Principle (OCP) in action – code that doesn’t change that often
• Bringing to closure reduces active set of classes
• Evidence of Shotgun Surgery –set of classes that get modified at same time
![Page 9: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/9.jpg)
![Page 10: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/10.jpg)
Relation of Complexity to Tests
• Complexity is the lower bound of number of tests to write.
For a codebase with 5:1 of lines of code to complexity. Every 5 lines is a conditional, every 5 lines demands another test.
![Page 11: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/11.jpg)
TDD and Cyclomatic Complexity
![Page 12: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/12.jpg)
Inferences
Where α is distribution of complexity per method • Highest α: TDD • Higher α: automated tests • Lower α: no tests • Where does the complexity go?
– Interactions between classes becomes more complex – Classes may be more tightly coupled
http://www.infoq.com/presentations/measure-‐for-‐measure http://cumulative-‐hypotheses.org/tag/complexity/
@keithb_b
![Page 13: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/13.jpg)
WILT • Whitespace Integrated over Lines of Text
@robsmallshire
![Page 14: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/14.jpg)
Refactoring Analogy
![Page 15: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/15.jpg)
% Time spent refactoring Cucumber
@mattwynne https://github.com/cucumber/cucumber-‐ruby-‐core
![Page 16: Lightning talk: Software Archaeology conference report](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b6ba4c4a79592f7a8b457f/html5/thumbnails/16.jpg)
Visualising