Refactoring Processing code

title:Refactoring Processing code
keywords:Refactoring, software smells, programming education, software design
topics:Software Technology
contact:dr. A. Fehnker


Programming requires as a student to master three perspectives on software: as a  tool for instructing a computer,  as a tool for designing a system, or as a tool for expressing concepts and structures. An introductory programming can mainly focus mainly on the first perspective and neglect design and concepts. Especially when using an object-oriented language that is meant to help with software design, this can result in awkward student code, code that would be considered smelly by OO standards.

Processing is a language that is derived from Java, but that omits many mechanisms Java provides to provide structure and enforce good design. By OO standards Processing programs contain numerous code and design smells. The aim of this project is to develop refactorings for Processing code. A refactoring is a guideline how to change the code that exhibits a design problem and turn it into a program that has a better structure.



  1. Felienne Hermans, Kathryn T. Stolee, David Hoepelman. Smells in block-based programming languages (Digital version available here)
  2. Jianxiong Gao, Bei Pang, and Steven S. Lumetta. 2016. Automated Feedback Framework for Introductory Programming Courses. (Digital version available here)
  3. R. de Man and A. Fehnker,The Smell of Processing. (Digital version available here)