CSC/ECE 517 Fall 2014/oss E1456 akk
Refactoring Questionnaire Controller
Introduction
Questionnaire Controller interacts with the user to create and edit questionnaires such as review rubrics, teammate-feedback rubrics, quizzes, and surveys. This page provides a detailed description of Open Source Project on Expertiza for refactoring the questionnaire controller.
Project Overview
Classes involved
- questionnaire_controller.rb
- questionnaire_helper.rb
- advice_controller.rb
Changes made
- Functionality moved to quiz_questionnaire.rb.
- edit_advice method was not being used, so it was removed.
- save_advice moved to the advice_controller.
- copy, update_quiz, valid_quiz methods were long and have been broken up. clone_questionnaire_details was also broken up and renamed.
- Added comments to select_questionnaire_type
- Debug output (print statements) have been removed.
- Changed code to follow the global rules.
- save_new_questions, delete_questions, save_questions have been moved to a separate class.
Project Resources
UML CLass Diagram
Participant Model
Code Snippets
The quiz questionnaire related methods such as view_quiz, update_quiz, new_quiz and validate_quiz are moved to questionnaire_helper.rb to make the questionnaires_controller thin and follow global rule of thin controllers and fat models.
Conclusion
- Refactoring was performed as per requirements in the files questionnaire_controller.rb, and advice_controller.rb.
- The code from models cannot be moved directly to controllers, so the code was moved to the helper class questionnaire_helper.rb.
- Some methods with confusing method names have also been renamed.