Visualising Connascence to Drive Refactoring
Presentation (and maybe tutorial) showing new refactoring tools for Java based on connascence.
Presentation + Demos / InteracAbstract
"Connascence is a way of describing the coupling between different parts of a codebase. And because it classifies the relative strength of that coupling, connascence can be used as a tool to help prioritise what should be refactored first." [1]
Recently (particularly through the work of Kevin Rutherford) connascence in code (as originally described by Page-Jones) has become a topic of discussion and a mental device to help us think about and prioritise refactoring.
Can we build automated tool support for this? If we could, how could that help us to identify different types of coupling and possible refactoring targets in our code?
This talk (and hopefully exercises) will present our latest work on extending the ideas of Rutherford and Page-Jones and implementing tools to help developers. Helping them to navigate, assess and refactor Java code by identifying and visualising connascence.
This is a different and separate proposal from the "Red, Green, then What?" proposal that is also submitted to SPA. The sessions have different leaders, but we believe that they could make a good pairing.
N.B. This is work in progress (contributing towards a Masters thesis project), and so at the time of writing this proposal, the tools are not in a completed state - however by the time of the conference we are confident of having some results to present.
[1] https://silkandspinach.net/2015/01/22/connascence-of-value/
Audience background
Developers and Architects
Benefits of participating
Learn about connascence, and see how tooling can help us use it as a refactoring lever.
Materials provided
Presentation and (hopefully) a tool to try.
Process
Mostly a presentation. Minimally there will be demos, hopefully with some interactive element through mob-programming or pair programmed exercises.
Detailed timetable
This is a relatively short session, so probably a 75 min slot would be best, but if both are accepted it would be good to coordinate the schedule with "Red, Green, then what?"
Suggested timetable:
00:00 - 00:30 - Presentation of ideas and techniques
00:30 - 01:00 - Working on exercises using connascence-based tools to direct refactoring, either in pairs, or maybe better as a mob to save on potential problems of downloading and installing tools on all laptops
01:00 - 01:15 - Discussion of the approach, potential improvements, wrap-up
Outputs
Article online, code on GitHub.
History
New session.
Presenters
- Robert Chatley
Develogical Ltd - Radu Gheorman
Imperial College London - Kevin Rutherford
The XP Surgery