Refactoring TuCSoN/ReSpecT source code and development process

Enrico Siboni  •  Nicola Piscaglia

TuCSoN/ReSpecT development spanned over several years, employing several students and researchers adopting different styles, convections, and practices. The result is a working but difficult-to-maintain software artefact upon which still depends the work of a lot of researchers. This project aims at refactoring both the current implementation and the development process. For what concerns the source code: redundancy should be removed, unit and integration tests should be defined, a build system (such as Gradle) should be adopted; the code should be portioned into agent-side and node-side, making the two partitions individually deployable. Moreover, the number of thread employed by the current implementation should be minimized by means of selective IO. API documentation and informal semantics should appear onto some public Wiki. For what concerns the development process, conventions should be enforced by means of IDE plugins; GitFlow and Continuous Integration should be adopted, supporting maintenance and deployment; and issue tracking should be opened for users wanting to report bugs or problems.

This project will teach you how to handle a medium-to-large project development process, mimicking a real-world scenario where you contribute to a pre-existing open-source project that will continue to live after you leave. You will gain horizontal skills that may be appreciated within the industries.