School of Computing

Refactoring Support for Modularity Maintenance in Erlang

Huiqing Li and Simon Thompson

In Jurgen Vunju and Cristina Marinescu, editors, Tenth IEEE International Working Conference on Source Code Analysis and Manipulation, pages 182-196. IEEE Computer Society, September 2010.

Abstract

Low coupling between modules and high cohesion inside each module are the key features of good software architecture. Systems written in modern programming languages generally start with some reasonably well-designed module structure; however with continuous feature additions, modifications and bug fixes, software modularity gradually deteriorates; and there is a need for incrementally improving modularity to avoid the situation when the structure of the system becomes too complex to maintain.

We demonstrate how Wrangler, a general-purpose refactoring tool for Erlang, could be used to maintain and improve the modularity of programs written in Erlang without dramatically changing the existing module structure. We identify a set of "modularity smells" and show how they can be detected by Wrangler and removed by way of a variety of refactorings implemented in Wrangler. Validation of the approach and usefulness of the tool are demonstrated by case studies.

Download publication 352 kbytes (PDF)

Bibtex Record

@inproceedings{3040,
author = {Huiqing Li and Simon Thompson},
title = {{Refactoring Support for Modularity Maintenance in Erlang}},
month = {September},
year = {2010},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {http://www.cs.kent.ac.uk/pubs/2010/3040},
    publication_type = {inproceedings},
    submission_id = {26538_1284466388},
    ISBN = {978-0-7695-4178-5},
    booktitle = {Tenth IEEE International Working Conference on Source Code Analysis and Manipulation},
    editor = {Jurgen Vunju and Cristina Marinescu},
    publisher = {IEEE Computer Society},
    refereed = {yes},
}

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014