BCS SPA2017

Visualising Connascence to Drive Refactoring

Presentation (and maybe tutorial) showing new refactoring tools for Java based on connascence.

Presentation + Demos / Interac

Abstract

"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

  1. Robert Chatley
    Develogical Ltd
  2. Radu Gheorman
    Imperial College London
  3. Kevin Rutherford
    The XP Surgery