mining architectural decisions - ecsa 2013
DESCRIPTION
The slides from my presentation at ECSA 2013TRANSCRIPT
MINING DESIGN DECISIONS JAN SALVADOR VAN DER VEN, JAN BOSCH
UNIVERSITY OF GRONINGEN, CHALMERS @SALVADORVEN, @JANBOSCH
ARCHITECTURAL DESIGN DECISIONS
ADDS OFTEN BASED ON OPINIONS & ANECDOTES
CAN WE RECYCLE DECISIONS?
LOOKING FOR STATISTICS
GITHUB.COM
4.6 Million repositories
MINING
FOCUS: ARCHITECTURAL DESIGN DECISIONS THAT INVOLVE COMPONENT SELECTION
GIT: COMPLETE REPOSITORY
HISTORY
LOCATING RUBY COMPONENTS: GEMFILE
CHANGES PER LINE
USED DATA
# Projects 710
Total Commits 12600
Total Changed Lines 40464
Used (>1 watcher, >1 fork) Active (change in last month) Moderate size (between 0,3 and 10Mb)
AUTOMATED PROCESSING
REPOREPO
REPO
COMMITCOMMIT
COMMIT
REPO
COMMIT
GITMINER
GITMINER WEB INTERFACE
GITMINER RELATIONSHIP
VISUALIZER
GITHUB.COM
CHANGE + CHANGE +CHANGE - /+
Commit
Commit Commit
WHAT ARE WE LOOKING FOR?
+ Line - Line
+ LineA
- LineB
GITMINER WEB INTERFACE: REMOVED COMPONENTS
RELATIONSHIP VISUALIZER
Commit
+ LineA
- LineB
RELATIONSHIP VISUALIZER
“use mysql2 instead of mysql because of shit
encoding”
VALIDATION: DID WE FIND ADDS?
Qualitative: Exploring the data for decisions (anecdotic)
Quantitative: External expert decision identification (statistic)
QUANTITATIVE RESULTS
Decisions Rationale Alternatives
~60% ~25% ~5%
FUTURE WORK
• Put it live for architects • Extend # projects • Use the data for decision
making!
CONCLUSIONS
• Architectural decisions can be recycled
• Rationale minimal, but decision makers can be contacted
• Architects can use this data for decision-making
QUESTIONS?
https://github.com/jansalvador/gitminer/ Mail: mail@jansalvador or Twitter: @salvadorven