mining architectural decisions - ecsa 2013

22
MINING DESIGN DECISIONS JAN SALVADOR VAN DER VEN, JAN BOSCH UNIVERSITY OF GRONINGEN, CHALMERS @SALVADORVEN, @JANBOSCH

Upload: salvadorven

Post on 05-Jul-2015

145 views

Category:

Technology


0 download

DESCRIPTION

The slides from my presentation at ECSA 2013

TRANSCRIPT

Page 1: Mining Architectural Decisions - ECSA 2013

MINING DESIGN DECISIONS JAN SALVADOR VAN DER VEN, JAN BOSCH

UNIVERSITY OF GRONINGEN, CHALMERS @SALVADORVEN, @JANBOSCH

Page 2: Mining Architectural Decisions - ECSA 2013

ARCHITECTURAL DESIGN DECISIONS

Page 3: Mining Architectural Decisions - ECSA 2013

ADDS OFTEN BASED ON OPINIONS & ANECDOTES

Page 4: Mining Architectural Decisions - ECSA 2013

CAN WE RECYCLE DECISIONS?

Page 5: Mining Architectural Decisions - ECSA 2013

LOOKING FOR STATISTICS

Page 6: Mining Architectural Decisions - ECSA 2013

GITHUB.COM

4.6 Million repositories

Page 7: Mining Architectural Decisions - ECSA 2013

MINING

Page 8: Mining Architectural Decisions - ECSA 2013

FOCUS: ARCHITECTURAL DESIGN DECISIONS THAT INVOLVE COMPONENT SELECTION

Page 9: Mining Architectural Decisions - ECSA 2013

GIT: COMPLETE REPOSITORY

HISTORY

Page 10: Mining Architectural Decisions - ECSA 2013

LOCATING RUBY COMPONENTS: GEMFILE

Page 11: Mining Architectural Decisions - ECSA 2013

CHANGES PER LINE

Page 12: Mining Architectural Decisions - ECSA 2013

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)

Page 13: Mining Architectural Decisions - ECSA 2013

AUTOMATED PROCESSING

REPOREPO

REPO

COMMITCOMMIT

COMMIT

REPO

COMMIT

GITMINER

GITMINER WEB INTERFACE

GITMINER RELATIONSHIP

VISUALIZER

GITHUB.COM

CHANGE + CHANGE +CHANGE - /+

Page 14: Mining Architectural Decisions - ECSA 2013

Commit

Commit Commit

WHAT ARE WE LOOKING FOR?

+ Line - Line

+ LineA

- LineB

Page 15: Mining Architectural Decisions - ECSA 2013

GITMINER WEB INTERFACE: REMOVED COMPONENTS

Page 16: Mining Architectural Decisions - ECSA 2013

RELATIONSHIP VISUALIZER

Commit

+ LineA

- LineB

Page 17: Mining Architectural Decisions - ECSA 2013

RELATIONSHIP VISUALIZER

“use mysql2 instead of mysql because of shit

encoding”

Page 18: Mining Architectural Decisions - ECSA 2013

VALIDATION: DID WE FIND ADDS?

Qualitative: Exploring the data for decisions (anecdotic)

Quantitative: External expert decision identification (statistic)

Page 19: Mining Architectural Decisions - ECSA 2013

QUANTITATIVE RESULTS

Decisions Rationale Alternatives

~60% ~25% ~5%

Page 20: Mining Architectural Decisions - ECSA 2013

FUTURE WORK

•  Put it live for architects •  Extend # projects •  Use the data for decision

making!

Page 21: Mining Architectural Decisions - ECSA 2013

CONCLUSIONS

•  Architectural decisions can be recycled

•  Rationale minimal, but decision makers can be contacted

•  Architects can use this data for decision-making

Page 22: Mining Architectural Decisions - ECSA 2013

QUESTIONS?

https://github.com/jansalvador/gitminer/ Mail: mail@jansalvador or Twitter: @salvadorven